H      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                  (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcSafe-Convert escaped sequences of characters into real& characters in a normal Python string.(The set of valid octal digits in Python.&The set of valid hex digits in Python.(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcSafe9;*All types which can be transformed into a .Transform values into strings."Print just the prefix of something.Conditionally wrap parentheses around an item. %A list of things separated by commas.  D      !"#$%&'()*+,-./0123456789:;<=    (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcSafe08Source location spanning a contiguous section of a file..A span which starts and ends on the same line.0A span which starts and ends on different lines.4A span which is actually just one point in the file.No span information.Types which have a span.A location for a syntactic entity from the source code. The location is specified by its filename, and starting row and column. %4Create a new span which encloses two spanned things.&1Construct the initial source location for a file.'EDecrement the column of a location, only if they are on the same row.($Increment the column of a location. )3Increment the column of a location by one tab stop.*5Increment the line number (row) of a location by one.+*Make a point span from the start of a span,wMake a span from two locations. Assumption: either the arguments are the same, or the left one preceeds the right one.- Combines two w into one that spans at least all the characters within both spans. Assumes the "file" part is the same in both inputs.#Get the row of the start of a span./!Get the row of the end of a span.0&Get the column of the start of a span.1$Get the column of the end of a span.* !"#$%&'()*>+,-./0123456789! !"#$%&'()*+,-./01& !"#$%,-&+('*)1/0. !"#$%&'()*>+,-./0123456789(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcSafe0eBClassification of tokensMLexical tokens.NIndentation: increase.OIndentation: decrease.PNewline.Q%Line join (backslash at end of line).RSingle line comment.S Identifier.TLiteral: string.ULiteral: byte string.V(Literal: unicode string, version 2 only.WLiteral: integer.XLiteral: long integer. Version 2 only.YLiteral: floating point.ZLiteral: imaginary number.[Keyword: 'def'. \Keyword: 'while'.]Keyword: 'if'.^Keyword: 'True'._Keyword: 'False'.`Keyword: 'Return'.aKeyword: 'try'.bKeyword: 'except'.cKeyword: 'raise'.dKeyword: 'in'.eKeyword: 'is'.fKeyword: 'lambda'.gKeyword: 'class'.hKeyword: 'finally'.iKeyword: 'None'. jKeyword: 'for'.kKeyword: 'from'.lKeyword: 'global'.mKeyword: 'with'.nKeyword: 'as'.oKeyword: 'elif'.pKeyword: 'yield'.qKeyword: 'assert'.rKeyword: 'import'.sKeyword: 'pass'.tKeyword: 'break'.uKeyword: 'continue'.vKeyword: 'del'.wKeyword: 'else'.xKeyword: 'not'.y#Keyword: boolean conjunction 'and'.z5Keyword: boolean disjunction 'or'. Version 3.x only:{8Keyword: 'nonlocal' (Python 3.x only) Version 2.x only:|#Keyword: 'print'. (Python 2.x only)}"Keyword: 'exec'. (Python 2.x only)~Delimiter: at sign '@'. "Delimiter: left round bracket '('.#Delimiter: right round bracket ')'.#Delimiter: left square bracket '['.$Delimiter: right square bracket ']'."Delimiter: left curly bracket '{'.#Delimiter: right curly bracket '}'.Delimiter: dot (full stop) '.'.Delimiter: comma ','.Delimiter: semicolon ';'.Delimiter: colon ':'.'Delimiter: ellipses (three dots) '...'.#Delimiter: right facing arrow '->'.Delimiter: assignment '='. Delimiter: plus assignment '+='.!Delimiter: minus assignment '-='.#Delimiter: multiply assignment '*='"Delimiter: divide assignment '/='.#Delimiter: modulus assignment '%='."Delimiter: power assignment '**='.&Delimiter: binary-and assignment '&='.%Delimiter: binary-or assignment '|='.&Delimiter: binary-xor assignment '^='..Delimiter: binary-left-shift assignment '<<='./Delimiter: binary-right-shift assignment '>>='.)Delimiter: floor-divide assignment '//='.!Delimiter: back quote character '`\'.Operator: plus '+'.Operator: minus: '-'.Operator: multiply '*'.Operator: divide '/'.Operator: greater-than '>'.Operator: less-than '<'.Operator: equals '=='.&Operator: greater-than-or-equals '>='.#Operator: less-than-or-equals '<='.Operator: exponential '**'.Operator: binary-or '|'.Operator: binary-xor '^'.Operator: binary-and '&'.!Operator: binary-shift-left '<<'."Operator: binary-shift-right '>>'.Operator: modulus '%'.Operator: floor-divide '//'.Operator: tilde '~'.Operator: not-equals '!='.*Operator: not-equals '<>'. Version 2 only. End of file ^Produce a string from a token containing detailed information. Mainly intended for debugging. 1Test if a token contains its literal source text.YProduce a string from a token which is suitable for printing as Python concrete syntax.  Invisible tokens yield an empty string.uBCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~tBJDCEFGHIKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~MNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~BCDEFGHIJKLB CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcSafe029;Augmented assignment operators.'+=''-=''*=''/=''%=''*=''&=''|=''^=' '<<=''>>=''//=' Operators.'and''or''not''**''<''>''==''>=''<=''!=''<>'. Version 2 only.'in''is''is not''not in''|''^''&''<<''>>''*''+''-''/''//'/'~' (bitwise inversion of its integer argument)'%'Slice compenent.'Yield from a generator (Version 3 only)Yield value of an expression Expressions. Version 2.6  8http://www.python.org/doc/2.6/reference/expressions.html. Version 3.1  8http://www.python.org/doc/3.1/reference/expressions.html. Variable.Literal integer.Long literal integer. Version 2 only.Literal floating point number.Literal imaginary number.Literal boolean.Literal 'None' value.Ellipsis '...'.Literal byte string./Literal strings (to be concatentated together).GUnicode literal strings (to be concatentated together). Version 2 only. Function call.  #Subscription, for example 'x [y]'.  "Slicing, for example 'w [x:y:z]'.  Conditional expresison.  Binary operator application.Unary operator application.(Anonymous function definition (lambda). Tuple. Can be empty. Generator yield.  Generator. List comprehension. List.  Dictionary. Dictionary comprehension. Version 3 only. Set. Set comprehension. Version 3 only. Starred expression. Version 3 only.Parenthesised expression.;String conversion (backquoted expression). Version 2 only. ';Expression yielding a callable object (such as a function).(Call arguments.-,Expression to evaluate if condition is True..Boolean condition./-Expression to evaluate if condition is False.9Optional Yield argument.F4Comprehension iterator (either a 'for' or an 'if'). MComprehension guard. SComprehension 'for' component. ^yComprehension. In version 3.x this can be used for lists, sets, dictionaries and generators. data Comprehension e annotdException clause. iException handler. o?Arguments to function calls, class declarations and decorators.pOrdinary argument expression.qExcess positional argument.rExcess keyword argument.sKeyword argument.tArgument expression.v Keyword name.xTuple unpack parameter. Version 2 only.yA variable name.z$A (possibly nested) tuple parameter.@Formal parameter of function definitions and lambda expressions. Version 2.6:  Phttp://www.python.org/doc/2.6/reference/compound_stmts.html#function-definitions >http://www.python.org/doc/2.6/reference/expressions.html#calls Version 3.1:  Phttp://www.python.org/doc/3.1/reference/compound_stmts.html#function-definitions >http://www.python.org/doc/3.1/reference/expressions.html#callsOrdinary named parameter.VExcess positional parameter (single asterisk before its name in the concrete syntax). RExcess keyword parameter (double asterisk before its name in the concrete syntax).EMarker for the end of positional parameters (not a parameter itself).Tuple unpack. Version 2 only.Parameter name.Optional annotation.Optional default value.The tuple to unpack. Decorator.Decorator name.Decorator arguments.The argument for a raise statement.=Optional expression to evaluate, and optional 'from' clause. Version 3 only.Version 2 only. Statements.Simple statements: Version 2.6 9http://www.python.org/doc/2.6/reference/simple_stmts.html Version 3.1 9http://www.python.org/doc/3.1/reference/simple_stmts.htmlCompound statements: Version 2.6 ;http://www.python.org/doc/2.6/reference/compound_stmts.html Version 3.1 ;http://www.python.org/doc/3.1/reference/compound_stmts.htmlImport statement.From ... import statement. While loop.  For loop. Function definition. Class definition. &Conditional statement (if-elif-else). Assignment statement.  Augmented assignment statement. ,Decorated definition of a function or class.QReturn statement (may only occur syntactically nested in a function definition). $Try statement (exception handling). &Raise statement (exception throwing). %With statement (context management). !Pass statement (null operation). Break statement (may only occur syntactically nested in a for or while loop, but not nested in a function or class definition within that loop). Continue statement (may only occur syntactically nested in a for or while loop, but not nested in a function or class definition or finally clause within that loop). Del statement (delete). Expression statement. Global declaration. Nonlocal declaration. Version 3.x only.  Assertion. Print statement. Version 2 only. Exec statement. Version 2 only. Items to import.Module to import from.Items to import.Loop condition. Loop body. Else clause.Loop variables.Loop generator.  Loop body Else clause.Function name.Function parameter list.Optional result annotation.Function body. Class name.;Class argument list. In version 2.x this is only ArgExprs.  Class body.(Sequence of if-elif conditional clauses.)Possibly empty unconditional else clause.Entity to assign to. Expression to evaluate.Entity to assign to.'Assignment operator (for example '+=').Expression to evaluate. Decorators.-Function or class definition to be decorated.5Optional expression to evaluate and return to caller. Try clause.Exception handlers.]Possibly empty else clause, executed if and when control flows off the end of the try clause.Possibly empty finally clause.1Context expression(s) (yields a context manager).Suite to be managed.Items to delete./Variables declared global in the current block.nVariables declared nonlocal in the current block (their binding comes from bound the nearest enclosing scope).Expressions being asserted.Optional chevron (>>)Arguments to printDoes it end in a comma?Expression to exec.@Global and local environments to evaluate the expression within.OA reference to the module to import from using the 'from ... import' construct.5Items imported using the 'from ... import' construct.+Import everything exported from the module.0Import a specific list of items from the module.9An entity imported using the 'from ... import' construct. Version 2.6 Nhttp://www.python.org/doc/2.6/reference/simple_stmts.html#the-import-statement Version 3.1 Nhttp://www.python.org/doc/3.1/reference/simple_stmts.html#the-import-statement!The name of the entity imported. 8An optional name to refer to the entity (the 'as' name)..An entity imported using the 'import' keyword. Version 2.6 Nhttp://www.python.org/doc/2.6/reference/simple_stmts.html#the-import-statement Version 3.1  Nhttp://www.python.org/doc/3.1/reference/simple_stmts.html#the-import-statement The name of module to import.9An optional name to refer to the entity (the 'as' name). 2A compound name constructed with the dot operator.sA block of statements. A suite is a group of statements controlled by a clause, for example, the body of a loop.  Version 2.6 ;http://www.python.org/doc/2.6/reference/compound_stmts.html Version 3.1 ;http://www.python.org/doc/3.1/reference/compound_stmts.htmlA module (Python source file).  Version 2.6 @http://www.python.org/doc/2.6/reference/toplevel_components.html Version 3.1  @http://www.python.org/doc/3.1/reference/toplevel_components.html 4A module is just a sequence of top-level statements. Identifier.5Convenient access to annotations in annotated types. :Given an annotated type, project out its annotation value.n      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+C      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxzy{|}~~xyz{|}|w       ! " #$%&'()*+,-./01203456789:;<=>?@ABCDopqrstututuvtunijklmhdefgc^_`ab]Z[\YSTUVWXRMNOPQLFGHIJKJEb6 i       ! " #$%&'()*+,-./01203456789:;<=>?@ABCDEFGHIJKJLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno pqrstututuvtuwxyz{|}|~\      !"#$%&'()*+(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcSafe%?@ABCDEFGHIJ%?@ABCDEFGHIJ(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcSafe(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcSafeiAn error from the parser. Token found where it should not be. Note: tokens contain their own source span.@An error from the lexer. Character found where it should not be.@A generic error containing a string message. No source location. (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcSafe (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcSafe)KL++  KL(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcSafe1MNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}/MNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{!M NOPQRSTURRV WXYZ[\[]^[_`abcdefghijklmnopqrstuvwxyz{|}(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcSafe%~%~#~(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcNoneBx     m      (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcNoneAParse a string into a list of Python Tokens, or return an error. Try to lex the first token in an input string. Return either a parse error or a pair containing the next token and the rest of the input after the token.Lex a sequence of tokens.'The input stream (python source code). 9The name of the python source (filename or input device).An error or a list of tokens.&The input stream (python source code).9The name of the python source (filename or input device).FAn error or the next token and the rest of the input after the token. (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcNone! /023459:;<=?@ABCDFIJKMNOQRT !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ 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 [ \ ] ^ _ ` 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 { | } ~    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ 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 [ \ ] ^ _ ` 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 { | } ~  9 9  (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcNoneSParse a whole Python source file. Return comments in addition to the parsed module.Parse one compound statement, or a sequence of simple statements. Generally used for interactive input, such as from the command line of an interpreter. Return comments in addition to the parsed statements.|Parse an expression. Generally used as input for the 'eval' primitive. Return comments in addition to the parsed expression..The input stream (python module source code). :The name of the python source (filename or input device). SAn error or the abstract syntax tree (AST) of the python module and comment tokens.1The input stream (python statement source code). :The name of the python source (filename or input device). bAn error or maybe the abstract syntax tree (AST) of zero or more python statements, plus comments.1The input stream (python statement source code). :The name of the python source (filename or input device). _An error or maybe the abstract syntax tree (AST) of the python expression, plus comment tokens.(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcNone(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcNoneB                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W v                               ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcNoneAParse a string into a list of Python Tokens, or return an error. Try to lex the first token in an input string. Return either a parse error or a pair containing the next token and the rest of the input after the token.'The input stream (python source code). 9The name of the python source (filename or input device).An error or a list of tokens.&The input stream (python source code).9The name of the python source (filename or input device).FAn error or the next token and the rest of the input after the token. X X(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcNone! /023459:;<=?@ABCDFIJKMNOQRT Y Z [ \ ] ^ _ ` 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 G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` 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 G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` 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 G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` 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 { | } ~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()* Y Z [ \ ] ^ _ ` 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 G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` 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 G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` 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 G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` 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 { | } ~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()* [9  \9 (c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcNoneSParse a whole Python source file. Return comments in addition to the parsed module.Parse one compound statement, or a sequence of simple statements. Generally used for interactive input, such as from the command line of an interpreter. Return comments in addition to the parsed statements.|Parse an expression. Generally used as input for the 'eval' primitive. Return comments in addition to the parsed expression..The input stream (python module source code). :The name of the python source (filename or input device). SAn error or the abstract syntax tree (AST) of the python module and comment tokens.1The input stream (python statement source code). :The name of the python source (filename or input device). bAn error or maybe the abstract syntax tree (AST) of zero or more python statements, plus comments.1The input stream (python statement source code). :The name of the python source (filename or input device). _An error or maybe the abstract syntax tree (AST) of the python expression, plus comment tokens.(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcNone(c) 2009 Bernie Pope  BSD-stylebjpop@csse.unimelb.edu.au experimentalghcSafe       !"#$%&'()*+,-./0123456789:;<=  !"#$%&'()*+,-./01BJDCEFGHIKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxzy{|}~+ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcddefghiijklmnoopqrrstuvwwxyz{{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                        !"#$%&'()*+,-./012345464748494:4:4;4<4=4>4?4@4A4BCDEFGHIJKLMNO P Q!RSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"##$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ 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 [ \ ] ^ _ ` 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 { | } ~                                                                                                        !"##$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./          0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ 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 [ \ ] ^ _ ` 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 { | } ~                                                                                                    +language-python-0.5.3-6gxLvkVJX3YBffru2QiaL#Language.Python.Common.StringEscapeLanguage.Python.Common.Pretty"Language.Python.Common.SrcLocationLanguage.Python.Common.TokenLanguage.Python.Common.AST Language.Python.Common.PrettyAST"Language.Python.Common.PrettyToken!Language.Python.Common.ParseError'Language.Python.Common.PrettyParseError"Language.Python.Common.ParserMonadLanguage.Python.Version3.LexerLanguage.Python.Version3.ParserLanguage.Python.Version2.LexerLanguage.Python.Version2.Parser"Language.Python.Common.ParserUtils!Language.Python.Common.LexerUtils%Language.Python.Version3.Parser.Lexer&Language.Python.Version3.Parser.ParserLanguage.Python.Version3%Language.Python.Version2.Parser.Lexer&Language.Python.Version2.Parser.ParserLanguage.Python.Version2Language.Python.CommonunescapeStringunescapeRawString octalDigits hexDigitsPrettypretty prettyText prettyPrefixparensIfperhaps commaList $fPrettyMaybe $fPrettyBool$fPrettyDouble$fPrettyInteger $fPrettyInt $fPretty[]SrcSpan SpanCoLinear SpanMultiLine SpanPoint SpanEmpty span_filenamespan_rowspan_start_columnspan_end_columnspan_start_row span_end_row span_columnSpangetSpan SrcLocationSloc NoLocation sloc_filenamesloc_row sloc_columnspanninginitialSrcLocation decColumn incColumnincTabincLinespanStartPoint mkSrcSpancombineSrcSpansstartRowendRowstartColendCol$fSpanSrcLocation$fPrettySrcSpan $fSpanSrcSpan $fSpan(,) $fSpanEither $fSpanMaybe$fSpan[]$fPrettySrcLocation$fEqSrcLocation$fOrdSrcLocation$fShowSrcLocation$fDataSrcLocation $fEqSrcSpan $fOrdSrcSpan $fShowSrcSpan $fDataSrcSpan TokenClassCommentNumber Identifier PunctuationBracketLayoutKeywordStringOperator AssignmentToken IndentToken DedentToken NewlineToken LineJoinToken CommentTokenIdentifierToken StringTokenByteStringTokenUnicodeStringToken IntegerTokenLongIntegerToken FloatTokenImaginaryTokenDefToken WhileTokenIfToken TrueToken FalseToken ReturnTokenTryToken ExceptToken RaiseTokenInTokenIsToken LambdaToken ClassToken FinallyToken NoneTokenForToken FromToken GlobalToken WithTokenAsToken ElifToken YieldToken AssertToken ImportToken PassToken BreakToken ContinueToken DeleteToken ElseTokenNotTokenAndTokenOrToken NonLocalToken PrintToken ExecTokenAtTokenLeftRoundBracketTokenRightRoundBracketTokenLeftSquareBracketTokenRightSquareBracketTokenLeftBraceTokenRightBraceTokenDotToken CommaTokenSemiColonToken ColonToken EllipsisTokenRightArrowToken AssignTokenPlusAssignTokenMinusAssignTokenMultAssignTokenDivAssignTokenModAssignTokenPowAssignTokenBinAndAssignTokenBinOrAssignTokenBinXorAssignTokenLeftShiftAssignTokenRightShiftAssignTokenFloorDivAssignTokenBackQuoteToken PlusToken MinusToken MultTokenDivTokenGreaterThanToken LessThanToken EqualityTokenGreaterThanEqualsTokenLessThanEqualsToken ExponentToken BinaryOrTokenXorTokenBinaryAndTokenShiftLeftTokenShiftRightToken ModuloToken FloorDivToken TildeTokenNotEqualsTokenNotEqualsV2TokenEOFToken token_span token_literal token_integer token_doubledebugTokenString hasLiteral classifyToken tokenString $fSpanToken $fEqToken $fOrdToken $fShowToken $fDataToken$fShowTokenClass$fEqTokenClass$fOrdTokenClass AssignOpSpanAssignOp PlusAssign MinusAssign MultAssign DivAssign ModAssign PowAssign BinAndAssign BinOrAssign BinXorAssignLeftShiftAssignRightShiftAssignFloorDivAssignassignOp_annotOpSpanOpAndOrNotExponentLessThan GreaterThanEqualityGreaterThanEqualsLessThanEquals NotEquals NotEqualsV2InIsIsNotNotInBinaryOrXor BinaryAnd ShiftLeft ShiftRightMultiplyPlusMinusDivide FloorDivideInvertModuloop_annot SliceSpanSlice SliceProper SliceExpr SliceEllipsis slice_lower slice_upper slice_stride slice_annot slice_exprDictMappingPairSpanDictMappingPair YieldArgSpanYieldArg YieldFrom YieldExprExprSpanExprVarIntLongIntFloat ImaginaryBoolNoneEllipsis ByteStringsStringsUnicodeStringsCall Subscript SlicedExprCondExprBinaryOpUnaryOpDotLambdaTupleYield GeneratorListCompList DictionaryDictCompSetSetCompStarredParenStringConversion var_ident expr_annot int_value expr_literal float_valueimaginary_value bool_valuebyte_string_stringsstrings_stringsunicodestrings_stringscall_fun call_args subscripteesubscript_exprsliceeslicesce_true_branch ce_conditionce_false_branchoperator left_op_arg right_op_argop_argdot_expr dot_attribute lambda_args lambda_body tuple_exprs yield_arggen_comprehensionlist_comprehension list_exprs dict_mappingsdict_comprehension set_exprsset_comprehension starred_expr paren_exprbackquoted_expr expr_anot CompIterSpanCompIterIterForIterIf comp_iter_forcomp_iter_annot comp_iter_if CompIfSpanCompIfcomp_if comp_if_iter comp_if_annot CompForSpanCompForcomp_for_exprs comp_in_expr comp_for_itercomp_for_annotComprehensionExprSpanComprehensionExprComprehensionDictComprehensionSpan Comprehensioncomprehension_exprcomprehension_forcomprehension_annotExceptClauseSpan ExceptClause except_clauseexcept_clause_annot HandlerSpanHandlerhandler_clause handler_suite handler_annot ArgumentSpanArgumentArgExpr ArgVarArgsPosArgVarArgsKeyword ArgKeywordarg_expr arg_annot arg_keywordParamTupleSpan ParamTupleParamTupleNameparam_tuple_nameparam_tuple_annot param_tuple ParameterSpan ParameterParam VarArgsPosVarArgsKeyword EndPositional UnPackTuple param_nameparam_py_annotation param_default param_annotparam_unpack_tuple DecoratorSpan Decoratordecorator_namedecorator_argsdecorator_annot RaiseExprSpan RaiseExprRaiseV3RaiseV2 StatementSpan StatementImport FromImportWhileForFunClass ConditionalAssignAugmentedAssign DecoratedReturnTryRaiseWithPassBreakContinueDeleteStmtExprGlobalNonLocalAssertPrintExec import_items stmt_annot from_module from_items while_cond while_body while_else for_targets for_generatorfor_bodyfor_elsefun_namefun_argsfun_result_annotationfun_body class_name class_args class_body cond_guards cond_else assign_to assign_expr aug_assign_to aug_assign_opaug_assign_exprdecorated_decorators decorated_def return_exprtry_body try_exceptstry_else try_finally raise_expr with_context with_body del_exprs stmt_expr global_vars nonLocal_vars assert_exprs print_chevron print_exprsprint_trailing_comma exec_exprexec_globals_localsImportRelativeSpanImportRelativeimport_relative_dotsimport_relative_moduleimport_relative_annot FromItemsSpan FromItemsImportEverythingfrom_items_annotfrom_items_items FromItemSpanFromItemfrom_item_name from_as_namefrom_item_annotImportItemSpan ImportItemimport_item_nameimport_as_nameimport_item_annotDottedNameSpan DottedName SuiteSpanSuite ModuleSpanModule IdentSpanIdent ident_string ident_annot Annotatedannot$fAnnotatedAssignOp$fSpanAssignOp $fAnnotatedOp$fSpanOp$fAnnotatedSlice $fSpanSlice$fSpanDictMappingPair$fAnnotatedExpr$fSpanYieldArg $fSpanExpr$fAnnotatedCompIter$fSpanCompIter$fAnnotatedCompIf $fSpanCompIf$fAnnotatedCompFor $fSpanCompFor$fSpanComprehensionExpr$fAnnotatedComprehension$fSpanComprehension$fAnnotatedExceptClause$fSpanExceptClause$fAnnotatedHandler $fSpanHandler$fAnnotatedArgument$fSpanArgument$fAnnotatedParamTuple$fSpanParamTuple$fAnnotatedParameter$fSpanParameter$fAnnotatedDecorator$fSpanDecorator$fAnnotatedStatement$fSpanStatement$fAnnotatedImportRelative$fSpanImportRelative$fAnnotatedFromItems$fSpanFromItems$fAnnotatedFromItem$fSpanFromItem$fAnnotatedImportItem$fSpanImportItem$fAnnotatedIdent $fSpanIdent $fEqIdent $fOrdIdent $fShowIdent $fDataIdent$fFunctorIdent$fEqImportItem$fOrdImportItem$fShowImportItem$fDataImportItem$fFunctorImportItem $fEqFromItem $fOrdFromItem$fShowFromItem$fDataFromItem$fFunctorFromItem $fEqFromItems$fOrdFromItems$fShowFromItems$fDataFromItems$fFunctorFromItems$fEqImportRelative$fOrdImportRelative$fShowImportRelative$fDataImportRelative$fFunctorImportRelative$fEqParamTuple$fOrdParamTuple$fShowParamTuple$fDataParamTuple$fFunctorParamTuple$fEqOp$fOrdOp$fShowOp$fDataOp $fFunctorOp$fEqExpr $fOrdExpr $fShowExpr $fDataExpr $fFunctorExpr $fEqSlice $fOrdSlice $fShowSlice $fDataSlice$fFunctorSlice$fEqDictMappingPair$fOrdDictMappingPair$fShowDictMappingPair$fDataDictMappingPair$fFunctorDictMappingPair $fEqYieldArg $fOrdYieldArg$fShowYieldArg$fDataYieldArg$fFunctorYieldArg$fEqComprehension$fOrdComprehension$fShowComprehension$fDataComprehension$fFunctorComprehension $fEqCompFor $fOrdCompFor $fShowCompFor $fDataCompFor$fFunctorCompFor $fEqCompIter $fOrdCompIter$fShowCompIter$fDataCompIter$fFunctorCompIter $fEqCompIf $fOrdCompIf $fShowCompIf $fDataCompIf$fFunctorCompIf$fEqComprehensionExpr$fOrdComprehensionExpr$fShowComprehensionExpr$fDataComprehensionExpr$fFunctorComprehensionExpr $fEqArgument $fOrdArgument$fShowArgument$fDataArgument$fFunctorArgument $fEqParameter$fOrdParameter$fShowParameter$fDataParameter$fFunctorParameter$fEqExceptClause$fOrdExceptClause$fShowExceptClause$fDataExceptClause$fFunctorExceptClause $fEqDecorator$fOrdDecorator$fShowDecorator$fDataDecorator$fFunctorDecorator $fEqRaiseExpr$fOrdRaiseExpr$fShowRaiseExpr$fDataRaiseExpr$fFunctorRaiseExpr $fEqAssignOp $fOrdAssignOp$fShowAssignOp$fDataAssignOp$fFunctorAssignOp $fEqStatement$fOrdStatement$fShowStatement$fDataStatement$fFunctorStatement $fEqHandler $fOrdHandler $fShowHandler $fDataHandler$fFunctorHandler $fEqModule $fOrdModule $fShowModule $fDataModule$fFunctorModule$fPrettyAssignOp $fPrettyOp $fPrettySlice$fPrettyDictMappingPair$fPrettyYieldArg $fPrettyExpr$fPrettyCompIter$fPrettyCompIf$fPrettyCompFor$fPrettyComprehensionExpr$fPrettyComprehension$fPrettyArgument$fPrettyParamTuple$fPrettyParameter$fPrettyDecorator$fPrettyRaiseExpr$fPrettyExceptClause$fPrettyHandler$fPrettyStatement$fPrettyImportRelative$fPrettyFromItems$fPrettyFromItem$fPrettyImportItem $fPrettyIdent$fPrettyModule $fPrettyToken ParseErrorUnexpectedTokenUnexpectedCharStrError$fErrorParseError$fEqParseError$fOrdParseError$fShowParseError$fPrettyParseErrorP ParseStatelocationinput previousTokenstartCodeStack indentStack parenStacklastEOLcomments spanError initialState execParserexecParserKeepComments runParserreturnPthenP setLastEOL getLastEOL setLocation getLocationgetInputsetInput getLastToken setLastToken pushStartCode popStartCode getStartCode pushIndent popIndent getIndentgetIndentStackDepth pushParenpopParengetParengetParenStackDepth addComment getComments$fShowParseState initLexStatelex lexOneTokenlexer parseModule parseStmt parseExprunescapeNumericpretty-1.1.3.3Text.PrettyPrint.HughesPJDoc fullRender renderStylerenderfsepfcatcatsep<+><>$+$$$ punctuatehangnestvcathsephcatbracesbracketsparens doubleQuotesquotesrationaldoublefloatintegerintrbracelbracerbracklbrackrparenlparenequalsspacecoloncommasemiisEmptyempty zeroWidthText sizedTextptexttextchar#Text.PrettyPrint.Annotated.HughesPJstyle TextDetailsChrStrPStrStylemode lineLengthribbonsPerLineModePageMode ZigZagModeLeftMode OneLineModeprettyMultiSpandotindent blankLine prettyStringprettyDottedName prettySuiteoptionalKeywordSuiteprettyParenListprettyOptionalList prettyGuardsprettyWithContextprettyHandlers internalError initToken SubscriptExprSubscriptSliceSubscriptSliceEllipsis subscriptionsubscript_spansubscript_slice_span1subscript_slice_span2subscript_slice_span3Trailer TrailerCallTrailerSubscript TrailerDottrailer_call_args trailer_span trailer_substrailer_dot_identdot_spanmakeConditionalExpr makeBinOp parseError isProperSlicesubscriptToSlicesubscriptToExprsubscriptsToExpr addTrailermakeTupleOrExprmakeAssignmentOrExprmakeTry makeParam makeStarParammakeStarStarParammakeTupleParammakeComprehension makeListFormmakeSetmakeDictionary fromEither makeDecorator makeDecoratedmakeFun makeReturnmakeParenOrGenerator makePrint makeRelativecheckArgumentscheckParameters$fSpanSubscript $fSpanTrailer AlexInputAction StartCodeBOBOFBOLBytelineJoin endOfLine bolEndOfLine dedentation indentation symbolTokentokenendOfFileToken dedentToken newlineToken atEOLorEOFnotEOF readBinary readFloat readFloatRestmkString stringTokenrawStringTokenbyteStringTokenunicodeStringTokenrawByteStringToken openParen closeParen matchParenalexInputPrevChar alexGetChar alexGetBytemoveChar lexicalError readOctNoOAlexAcc AlexAccNone AlexAccSkip AlexLastAccAlexNone AlexLastSkip AlexReturnAlexEOF AlexErrorAlexSkip AlexTokenAlexAddrAlexA# alex_tab_size alex_base alex_table alex_check alex_deflt alex_acceptinitStartCodeStacklexTokenlexContkeywordOrIdentkeywords keywordNamesbofboldedent alex_action_0 alex_action_2 alex_action_3 alex_action_4 alex_action_5 alex_action_6 alex_action_7 alex_action_8 alex_action_9alex_action_10alex_action_11alex_action_12alex_action_13alex_action_14alex_action_15alex_action_16alex_action_17alex_action_18alex_action_19alex_action_20alex_action_21alex_action_22alex_action_23alex_action_24alex_action_25alex_action_26alex_action_27alex_action_28alex_action_29alex_action_30alex_action_31alex_action_32alex_action_33alex_action_34alex_action_35alex_action_36alex_action_37alex_action_38alex_action_39alex_action_40alex_action_41alex_action_42alex_action_43alex_action_44alex_action_45alex_action_46alex_action_47alex_action_48alex_action_49alex_action_50alex_action_51alex_action_52alex_action_53alex_action_54alex_action_55alex_action_56alex_action_57alex_action_58alex_action_59alex_action_60alex_action_61alex_action_62alex_action_63alex_action_64alex_action_65alex_action_66alex_action_67alex_action_68alex_action_69alex_action_70alex_action_71alex_action_72alex_action_73alex_action_74alex_action_75alex_action_76alex_action_77alex_action_78alex_action_79alex_action_80alex_action_81alex_action_82alex_action_83alexIndexInt16OffAddralexIndexInt32OffAddr quickIndexalexScan alexScanUser alex_scan_tkn$fFunctorAlexLastAcc HappyAddrHappyA#HappyStk Happy_IntList HappyConsHappyAny HappyAbsSynhappyIn6 happyOut6happyIn7 happyOut7happyIn8 happyOut8happyIn9 happyOut9 happyIn10 happyOut10 happyIn11 happyOut11 happyIn12 happyOut12 happyIn13 happyOut13 happyIn14 happyOut14 happyIn15 happyOut15 happyIn16 happyOut16 happyIn17 happyOut17 happyIn18 happyOut18 happyIn19 happyOut19 happyIn20 happyOut20 happyIn21 happyOut21 happyIn22 happyOut22 happyIn23 happyOut23 happyIn24 happyOut24 happyIn25 happyOut25 happyIn26 happyOut26 happyIn27 happyOut27 happyIn28 happyOut28 happyIn29 happyOut29 happyIn30 happyOut30 happyIn31 happyOut31 happyIn32 happyOut32 happyIn33 happyOut33 happyIn34 happyOut34 happyIn35 happyOut35 happyIn36 happyOut36 happyIn37 happyOut37 happyIn38 happyOut38 happyIn39 happyOut39 happyIn40 happyOut40 happyIn41 happyOut41 happyIn42 happyOut42 happyIn43 happyOut43 happyIn44 happyOut44 happyIn45 happyOut45 happyIn46 happyOut46 happyIn47 happyOut47 happyIn48 happyOut48 happyIn49 happyOut49 happyIn50 happyOut50 happyIn51 happyOut51 happyIn52 happyOut52 happyIn53 happyOut53 happyIn54 happyOut54 happyIn55 happyOut55 happyIn56 happyOut56 happyIn57 happyOut57 happyIn58 happyOut58 happyIn59 happyOut59 happyIn60 happyOut60 happyIn61 happyOut61 happyIn62 happyOut62 happyIn63 happyOut63 happyIn64 happyOut64 happyIn65 happyOut65 happyIn66 happyOut66 happyIn67 happyOut67 happyIn68 happyOut68 happyIn69 happyOut69 happyIn70 happyOut70 happyIn71 happyOut71 happyIn72 happyOut72 happyIn73 happyOut73 happyIn74 happyOut74 happyIn75 happyOut75 happyIn76 happyOut76 happyIn77 happyOut77 happyIn78 happyOut78 happyIn79 happyOut79 happyIn80 happyOut80 happyIn81 happyOut81 happyIn82 happyOut82 happyIn83 happyOut83 happyIn84 happyOut84 happyIn85 happyOut85 happyIn86 happyOut86 happyIn87 happyOut87 happyIn88 happyOut88 happyIn89 happyOut89 happyIn90 happyOut90 happyIn91 happyOut91 happyIn92 happyOut92 happyIn93 happyOut93 happyIn94 happyOut94 happyIn95 happyOut95 happyIn96 happyOut96 happyIn97 happyOut97 happyIn98 happyOut98 happyIn99 happyOut99 happyIn100 happyOut100 happyIn101 happyOut101 happyIn102 happyOut102 happyIn103 happyOut103 happyIn104 happyOut104 happyIn105 happyOut105 happyIn106 happyOut106 happyIn107 happyOut107 happyIn108 happyOut108 happyIn109 happyOut109 happyIn110 happyOut110 happyIn111 happyOut111 happyIn112 happyOut112 happyIn113 happyOut113 happyIn114 happyOut114 happyIn115 happyOut115 happyIn116 happyOut116 happyIn117 happyOut117 happyIn118 happyOut118 happyIn119 happyOut119 happyIn120 happyOut120 happyIn121 happyOut121 happyIn122 happyOut122 happyIn123 happyOut123 happyIn124 happyOut124 happyIn125 happyOut125 happyIn126 happyOut126 happyIn127 happyOut127 happyIn128 happyOut128 happyIn129 happyOut129 happyIn130 happyOut130 happyIn131 happyOut131 happyIn132 happyOut132 happyIn133 happyOut133 happyIn134 happyOut134 happyIn135 happyOut135 happyIn136 happyOut136 happyIn137 happyOut137 happyIn138 happyOut138 happyIn139 happyOut139 happyIn140 happyOut140 happyIn141 happyOut141 happyIn142 happyOut142 happyIn143 happyOut143 happyIn144 happyOut144 happyIn145 happyOut145 happyIn146 happyOut146 happyIn147 happyOut147 happyIn148 happyOut148 happyIn149 happyOut149 happyIn150 happyOut150 happyIn151 happyOut151 happyIn152 happyOut152 happyIn153 happyOut153 happyIn154 happyOut154 happyIn155 happyOut155 happyIn156 happyOut156 happyIn157 happyOut157 happyIn158 happyOut158 happyIn159 happyOut159 happyIn160 happyOut160 happyIn161 happyOut161 happyIn162 happyOut162 happyIn163 happyOut163 happyIn164 happyOut164 happyIn165 happyOut165 happyIn166 happyOut166 happyIn167 happyOut167 happyIn168 happyOut168 happyIn169 happyOut169 happyIn170 happyOut170 happyIn171 happyOut171 happyIn172 happyOut172 happyIn173 happyOut173 happyIn174 happyOut174 happyIn175 happyOut175 happyIn176 happyOut176 happyIn177 happyOut177 happyIn178 happyOut178 happyIn179 happyOut179 happyIn180 happyOut180 happyIn181 happyOut181 happyIn182 happyOut182 happyIn183 happyOut183 happyIn184 happyOut184 happyIn185 happyOut185 happyIn186 happyOut186 happyIn187 happyOut187 happyIn188 happyOut188 happyIn189 happyOut189 happyIn190 happyOut190 happyIn191 happyOut191 happyIn192 happyOut192 happyIn193 happyOut193 happyIn194 happyOut194 happyIn195 happyOut195 happyIn196 happyOut196 happyIn197 happyOut197 happyIn198 happyOut198 happyIn199 happyOut199 happyIn200 happyOut200 happyIn201 happyOut201 happyIn202 happyOut202 happyIn203 happyOut203 happyIn204 happyOut204 happyIn205 happyOut205 happyIn206 happyOut206 happyIn207 happyOut207 happyIn208 happyOut208 happyIn209 happyOut209 happyIn210 happyOut210 happyIn211 happyOut211 happyIn212 happyOut212 happyIn213 happyOut213 happyIn214 happyOut214 happyIn215 happyOut215 happyIn216 happyOut216 happyIn217 happyOut217 happyIn218 happyOut218 happyIn219 happyOut219 happyIn220 happyOut220 happyIn221 happyOut221 happyIn222 happyOut222 happyIn223 happyOut223 happyIn224 happyOut224 happyIn225 happyOut225 happyIn226 happyOut226 happyIn227 happyOut227 happyIn228 happyOut228 happyIn229 happyOut229 happyIn230 happyOut230 happyIn231 happyOut231 happyIn232 happyOut232 happyIn233 happyOut233 happyIn234 happyOut234 happyIn235 happyOut235 happyIn236 happyOut236 happyIn237 happyOut237 happyIn238 happyOut238 happyIn239 happyOut239 happyIn240 happyOut240 happyIn241 happyOut241 happyIn242 happyOut242 happyIn243 happyOut243 happyIn244 happyOut244 happyIn245 happyOut245 happyIn246 happyOut246 happyIn247 happyOut247 happyIn248 happyOut248 happyIn249 happyOut249 happyIn250 happyOut250 happyIn251 happyOut251 happyIn252 happyOut252 happyIn253 happyOut253 happyIn254 happyOut254 happyIn255 happyOut255 happyIn256 happyOut256 happyIn257 happyOut257 happyIn258 happyOut258 happyIn259 happyOut259 happyIn260 happyOut260 happyIn261 happyOut261 happyIn262 happyOut262 happyIn263 happyOut263 happyIn264 happyOut264 happyIn265 happyOut265 happyIn266 happyOut266 happyIn267 happyOut267 happyInTok happyOutTokhappyActOffsetshappyGotoOffsetshappyDefActions happyCheck happyTablehappyReduceArr happy_n_termshappy_n_nonterms happyReduce_3happyReduction_3 happyReduce_4happyReduction_4 happyReduce_5happyReduction_5 happyReduce_6happyReduction_6 happyReduce_7happyReduction_7 happyReduce_8happyReduction_8 happyReduce_9happyReduction_9happyReduce_10happyReduction_10happyReduce_11happyReduction_11happyReduce_12happyReduction_12happyReduce_13happyReduction_13happyReduce_14happyReduction_14happyReduce_15happyReduction_15happyReduce_16happyReduction_16happyReduce_17happyReduction_17happyReduce_18happyReduction_18happyReduce_19happyReduction_19happyReduce_20happyReduction_20happyReduce_21happyReduction_21happyReduce_22happyReduction_22happyReduce_23happyReduction_23happyReduce_24happyReduction_24happyReduce_25happyReduction_25happyReduce_26happyReduction_26happyReduce_27happyReduction_27happyReduce_28happyReduction_28happyReduce_29happyReduction_29happyReduce_30happyReduction_30happyReduce_31happyReduction_31happyReduce_32happyReduction_32happyReduce_33happyReduction_33happyReduce_34happyReduction_34happyReduce_35happyReduction_35happyReduce_36happyReduction_36happyReduce_37happyReduction_37happyReduce_38happyReduction_38happyReduce_39happyReduction_39happyReduce_40happyReduction_40happyReduce_41happyReduction_41happyReduce_42happyReduction_42happyReduce_43happyReduction_43happyReduce_44happyReduction_44happyReduce_45happyReduction_45happyReduce_46happyReduction_46happyReduce_47happyReduction_47happyReduce_48happyReduction_48happyReduce_49happyReduction_49happyReduce_50happyReduction_50happyReduce_51happyReduction_51happyReduce_52happyReduction_52happyReduce_53happyReduction_53happyReduce_54happyReduction_54happyReduce_55happyReduction_55happyReduce_56happyReduction_56happyReduce_57happyReduction_57happyReduce_58happyReduction_58happyReduce_59happyReduction_59happyReduce_60happyReduction_60happyReduce_61happyReduction_61happyReduce_62happyReduction_62happyReduce_63happyReduction_63happyReduce_64happyReduction_64happyReduce_65happyReduction_65happyReduce_66happyReduction_66happyReduce_67happyReduction_67happyReduce_68happyReduction_68happyReduce_69happyReduction_69happyReduce_70happyReduction_70happyReduce_71happyReduction_71happyReduce_72happyReduction_72happyReduce_73happyReduction_73happyReduce_74happyReduction_74happyReduce_75happyReduction_75happyReduce_76happyReduction_76happyReduce_77happyReduction_77happyReduce_78happyReduction_78happyReduce_79happyReduction_79happyReduce_80happyReduction_80happyReduce_81happyReduction_81happyReduce_82happyReduction_82happyReduce_83happyReduction_83happyReduce_84happyReduction_84happyReduce_85happyReduction_85happyReduce_86happyReduction_86happyReduce_87happyReduction_87happyReduce_88happyReduction_88happyReduce_89happyReduction_89happyReduce_90happyReduction_90happyReduce_91happyReduction_91happyReduce_92happyReduction_92happyReduce_93happyReduction_93happyReduce_94happyReduction_94happyReduce_95happyReduction_95happyReduce_96happyReduction_96happyReduce_97happyReduction_97happyReduce_98happyReduction_98happyReduce_99happyReduction_99happyReduce_100happyReduction_100happyReduce_101happyReduction_101happyReduce_102happyReduction_102happyReduce_103happyReduction_103happyReduce_104happyReduction_104happyReduce_105happyReduction_105happyReduce_106happyReduction_106happyReduce_107happyReduction_107happyReduce_108happyReduction_108happyReduce_109happyReduction_109happyReduce_110happyReduction_110happyReduce_111happyReduction_111happyReduce_112happyReduction_112happyReduce_113happyReduction_113happyReduce_114happyReduction_114happyReduce_115happyReduction_115happyReduce_116happyReduction_116happyReduce_117happyReduction_117happyReduce_118happyReduction_118happyReduce_119happyReduction_119happyReduce_120happyReduction_120happyReduce_121happyReduction_121happyReduce_122happyReduction_122happyReduce_123happyReduction_123happyReduce_124happyReduction_124happyReduce_125happyReduction_125happyReduce_126happyReduction_126happyReduce_127happyReduction_127happyReduce_128happyReduction_128happyReduce_129happyReduction_129happyReduce_130happyReduction_130happyReduce_131happyReduction_131happyReduce_132happyReduction_132happyReduce_133happyReduction_133happyReduce_134happyReduction_134happyReduce_135happyReduction_135happyReduce_136happyReduction_136happyReduce_137happyReduction_137happyReduce_138happyReduction_138happyReduce_139happyReduction_139happyReduce_140happyReduction_140happyReduce_141happyReduction_141happyReduce_142happyReduction_142happyReduce_143happyReduction_143happyReduce_144happyReduction_144happyReduce_145happyReduction_145happyReduce_146happyReduction_146happyReduce_147happyReduction_147happyReduce_148happyReduction_148happyReduce_149happyReduction_149happyReduce_150happyReduction_150happyReduce_151happyReduction_151happyReduce_152happyReduction_152happyReduce_153happyReduction_153happyReduce_154happyReduction_154happyReduce_155happyReduction_155happyReduce_156happyReduction_156happyReduce_157happyReduction_157happyReduce_158happyReduction_158happyReduce_159happyReduction_159happyReduce_160happyReduction_160happyReduce_161happyReduction_161happyReduce_162happyReduction_162happyReduce_163happyReduction_163happyReduce_164happyReduction_164happyReduce_165happyReduction_165happyReduce_166happyReduction_166happyReduce_167happyReduction_167happyReduce_168happyReduction_168happyReduce_169happyReduction_169happyReduce_170happyReduction_170happyReduce_171happyReduction_171happyReduce_172happyReduction_172happyReduce_173happyReduction_173happyReduce_174happyReduction_174happyReduce_175happyReduction_175happyReduce_176happyReduction_176happyReduce_177happyReduction_177happyReduce_178happyReduction_178happyReduce_179happyReduction_179happyReduce_180happyReduction_180happyReduce_181happyReduction_181happyReduce_182happyReduction_182happyReduce_183happyReduction_183happyReduce_184happyReduction_184happyReduce_185happyReduction_185happyReduce_186happyReduction_186happyReduce_187happyReduction_187happyReduce_188happyReduction_188happyReduce_189happyReduction_189happyReduce_190happyReduction_190happyReduce_191happyReduction_191happyReduce_192happyReduction_192happyReduce_193happyReduction_193happyReduce_194happyReduction_194happyReduce_195happyReduction_195happyReduce_196happyReduction_196happyReduce_197happyReduction_197happyReduce_198happyReduction_198happyReduce_199happyReduction_199happyReduce_200happyReduction_200happyReduce_201happyReduction_201happyReduce_202happyReduction_202happyReduce_203happyReduction_203happyReduce_204happyReduction_204happyReduce_205happyReduction_205happyReduce_206happyReduction_206happyReduce_207happyReduction_207happyReduce_208happyReduction_208happyReduce_209happyReduction_209happyReduce_210happyReduction_210happyReduce_211happyReduction_211happyReduce_212happyReduction_212happyReduce_213happyReduction_213happyReduce_214happyReduction_214happyReduce_215happyReduction_215happyReduce_216happyReduction_216happyReduce_217happyReduction_217happyReduce_218happyReduction_218happyReduce_219happyReduction_219happyReduce_220happyReduction_220happyReduce_221happyReduction_221happyReduce_222happyReduction_222happyReduce_223happyReduction_223happyReduce_224happyReduction_224happyReduce_225happyReduction_225happyReduce_226happyReduction_226happyReduce_227happyReduction_227happyReduce_228happyReduction_228happyReduce_229happyReduction_229happyReduce_230happyReduction_230happyReduce_231happyReduction_231happyReduce_232happyReduction_232happyReduce_233happyReduction_233happyReduce_234happyReduction_234happyReduce_235happyReduction_235happyReduce_236happyReduction_236happyReduce_237happyReduction_237happyReduce_238happyReduction_238happyReduce_239happyReduction_239happyReduce_240happyReduction_240happyReduce_241happyReduction_241happyReduce_242happyReduction_242happyReduce_243happyReduction_243happyReduce_244happyReduction_244happyReduce_245happyReduction_245happyReduce_246happyReduction_246happyReduce_247happyReduction_247happyReduce_248happyReduction_248happyReduce_249happyReduction_249happyReduce_250happyReduction_250happyReduce_251happyReduction_251happyReduce_252happyReduction_252happyReduce_253happyReduction_253happyReduce_254happyReduction_254happyReduce_255happyReduction_255happyReduce_256happyReduction_256happyReduce_257happyReduction_257happyReduce_258happyReduction_258happyReduce_259happyReduction_259happyReduce_260happyReduction_260happyReduce_261happyReduction_261happyReduce_262happyReduction_262happyReduce_263happyReduction_263happyReduce_264happyReduction_264happyReduce_265happyReduction_265happyReduce_266happyReduction_266happyReduce_267happyReduction_267happyReduce_268happyReduction_268happyReduce_269happyReduction_269happyReduce_270happyReduction_270happyReduce_271happyReduction_271happyReduce_272happyReduction_272happyReduce_273happyReduction_273happyReduce_274happyReduction_274happyReduce_275happyReduction_275happyReduce_276happyReduction_276happyReduce_277happyReduction_277happyReduce_278happyReduction_278happyReduce_279happyReduction_279happyReduce_280happyReduction_280happyReduce_281happyReduction_281happyReduce_282happyReduction_282happyReduce_283happyReduction_283happyReduce_284happyReduction_284happyReduce_285happyReduction_285happyReduce_286happyReduction_286happyReduce_287happyReduction_287happyReduce_288happyReduction_288happyReduce_289happyReduction_289happyReduce_290happyReduction_290happyReduce_291happyReduction_291happyReduce_292happyReduction_292happyReduce_293happyReduction_293happyReduce_294happyReduction_294happyReduce_295happyReduction_295happyReduce_296happyReduction_296happyReduce_297happyReduction_297happyReduce_298happyReduction_298happyReduce_299happyReduction_299happyReduce_300happyReduction_300happyReduce_301happyReduction_301happyReduce_302happyReduction_302happyReduce_303happyReduction_303happyReduce_304happyReduction_304happyReduce_305happyReduction_305happyReduce_306happyReduction_306happyReduce_307happyReduction_307happyReduce_308happyReduction_308happyReduce_309happyReduction_309happyReduce_310happyReduction_310happyReduce_311happyReduction_311happyReduce_312happyReduction_312happyReduce_313happyReduction_313happyReduce_314happyReduction_314happyReduce_315happyReduction_315happyReduce_316happyReduction_316happyReduce_317happyReduction_317happyReduce_318happyReduction_318happyReduce_319happyReduction_319happyReduce_320happyReduction_320happyReduce_321happyReduction_321happyReduce_322happyReduction_322happyReduce_323happyReduction_323happyReduce_324happyReduction_324happyReduce_325happyReduction_325happyReduce_326happyReduction_326happyReduce_327happyReduction_327happyReduce_328happyReduction_328happyReduce_329happyReduction_329happyReduce_330happyReduction_330happyReduce_331happyReduction_331happyReduce_332happyReduction_332happyReduce_333happyReduction_333happyReduce_334happyReduction_334happyReduce_335happyReduction_335happyReduce_336happyReduction_336happyReduce_337happyReduction_337happyReduce_338happyReduction_338happyReduce_339happyReduction_339happyReduce_340happyReduction_340happyReduce_341happyReduction_341happyReduce_342happyReduction_342happyReduce_343happyReduction_343happyReduce_344happyReduction_344happyReduce_345happyReduction_345happyReduce_346happyReduction_346happyReduce_347happyReduction_347happyReduce_348happyReduction_348happyReduce_349happyReduction_349happyReduce_350happyReduction_350happyReduce_351happyReduction_351happyReduce_352happyReduction_352happyReduce_353happyReduction_353happyReduce_354happyReduction_354happyReduce_355happyReduction_355happyReduce_356happyReduction_356happyReduce_357happyReduction_357happyReduce_358happyReduction_358happyReduce_359happyReduction_359happyReduce_360happyReduction_360happyReduce_361happyReduction_361happyReduce_362happyReduction_362happyReduce_363happyReduction_363happyReduce_364happyReduction_364happyReduce_365happyReduction_365happyReduce_366happyReduction_366happyReduce_367happyReduction_367happyReduce_368happyReduction_368happyReduce_369happyReduction_369happyReduce_370happyReduction_370happyReduce_371happyReduction_371happyReduce_372happyReduction_372happyReduce_373happyReduction_373happyReduce_374happyReduction_374happyReduce_375happyReduction_375happyReduce_376happyReduction_376happyReduce_377happyReduction_377happyReduce_378happyReduction_378happyReduce_379happyReduction_379happyReduce_380happyReduction_380happyReduce_381happyReduction_381happyReduce_382happyReduction_382happyReduce_383happyReduction_383happyReduce_384happyReduction_384happyReduce_385happyReduction_385happyReduce_386happyReduction_386happyReduce_387happyReduction_387happyReduce_388happyReduction_388happyReduce_389happyReduction_389happyReduce_390happyReduction_390happyReduce_391happyReduction_391happyReduce_392happyReduction_392happyReduce_393happyReduction_393happyReduce_394happyReduction_394happyReduce_395happyReduction_395happyReduce_396happyReduction_396happyReduce_397happyReduction_397happyReduce_398happyReduction_398happyReduce_399happyReduction_399happyReduce_400happyReduction_400happyReduce_401happyReduction_401happyReduce_402happyReduction_402happyReduce_403happyReduction_403happyReduce_404happyReduction_404happyReduce_405happyReduction_405happyReduce_406happyReduction_406happyReduce_407happyReduction_407happyReduce_408happyReduction_408happyReduce_409happyReduction_409happyReduce_410happyReduction_410happyReduce_411happyReduction_411happyReduce_412happyReduction_412happyReduce_413happyReduction_413happyReduce_414happyReduction_414happyReduce_415happyReduction_415happyReduce_416happyReduction_416happyReduce_417happyReduction_417happyReduce_418happyReduction_418happyReduce_419happyReduction_419happyReduce_420happyReduction_420happyReduce_421happyReduction_421happyReduce_422happyReduction_422happyReduce_423happyReduction_423happyReduce_424happyReduction_424happyReduce_425happyReduction_425happyReduce_426happyReduction_426happyReduce_427happyReduction_427happyReduce_428happyReduction_428happyReduce_429happyReduction_429happyReduce_430happyReduction_430happyReduce_431happyReduction_431happyReduce_432happyReduction_432happyReduce_433happyReduction_433happyReduce_434happyReduction_434happyReduce_435happyReduction_435happyReduce_436happyReduction_436happyReduce_437happyReduction_437happyReduce_438happyReduction_438happyReduce_439happyReduction_439happyReduce_440happyReduction_440happyReduce_441happyReduction_441happyReduce_442happyReduction_442happyReduce_443happyReduction_443happyReduce_444happyReduction_444happyReduce_445happyReduction_445happyReduce_446happyReduction_446happyReduce_447happyReduction_447happyReduce_448happyReduction_448happyReduce_449happyReduction_449 happyNewToken happyError_ happyThen happyReturn happyThen1 happyReturn1 happyError'parseFileInputparseSingleInput parseEvalhappySeq happyParse happyAccept happyDoActionindexShortOffAddr happyShifthappySpecReduce_0happySpecReduce_1happySpecReduce_2happySpecReduce_3 happyReducehappyMonadReducehappyMonad2Reduce happyDrop happyDropStk happyGoto happyFail notHappyAtAll happyTcHack happyDoSeq happyDontSeqalex_action_84alex_action_85alex_action_86alex_action_87alex_action_88alex_action_89alex_action_90alex_action_91alex_action_92 happyIn268 happyOut268 happyIn269 happyOut269 happyIn270 happyOut270 happyIn271 happyOut271 happyIn272 happyOut272happyReduce_450happyReduction_450happyReduce_451happyReduction_451happyReduce_452happyReduction_452happyReduce_453happyReduction_453happyReduce_454happyReduction_454happyReduce_455happyReduction_455