Module Expr Str ImportFrom alias Import alias Import alias Import alias Import alias Import alias Import alias Import alias Import alias Import alias identifier ImportFrom alias Import alias ImportFrom alias ImportFrom alias ImportFrom alias alias ImportFrom alias ImportFrom alias alias alias alias ImportFrom alias alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias alias ImportFrom alias alias alias alias alias alias alias alias alias alias alias ImportFrom alias ImportFrom alias ImportFrom alias identifier ImportFrom alias ImportFrom alias ImportFrom alias alias alias ImportFrom alias alias alias ImportFrom alias ImportFrom alias alias alias ImportFrom alias Assign NameStore Call AttributeLoad NameLoad attr Str FunctionDef arguments args NameParam NameParam defaults body Expr Str Assign NameStore ListLoad If CompareIs Call NameLoad NameLoad NameLoad body For NameStore NameLoad body AugAssignAdd NameStore Call NameLoad AttributeLoad NameLoad attr Str ListLoad orelse Assign NameStore Call NameLoad AttributeLoad NameLoad attr Str ListLoad If CompareIs Call NameLoad NameLoad NameLoad body For NameStore NameLoad body Assign AttributeStore AttributeLoad NameLoad attr attr BinOpAdd Call NameLoad AttributeLoad NameLoad attr Str ListLoad NameLoad orelse Assign AttributeStore AttributeLoad NameLoad attr attr BinOpAdd Call NameLoad AttributeLoad NameLoad attr Str ListLoad NameLoad decorator_list FunctionDef arguments args defaults vararg kwarg body Expr Str Assign NameStore BoolOpAnd NameLoad Call AttributeLoad NameLoad attr Str NameLoad If CompareGt Call NameLoad NameLoad Num body Assign NameStore Call AttributeLoad NameLoad attr NameLoad orelse Assign TupleStore NameStore NameLoad If UnaryOpNot NameLoad body Assign NameStore AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr NameLoad keyword Str keyword AttributeLoad NameLoad attr NameLoad If NameLoad body Assign AttributeStore NameLoad attr NameLoad Return NameLoad decorator_list FunctionDef arguments args defaults vararg kwarg body Expr Str Assign NameStore BoolOpAnd NameLoad Call AttributeLoad NameLoad attr Str NameLoad If CompareGt Call NameLoad NameLoad Num body Assign NameStore Call AttributeLoad NameLoad attr NameLoad orelse Assign TupleStore NameStore NameLoad If UnaryOpNot NameLoad body Assign NameStore AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr NameLoad keyword Str keyword AttributeLoad NameLoad attr NameLoad If NameLoad body Assign AttributeStore NameLoad attr NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body For NameStore NameLoad body Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad Return ListLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str If CompareLt Call NameLoad NameLoad Call NameLoad NameLoad body Return NameLoad Assign NameStore SubscriptLoad NameLoad Slice UnaryOpUSub Call NameLoad NameLoad Return UnaryOpNot Call NameLoad GeneratorExp BoolOpAnd NameLoad UnaryOpNot NameLoad comprehension TupleStore NameStore NameStore Call NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Return ListComp Call NameLoad NameLoad comprehension NameStore Call NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore ListLoad Assign NameStore ListLoad Assign NameStore ListLoad For NameStore NameLoad body TryExcept body Assign NameStore Call NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad handlers ExceptHandler type NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad Return TupleLoad NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam defaults NameLoad body Expr Str Assign NameStore Call AttributeLoad NameLoad attr NameLoad If CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Return NameLoad If CompareNotIn NameLoad AttributeLoad NameLoad attr body Raise Call NameLoad Str If Call NameLoad NameLoad Str body Assign NameStore SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index NameLoad orelse Assign NameStore AttributeLoad NameLoad attr If CompareIs NameLoad NameLoad body Assign NameStore AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad If CompareNotEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore Call AttributeLoad NameLoad attr NameLoad ListComp NameLoad comprehension NameStore Call NameLoad AttributeLoad NameLoad attr BoolOpAnd SubscriptLoad AttributeLoad NameLoad attr Index NameLoad UnaryOpNot SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Assert CompareEq AttributeLoad AttributeLoad NameLoad attr attr NameLoad If CompareNotEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body Raise Call NameLoad BinOpAdd BinOpAdd BinOpAdd Str Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr Str Call NameLoad AttributeLoad NameLoad attr Return NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr If CompareEq NameLoad Num body If CompareGt Call NameLoad AttributeLoad NameLoad attr Num body Assign NameStore Num orelse Assign NameStore Num Assign NameStore Num Assign NameStore Call AttributeLoad NameLoad attr If AttributeLoad NameLoad attr body Assign NameStore ListComp SubscriptLoad AttributeLoad NameLoad attr Index NameLoad comprehension NameStore AttributeLoad NameLoad attr orelse Assign NameStore ListLoad For NameStore Call NameLoad Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore AttributeLoad NameLoad attr If UnaryOpNot CompareEq Call NameLoad NameLoad NameLoad body Continue If BoolOpAnd CompareNotEq NameLoad Num Call NameLoad ListComp CompareEq Call NameLoad AttributeLoad NameLoad attr Str Num Num comprehension NameStore AttributeLoad NameLoad attr body Continue Assign NameStore AttributeLoad NameLoad attr Assign NameStore ListComp AttributeLoad NameLoad attr comprehension NameStore AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad NameLoad AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr Assign NameStore Call NameLoad NameLoad ListLoad Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore ListComp NameLoad comprehension NameStore Call NameLoad Call NameLoad AttributeLoad NameLoad attr CompareNotIn NameLoad NameLoad Assign NameStore ListComp NameLoad comprehension NameStore Call NameLoad Call NameLoad AttributeLoad NameLoad attr BoolOpAnd CompareNotIn NameLoad Call AttributeLoad NameLoad attr UnaryOpNot Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad NameLoad UnaryOpNot Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index NameLoad CompareNotIn SubscriptLoad AttributeLoad NameLoad attr Index NameLoad NameLoad Assign NameStore NameLoad Assign NameStore UnaryOpNot NameLoad For NameStore NameLoad body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Assign NameStore NameLoad If CompareIn NameLoad NameLoad body Assign NameStore ListLoad For TupleStore NameStore NameStore Call NameLoad AttributeLoad NameLoad attr body If BoolOpAnd CompareIs NameLoad NameLoad CompareIn NameLoad AttributeLoad NameLoad attr body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Expr Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Assign NameStore ListLoad Assign NameStore ListLoad Assign NameStore ListLoad For NameStore NameLoad body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index NameLoad If CompareIn NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad orelse If BoolOpAnd Call NameLoad NameLoad Str AttributeLoad NameLoad attr Call NameLoad ListComp CompareIs Call AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr NameLoad NameLoad AttributeLoad NameLoad attr comprehension NameStore NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad orelse Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore BinOpAdd BinOpAdd NameLoad NameLoad NameLoad For NameStore NameLoad body If CompareNotEq AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad attr body Continue Assign NameStore Call NameLoad NameLoad Assign SubscriptStore NameLoad Index NameLoad NameLoad TryExcept body If Call NameLoad AttributeLoad NameLoad attr Str body Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Call AttributeLoad NameLoad attr ListComp Call AttributeLoad NameLoad attr NameLoad AttributeLoad NameLoad attr comprehension TupleStore NameStore NameStore Call NameLoad AttributeLoad NameLoad attr orelse Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Call AttributeLoad NameLoad attr ListComp Call AttributeLoad NameLoad attr NameLoad NameLoad comprehension NameStore Call NameLoad Call NameLoad AttributeLoad NameLoad attr Assign NameStore Call Call NameLoad NameLoad NameLoad AttributeLoad NameLoad attr Call NameLoad keyword NameLoad Assign NameStore AttributeLoad SubscriptLoad NameLoad Index Num attr For TupleStore NameStore NameStore Call NameLoad AttributeLoad NameLoad attr NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad NameLoad keyword Str AugAssignAdd NameStore Num If CompareGtE NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr Assign NameStore Num handlers ExceptHandler type TupleLoad NameLoad NameLoad name NameStore body If BoolOpAnd CompareNotEq NameLoad Num UnaryOpNot NameLoad body Expr Call NameLoad Str keyword AttributeLoad NameLoad attr Expr Call NameLoad NameLoad keyword AttributeLoad NameLoad attr Assign NameStore NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Continue Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore NameLoad Assign NameStore NameLoad Break If CompareGt NameLoad Num body TryExcept body Expr Call AttributeLoad NameLoad attr handlers ExceptHandler type NameLoad body If UnaryOpNot NameLoad body Expr Call NameLoad Str keyword AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr NameLoad decorator_list AttributeLoad NameLoad attr Return NameLoad decorator_list Assign NameStore Call NameLoad AttributeLoad NameLoad attr Expr Call AttributeLoad AttributeLoad NameLoad attr attr Str NameLoad Num Str Str Str Str FunctionDef arguments args NameParam defaults vararg kwarg body If CompareEq Call NameLoad NameLoad NameLoad body FunctionDef arguments args NameParam defaults body Return Call NameLoad NameLoad NameLoad NameLoad NameLoad decorator_list Return NameLoad orelse Assign NameStore BoolOpOr Call AttributeLoad NameLoad attr Str NameLoad AttributeLoad NameLoad attr Expr Call AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Str attr NameLoad NameLoad Str NameLoad NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam defaults vararg kwarg body If CompareEq Call NameLoad NameLoad NameLoad body FunctionDef arguments args NameParam defaults body Return Call NameLoad NameLoad NameLoad NameLoad NameLoad decorator_list Return NameLoad orelse Assign NameStore BoolOpOr Call AttributeLoad NameLoad attr Str NameLoad AttributeLoad NameLoad attr Expr Call AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Str attr NameLoad NameLoad Str NameLoad NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam defaults vararg kwarg body If CompareEq Call NameLoad NameLoad NameLoad body FunctionDef arguments args NameParam defaults body Return Call NameLoad NameLoad NameLoad NameLoad NameLoad decorator_list Return NameLoad orelse Assign NameStore BoolOpOr Call AttributeLoad NameLoad attr Str NameLoad AttributeLoad NameLoad attr Expr Call AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Str attr NameLoad NameLoad Str NameLoad NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam defaults vararg kwarg body If CompareEq Call NameLoad NameLoad NameLoad body FunctionDef arguments args NameParam defaults body Return Call NameLoad NameLoad NameLoad NameLoad NameLoad decorator_list Return NameLoad orelse Assign NameStore BoolOpOr BoolOpAnd NameLoad Call AttributeLoad NameLoad attr Str AttributeLoad NameLoad attr Expr Call AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Str attr NameLoad NameLoad Str NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam defaults vararg kwarg body If CompareEq Call NameLoad NameLoad NameLoad body FunctionDef arguments args NameParam defaults body Return Call NameLoad NameLoad NameLoad NameLoad NameLoad decorator_list Return NameLoad orelse Assign NameStore BoolOpOr BoolOpAnd NameLoad Call AttributeLoad NameLoad attr Str AttributeLoad NameLoad attr Expr Call AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Str attr NameLoad NameLoad Str NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam defaults body If UnaryOpNot Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Return NameLoad Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num Assign NameStore NameLoad TryExcept body If CompareEq Call NameLoad NameLoad Num body Assign NameStore NameLoad handlers ExceptHandler type NameLoad body Pass TryExcept body If CompareEq Call NameLoad NameLoad Num body Assign NameStore NameLoad handlers ExceptHandler type NameLoad body Pass If NameLoad body Assign NameStore Call AttributeLoad NameLoad attr Num keyword AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr If BoolOpAnd CompareEq AttributeLoad NameLoad attr Num CompareEq AttributeLoad NameLoad attr Num body Assign NameStore Call NameLoad NameLoad Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num SubscriptLoad AttributeLoad NameLoad attr Index Num Return ListLoad Call AttributeLoad NameLoad attr NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num SubscriptLoad AttributeLoad NameLoad attr Index Num orelse If BoolOpAnd CompareEq AttributeLoad NameLoad attr Num CompareEq AttributeLoad NameLoad attr Num body Assign NameStore Call NameLoad NameLoad Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num SubscriptLoad AttributeLoad NameLoad attr Index Num Return ListLoad Call AttributeLoad NameLoad attr NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num orelse If BoolOpAnd CompareEq AttributeLoad NameLoad attr Num CompareEq AttributeLoad NameLoad attr Num body Assign NameStore Call NameLoad NameLoad Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num SubscriptLoad AttributeLoad NameLoad attr Index Num Return ListLoad Call AttributeLoad NameLoad attr NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num orelse If BoolOpAnd CompareEq AttributeLoad NameLoad attr Num CompareEq AttributeLoad NameLoad attr Num body Assign NameStore Call NameLoad NameLoad Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num SubscriptLoad AttributeLoad NameLoad attr Index Num Return ListLoad NameLoad orelse Expr Call AttributeLoad NameLoad attr Str AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body If UnaryOpNot AttributeLoad NameLoad attr body Return NameLoad Assign NameStore Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr If NameLoad body Return SubscriptLoad NameLoad Index Num Return NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore AttributeLoad NameLoad attr If UnaryOpNot Call NameLoad NameLoad NameLoad body Return NameLoad Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num Assign NameStore AttributeLoad NameLoad attr If BoolOpAnd NameLoad Call NameLoad AttributeLoad NameLoad attr NameLoad CompareEq Call NameLoad AttributeLoad NameLoad attr Num body Assign NameStore ListLoad For NameStore AttributeLoad NameLoad attr body Assign NameStore Call Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr Call NameLoad NameLoad Expr Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad Call NameLoad keyword NameLoad Return NameLoad If BoolOpAnd NameLoad Call NameLoad AttributeLoad NameLoad attr NameLoad body Assign NameStore ListComp BoolOpOr BoolOpAnd CompareEq NameLoad Str Str SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index NameLoad comprehension NameStore AttributeLoad NameLoad attr Assign NameStore BoolOpAnd AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num If BoolOpAnd CompareEq NameLoad Call NameLoad Call NameLoad Call NameLoad NameLoad CompareEq Call NameLoad NameLoad AttributeLoad AttributeLoad NameLoad attr attr body Return ListLoad NameLoad orelse Assign NameStore Call Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr NameLoad NameLoad NameLoad Assign NameStore Call NameLoad NameLoad Expr Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Return ListLoad NameLoad decorator_list Call AttributeLoad NameLoad attr ListLoad NameLoad FunctionDef arguments args NameParam defaults body Expr Str If UnaryOpNot BoolOpAnd Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr CompareEq AttributeLoad AttributeLoad NameLoad attr attr TupleLoad Num Num body Return NameLoad If UnaryOpNot BoolOpAnd AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Call NameLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr AttributeLoad NameLoad attr body Return NameLoad Assign TupleStore NameStore NameStore AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr If CompareEqEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num body Assign NameStore ListLoad Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr Expr Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Return NameLoad decorator_list NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body Assign NameStore AttributeLoad NameLoad attr If BoolOpOr UnaryOpNot Call NameLoad NameLoad NameLoad AttributeLoad NameLoad attr body Return NameLoad Assign NameStore Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr keyword NameLoad Assign NameStore Call NameLoad AttributeLoad NameLoad attr Expr Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Return ListLoad NameLoad decorator_list Call AttributeLoad NameLoad attr ListLoad NameLoad Expr Call AttributeLoad AttributeLoad NameLoad attr attr Str Call NameLoad NameLoad keyword AttributeLoad NameLoad attr Num Str Str Expr Call NameLoad NameLoad Expr Call NameLoad NameLoad FunctionDef arguments args NameParam defaults body If BoolOpAnd Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr body Return ListLoad Call Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad NameLoad attr attr keyword NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body Expr Str If Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num If BoolOpAnd AttributeLoad NameLoad attr Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body Assign NameStore SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num Return ListLoad NameLoad decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body Expr Str If Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num If BoolOpAnd AttributeLoad NameLoad attr Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body Assign NameStore SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num Return ListLoad NameLoad decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr ClassDef bases AttributeLoad NameLoad attr body Expr Str Assign NameStore TupleLoad Str FunctionDef arguments args NameParam NameParam defaults Str body Assign AttributeStore NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam defaults vararg body Assign NameStore Call NameLoad Call NameLoad AttributeLoad NameLoad attr NameLoad If BoolOpOr UnaryOpNot Call NameLoad GeneratorExp CompareEq AttributeLoad NameLoad attr AttributeLoad SubscriptLoad NameLoad Index Num attr comprehension NameStore NameLoad BoolOpAnd CompareGt Call NameLoad NameLoad Num CompareNotEq AttributeLoad SubscriptLoad NameLoad Index Num attr AttributeLoad NameLoad attr body Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr ListComp AttributeLoad NameLoad attr comprehension NameStore NameLoad Assert CompareEq NameLoad AttributeLoad NameLoad attr Str If UnaryOpNot Call NameLoad GeneratorExp CompareEq AttributeLoad NameLoad attr AttributeLoad Call AttributeLoad NameLoad attr NameLoad keyword NameLoad attr comprehension NameStore NameLoad body Raise Call NameLoad BinOpMod Str TupleLoad AttributeLoad NameLoad attr Call NameLoad ListComp AttributeLoad NameLoad attr comprehension NameStore NameLoad Assign NameStore ListComp Call AttributeLoad NameLoad attr NameLoad keyword NameLoad comprehension NameStore NameLoad Assert Call NameLoad GeneratorExp CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr comprehension NameStore NameLoad Assert Call NameLoad GeneratorExp CompareEq AttributeLoad NameLoad attr Num comprehension NameStore NameLoad If NameLoad body Assign NameStore AttributeLoad AttributeLoad SubscriptLoad NameLoad Index Num attr attr orelse Assign NameStore AttributeLoad NameLoad attr Assign NameStore NameLoad Assign NameStore Call AttributeLoad NameLoad attr keyword TupleLoad NameLoad keyword NameLoad Return Call AttributeLoad NameLoad attr NameLoad NameLoad ListLoad Call NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam defaults body Assign TupleStore NameStore NameLoad If BoolOpOr CompareIs SubscriptLoad NameLoad Index Num NameLoad CompareNotEq AttributeLoad SubscriptLoad NameLoad Index Num attr Call NameLoad NameLoad body Assign SubscriptStore NameLoad Index Num Call AttributeLoad NameLoad attr NameLoad keyword AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr orelse Assign SubscriptStore SubscriptLoad NameLoad Index Num Ellipsis NameLoad decorator_list FunctionDef arguments args NameParam defaults body Return TupleLoad Num decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam defaults body Assign TupleStore NameStore NameLoad Assign NameStore Call NameLoad NameLoad Assign NameStore AttributeLoad Call AttributeLoad NameLoad attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr Assign NameStore SubscriptLoad Call AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr Index Num If CompareGt Call NameLoad NameLoad Num body Assert CompareEq AttributeLoad NameLoad attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Assign NameStore BinOpMod Str SubscriptLoad NameLoad Index Num Assign NameStore BinOpMod Str Call NameLoad For TupleStore NameStore NameStore Call NameLoad NameLoad body AugAssignAdd NameStore BinOpMod Str Call NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body Return ListLoad TupleLoad Call NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body If CompareIn Str AttributeLoad NameLoad attr body Return ListComp Call AttributeLoad Call AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad NameLoad attr attr comprehension NameStore NameLoad Assign NameStore ListLoad For TupleStore NameStore NameStore Call NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr SubscriptLoad SubscriptLoad NameLoad Index Num Index NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body If CompareIn NameLoad NameLoad body Return ListLoad NameLoad Return AttributeLoad Call AttributeLoad NameLoad attr NameLoad attr decorator_list decorator_list Assign NameStore Call NameLoad ClassDef bases body FunctionDef arguments args NameParam NameParam NameParam defaults body If CompareIs AttributeLoad NameLoad attr NameLoad body Raise Call NameLoad Str orelse If Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr NameLoad body Return BinOpMod Str Call AttributeLoad Str attr GeneratorExp Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Call AttributeLoad NameLoad attr keyword Num comprehension NameStore AttributeLoad AttributeLoad NameLoad attr attr orelse Raise Call NameLoad Str decorator_list decorator_list Expr Call AttributeLoad AttributeLoad NameLoad attr attr Lambda arguments args NameParam NameParam defaults BoolOpAnd AttributeLoad NameLoad attr Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr NameLoad Call NameLoad ClassDef bases NameLoad body Expr Str FunctionDef arguments args NameParam NameParam defaults body TryExcept body Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr handlers ExceptHandler type NameLoad body Assign NameStore AttributeLoad NameLoad attr TryExcept body Assign NameStore Call NameLoad NameLoad ListComp SubscriptLoad AttributeLoad NameLoad attr Index NameLoad comprehension NameStore AttributeLoad NameLoad attr handlers ExceptHandler type NameLoad body Assign NameStore Call AttributeLoad NameLoad attr NameLoad ListComp SubscriptLoad AttributeLoad NameLoad attr Index NameLoad comprehension NameStore AttributeLoad NameLoad attr ExceptHandler type NameLoad name NameStore body Raise Call NameLoad BinOpMod Str NameLoad ExceptHandler type NameLoad name NameStore body Assign NameStore BinOpMod Str TupleLoad AttributeLoad NameLoad attr ListComp SubscriptLoad AttributeLoad NameLoad attr Index NameLoad comprehension NameStore AttributeLoad NameLoad attr Call NameLoad NameLoad Call NameLoad NameLoad Call AttributeLoad NameLoad attr If CompareEq AttributeLoad NameLoad attr Str body Raise Call NameLoad NameLoad orelse Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad ListComp SubscriptLoad AttributeLoad NameLoad attr Index NameLoad comprehension NameStore AttributeLoad NameLoad attr Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Str Assign NameStore SubscriptLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Index NameLoad If BoolOpAnd AttributeLoad NameLoad attr Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr NameLoad CompareNotIn SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num AttributeLoad AttributeLoad NameLoad attr attr body Assert AttributeLoad NameLoad attr Assign NameStore AttributeLoad NameLoad attr For NameStore AttributeLoad NameLoad attr body If CompareGt Call NameLoad NameLoad Str NameLoad Num body Expr Call AttributeLoad NameLoad attr NameLoad Num Assign NameStore Call AttributeLoad NameLoad attr NameLoad Assert CompareEq Call NameLoad NameLoad Call NameLoad AttributeLoad NameLoad attr For TupleStore NameStore NameStore Call NameLoad NameLoad AttributeLoad NameLoad attr body If UnaryOpNot Call NameLoad NameLoad Str body Continue Assign NameStore Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Assign NameStore NameLoad For NameStore Call NameLoad AttributeLoad NameLoad attr body Assign NameStore SubscriptLoad NameLoad Index NameLoad If BoolOpAnd AttributeLoad NameLoad attr Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr NameLoad CompareNotIn SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num AttributeLoad AttributeLoad NameLoad attr attr body Assign NameStore NameLoad Assign SubscriptStore NameLoad Index NameLoad SubscriptLoad NameLoad Index NameLoad If NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad NameLoad keyword NameLoad Assign NameStore SubscriptLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Index NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Str If BoolOpAnd Call NameLoad AttributeLoad NameLoad attr Str SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index NameLoad body Return AttributeLoad NameLoad attr orelse Assign NameStore Call Call NameLoad NameLoad NameLoad TryExcept body Assign NameStore Call NameLoad NameLoad handlers ExceptHandler type NameLoad body Pass Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str If UnaryOpNot Call NameLoad NameLoad Str body Return NameLoad Return Call NameLoad ListComp Call AttributeLoad NameLoad attr NameLoad NameLoad comprehension NameStore Call NameLoad AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Str Assign NameStore ListLoad For NameStore AttributeLoad NameLoad attr body TryExcept body Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad handlers ExceptHandler type NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str Assert CompareIsNot NameLoad NameLoad If CompareEq NameLoad Num body Return AttributeLoad NameLoad attr If BoolOpOr CompareIn Call NameLoad NameLoad NameLoad Call NameLoad NameLoad AttributeLoad NameLoad attr BoolOpAnd Call NameLoad NameLoad AttributeLoad NameLoad attr CompareEq AttributeLoad NameLoad attr Num body Assert CompareGtE NameLoad Num Return Call AttributeLoad NameLoad attr NameLoad keyword Str If CompareIn Call NameLoad NameLoad TupleLoad NameLoad NameLoad body Raise Call NameLoad NameLoad If BoolOpAnd AttributeLoad NameLoad attr Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr NameLoad AttributeLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num attr Call NameLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num attr attr AttributeLoad NameLoad attr body Assert CompareEq AttributeLoad NameLoad attr Num Assert CompareEq Call NameLoad AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr Num Assign NameStore Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr Assert CompareEq Call NameLoad NameLoad Num Assign NameStore SubscriptLoad NameLoad Index Num TryExcept body Assign NameStore Call NameLoad NameLoad handlers ExceptHandler type NameLoad body Pass orelse Assign NameStore SubscriptLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num attr attr Index Num Assign NameStore SubscriptLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Index NameLoad If CompareIn SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Slice Num TupleLoad Str Str body If Call NameLoad AttributeLoad NameLoad attr Str Num body Raise Call NameLoad Str NameLoad Return NameLoad orelse Raise Call NameLoad Str NameLoad Call NameLoad NameLoad Call NameLoad NameLoad Str NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam defaults NameLoad body Expr Str If UnaryOpNot NameLoad body Assert CompareNotIn NameLoad AttributeLoad NameLoad attr Str If CompareIs NameLoad NameLoad body Assign SubscriptStore AttributeLoad NameLoad attr Index NameLoad NameLoad orelse If UnaryOpNot Call NameLoad NameLoad TupleLoad NameLoad NameLoad body Raise Call NameLoad Str TupleLoad NameLoad NameLoad If CompareNotEq AttributeLoad NameLoad attr Call NameLoad NameLoad body Assign NameStore Call NameLoad Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad keyword NameLoad keyword NameLoad Raise Call NameLoad BinOpMod Str TupleLoad Call NameLoad NameLoad AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Assign NameStore ListLoad For NameStore Call NameLoad AttributeLoad NameLoad attr body If BoolOpAnd Call NameLoad AttributeLoad NameLoad attr Str SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index NameLoad body Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr orelse Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index NameLoad Assert Call NameLoad ListComp BoolOpOr UnaryOpNot Call NameLoad AttributeLoad NameLoad attr Str UnaryOpNot SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index NameLoad Call AttributeLoad AttributeLoad NameLoad attr attr SubscriptLoad NameLoad Index NameLoad Call AttributeLoad AttributeLoad NameLoad attr attr Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index NameLoad comprehension NameStore Call NameLoad AttributeLoad NameLoad attr Assign SubscriptStore AttributeLoad NameLoad attr Index NameLoad Call NameLoad NameLoad For NameStore NameLoad body Expr Call AttributeLoad Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Call NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Str Assert CompareIn NameLoad AttributeLoad NameLoad attr TupleLoad Str NameLoad Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index NameLoad If CompareIs NameLoad NameLoad body Return If CompareIn NameLoad AttributeLoad NameLoad attr body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index NameLoad orelse Expr Call AttributeLoad NameLoad attr NameLoad NameLoad Return If BoolOpAnd AttributeLoad NameLoad attr AttributeLoad NameLoad attr CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad NameLoad attr attr CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad NameLoad attr attr body Return Assign NameStore ListLoad For TupleStore NameStore NameStore Call NameLoad NameLoad body If BoolOpAnd CompareIs NameLoad NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index NameLoad orelse If BoolOpAnd AttributeLoad NameLoad attr Call NameLoad Call NameLoad AttributeLoad NameLoad attr Str NameLoad NameLoad CompareEq AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr NameLoad CompareIn SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num TupleLoad NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index NameLoad orelse If Call NameLoad SubscriptLoad NameLoad Index NameLoad TupleLoad NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index NameLoad orelse If Call NameLoad SubscriptLoad NameLoad Index NameLoad TupleLoad NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index NameLoad orelse If CompareEq SubscriptLoad NameLoad Index NameLoad SubscriptLoad NameLoad Index NameLoad body Expr Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index NameLoad orelse If CompareIn SubscriptLoad NameLoad Index NameLoad Call AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr ListLoad SubscriptLoad NameLoad Index NameLoad body Expr Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index NameLoad orelse Expr Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index NameLoad Assert Call NameLoad ListComp BoolOpOr BoolOpOr UnaryOpNot Call NameLoad AttributeLoad NameLoad attr Str BoolOpAnd UnaryOpNot SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index NameLoad UnaryOpNot SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index NameLoad Call AttributeLoad AttributeLoad NameLoad attr attr SubscriptLoad NameLoad Index NameLoad Call AttributeLoad AttributeLoad NameLoad attr attr Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index NameLoad comprehension NameStore Call NameLoad AttributeLoad NameLoad attr Assign SubscriptStore AttributeLoad NameLoad attr Index NameLoad Call NameLoad NameLoad For NameStore SubscriptLoad AttributeLoad NameLoad attr Index NameLoad body Expr Call AttributeLoad Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Call NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam defaults body Expr Str Assert CompareIn NameLoad AttributeLoad NameLoad attr Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Assign NameStore ListLoad For TupleStore NameStore NameStore Call NameLoad NameLoad body If CompareEq NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad orelse Expr Call AttributeLoad NameLoad attr NameLoad Assert Call NameLoad ListComp BoolOpOr UnaryOpNot Call NameLoad AttributeLoad NameLoad attr Str UnaryOpNot SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index NameLoad Call AttributeLoad AttributeLoad NameLoad attr attr SubscriptLoad NameLoad Index NameLoad Call AttributeLoad AttributeLoad NameLoad attr attr Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index NameLoad comprehension NameStore Call NameLoad AttributeLoad NameLoad attr Assign SubscriptStore AttributeLoad NameLoad attr Index NameLoad Call NameLoad NameLoad For NameStore SubscriptLoad AttributeLoad NameLoad attr Index NameLoad body Expr Call AttributeLoad Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Call NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str If CompareNotIn NameLoad AttributeLoad NameLoad attr body TryExcept body Expr Call AttributeLoad NameLoad attr NameLoad Call AttributeLoad NameLoad attr NameLoad handlers ExceptHandler type NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Return Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Assert UnaryOpNot Call NameLoad NameLoad Str Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr Call AttributeLoad NameLoad attr Num keyword Str Assert CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr Assign AttributeStore NameLoad attr Dict Assign AttributeStore NameLoad attr Dict Assign AttributeStore NameLoad attr Dict For NameStore Call AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr NameLoad NameLoad keyword Str decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam defaults body If CompareIn SubscriptLoad AttributeLoad NameLoad attr Index Num AttributeLoad NameLoad attr body For NameStore BinOpAdd AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assert CompareIn NameLoad AttributeLoad NameLoad attr Return For TupleStore NameStore NameStore Call NameLoad AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad If CompareNotEq Call NameLoad NameLoad Call NameLoad AttributeLoad NameLoad attr body Raise Call NameLoad BinOpMod BinOpAdd BinOpAdd Str Str Str TupleLoad Call NameLoad AttributeLoad NameLoad attr Call NameLoad NameLoad Call NameLoad AttributeLoad NameLoad attr For TupleStore NameStore NameStore Call NameLoad NameLoad body If CompareIs NameLoad NameLoad body Continue If UnaryOpNot Call NameLoad NameLoad TupleLoad NameLoad NameLoad body Raise Call NameLoad BinOpMod Str TupleLoad Call NameLoad NameLoad Call NameLoad NameLoad Assign NameStore ListLoad For TupleStore NameStore NameStore Call NameLoad NameLoad body If CompareNotEq Call NameLoad NameLoad Str Str Str body Assert CompareIn AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr TupleLoad NameLoad AttributeLoad NameLoad attr Assert CompareNotEq Call NameLoad AttributeLoad NameLoad attr Str NameLoad AugAssignAdd NameStore SubscriptLoad NameLoad Slice Call NameLoad NameLoad BinOpAdd NameLoad Num Assign SubscriptStore NameLoad Index NameLoad Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Str If NameLoad body AugAssignAdd NameStore SubscriptLoad NameLoad Slice Call NameLoad NameLoad Assign SubscriptStore NameLoad Index NameLoad Call NameLoad NameLoad For TupleStore NameStore NameStore Call NameLoad AttributeLoad NameLoad attr NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam NameParam defaults body If CompareNotIn NameLoad AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad NameLoad For TupleStore NameStore NameStore BinOpAdd AttributeLoad NameLoad attr ListLoad TupleLoad NameLoad NameLoad body If Call NameLoad Call NameLoad NameLoad Str NameLoad NameLoad body Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore SubscriptLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Index NameLoad If CompareIs AttributeLoad NameLoad attr NameLoad body Continue If BoolOpAnd AttributeLoad NameLoad attr CompareIs SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num SubscriptLoad AttributeLoad NameLoad attr Index Num Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr NameLoad CompareEq AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr AttributeLoad AttributeLoad NameLoad attr attr body Continue If CompareIn SubscriptLoad AttributeLoad NameLoad attr Index Num Call AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr ListLoad NameLoad body Raise Call NameLoad BinOpMod Str TupleLoad NameLoad NameLoad NameLoad NameLoad Assign SubscriptStore AttributeLoad NameLoad attr Index NameLoad NameLoad Assign NameStore ListComp NameLoad comprehension TupleStore NameStore NameStore Call AttributeLoad AttributeLoad NameLoad attr attr CompareEq NameLoad NameLoad For NameStore NameLoad body Delete SubscriptDel AttributeLoad NameLoad attr Index NameLoad For NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad ListLoad body For TupleStore NameStore NameStore Call NameLoad Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad ListLoad body If CompareEq NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad Assign SubscriptStore AttributeLoad NameLoad attr Index NameLoad Call NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam defaults NameLoad NameLoad body Expr Str Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index NameLoad If BoolOpOr CompareIs NameLoad NameLoad CompareIs NameLoad NameLoad body Return NameLoad If CompareIsNot NameLoad NameLoad body Assign NameStore ListLoad SubscriptLoad NameLoad Index NameLoad If CompareIsNot NameLoad NameLoad body Assign NameStore ListLoad SubscriptLoad NameLoad Index NameLoad Assert CompareEq Call NameLoad NameLoad Call NameLoad NameLoad For TupleStore NameStore NameStore Call NameLoad NameLoad NameLoad body If CompareIs NameLoad NameLoad body Continue If BoolOpOr UnaryOpNot AttributeLoad NameLoad attr UnaryOpNot AttributeLoad NameLoad attr body Return NameLoad If BoolOpOr UnaryOpNot Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr NameLoad UnaryOpNot Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr NameLoad body Return NameLoad Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr If UnaryOpNot CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Return NameLoad If CompareEq SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num body Continue ImportFrom alias If UnaryOpNot Call NameLoad ListLoad NameLoad ListLoad NameLoad body Return NameLoad Return NameLoad decorator_list decorator_list ClassDef bases NameLoad body Expr Str FunctionDef arguments args NameParam defaults body Expr Call AttributeLoad NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Call AttributeLoad NameLoad attr Call NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Pass decorator_list decorator_list Expr Call AttributeLoad AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr attr Str Call NameLoad Num Str Str FunctionDef arguments args NameParam NameParam NameParam defaults body FunctionDef arguments args NameParam defaults body Expr Str If UnaryOpNot Call NameLoad AttributeLoad NameLoad attr NameLoad body Return NameLoad If CompareGt Call NameLoad AttributeLoad NameLoad attr Num body Assert Call NameLoad ListComp CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr comprehension NameStore SubscriptLoad AttributeLoad NameLoad attr Slice Num If UnaryOpNot Call NameLoad ListComp CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr comprehension NameStore AttributeLoad NameLoad attr body Return NameLoad FunctionDef arguments args NameParam defaults body Return BoolOpAnd Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr NameLoad AttributeLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num attr Call NameLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num attr attr NameLoad decorator_list If UnaryOpNot Call NameLoad ListComp BoolOpAnd AttributeLoad NameLoad attr BoolOpOr Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr NameLoad Call NameLoad NameLoad comprehension NameStore AttributeLoad NameLoad attr body Return NameLoad Assign NameStore Num For TupleStore NameStore NameStore Call NameLoad AttributeLoad NameLoad attr body If CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr body If UnaryOpNot BoolOpAnd AttributeLoad NameLoad attr BoolOpOr Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr NameLoad Call NameLoad NameLoad body Assign NameStore NameLoad Break If CompareLt NameLoad Num body Assign NameStore ListComp NameLoad comprehension NameStore AttributeLoad NameLoad attr BoolOpAnd AttributeLoad NameLoad attr BoolOpOr Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr NameLoad Call NameLoad NameLoad If CompareGt Call NameLoad NameLoad Num body Assign NameStore ListComp NameLoad comprehension TupleStore NameStore NameStore Call NameLoad AttributeLoad NameLoad attr CompareEq AttributeLoad NameLoad attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Assign NameStore SubscriptLoad NameLoad Index Num orelse Return NameLoad Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Assign NameStore NameLoad Assign NameStore ListLoad Assign NameStore AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr For NameStore AttributeLoad NameLoad attr body If BoolOpAnd AttributeLoad NameLoad attr Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr NameLoad CompareNotEq AttributeLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num attr AttributeLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num attr body Assert CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr Assign NameStore AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr If AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr body Assign NameStore ListLoad For NameStore Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr body If BoolOpAnd UnaryOpNot SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index NameLoad UnaryOpNot Call NameLoad NameLoad NameLoad NameLoad NameLoad body Assign NameStore Call NameLoad NameLoad NameLoad Assign NameStore Call NameLoad NameLoad NameLoad Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad NameLoad If NameLoad body Assign NameStore Call NameLoad NameLoad NameLoad Expr Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num orelse If BoolOpAnd AttributeLoad NameLoad attr Call NameLoad NameLoad body Assert CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad NameLoad attr attr If AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr body Assign NameStore ListComp Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index NameLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad comprehension NameStore Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr BoolOpAnd UnaryOpNot SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index NameLoad UnaryOpNot Call NameLoad NameLoad NameLoad NameLoad NameLoad If NameLoad body Assign NameStore Call NameLoad NameLoad NameLoad Assign NameStore SubscriptLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num attr attr Index Num If CompareNotEq AttributeLoad NameLoad attr AttributeLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num attr body Assign NameStore BinOpSub AttributeLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num attr AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr BinOpAdd BinOpMult ListLoad Str NameLoad Call NameLoad Call NameLoad AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Expr Call NameLoad NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad orelse Expr Call AttributeLoad NameLoad attr NameLoad Assign SubscriptStore NameLoad Index NameLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr keyword NameLoad NameLoad Expr Call NameLoad AttributeLoad NameLoad attr NameLoad Return NameLoad decorator_list Return NameLoad decorator_list Assign NameStore Call NameLoad Call Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr Str FunctionDef arguments args NameParam defaults body Expr Str If BoolOpOr UnaryOpNot Call NameLoad NameLoad Str UnaryOpNot Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Return NameLoad Assign NameStore ListLoad Assign NameStore ListLoad For NameStore AttributeLoad NameLoad attr body If BoolOpAnd AttributeLoad NameLoad attr CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num Expr Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num orelse Expr Call AttributeLoad NameLoad attr NameLoad If UnaryOpNot NameLoad body Return NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad For NameStore NameLoad body If CompareNotEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad Assign NameStore Dict SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad For TupleStore NameStore NameStore AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr body If BoolOpAnd Call NameLoad NameLoad Str Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr UnaryOpNot CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Slice Assign SubscriptStore NameLoad Index NameLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad Assign AttributeStore SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Assign NameStore Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr If UnaryOpNot NameLoad body Continue Expr Call AttributeLoad NameLoad attr NameLoad Return NameLoad decorator_list Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr Expr Call NameLoad NameLoad FunctionDef arguments args NameParam defaults body Expr Str If CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign TupleStore NameStore NameStore AttributeLoad NameLoad attr If CompareEq AttributeLoad NameLoad attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr body Assign NameStore ListLoad NameLoad orelse If CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr body Assign NameStore ListLoad Call AttributeLoad NameLoad attr NameLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr orelse If CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr body Assign NameStore Call NameLoad NameLoad NameLoad AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr Expr Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Assign NameStore ListLoad NameLoad orelse Return Assert CompareEq AttributeLoad SubscriptLoad NameLoad Index Num attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr TupleLoad Str AttributeLoad SubscriptLoad NameLoad Index Num attr Str AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Str NameLoad Return NameLoad decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr Expr Call AttributeLoad AttributeLoad NameLoad attr attr Str Call NameLoad NameLoad Num Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr Str Call NameLoad NameLoad Num Str FunctionDef arguments args NameParam defaults body Expr Str If CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign TupleStore NameStore NameStore AttributeLoad NameLoad attr If CompareEq AttributeLoad NameLoad attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr body Return ListLoad NameLoad decorator_list Call NameLoad Str Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body Expr Str If CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body If CompareEq AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr body Return ListLoad SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body Expr Str If Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Return ListLoad Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr keyword AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr decorator_list Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr Expr Call AttributeLoad AttributeLoad NameLoad attr attr Str Call NameLoad NameLoad Num Str FunctionDef arguments args NameParam defaults body If CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body If UnaryOpNot Call NameLoad AttributeLoad NameLoad attr Str body Return Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num Expr Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Return ListLoad NameLoad decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body TryExcept body Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr handlers ExceptHandler type NameLoad body Return If CompareIn NameLoad AttributeLoad NameLoad attr body Assert Call NameLoad AttributeLoad NameLoad attr NameLoad Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Return ListLoad SubscriptLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Index AttributeLoad AttributeLoad NameLoad attr attr decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr NameLoad FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num If BoolOpOr UnaryOpNot AttributeLoad NameLoad attr CompareNotEq AttributeLoad AttributeLoad NameLoad attr attr NameLoad body Return If Call NameLoad AttributeLoad NameLoad attr NameLoad body TryExcept body Assign TupleStore NameStore AttributeLoad AttributeLoad NameLoad attr attr handlers ExceptHandler type NameLoad body Raise If Call NameLoad NameLoad TupleLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign TupleStore NameStore NameStore TupleLoad NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num Assert CompareEq AttributeLoad NameLoad attr NameLoad orelse If Call NameLoad AttributeLoad NameLoad attr NameLoad body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num orelse Return If Call NameLoad NameLoad TupleLoad NameLoad AttributeLoad NameLoad attr body Return ListLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index NameLoad orelse If Call NameLoad NameLoad NameLoad body If CompareEq AttributeLoad NameLoad attr Num body TryExcept body Assign NameStore Call NameLoad NameLoad If Call NameLoad NameLoad AttributeLoad NameLoad attr body Assign NameStore Call NameLoad NameLoad TryExcept body Assign NameStore ListLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index NameLoad handlers ExceptHandler type NameLoad body Raise Call NameLoad Str Return NameLoad handlers ExceptHandler type NameLoad body Pass orelse If BoolOpAnd CompareEq AttributeLoad NameLoad attr Num Call NameLoad NameLoad AttributeLoad NameLoad attr body Assign NameStore Call NameLoad Call NameLoad NameLoad Call NameLoad AttributeLoad NameLoad attr Assign NameStore ListLoad Call NameLoad ListComp SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index NameLoad comprehension NameStore NameLoad Expr Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Return NameLoad orelse Raise Call NameLoad Str orelse If Call NameLoad NameLoad NameLoad body TryExcept body Assign NameStore SubscriptLoad Call AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr keyword NameLoad Index Num Assign NameStore Call NameLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index NameLoad Expr Call NameLoad AttributeLoad NameLoad attr NameLoad Return ListLoad NameLoad handlers ExceptHandler type NameLoad body Pass orelse Raise Call NameLoad Str decorator_list NameLoad Call NameLoad Str Call AttributeLoad NameLoad attr ListLoad NameLoad NameLoad FunctionDef arguments args NameParam defaults body Expr Str If Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body FunctionDef arguments args NameParam NameParam defaults body Return ListLoad Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Call AttributeLoad NameLoad attr Num keyword AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr decorator_list FunctionDef arguments args NameParam NameParam defaults body Return ListLoad Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Call AttributeLoad NameLoad attr Num keyword AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr decorator_list If BoolOpAnd CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad NameLoad attr attr CompareEq Call NameLoad AttributeLoad NameLoad attr Num body If CompareEq SubscriptLoad AttributeLoad NameLoad attr Index Num SubscriptLoad AttributeLoad NameLoad attr Index Num body Assign NameStore ListLoad Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num Call AttributeLoad NameLoad attr Num keyword AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr Expr Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Return NameLoad orelse If BoolOpAnd CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad NameLoad attr attr CompareEq Call NameLoad AttributeLoad NameLoad attr Num body If CompareEq SubscriptLoad AttributeLoad NameLoad attr Index Num SubscriptLoad AttributeLoad NameLoad attr Index Num body Assign NameStore ListLoad Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num Call AttributeLoad NameLoad attr Num keyword AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr Expr Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Return NameLoad orelse If BoolOpAnd CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad NameLoad attr attr CompareEq Call NameLoad AttributeLoad NameLoad attr Num body Return ListLoad SubscriptLoad AttributeLoad NameLoad attr Index Num orelse If BoolOpAnd CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad NameLoad attr attr CompareEq Call NameLoad AttributeLoad NameLoad attr Num body Return ListLoad SubscriptLoad AttributeLoad NameLoad attr Index Num orelse If BoolOpAnd CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad NameLoad attr attr CompareEq Call NameLoad AttributeLoad NameLoad attr Num body Return ListLoad SubscriptLoad AttributeLoad NameLoad attr Index Num orelse If BoolOpAnd Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr CompareEq Call NameLoad AttributeLoad NameLoad attr Num body If Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num AttributeLoad NameLoad attr body Assign NameStore Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num If UnaryOpNot Call NameLoad NameLoad NameLoad body If CompareEq NameLoad Num body Return Call NameLoad NameLoad Num orelse Return ListLoad SubscriptLoad AttributeLoad NameLoad attr Index Num If Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num AttributeLoad NameLoad attr body Assign NameStore Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num If UnaryOpNot Call NameLoad NameLoad NameLoad body If CompareEq NameLoad Num body Return Call NameLoad NameLoad Num orelse Return ListLoad SubscriptLoad AttributeLoad NameLoad attr Index Num orelse If BoolOpAnd Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr CompareEq Call NameLoad AttributeLoad NameLoad attr Num body If Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num AttributeLoad NameLoad attr body Assign NameStore Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num If UnaryOpNot Call NameLoad NameLoad NameLoad body If CompareEq NameLoad Num body Return ListLoad SubscriptLoad AttributeLoad NameLoad attr Index Num orelse Return Call NameLoad NameLoad Num If Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num AttributeLoad NameLoad attr body Assign NameStore Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num If UnaryOpNot Call NameLoad NameLoad NameLoad body If CompareEq NameLoad Num body Return ListLoad SubscriptLoad AttributeLoad NameLoad attr Index Num orelse Return Call NameLoad NameLoad Num orelse If BoolOpAnd Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr CompareEq Call NameLoad AttributeLoad NameLoad attr Num body If CompareIs SubscriptLoad AttributeLoad NameLoad attr Index Num SubscriptLoad AttributeLoad NameLoad attr Index Num body Return Call NameLoad NameLoad Num decorator_list Call NameLoad Str NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body Expr Str If BoolOpAnd Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr CompareEq Call NameLoad AttributeLoad NameLoad attr Num body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num If BoolOpAnd AttributeLoad NameLoad attr Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body Assign NameStore SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num Assign NameStore SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Slice Num Assign NameStore Call AttributeLoad NameLoad attr NameLoad Expr Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Assign NameStore Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr NameLoad Expr Call NameLoad ListLoad SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad NameLoad Return ListLoad NameLoad decorator_list NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body Expr Str If BoolOpOr UnaryOpNot Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr UnaryOpNot Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body Return Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num If BoolOpOr UnaryOpNot AttributeLoad NameLoad attr UnaryOpNot Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr UnaryOpNot Call NameLoad AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr AttributeLoad NameLoad attr body Return If CompareEq AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr AttributeLoad AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr attr body Return ListLoad NameLoad decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore TupleLoad TupleLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr TupleLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr TupleLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr TupleLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr TupleLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr TupleLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr TupleLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num If UnaryOpNot Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Return If BoolOpOr UnaryOpNot AttributeLoad NameLoad attr UnaryOpNot Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body Return Assign NameStore AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr For NameStore NameLoad body If Call NameLoad NameLoad NameLoad NameLoad body Return AttributeLoad AttributeLoad NameLoad attr attr Return decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Str Assign NameStore Call NameLoad NameLoad SubscriptLoad NameLoad Index Num Assign NameStore Call NameLoad NameLoad SubscriptLoad NameLoad Index Num Assign NameStore Call NameLoad NameLoad SubscriptLoad NameLoad Index Num Assign NameStore Call NameLoad NameLoad SubscriptLoad NameLoad Index Num Return BoolOpOr BoolOpAnd NameLoad NameLoad BoolOpAnd NameLoad NameLoad decorator_list ClassDef bases AttributeLoad NameLoad attr body Expr Str Assign NameStore TupleLoad Str Assign NameStore Dict Num ListLoad Num Assign NameStore NameLoad FunctionDef arguments args NameParam NameParam defaults Str body Assign AttributeStore NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad If UnaryOpNot Call NameLoad NameLoad Str body Assign AttributeStore NameLoad attr Str decorator_list FunctionDef arguments args NameParam NameParam defaults vararg body If UnaryOpNot Call NameLoad NameLoad NameLoad body Assign NameStore Call AttributeLoad NameLoad attr NameLoad Assign NameStore ListComp Call AttributeLoad NameLoad attr NameLoad comprehension NameStore NameLoad Assert Call AttributeLoad NameLoad attr ListComp CompareEq AttributeLoad AttributeLoad NameLoad attr attr Num comprehension NameStore NameLoad Return Call AttributeLoad NameLoad attr NameLoad BinOpAdd ListLoad NameLoad NameLoad ListLoad Call AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam defaults body Assign TupleStore NameStore NameLoad Assign NameStore SubscriptLoad NameLoad Index Num Assign SubscriptStore NameLoad Index Num NameLoad Assert Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Slice Num AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body Return BinOpAdd NameLoad BinOpMult ListLoad Call Call NameLoad BinOpSub Call NameLoad NameLoad Num decorator_list FunctionDef arguments args NameParam NameParam defaults body Return BinOpAdd ListLoad ListLoad Num BinOpMult ListLoad ListLoad Num BinOpSub Call NameLoad AttributeLoad NameLoad attr Num decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam defaults body Assign NameStore SubscriptLoad NameLoad Index Num Assign NameStore SubscriptLoad NameLoad Index Num Assign NameStore ListLoad Assign NameStore SubscriptLoad NameLoad Index Str Assign NameStore Call AttributeLoad Call AttributeLoad AttributeLoad NameLoad attr attr Str Str attr Str Str For NameStore Call NameLoad BinOpSub Call NameLoad NameLoad Num body Assign NameStore SubscriptLoad NameLoad Index BinOpAdd NameLoad Num Assign NameStore AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index BinOpAdd NameLoad Num attr Expr Call AttributeLoad NameLoad attr BinOpMod Str Call NameLoad Assign NameStore Call AttributeLoad Str attr NameLoad Return BinOpMod Str Call NameLoad decorator_list FunctionDef arguments args NameParam defaults body Return TupleLoad Num Num decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body Return ListLoad SubscriptLoad NameLoad Index Num decorator_list decorator_list Assign NameStore Call NameLoad Assign NameStore NameLoad FunctionDef arguments args NameParam defaults body If Call NameLoad AttributeLoad NameLoad attr NameLoad body Assign NameStore ListLoad For NameStore SubscriptLoad AttributeLoad NameLoad attr Slice Num body TryExcept body Assign NameStore Call NameLoad NameLoad If BoolOpOr CompareNotEq Num AttributeLoad NameLoad attr CompareEq NameLoad Num body Expr Call AttributeLoad NameLoad attr NameLoad handlers ExceptHandler type NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad If CompareEq Call NameLoad NameLoad Num body Return ListLoad SubscriptLoad AttributeLoad NameLoad attr Index Num If CompareNotEq Call NameLoad NameLoad BinOpSub Call NameLoad AttributeLoad NameLoad attr Num body Assign NameStore Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Expr Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Return ListLoad NameLoad decorator_list NameLoad Call AttributeLoad NameLoad attr ListLoad NameLoad FunctionDef arguments args NameParam defaults body Expr Str If UnaryOpNot Call NameLoad AttributeLoad NameLoad attr NameLoad body Return Return ListLoad SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list Call AttributeLoad NameLoad attr ListLoad NameLoad Expr Call AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Str attr Str NameLoad Str keyword NameLoad Expr Call AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Str attr Str NameLoad Str keyword NameLoad Expr Call AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Str attr Str NameLoad Str keyword NameLoad FunctionDef arguments args NameParam defaults body Expr Str If CompareGt Call NameLoad AttributeLoad NameLoad attr Num body Return TryExcept body Assign NameStore AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr handlers ExceptHandler type NameLoad body Assign NameStore NameLoad If Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr If CompareIn Call NameLoad NameLoad Str NameLoad TupleLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad NameLoad attr attr body Assign NameStore AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr Assign NameStore ListLoad For NameStore AttributeLoad NameLoad attr body If CompareEq AttributeLoad AttributeLoad NameLoad attr attr NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad orelse TryExcept body Assign NameStore Call NameLoad NameLoad keyword NameLoad If Call NameLoad AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad NameLoad AttributeLoad NameLoad attr orelse If CompareIs NameLoad NameLoad body Return Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad NameLoad ListComp Call Call NameLoad NameLoad NameLoad comprehension NameStore Call NameLoad AttributeLoad NameLoad attr handlers ExceptHandler type NameLoad body If Call NameLoad NameLoad AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad NameLoad orelse Expr Call AttributeLoad NameLoad attr NameLoad If CompareNotEq NameLoad AttributeLoad NameLoad attr body Assign NameStore ListLoad Call AttributeLoad NameLoad attr NameLoad If CompareNotEq AttributeLoad SubscriptLoad NameLoad Index Num attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr body Return Expr Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Return NameLoad decorator_list NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body Expr Str If UnaryOpNot Call NameLoad AttributeLoad NameLoad attr NameLoad body Return If CompareIs AttributeLoad AttributeLoad NameLoad attr attr NameLoad body TryExcept body Assign NameStore Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num If CompareNotEq NameLoad Num body Return handlers ExceptHandler type NameLoad body Return If BoolOpOr CompareNotEq AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr CompareNotEq AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr body Return Assign NameStore Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Slice Num AttributeLoad AttributeLoad NameLoad attr attr If Call NameLoad GeneratorExp BoolOpAnd Call NameLoad NameLoad NameLoad CompareIs AttributeLoad NameLoad attr NameLoad CompareIs AttributeLoad NameLoad attr NameLoad BoolOpOr CompareIs AttributeLoad NameLoad attr NameLoad CompareEq Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num comprehension NameStore NameLoad body If UnaryOpNot Call NameLoad AttributeLoad NameLoad attr Str body Return If UnaryOpNot Call AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr SubscriptLoad AttributeLoad NameLoad attr Index Num SubscriptLoad AttributeLoad NameLoad attr Index Num body Return If Call NameLoad GeneratorExp CompareIs AttributeLoad NameLoad attr NameLoad comprehension NameStore AttributeLoad AttributeLoad NameLoad attr attr body Return ListLoad SubscriptLoad AttributeLoad NameLoad attr Index Num Assign NameStore Call Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr SubscriptLoad AttributeLoad NameLoad attr Slice Num Expr Call NameLoad AttributeLoad NameLoad attr NameLoad Return ListLoad NameLoad decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad NameLoad FunctionDef arguments args NameParam defaults body Expr Str If BoolOpAnd Call NameLoad AttributeLoad NameLoad attr NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Call NameLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr NameLoad Call NameLoad AttributeLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr attr AttributeLoad NameLoad attr body Assign NameStore AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Assign NameStore NameLoad Assign NameStore NameLoad If BoolOpAnd AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Call NameLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr NameLoad body Assign NameStore AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num orelse If BoolOpAnd AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Call NameLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr NameLoad body Assign NameStore AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num orelse Return If BoolOpOr CompareNotEq SubscriptLoad AttributeLoad NameLoad attr Index Num SubscriptLoad AttributeLoad NameLoad attr Index Num CompareNotEq SubscriptLoad AttributeLoad NameLoad attr Index Num SubscriptLoad AttributeLoad NameLoad attr Index Num body Return Assign NameStore Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num Expr Call NameLoad AttributeLoad NameLoad attr NameLoad Return ListLoad NameLoad decorator_list NameLoad Call AttributeLoad NameLoad attr ListLoad NameLoad FunctionDef arguments args NameParam defaults body Expr Str If Call NameLoad AttributeLoad NameLoad attr NameLoad body Assign NameStore Call NameLoad AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore Call NameLoad NameLoad For NameStore SubscriptLoad NameLoad Slice Num body If BoolOpAnd Call NameLoad NameLoad NameLoad CompareIs AttributeLoad NameLoad attr NameLoad CompareIs AttributeLoad NameLoad attr NameLoad BoolOpOr CompareIs AttributeLoad NameLoad attr NameLoad CompareEq Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num body AugAssignSub NameStore Num orelse Break If CompareLt NameLoad Call NameLoad NameLoad body Assign NameStore Call NameLoad SubscriptLoad NameLoad Slice NameLoad Assign NameStore Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Slice NameLoad Lambda arguments args NameParam defaults Call NameLoad NameLoad AttributeLoad NameLoad attr Assign NameStore Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Expr Call NameLoad AttributeLoad NameLoad attr NameLoad Return ListLoad NameLoad decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad NameLoad FunctionDef arguments args NameParam defaults body Expr Str If UnaryOpNot Call NameLoad AttributeLoad NameLoad attr Str body Return Assign NameStore AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr If Call NameLoad AttributeLoad NameLoad attr NameLoad body Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr keyword NameLoad keyword NameLoad For TupleStore NameStore NameStore Call NameLoad NameLoad body If UnaryOpNot Call NameLoad NameLoad NameLoad body Return NameLoad If BoolOpAnd CompareIsNot AttributeLoad NameLoad attr NameLoad CompareNotEq AttributeLoad NameLoad attr Num body Return NameLoad If BoolOpAnd CompareIsNot AttributeLoad NameLoad attr NameLoad CompareNotEq AttributeLoad NameLoad attr Num body Return NameLoad For TupleStore NameStore NameStore Call NameLoad NameLoad body Assign NameStore SubscriptLoad SubscriptLoad NameLoad Index SubscriptLoad AttributeLoad NameLoad attr Index Num Index NameLoad If Call NameLoad AttributeLoad NameLoad attr TupleLoad NameLoad AttributeLoad NameLoad attr body Assign NameStore AttributeLoad NameLoad attr TryExcept body Assign NameStore Call NameLoad NameLoad handlers ExceptHandler type NameLoad body Pass If CompareLt AttributeLoad NameLoad attr NameLoad body Return NameLoad orelse If Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore AttributeLoad NameLoad attr If BoolOpAnd AttributeLoad NameLoad attr Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body Assign NameStore SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num orelse If BoolOpAnd AttributeLoad NameLoad attr Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body Assign NameStore SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num orelse Return NameLoad Assert CompareEq Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr Str Assert CompareIn Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr ListLoad Str Str Str Str If CompareNotEq NameLoad NameLoad body Return NameLoad orelse If CompareIs AttributeLoad NameLoad attr NameLoad body Pass orelse Return NameLoad orelse If Call NameLoad AttributeLoad NameLoad attr NameLoad body TryExcept body Assign NameStore Call NameLoad SubscriptLoad SubscriptLoad NameLoad Index SubscriptLoad AttributeLoad NameLoad attr Index Num Index Num handlers ExceptHandler type NameLoad body Return NameLoad Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num If Call NameLoad NameLoad AttributeLoad NameLoad attr body Assign NameStore AttributeLoad NameLoad attr If CompareNotEq Call NameLoad NameLoad NameLoad body Return NameLoad If Call AttributeLoad NameLoad attr CompareNotEq NameLoad Call AttributeLoad NameLoad attr NameLoad body Return NameLoad orelse If BoolOpAnd CompareIsNot AttributeLoad NameLoad attr NameLoad Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body TryExcept body Assign TupleStore NameStore NameStore NameStore Call NameLoad NameLoad AttributeLoad AttributeLoad NameLoad attr attr handlers ExceptHandler type NameLoad body Return NameLoad If CompareNotEq NameLoad Num body Return NameLoad If CompareNotEq NameLoad NameLoad body Return NameLoad If CompareNotEq NameLoad Num body Return NameLoad orelse Return NameLoad orelse Return NameLoad Return ListLoad SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad NameLoad NameLoad FunctionDef arguments args NameParam defaults body Expr Str If Call NameLoad AttributeLoad NameLoad attr NameLoad body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num If BoolOpOr UnaryOpNot AttributeLoad NameLoad attr CompareGt Call NameLoad AttributeLoad NameLoad attr Num body Return NameLoad If BoolOpAnd Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr CompareEq Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr Num body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Slice Num Assign NameStore Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num NameLoad Expr Call NameLoad AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Expr Call NameLoad ListLoad SubscriptLoad AttributeLoad NameLoad attr Index Num SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Return ListLoad NameLoad If Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body Assign NameStore ListLoad If Call NameLoad ListComp CompareEq Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr Num comprehension NameStore AttributeLoad AttributeLoad NameLoad attr attr body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Slice Num Assign NameStore ListComp Call AttributeLoad NameLoad attr NameLoad NameLoad comprehension NameStore AttributeLoad AttributeLoad NameLoad attr attr Expr Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Expr Call NameLoad ListLoad SubscriptLoad AttributeLoad NameLoad attr Index Num SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Return ListLoad NameLoad orelse If Call NameLoad ListComp CompareIn Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr ListLoad AttributeLoad NameLoad attr Num comprehension NameStore AttributeLoad AttributeLoad NameLoad attr attr body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Slice Num Assign NameStore ListLoad For NameStore AttributeLoad AttributeLoad NameLoad attr attr body If CompareEq Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr Num body Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad NameLoad orelse If CompareEq AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr NameLoad orelse Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr BinOpMult ListLoad Str AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Expr Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Expr Call NameLoad ListLoad SubscriptLoad AttributeLoad NameLoad attr Index Num SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Return ListLoad NameLoad If Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body Assert CompareEq Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr Num Assign NameStore ListLoad Assign NameStore Num For TupleStore NameStore NameStore Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr body If Call NameLoad NameLoad NameLoad body AugAssignAdd NameStore ListLoad TupleLoad NameLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad AugAssignAdd NameStore Num For NameStore Call NameLoad Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad AttributeLoad NameLoad attr body AugAssignAdd NameStore ListLoad TupleLoad NameLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad AugAssignAdd NameStore Num Assign NameStore Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num SubscriptLoad AttributeLoad NameLoad attr Slice Num Expr Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Assign NameStore Call Call AttributeLoad NameLoad attr NameLoad NameLoad Expr Call NameLoad ListLoad SubscriptLoad AttributeLoad NameLoad attr Index Num SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Return ListLoad NameLoad decorator_list Call NameLoad Str Call AttributeLoad NameLoad attr ListLoad NameLoad FunctionDef arguments args NameParam NameParam NameParam NameParam defaults body Expr Str Assign NameStore ListLoad NameLoad NameLoad NameLoad NameLoad NameLoad If CompareIsNot Call NameLoad NameLoad NameLoad body Raise Call NameLoad Str NameLoad Assign TupleStore NameStore NameStore Call NameLoad NameLoad NameLoad Assign TupleStore NameStore NameStore Call NameLoad NameLoad NameLoad If CompareIsNot Call NameLoad NameLoad NameLoad body If CompareIs NameLoad NameLoad body Assign NameStore BinOpAdd AttributeLoad NameLoad attr BinOpMult NameLoad AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad Num BinOpAdd NameLoad Num NameLoad Assign NameStore Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad NameLoad BinOpAdd NameLoad Num NameLoad Assign NameStore Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad Num BinOpSub UnaryOpUSub NameLoad Num NameLoad If AttributeLoad NameLoad attr body Assign NameStore Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num BinOpAdd NameLoad Num NameLoad Return NameLoad orelse Assign NameStore BinOpAdd AttributeLoad NameLoad attr BinOpMult NameLoad AttributeLoad NameLoad attr Assign NameStore BinOpSub BinOpSub AttributeLoad NameLoad attr Num BinOpMult NameLoad AttributeLoad NameLoad attr If AttributeLoad AttributeLoad NameLoad attr attr body Expr Call AttributeLoad NameLoad attr Str Assign NameStore Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad Num NameLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad Num BinOpAdd NameLoad Num NameLoad Assign NameStore Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad NameLoad BinOpAdd NameLoad Num NameLoad Assign NameStore Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad Num BinOpSub UnaryOpUSub NameLoad Num NameLoad If AttributeLoad NameLoad attr body Assign NameStore Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num BinOpAdd NameLoad Num NameLoad Return NameLoad orelse Assign NameStore BinOpSub AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore BinOpMult AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore BinOpMult BinOpMult AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num Assign NameStore Call AttributeLoad NameLoad attr BinOpAdd AttributeLoad NameLoad attr BinOpMult AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr BinOpAdd AttributeLoad NameLoad attr BinOpMult AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore BinOpAdd AttributeLoad NameLoad attr BinOpMult BinOpSub AttributeLoad NameLoad attr Num AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad Num Call AttributeLoad NameLoad attr NameLoad Num BinOpSub UnaryOpUSub NameLoad Num Call AttributeLoad NameLoad attr NameLoad AttributeLoad NameLoad attr Assign NameStore BinOpAdd AttributeLoad NameLoad attr BinOpMult BinOpSub AttributeLoad NameLoad attr Num AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr NameLoad AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr NameLoad Num Assign NameStore BinOpSub BinOpSub AttributeLoad NameLoad attr BinOpMult AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num Assign NameStore Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad Num Call AttributeLoad NameLoad attr NameLoad Num BinOpSub UnaryOpUSub NameLoad Num Call AttributeLoad NameLoad attr BinOpSub AttributeLoad NameLoad attr Num NameLoad Assign NameStore Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr BinOpSub BinOpSub AttributeLoad NameLoad attr BinOpMult AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num Assign NameStore Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr BinOpSub BinOpSub AttributeLoad NameLoad attr Num BinOpMult BinOpSub AttributeLoad NameLoad attr Num AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr BinOpSub AttributeLoad NameLoad attr BinOpMult AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr BinOpMult NameLoad NameLoad Num Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad Num NameLoad NameLoad Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad Num NameLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr BinOpMult NameLoad NameLoad Num Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad Num NameLoad NameLoad Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad Num NameLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr BinOpMult NameLoad NameLoad Num NameLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad Num Num NameLoad Assign NameStore Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad Num Num NameLoad Assign NameStore Call NameLoad NameLoad NameLoad Assign NameStore Call NameLoad NameLoad NameLoad Assign NameStore Call NameLoad NameLoad NameLoad Assign NameStore Call NameLoad NameLoad NameLoad Assign NameStore Call NameLoad NameLoad NameLoad Assign NameStore Call NameLoad NameLoad NameLoad Assign TupleStore NameStore NameStore NameStore Call NameLoad ListLoad NameLoad NameLoad NameLoad Return Call NameLoad NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str If Call NameLoad AttributeLoad NameLoad attr NameLoad body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num If BoolOpAnd AttributeLoad NameLoad attr Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr NameLoad body Assign NameStore SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num Assign NameStore Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr Assign NameStore Call NameLoad AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr TryExcept body Assign NameStore SubscriptLoad AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr Index NameLoad Assign NameStore SubscriptLoad AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr Index NameLoad handlers ExceptHandler type NameLoad body Assign NameStore AttributeLoad NameLoad attr Assign NameStore AttributeLoad NameLoad attr Assign NameStore ListLoad Assign NameStore Num Assign NameStore Num While BoolOpAnd CompareLt NameLoad Call NameLoad NameLoad CompareLt NameLoad Call NameLoad NameLoad body Assign NameStore SubscriptLoad NameLoad Index NameLoad If CompareIs Call NameLoad NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr Call NameLoad NameLoad SubscriptLoad NameLoad Index NameLoad SubscriptLoad NameLoad Index NameLoad SubscriptLoad NameLoad Index NameLoad AugAssignAdd NameStore Num orelse Expr Call AttributeLoad NameLoad attr NameLoad AugAssignAdd NameStore Num If CompareLt NameLoad Call NameLoad NameLoad body AugAssignAdd NameStore SubscriptLoad NameLoad Slice NameLoad orelse AugAssignAdd NameStore SubscriptLoad NameLoad Slice NameLoad Assign NameStore Call NameLoad NameLoad Assign NameStore Call NameLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad Lambda arguments args NameParam defaults Call NameLoad NameLoad AttributeLoad NameLoad attr Assign NameStore Call NameLoad NameLoad NameLoad Expr Call NameLoad ListLoad SubscriptLoad AttributeLoad NameLoad attr Index Num SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Return ListLoad NameLoad decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad NameLoad FunctionDef arguments args NameParam defaults body Expr Str If UnaryOpNot Call NameLoad AttributeLoad NameLoad attr NameLoad body Return NameLoad Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num If CompareIs AttributeLoad NameLoad attr NameLoad body Return NameLoad If UnaryOpNot Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body Return NameLoad Assign NameStore Call NameLoad AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num Assign NameStore SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Slice Num Assert CompareLtE Call NameLoad NameLoad Call NameLoad NameLoad Assign NameStore BinOpSub AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore ListLoad Assign NameStore ListLoad For TupleStore NameStore TupleStore NameStore NameStore Call NameLoad Call NameLoad NameLoad NameLoad body If CompareGtE NameLoad NameLoad body If BoolOpAnd CompareGt AttributeLoad AttributeLoad NameLoad attr attr BinOpSub NameLoad NameLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index BinOpSub NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr Call NameLoad NameLoad orelse Expr Call AttributeLoad NameLoad attr NameLoad Assign TupleStore NameStore NameStore Call NameLoad NameLoad NameLoad If CompareIsNot Call NameLoad NameLoad NameLoad body Pass orelse Assign NameStore BinOpSub AttributeLoad NameLoad attr AttributeLoad NameLoad attr If CompareNotEq AttributeLoad NameLoad attr Num body Assign NameStore Call AttributeLoad NameLoad attr NameLoad AttributeLoad NameLoad attr AugAssignAdd NameStore ListLoad NameLoad Assign NameStore SubscriptLoad NameLoad Index Call NameLoad NameLoad AugAssignAdd NameStore SubscriptLoad NameLoad Slice Call NameLoad NameLoad If CompareGt AttributeLoad NameLoad attr Call NameLoad NameLoad body Return NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad If CompareNotIn Call NameLoad NameLoad TupleLoad NameLoad NameLoad body Assign NameStore ListLoad NameLoad If CompareNotEq AttributeLoad SubscriptLoad NameLoad Index Num attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr body Assign SubscriptStore NameLoad Index Num Call AttributeLoad AttributeLoad NameLoad attr attr SubscriptLoad NameLoad Index Num ListComp NameLoad comprehension TupleStore NameStore TupleStore NameStore NameStore Call NameLoad Call NameLoad AttributeLoad SubscriptLoad NameLoad Index Num attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr BoolOpAnd NameLoad UnaryOpNot NameLoad Return NameLoad decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad NameLoad FunctionDef arguments args NameParam defaults body Expr Str If UnaryOpNot Call NameLoad AttributeLoad NameLoad attr NameLoad body Return If BoolOpOr UnaryOpNot AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr UnaryOpNot Call NameLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr AttributeLoad NameLoad attr body Return If CompareGt Call NameLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Num body Return Assign NameStore SubscriptLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr Index Num Assign NameStore SubscriptLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr Index Num Assign NameStore Call NameLoad AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore Call NameLoad BinOpSub AttributeLoad NameLoad attr Num Call NameLoad NameLoad Assign NameStore SubscriptLoad NameLoad Slice NameLoad Assign NameStore SubscriptLoad NameLoad Slice NameLoad If BoolOpAnd CompareGt AttributeLoad NameLoad attr Num CompareGtE Call NameLoad NameLoad BinOpSub AttributeLoad NameLoad attr Num body Assign NameStore BinOpAdd BinOpAdd SubscriptLoad NameLoad Slice BinOpSub AttributeLoad NameLoad attr Num TupleLoad Call NameLoad NameLoad NameLoad NameLoad SubscriptLoad NameLoad Slice BinOpSub AttributeLoad NameLoad attr Num Assign NameStore Call AttributeLoad NameLoad attr Call NameLoad NameLoad Assign NameStore IfExp NameLoad Call AttributeLoad NameLoad attr Call NameLoad NameLoad NameLoad Expr Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num ListLoad NameLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad Expr Call NameLoad ListLoad SubscriptLoad AttributeLoad NameLoad attr Index Num SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Return ListLoad NameLoad decorator_list NameLoad NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad NameLoad FunctionDef arguments args NameParam defaults body Expr Str FunctionDef arguments args NameParam defaults body Return BoolOpAnd AttributeLoad NameLoad attr Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr TupleLoad NameLoad NameLoad NameLoad CompareEq AttributeLoad NameLoad attr NameLoad CompareEq Call NameLoad AttributeLoad NameLoad attr Num UnaryOpNot AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr decorator_list If CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Assign NameStore ListComp NameLoad comprehension NameStore AttributeLoad NameLoad attr Call NameLoad NameLoad If NameLoad body Assign NameStore BinOpAdd ListComp NameLoad comprehension NameStore AttributeLoad NameLoad attr UnaryOpNot Call NameLoad NameLoad ListComp SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num comprehension NameStore NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad Expr Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Assign NameStore NameLoad For NameStore NameLoad body Assert CompareEq AttributeLoad NameLoad attr NameLoad Assert CompareEq AttributeLoad NameLoad attr AttributeLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num attr Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Slice Num Expr Call NameLoad BinOpAdd AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr NameLoad Return ListLoad NameLoad decorator_list NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr Expr Call AttributeLoad AttributeLoad NameLoad attr attr Str Call NameLoad NameLoad Num Str FunctionDef arguments args NameParam defaults body Expr Str If BoolOpAnd Call NameLoad AttributeLoad NameLoad attr NameLoad UnaryOpNot AttributeLoad AttributeLoad NameLoad attr attr body Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad NameLoad attr attr keyword NameLoad keyword AttributeLoad AttributeLoad NameLoad attr attr keyword NameLoad Assign NameStore Call NameLoad AttributeLoad NameLoad attr Assign NameStore Call NameLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Str NameLoad Assign AttributeStore AttributeLoad NameLoad attr attr NameLoad Expr Call NameLoad AttributeLoad NameLoad attr NameLoad Return ListLoad NameLoad Return NameLoad decorator_list Call AttributeLoad NameLoad attr ListLoad NameLoad keyword NameLoad Expr Call AttributeLoad AttributeLoad NameLoad attr attr Str Call NameLoad NameLoad keyword AttributeLoad NameLoad attr Num Str Str FunctionDef arguments args NameParam defaults body Expr Str If BoolOpAnd Call NameLoad AttributeLoad NameLoad attr NameLoad UnaryOpNot AttributeLoad AttributeLoad NameLoad attr attr body Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore Call NameLoad AttributeLoad NameLoad attr Expr Call NameLoad AttributeLoad NameLoad attr NameLoad Return ListLoad NameLoad Return NameLoad decorator_list Call AttributeLoad NameLoad attr ListLoad NameLoad keyword NameLoad Expr Call AttributeLoad AttributeLoad NameLoad attr attr Str Call NameLoad NameLoad keyword AttributeLoad NameLoad attr Num Str Str FunctionDef arguments args NameParam defaults body Expr Str If BoolOpAnd Call NameLoad AttributeLoad NameLoad attr TupleLoad NameLoad NameLoad NameLoad UnaryOpNot AttributeLoad AttributeLoad NameLoad attr attr body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num Assign NameStore NameLoad TryExcept body If CompareEq Call NameLoad NameLoad Num body Assign NameStore NameLoad handlers ExceptHandler type NameLoad body Pass If NameLoad body Return ListLoad NameLoad orelse Return NameLoad decorator_list Call NameLoad Str Call NameLoad Str Call AttributeLoad NameLoad attr ListLoad NameLoad NameLoad NameLoad FunctionDef arguments args NameParam defaults body Expr Str If BoolOpAnd Call NameLoad AttributeLoad NameLoad attr NameLoad AttributeLoad AttributeLoad NameLoad attr attr body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num Assign NameStore NameLoad Assign NameStore NameLoad TryExcept body Assign NameStore Call NameLoad NameLoad handlers ExceptHandler type NameLoad body Pass TryExcept body Assign NameStore Call NameLoad NameLoad handlers ExceptHandler type NameLoad body Pass If BoolOpAnd CompareIsNot NameLoad NameLoad CompareIsNot NameLoad NameLoad CompareEq NameLoad NameLoad body Return ListLoad NameLoad orelse Return NameLoad decorator_list Call NameLoad Str Call NameLoad Str Call AttributeLoad NameLoad attr ListLoad NameLoad FunctionDef arguments args NameParam defaults body Expr Str If UnaryOpNot Call NameLoad AttributeLoad NameLoad attr NameLoad body Return Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num If BoolOpOr UnaryOpNot AttributeLoad NameLoad attr UnaryOpNot Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr NameLoad body Return Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num Assign NameStore SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num Assign NameStore SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num Assign NameStore SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num If CompareIsNot NameLoad NameLoad body Return If BoolOpAnd UnaryOpNot AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr CompareNotEq Call AttributeLoad NameLoad attr NameLoad Num body Return Assign NameStore ListLoad Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num Call AttributeLoad NameLoad attr NameLoad UnaryOpUSub SubscriptLoad AttributeLoad NameLoad attr Index Num If UnaryOpNot Call AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr NameLoad NameLoad Num Num body Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num SubscriptLoad AttributeLoad NameLoad attr Index Num Assign NameStore Call Call NameLoad Str NameLoad NameLoad If CompareEq AttributeLoad NameLoad attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr body Return ListLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Expr Call NameLoad NameLoad NameLoad Return ListLoad NameLoad decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad NameLoad FunctionDef arguments args NameParam defaults body Expr Str If Call NameLoad AttributeLoad NameLoad attr TupleLoad NameLoad NameLoad NameLoad body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Slice Num If BoolOpAnd CompareIsNot AttributeLoad NameLoad attr NameLoad Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body Assign NameStore SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num TryExcept body Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr handlers ExceptHandler type NameLoad body Return NameLoad Assign NameStore AttributeLoad NameLoad attr Assign NameStore AttributeLoad NameLoad attr If Call NameLoad AttributeLoad NameLoad attr NameLoad body Assign NameStore Call Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr NameLoad NameLoad orelse If Call NameLoad AttributeLoad NameLoad attr NameLoad body Assign NameStore Call NameLoad NameLoad NameLoad orelse If Call NameLoad AttributeLoad NameLoad attr NameLoad body Assign NameStore Call NameLoad NameLoad NameLoad orelse Raise Call NameLoad Str Assign NameStore Str If CompareNotIn NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr BinOpMod Str NameLoad If CompareGt AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore Call AttributeLoad NameLoad attr NameLoad BinOpSub AttributeLoad NameLoad attr AttributeLoad NameLoad attr If CompareNotIn NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr BinOpMod Str NameLoad Assign NameStore BinOpAdd BinOpMult TupleLoad NameLoad BinOpSub AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore ListComp Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index NameLoad Num Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index NameLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad comprehension NameStore Call NameLoad AttributeLoad NameLoad attr BoolOpAnd SubscriptLoad NameLoad Index NameLoad UnaryOpNot Call NameLoad NameLoad NameLoad keyword NameLoad keyword NameLoad CompareNotEq SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index NameLoad Num If CompareGt Call NameLoad NameLoad Num body Assign NameStore Str Assign NameStore Call Call NameLoad NameLoad NameLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad Expr Call NameLoad AttributeLoad NameLoad attr NameLoad Return ListLoad NameLoad decorator_list NameLoad NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad NameLoad NameLoad NameLoad FunctionDef arguments args NameParam defaults body Expr Str If Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num If Call AttributeLoad NameLoad attr CompareEq AttributeLoad NameLoad attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr body Return ListLoad NameLoad orelse Assign NameStore Dict For TupleStore NameStore NameStore Call NameLoad Call AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr body If CompareNotEq SubscriptLoad AttributeLoad NameLoad attr Index NameLoad NameLoad body Assign SubscriptStore NameLoad Index NameLoad NameLoad If CompareEq NameLoad AttributeLoad AttributeLoad NameLoad attr attr body Return orelse Assign NameStore Call Call AttributeLoad NameLoad attr Call NameLoad Call AttributeLoad NameLoad attr NameLoad Expr Call NameLoad AttributeLoad NameLoad attr NameLoad Return ListLoad NameLoad decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore AttributeLoad NameLoad attr If UnaryOpNot Call NameLoad NameLoad AttributeLoad NameLoad attr body Return NameLoad Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num Assign NameStore AttributeLoad NameLoad attr If BoolOpAnd NameLoad Call NameLoad AttributeLoad NameLoad attr NameLoad CompareEq Call NameLoad AttributeLoad NameLoad attr Num body If BoolOpAnd Call NameLoad NameLoad Str CompareEq Call NameLoad AttributeLoad NameLoad attr Num body Assign NameStore Call Call AttributeLoad NameLoad attr Call NameLoad Call AttributeLoad AttributeLoad NameLoad attr attr SubscriptLoad AttributeLoad NameLoad attr Index Num Expr Call NameLoad AttributeLoad NameLoad attr NameLoad Assign NameStore AttributeLoad Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad attr Expr Call NameLoad BinOpAdd AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad Return NameLoad If BoolOpAnd NameLoad Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore Call AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num Assign NameStore ListLoad Call Call AttributeLoad NameLoad attr Call NameLoad Call AttributeLoad NameLoad attr NameLoad Expr Call NameLoad BinOpAdd AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad Return NameLoad decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore NameLoad While BoolOpAnd NameLoad AttributeLoad NameLoad attr body Assign NameStore NameLoad Assign NameStore Call AttributeLoad AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr attr AttributeLoad NameLoad attr If NameLoad body Assert CompareEq Call NameLoad NameLoad Num Assign NameStore SubscriptLoad NameLoad Index Num Assign NameStore NameLoad If AttributeLoad NameLoad attr body Assign NameStore Call AttributeLoad AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr attr AttributeLoad NameLoad attr If NameLoad body Assert CompareEq Call NameLoad NameLoad Num Assign NameStore SubscriptLoad NameLoad Index Num Assign NameStore NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str If UnaryOpNot Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Return Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Slice Num If CompareEq Call NameLoad NameLoad Num body Return ListLoad SubscriptLoad NameLoad Index Num decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body Expr Str If UnaryOpNot Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Return Assign NameStore ListLoad TryExcept body Assign NameStore Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num handlers ExceptHandler type NameLoad body Return For NameStore Call NameLoad Num Call NameLoad AttributeLoad NameLoad attr body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index NameLoad If BoolOpAnd Call NameLoad NameLoad AttributeLoad NameLoad attr CompareEq SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index NameLoad Num body Continue Expr Call AttributeLoad NameLoad attr NameLoad If CompareLt Call NameLoad NameLoad BinOpSub Call NameLoad AttributeLoad NameLoad attr Num body If CompareEq Call NameLoad NameLoad Num body Return Assign NameStore Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num If CompareNotEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Return Expr Call NameLoad AttributeLoad NameLoad attr NameLoad If CompareNotEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assert CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assert CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr NameLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Expr Call NameLoad AttributeLoad NameLoad attr NameLoad Return ListLoad NameLoad decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body Expr Str If BoolOpOr UnaryOpNot Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr CompareNotEq AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Num body Return Assign NameStore ListLoad SubscriptLoad AttributeLoad NameLoad attr Index Num For NameStore Call NameLoad Num Call NameLoad AttributeLoad NameLoad attr body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index NameLoad If BoolOpAnd AttributeLoad NameLoad attr Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr NameLoad AttributeLoad SubscriptLoad NameLoad Index Num attr Call NameLoad AttributeLoad AttributeLoad SubscriptLoad NameLoad Index Num attr attr NameLoad CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad SubscriptLoad NameLoad Index Num attr attr body Assign NameStore BinOpAdd AttributeLoad AttributeLoad SubscriptLoad NameLoad Index Num attr attr AttributeLoad AttributeLoad NameLoad attr attr Assign SubscriptStore NameLoad Index Num Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad Expr Call NameLoad AttributeLoad NameLoad attr SubscriptLoad NameLoad Index Num orelse Expr Call AttributeLoad NameLoad attr NameLoad If CompareLt Call NameLoad NameLoad BinOpSub Call NameLoad AttributeLoad NameLoad attr Num body Assign NameStore Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Expr Call NameLoad AttributeLoad NameLoad attr NameLoad Return ListLoad NameLoad decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body Expr Str If BoolOpAnd Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad NameLoad attr attr body Assign NameStore Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num keyword NameLoad If BoolOpAnd CompareIs Call NameLoad NameLoad AttributeLoad NameLoad attr CompareEq AttributeLoad NameLoad attr Num body If CompareEq NameLoad Num body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num orelse Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num If CompareNotEq AttributeLoad NameLoad attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr body Return NameLoad If CompareNotEq AttributeLoad NameLoad attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr body Assign NameStore Call AttributeLoad NameLoad attr NameLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr orelse Assign NameStore NameLoad If CompareNotEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr body Assign NameStore Call AttributeLoad NameLoad attr NameLoad ListComp SubscriptLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Index NameLoad comprehension NameStore Call NameLoad AttributeLoad NameLoad attr orelse Assign NameStore NameLoad Expr Call NameLoad BinOpAdd AttributeLoad NameLoad attr NameLoad NameLoad Return ListLoad NameLoad If CompareIs SubscriptLoad AttributeLoad NameLoad attr Index Num SubscriptLoad AttributeLoad NameLoad attr Index Num body If CompareEq AttributeLoad NameLoad attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr body Return ListLoad SubscriptLoad AttributeLoad NameLoad attr Index Num Assign NameStore Call AttributeLoad NameLoad attr NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num Expr Call NameLoad BinOpAdd AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Return ListLoad NameLoad Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num If BoolOpAnd AttributeLoad NameLoad attr Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr Call NameLoad AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr AttributeLoad NameLoad attr AttributeLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num attr Call NameLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num attr attr NameLoad CompareEq Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num Num CompareEq Call AttributeLoad NameLoad attr NameLoad Num CompareIs NameLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num body Assert CompareEq AttributeLoad NameLoad attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Return ListLoad NameLoad Return NameLoad Return NameLoad decorator_list Call NameLoad Str Str NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body Expr Str If CompareNotEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Return NameLoad For TupleStore NameStore NameStore Call NameLoad AttributeLoad NameLoad attr body If BoolOpAnd AttributeLoad NameLoad attr CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body Assign NameStore AttributeLoad NameLoad attr TryExcept body If CompareEq Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num keyword NameLoad Num body Assign NameStore BinOpAdd SubscriptLoad AttributeLoad NameLoad attr Slice NameLoad SubscriptLoad AttributeLoad NameLoad attr Slice BinOpAdd NameLoad Num Assign NameStore Call AttributeLoad NameLoad attr BinOpAdd NameLoad ListLoad SubscriptLoad AttributeLoad NameLoad attr Index Num Expr Call NameLoad AttributeLoad NameLoad attr NameLoad Assign NameStore ListLoad Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num Num NameLoad Assign AttributeStore AttributeLoad SubscriptLoad NameLoad Index Num attr attr NameLoad Expr Call NameLoad BinOpAdd AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad Return NameLoad handlers ExceptHandler type NameLoad body Pass TryExcept body If CompareEq Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num keyword NameLoad Num body Assign NameStore BinOpAdd SubscriptLoad AttributeLoad NameLoad attr Slice NameLoad SubscriptLoad AttributeLoad NameLoad attr Slice BinOpAdd NameLoad Num Assign NameStore Call AttributeLoad NameLoad attr BinOpAdd NameLoad ListLoad SubscriptLoad AttributeLoad NameLoad attr Index Num Expr Call NameLoad AttributeLoad NameLoad attr NameLoad Assign NameStore ListLoad Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Num Assign AttributeStore AttributeLoad SubscriptLoad NameLoad Index Num attr attr NameLoad Expr Call NameLoad BinOpAdd AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad Return NameLoad handlers ExceptHandler type NameLoad body Pass Return NameLoad decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body Expr Str If BoolOpAnd CompareNotEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr CompareNotEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Return NameLoad Assign NameStore AttributeLoad NameLoad attr If BoolOpAnd AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr CompareEq AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr AttributeLoad NameLoad attr body Assign NameStore AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr TryExcept body If CompareEq Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num Num body Assign NameStore Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num SubscriptLoad AttributeLoad NameLoad attr Index Num Expr Call NameLoad AttributeLoad NameLoad attr NameLoad Assign NameStore ListLoad Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num Num NameLoad Assign AttributeStore AttributeLoad SubscriptLoad NameLoad Index Num attr attr NameLoad Expr Call NameLoad BinOpAdd AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad Return NameLoad handlers ExceptHandler type NameLoad body Pass TryExcept body If CompareEq Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num Num body Assign NameStore Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num SubscriptLoad AttributeLoad NameLoad attr Index Num Expr Call NameLoad AttributeLoad NameLoad attr NameLoad Assign NameStore ListLoad Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Num Assign AttributeStore AttributeLoad SubscriptLoad NameLoad Index Num attr attr NameLoad Expr Call NameLoad BinOpAdd AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad Return NameLoad handlers ExceptHandler type NameLoad body Pass Return NameLoad decorator_list NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body Expr Str If Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body TryExcept body Assign NameStore Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num If CompareEq NameLoad Num body TryExcept body Assign NameStore Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num If CompareEq NameLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr body Return ListLoad SubscriptLoad AttributeLoad NameLoad attr Index Num orelse If CompareLt NameLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr body Return Return ListLoad SubscriptLoad AttributeLoad NameLoad attr Index Num orelse Return Assign NameStore AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Assign NameStore BinOpAdd BinOpMult ListLoad Str BinOpSub NameLoad NameLoad Call NameLoad NameLoad Assign NameStore Call AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr NameLoad Expr Call NameLoad BinOpAdd AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Return ListLoad NameLoad handlers ExceptHandler type NameLoad body Return handlers ExceptHandler type NameLoad body Return decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body Expr Str If Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body If CompareEq AttributeLoad AttributeLoad NameLoad attr attr Num body Assign TupleStore NameStore NameStore NameStore AttributeLoad NameLoad attr Assign NameStore Call NameLoad NameLoad Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num Num Assign NameStore Call NameLoad NameLoad Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index NameLoad SubscriptLoad NameLoad Index Num Expr Call NameLoad AttributeLoad NameLoad attr NameLoad Return ListLoad NameLoad decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body Expr Str If BoolOpAnd Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Call NameLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr AttributeLoad NameLoad attr CompareEq Call NameLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr Num body Assign NameStore Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr Index Num Assign NameStore Call AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr NameLoad Return ListLoad NameLoad decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body FunctionDef arguments args NameParam defaults body Expr Str If UnaryOpNot Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad body Return NameLoad Assign NameStore Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr Index Num SubscriptLoad AttributeLoad NameLoad attr Index Num If CompareEq AttributeLoad NameLoad attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr body Return ListLoad NameLoad orelse Return NameLoad decorator_list Call AttributeLoad NameLoad attr ListLoad NameLoad Return NameLoad decorator_list Expr Call NameLoad Call NameLoad AttributeLoad NameLoad attr keyword Str FunctionDef arguments args NameParam defaults body Expr Str If Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body If BoolOpAnd CompareEq AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Num CompareEq AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Num CompareEq AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr body Return ListLoad SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body Expr Str If BoolOpAnd Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Call NameLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr AttributeLoad NameLoad attr CompareEq Call NameLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr Num body Assign NameStore Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr Index Num SubscriptLoad AttributeLoad NameLoad attr Index Num Assign NameStore Call AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr NameLoad If CompareNotEq AttributeLoad NameLoad attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr body Assign NameStore Call AttributeLoad NameLoad attr NameLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Return ListLoad NameLoad decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr If Num body FunctionDef arguments args NameParam defaults body Expr Str If Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign TupleStore NameStore NameStore AttributeLoad NameLoad attr If BoolOpAnd CompareEq AttributeLoad NameLoad attr Num CompareEq Call AttributeLoad NameLoad attr NameLoad Num body Return ListLoad NameLoad decorator_list NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr If Num body FunctionDef arguments args NameParam defaults body If Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body If UnaryOpNot Call NameLoad AttributeLoad NameLoad attr Str body Return Assign TupleStore NameStore AttributeLoad NameLoad attr Assign NameStore SubscriptLoad AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr Index NameLoad FunctionDef arguments args NameParam defaults body TryExcept body Return Call AttributeLoad NameLoad attr NameLoad handlers ExceptHandler type TupleLoad NameLoad NameLoad name NameStore body Expr Call NameLoad NameLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num Return NameLoad decorator_list Expr Call NameLoad Str ListComp Call NameLoad NameLoad comprehension NameStore NameLoad decorator_list NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body Expr Str If CompareNotEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Return NameLoad Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num TryExcept body Assign NameStore SubscriptLoad ListComp NameLoad comprehension NameStore AttributeLoad NameLoad attr BoolOpAnd CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr BoolOpOr UnaryOpNot AttributeLoad NameLoad attr CompareNotEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr Index Num handlers ExceptHandler type NameLoad body Return NameLoad Assign NameStore ListLoad Assign NameStore NameLoad For NameStore AttributeLoad NameLoad attr body If BoolOpAnd AttributeLoad NameLoad attr CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body Assign TupleStore NameStore NameStore AttributeLoad AttributeLoad NameLoad attr attr If Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad NameLoad attr attr body Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore NameLoad Continue Expr Call AttributeLoad NameLoad attr NameLoad If UnaryOpNot NameLoad body Return NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad If Call NameLoad NameLoad AttributeLoad NameLoad attr body Return AttributeLoad AttributeLoad NameLoad attr attr orelse Return AttributeLoad AttributeLoad SubscriptLoad NameLoad Index Num attr attr decorator_list Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr Expr Call NameLoad NameLoad Expr Call NameLoad Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr keyword Str ClassDef bases AttributeLoad NameLoad attr body Expr Str FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam defaults NameLoad body Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad Assign AttributeStore NameLoad attr ListLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Call AttributeLoad AttributeLoad NameLoad attr attr TupleLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Return ListLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Str If Num body If CompareGt Call NameLoad AttributeLoad NameLoad attr Num body Return TupleLoad ListLoad NameLoad ListLoad If BoolOpOr CompareIs AttributeLoad NameLoad attr NameLoad CompareNotIn AttributeLoad AttributeLoad NameLoad attr attr ListLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr body If BoolOpAnd AttributeLoad NameLoad attr Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body Assign NameStore AttributeLoad NameLoad attr Assign NameStore AttributeLoad NameLoad attr Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num Assign NameStore BinOpAdd BinOpMult TupleLoad Str BinOpSub AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr If CompareEq AttributeLoad NameLoad attr NameLoad body Return Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num orelse Return TupleLoad ListLoad NameLoad ListLoad orelse Return TupleLoad ListLoad NameLoad ListLoad Assign NameStore ListLoad Assign NameStore ListLoad Assign NameStore AttributeLoad NameLoad attr Assign NameStore ListComp Call AttributeLoad NameLoad attr NameLoad comprehension NameStore AttributeLoad NameLoad attr If CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore Call NameLoad AttributeLoad NameLoad attr Call NameLoad Call AttributeLoad NameLoad attr Num NameLoad Assign NameStore Call NameLoad AttributeLoad NameLoad attr Call NameLoad Call AttributeLoad NameLoad attr Num NameLoad orelse If CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore BinOpAdd SubscriptLoad SubscriptLoad NameLoad Index Num Index Num SubscriptLoad SubscriptLoad NameLoad Index Num Index Num Assign NameStore BinOpAdd SubscriptLoad SubscriptLoad NameLoad Index Num Index Num SubscriptLoad SubscriptLoad NameLoad Index Num Index Num orelse If CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore SubscriptLoad SubscriptLoad NameLoad Index Num Index Num Assign NameStore SubscriptLoad SubscriptLoad NameLoad Index Num Index Num Return TupleLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Str Assign TupleStore NameStore NameStore TupleLoad Call NameLoad NameLoad Call NameLoad NameLoad If BoolOpAnd UnaryOpNot NameLoad UnaryOpNot NameLoad body Return Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr ListLoad ListLoad If UnaryOpNot NameLoad body If AttributeLoad NameLoad attr body Return Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad ListLoad orelse Assign NameStore ListLoad Call AttributeLoad NameLoad attr ListLoad ListLoad keyword NameLoad If UnaryOpNot NameLoad body If CompareEq NameLoad Num body Assert Call NameLoad SubscriptLoad NameLoad Index Num AttributeLoad NameLoad attr Return SubscriptLoad NameLoad Index Num orelse Return Call AttributeLoad NameLoad attr NameLoad Return Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad ListLoad Call AttributeLoad NameLoad attr NameLoad ListLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str If Call NameLoad NameLoad NameLoad body TryExcept body Return Call NameLoad NameLoad keyword NameLoad handlers ExceptHandler type NameLoad body Return NameLoad orelse Return NameLoad decorator_list NameLoad FunctionDef arguments args NameParam NameParam NameParam NameParam defaults body Expr Str Assign NameStore Call AttributeLoad NameLoad attr keyword NameLoad Call AttributeLoad NameLoad attr NameLoad NameLoad For TupleStore NameStore NameStore AttributeLoad NameLoad attr body Assign NameStore Call NameLoad NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults body Expr Str For NameStore Call NameLoad NameLoad body If CompareIn NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Return TupleLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam defaults NameLoad body Expr Str Assign TupleStore NameStore NameStore TupleLoad Call NameLoad NameLoad Call NameLoad NameLoad Assign TupleStore NameStore NameStore TupleLoad ListLoad ListLoad For NameStore NameLoad body Assign NameStore Call AttributeLoad NameLoad attr NameLoad If CompareIsNot NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad For NameStore NameLoad body Assign NameStore Call AttributeLoad NameLoad attr NameLoad If CompareIsNot NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad If BoolOpOr AttributeLoad NameLoad attr NameLoad body Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad keyword NameLoad keyword NameLoad orelse Assign NameStore ListLoad Call AttributeLoad NameLoad attr NameLoad NameLoad keyword NameLoad keyword NameLoad Assign NameStore ListComp Call AttributeLoad NameLoad attr NameLoad keyword AttributeLoad NameLoad attr comprehension NameStore NameLoad If BoolOpAnd NameLoad CompareEq Call NameLoad NameLoad Num CompareEq Call NameLoad NameLoad Num NameLoad body Assert CompareEq Call NameLoad NameLoad Num Assign NameStore Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index Num If BoolOpAnd CompareIsNot NameLoad NameLoad Call AttributeLoad AttributeLoad SubscriptLoad NameLoad Index Num attr attr AttributeLoad SubscriptLoad NameLoad Index Num attr NameLoad body Return TupleLoad NameLoad NameLoad Return TupleLoad BinOpAdd NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Assign NameStore AttributeLoad NameLoad attr If CompareNotIn NameLoad ListLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Return NameLoad Assert CompareEq Call NameLoad AttributeLoad NameLoad attr Num Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num For TupleStore NameStore NameStore AttributeLoad NameLoad attr body If CompareEq NameLoad Str body Continue While BoolOpAnd Call NameLoad Call NameLoad NameLoad Str NameLoad NameLoad CompareLtE Call NameLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Num body Assign NameStore SubscriptLoad SubscriptLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Index Num Index Num If CompareIn Call NameLoad NameLoad Str Str ListLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Return NameLoad Assign TupleStore NameStore NameStore Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num Assign TupleStore NameStore NameStore Call AttributeLoad NameLoad attr Call NameLoad NameLoad Call NameLoad NameLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam NameParam defaults body Return BoolOpAnd CompareEq Call NameLoad NameLoad Call NameLoad NameLoad Call NameLoad GeneratorExp Call AttributeLoad NameLoad attr CompareEq NameLoad NameLoad comprehension TupleStore NameStore NameStore Call NameLoad NameLoad NameLoad decorator_list If BoolOpAnd Call NameLoad NameLoad NameLoad Call NameLoad NameLoad NameLoad body Return NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad If CompareNotEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad NameLoad attr attr body Assign NameStore Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Call NameLoad NameLoad AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore Call NameLoad NameLoad Assert CompareEq CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr UnaryOpNot CompareNotEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr If UnaryOpNot CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore SubscriptLoad Call NameLoad NameLoad AttributeLoad NameLoad attr Index Num If CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign AttributeStore AttributeLoad NameLoad attr attr NameLoad Return ListLoad NameLoad orelse Expr Call AttributeLoad NameLoad attr Call AttributeLoad Str attr TupleLoad Str NameLoad Str NameLoad Str AttributeLoad NameLoad attr Str AttributeLoad NameLoad attr Return NameLoad decorator_list FunctionDef arguments args NameParam defaults body Return Call NameLoad NameLoad Str BinOpMod Str TupleLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam defaults NameLoad NameLoad body If BoolOpAnd UnaryOpNot NameLoad UnaryOpNot NameLoad body If NameLoad body Return ListLoad orelse Return Call AttributeLoad NameLoad attr Num If CompareIs NameLoad NameLoad body Assign NameStore Call AttributeLoad NameLoad attr ListComp AttributeLoad NameLoad attr comprehension NameStore BinOpAdd NameLoad NameLoad orelse Assign NameStore AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr Num keyword NameLoad Assign NameStore BinOpDiv Call NameLoad AttributeLoad NameLoad attr NameLoad NameLoad Call NameLoad AttributeLoad NameLoad attr NameLoad NameLoad If NameLoad body If Call AttributeLoad NameLoad attr CompareEq NameLoad Num body Return ListLoad orelse Return ListLoad NameLoad Return NameLoad decorator_list Assign NameStore Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad NameLoad Expr Call NameLoad NameLoad keyword Str FunctionDef arguments args NameParam defaults body If CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Return ListLoad Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Num keyword AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr Expr Call NameLoad NameLoad FunctionDef arguments args NameParam defaults body Expr Str If Call NameLoad AttributeLoad NameLoad attr TupleLoad AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr body Assign TupleStore NameStore AttributeLoad NameLoad attr If BoolOpAnd AttributeLoad NameLoad attr CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore ListComp Call AttributeLoad NameLoad attr comprehension NameStore NameLoad Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr If CompareEq Call NameLoad NameLoad Num body Return Assign NameStore ListComp NameLoad comprehension NameStore NameLoad UnaryOpNot Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr If CompareEq Call NameLoad NameLoad Num body Assign NameStore Num Assign NameStore Num orelse If CompareEq Call NameLoad NameLoad Num body Assign NameStore AttributeLoad SubscriptLoad NameLoad Index Num attr Assign NameStore Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index Num orelse Assign NameStore Call AttributeLoad NameLoad attr NameLoad Assign NameStore AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr NameLoad If BoolOpAnd Call NameLoad AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr CompareNotEq NameLoad Num body Assign NameStore ListComp BinOpPow NameLoad NameLoad comprehension NameStore NameLoad Assign NameStore NameLoad If CompareNotEq NameLoad Num body Expr Call AttributeLoad NameLoad attr NameLoad If CompareEq Call NameLoad NameLoad Num body Return NameLoad orelse Return ListLoad Call AttributeLoad NameLoad attr NameLoad If BoolOpAnd Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body Return ListLoad Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num decorator_list NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr FunctionDef arguments args NameParam defaults body Expr Str If BoolOpAnd Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr CompareEq AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr Num CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr CompareEq SubscriptLoad AttributeLoad NameLoad attr Index Num SubscriptLoad AttributeLoad NameLoad attr Index Num body Return ListLoad Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body Expr Str If UnaryOpNot Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Return If CompareNotEq AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr Num body Return If BoolOpAnd Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr TupleLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr CompareIs SubscriptLoad AttributeLoad NameLoad attr Index Num SubscriptLoad AttributeLoad NameLoad attr Index Num body Return ListLoad Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num keyword AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr If BoolOpAnd Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr TupleLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr CompareIs SubscriptLoad AttributeLoad NameLoad attr Index Num SubscriptLoad AttributeLoad NameLoad attr Index Num body Return ListLoad Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num keyword AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr If BoolOpAnd Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr TupleLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr CompareIs SubscriptLoad AttributeLoad NameLoad attr Index Num SubscriptLoad AttributeLoad NameLoad attr Index Num body Return ListLoad SubscriptLoad AttributeLoad NameLoad attr Index Num If BoolOpAnd Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Call NameLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr NameLoad CompareEq Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num keyword NameLoad Num body Return ListLoad Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num keyword AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr If BoolOpAnd Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Call NameLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr NameLoad CompareEq Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num keyword NameLoad Num body Return ListLoad Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num keyword AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr If BoolOpAnd Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Call NameLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr NameLoad CompareEq Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num keyword NameLoad Num body Return ListLoad SubscriptLoad AttributeLoad NameLoad attr Index Num If BoolOpAnd Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr CompareEq Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num keyword NameLoad Num AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Call NameLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr NameLoad body Return ListLoad SubscriptLoad AttributeLoad NameLoad attr Index Num If BoolOpAnd Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Call NameLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr NameLoad CompareEq Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num keyword NameLoad Num body Return ListLoad Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num keyword AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr If BoolOpAnd Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr CompareEq Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num keyword NameLoad Num AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Call NameLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr NameLoad body Return ListLoad Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num keyword AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr If BoolOpAnd Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Call NameLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr NameLoad Call NameLoad AttributeLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr attr AttributeLoad NameLoad attr Call NameLoad ListComp Call NameLoad BoolOpAnd AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr NameLoad comprehension NameStore AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr CompareEq Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num keyword NameLoad Num body Return ListLoad Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num keyword AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr If BoolOpAnd Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Call NameLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr NameLoad Call NameLoad AttributeLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr attr AttributeLoad NameLoad attr Call NameLoad ListComp Call NameLoad BoolOpAnd AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr NameLoad comprehension NameStore AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr CompareEq Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num keyword NameLoad Num body Return ListLoad Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num keyword AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Return decorator_list NameLoad NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body Expr Str If Call NameLoad AttributeLoad NameLoad attr TupleLoad AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr body Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr If CompareIs NameLoad NameLoad body Assign NameStore Call NameLoad Call NameLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num If BoolOpAnd AttributeLoad NameLoad attr CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body Assign TupleStore NameStore NameStore AttributeLoad AttributeLoad NameLoad attr attr If BoolOpAnd AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body Assign NameStore AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr Assign NameStore NameLoad For NameStore NameLoad body If BoolOpOr CompareLtE Call NameLoad NameLoad NameLoad CompareNotEq SubscriptLoad NameLoad Index NameLoad Str body Assign NameStore NameLoad Break If NameLoad body Expr Call AttributeLoad NameLoad attr Str If BoolOpAnd AttributeLoad NameLoad attr Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body Assign NameStore SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num Assign NameStore AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr Assign NameStore ListLoad Assign NameStore ListLoad For NameStore NameLoad body If BoolOpAnd CompareLt NameLoad Call NameLoad NameLoad CompareEq SubscriptLoad NameLoad Index NameLoad Str body Expr Call AttributeLoad NameLoad attr NameLoad orelse Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore ListLoad For NameStore NameLoad body Expr Call AttributeLoad NameLoad attr BinOpSub NameLoad Call NameLoad ListComp Num comprehension NameStore NameLoad CompareLt NameLoad NameLoad If CompareGt Call NameLoad NameLoad Num body Assign NameStore Call NameLoad GeneratorExp NameLoad comprehension TupleStore NameStore NameStore Call NameLoad NameLoad BoolOpOr CompareNotIn NameLoad NameLoad CompareNotEq NameLoad Str While BoolOpAnd CompareGt Call NameLoad NameLoad Num CompareEq SubscriptLoad NameLoad Index Num Str body Delete SubscriptDel NameLoad Index Num If Call NameLoad GeneratorExp CompareEq NameLoad NameLoad comprehension TupleStore NameStore NameStore Call NameLoad NameLoad body Assign NameStore NameLoad orelse Assign NameStore Call Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr NameLoad NameLoad If BoolOpAnd AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr Str If Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore Call AttributeLoad NameLoad attr NameLoad keyword NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad If CompareGt Call NameLoad NameLoad Num body Assign NameStore Call AttributeLoad NameLoad attr NameLoad keyword NameLoad orelse If Call NameLoad AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr body Assign NameStore Call AttributeLoad NameLoad attr NameLoad keyword NameLoad Assign NameStore AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr NameLoad BinOpPow NameLoad Call AttributeLoad NameLoad attr ListComp Call AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad attr NameLoad comprehension NameStore NameLoad If CompareGt Call NameLoad NameLoad Num body Assign NameStore Call AttributeLoad NameLoad attr NameLoad keyword NameLoad Return ListLoad NameLoad decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr FunctionDef arguments args NameParam defaults body Expr Str If BoolOpOr Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr Call NameLoad AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr body Assign NameStore IfExp Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr If CompareIs AttributeLoad AttributeLoad NameLoad attr attr NameLoad body Return If CompareEq Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad Call NameLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr body Return ListLoad Call Call NameLoad keyword NameLoad keyword AttributeLoad AttributeLoad NameLoad attr attr SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr FunctionDef arguments args NameParam defaults body Expr Str If BoolOpOr Call NameLoad AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore IfExp Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr Assign TupleStore NameStore AttributeLoad NameLoad attr Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr If CompareEq Call NameLoad AttributeLoad NameLoad attr Num body If BoolOpAnd AttributeLoad NameLoad attr Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad NameLoad attr attr body If BoolOpOr CompareIs AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr NameLoad CompareIs AttributeLoad AttributeLoad NameLoad attr attr NameLoad body Return ListLoad Call Call NameLoad NameLoad keyword NameLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num Assign NameStore Call NameLoad Call NameLoad AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr For NameStore AttributeLoad AttributeLoad NameLoad attr attr body Assign NameStore NameLoad For NameStore AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr body If CompareGtE NameLoad NameLoad body AugAssignAdd NameStore Num Assert CompareNotIn NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Assert CompareEq Call NameLoad NameLoad Call NameLoad BinOpAdd Call NameLoad AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore Call NameLoad Call NameLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num attr attr Assign NameStore ListComp NameLoad comprehension TupleStore NameStore NameStore Call NameLoad NameLoad CompareIn NameLoad AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr Assign NameStore ListComp NameLoad comprehension TupleStore NameStore NameStore Call NameLoad NameLoad CompareIn NameLoad AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore ListComp NameLoad comprehension NameStore Call NameLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num attr attr CompareNotIn NameLoad NameLoad If BoolOpAnd AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr CompareNotEq NameLoad NameLoad CompareEq Call NameLoad NameLoad Call NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr Str Assign NameStore Call NameLoad NameLoad keyword NameLoad Return ListLoad Call NameLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num decorator_list NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore ListLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad NameLoad attr attr FunctionDef arguments args NameParam defaults body Expr Str If BoolOpAnd Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Call NameLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr AttributeLoad NameLoad attr body Assign NameStore AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr If CompareNotEq Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num Num body Return If Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr TupleLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body If CompareNotEq Call NameLoad AttributeLoad NameLoad attr Num body Return orelse If UnaryOpNot Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr TupleLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Return orelse If CompareLtE Call NameLoad AttributeLoad NameLoad attr Num body Return Assign NameStore ListLoad For NameStore SubscriptLoad AttributeLoad NameLoad attr Slice Num body Assign NameStore AttributeLoad NameLoad attr If UnaryOpNot NameLoad body Return If BoolOpOr UnaryOpNot Call NameLoad AttributeLoad NameLoad attr NameLoad CompareNotEq AttributeLoad AttributeLoad NameLoad attr attr BinOpAdd TupleLoad Str Call NameLoad Call NameLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr body Return Expr Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num Assign NameStore Call Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr NameLoad If CompareNotEq AttributeLoad NameLoad attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr body Return Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr If CompareIs NameLoad NameLoad body Assign NameStore Call NameLoad Call NameLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr If BoolOpOr CompareNotEq Call NameLoad NameLoad Num CompareNotIn Num NameLoad body If AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr body Expr Call AttributeLoad NameLoad attr Str Return TryExcept body Assign NameStore Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num If CompareNotEq NameLoad SubscriptLoad NameLoad Index Num body Return handlers ExceptHandler type NameLoad body Return Return ListLoad NameLoad decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr NameLoad FunctionDef arguments args NameParam defaults body Expr Str If Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign TupleStore NameStore AttributeLoad NameLoad attr If CompareEq AttributeLoad NameLoad attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr body Return ListLoad NameLoad decorator_list Call NameLoad Str Call AttributeLoad NameLoad attr NameLoad FunctionDef arguments args NameParam defaults body Expr Str If Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign TupleStore NameStore AttributeLoad NameLoad attr Assign NameStore AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr If CompareIs AttributeLoad AttributeLoad NameLoad attr attr NameLoad body If Call NameLoad AttributeLoad NameLoad attr body Return ListLoad Call AttributeLoad Call AttributeLoad NameLoad attr attr NameLoad orelse Assign NameStore Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore ListComp NameLoad comprehension NameStore NameLoad SubscriptLoad AttributeLoad NameLoad attr Index NameLoad If NameLoad body Assign NameStore ListLoad Assign NameStore ListLoad Assign NameStore Num For NameStore Call NameLoad AttributeLoad NameLoad attr body If CompareNotIn NameLoad NameLoad body If CompareIn NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad AugAssignAdd NameStore Num Assign NameStore Call AttributeLoad NameLoad attr NameLoad If NameLoad body If CompareEq Call NameLoad AttributeLoad NameLoad attr AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr body Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad NameLoad attr attr keyword NameLoad orelse Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr keyword NameLoad Return ListLoad Call NameLoad NameLoad orelse Return ListLoad Call AttributeLoad NameLoad attr NameLoad decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr NameLoad FunctionDef arguments args NameParam defaults body Expr Str If BoolOpOr Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr Call NameLoad AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr body Assign TupleStore NameStore AttributeLoad NameLoad attr If BoolOpAnd AttributeLoad NameLoad attr Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body Assign NameStore SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num Assign NameStore SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Slice Num If BoolOpOr CompareIs AttributeLoad AttributeLoad NameLoad attr attr NameLoad CompareEq AttributeLoad AttributeLoad NameLoad attr attr Call NameLoad Call NameLoad AttributeLoad NameLoad attr body TryExcept body Assign NameStore Call NameLoad NameLoad Assert CompareEq AttributeLoad NameLoad attr Num If Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore BinOpMult SubscriptLoad Call AttributeLoad NameLoad attr Num Index Num Call AttributeLoad NameLoad attr NameLoad orelse Assign NameStore BinOpPow SubscriptLoad Call AttributeLoad NameLoad attr Num Index Num Call AttributeLoad NameLoad attr NameLoad Return ListLoad Call AttributeLoad NameLoad attr NameLoad keyword AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr handlers ExceptHandler type NameLoad body Pass orelse TryExcept body Assign NameStore Call NameLoad NameLoad Assert CompareEq AttributeLoad NameLoad attr Num Assign NameStore SubscriptLoad Call AttributeLoad NameLoad attr Num Index Num Assign NameStore ListComp SubscriptLoad NameLoad Index NameLoad comprehension NameStore Call NameLoad Call NameLoad NameLoad CompareIn NameLoad AttributeLoad AttributeLoad NameLoad attr attr If NameLoad body If Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body AugAssignMult NameStore Call AttributeLoad NameLoad attr NameLoad orelse Assign NameStore BinOpPow NameLoad Call AttributeLoad NameLoad attr NameLoad Return ListLoad Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad keyword AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr ListComp SubscriptLoad NameLoad Index NameLoad comprehension NameStore Call NameLoad Call NameLoad NameLoad CompareNotIn NameLoad AttributeLoad AttributeLoad NameLoad attr attr handlers ExceptHandler type NameLoad body Pass decorator_list NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr FunctionDef arguments args NameParam defaults body If CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body If BoolOpAnd AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr CompareEq AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr AttributeLoad NameLoad attr body Return ListLoad SubscriptLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr Index Num decorator_list NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body Expr Str If CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body If BoolOpAnd AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr CompareEq AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr AttributeLoad NameLoad attr body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num Assign TupleStore NameStore NameStore AttributeLoad AttributeLoad NameLoad attr attr If BoolOpAnd AttributeLoad NameLoad attr CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body If CompareEq Call NameLoad AttributeLoad NameLoad attr Num body Assign NameStore SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num Return ListLoad Call AttributeLoad NameLoad attr NameLoad NameLoad orelse If BoolOpAnd Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Call NameLoad NameLoad NameLoad body If CompareEq Call NameLoad AttributeLoad NameLoad attr Num body Assign NameStore UnaryOpUSub AttributeLoad NameLoad attr Return ListLoad Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body Expr Str If CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr For NameStore AttributeLoad NameLoad attr body TryExcept body Assign NameStore Call NameLoad NameLoad handlers ExceptHandler type NameLoad body Continue If CompareEq NameLoad Num body Return Call NameLoad Call AttributeLoad NameLoad attr Num keyword AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr Expr Call NameLoad NameLoad FunctionDef arguments args NameParam defaults body If BoolOpAnd CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr CompareEq Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num Num body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num Assign NameStore Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Slice Num ListLoad If CompareNotEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore Call AttributeLoad NameLoad attr NameLoad keyword AttributeLoad NameLoad attr If CompareNotEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore Call NameLoad NameLoad NameLoad AttributeLoad NameLoad attr Return ListLoad NameLoad orelse Return NameLoad decorator_list Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr Expr Call NameLoad NameLoad FunctionDef arguments args NameParam defaults body If CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Return ListLoad Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num Num orelse Return NameLoad decorator_list Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr Expr Call NameLoad NameLoad FunctionDef arguments args NameParam defaults body If CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num If CompareEq NameLoad Num body Return ListLoad Call NameLoad Num SubscriptLoad AttributeLoad NameLoad attr Index Num AttributeLoad NameLoad attr If CompareEq NameLoad Num body Return ListLoad Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num SubscriptLoad AttributeLoad NameLoad attr Index Num AttributeLoad NameLoad attr orelse Return NameLoad decorator_list Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr Expr Call NameLoad NameLoad FunctionDef arguments args NameParam defaults body Expr Str If CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body If CompareEq Call NameLoad AttributeLoad NameLoad attr Num body If CompareIs SubscriptLoad AttributeLoad NameLoad attr Index Num SubscriptLoad AttributeLoad NameLoad attr Index Num body Return ListLoad Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body Expr Str If CompareIn AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr body If BoolOpAnd Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr CompareEq AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Num body Return ListLoad Call AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr decorator_list NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body If CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num Assign NameStore Call AttributeLoad NameLoad attr NameLoad If BoolOpAnd CompareIsNot NameLoad NameLoad Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad NameLoad attr attr body Assign NameStore NameLoad If Call AttributeLoad NameLoad attr CompareEq NameLoad Num body Assign NameStore ListLoad Call AttributeLoad NameLoad attr NameLoad If Call AttributeLoad NameLoad attr CompareEq NameLoad Num body Assign NameStore ListLoad NameLoad If Call AttributeLoad NameLoad attr CompareEq NameLoad Num body Assign NameStore ListLoad Call AttributeLoad NameLoad attr NameLoad Call AttributeLoad NameLoad attr Num keyword NameLoad If Call AttributeLoad NameLoad attr CompareEq NameLoad Num body Assign NameStore ListLoad Call AttributeLoad NameLoad attr NameLoad If Call AttributeLoad NameLoad attr CompareEq NameLoad Num body Assign NameStore ListLoad Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad If Call AttributeLoad NameLoad attr CompareEq NameLoad Num body Assign NameStore ListLoad Call AttributeLoad NameLoad attr NameLoad If Call AttributeLoad NameLoad attr CompareEq NameLoad Num body Assign NameStore ListLoad Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad If NameLoad body Assign SubscriptStore NameLoad Index Num Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index Num NameLoad Assert CompareEq AttributeLoad SubscriptLoad NameLoad Index Num attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr TupleLoad NameLoad AttributeLoad NameLoad attr Return NameLoad orelse Return NameLoad decorator_list Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr Expr Call NameLoad NameLoad FunctionDef arguments args NameParam defaults body Expr Str If CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num Assign NameStore Call AttributeLoad NameLoad attr NameLoad If Call NameLoad NameLoad AttributeLoad NameLoad attr body Assert CompareEq AttributeLoad NameLoad attr Num TryExcept body Assign NameStore SubscriptLoad NameLoad Index Num handlers ExceptHandler type NameLoad body Pass If BoolOpAnd CompareIsNot NameLoad NameLoad Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad AttributeLoad NameLoad attr attr body Assign NameStore NameLoad If BoolOpAnd CompareEq Call NameLoad NameLoad Call NameLoad Call NameLoad NameLoad CompareLtE Call NameLoad NameLoad Num body Assign NameStore ListLoad NameLoad Assign NameStore ListLoad Call Call AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr Assign NameStore Call NameLoad NameLoad For NameStore Call NameLoad Call NameLoad Call AttributeLoad NameLoad attr NameLoad body Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index NameLoad Expr Call AttributeLoad NameLoad attr Call AttributeLoad AttributeLoad NameLoad attr attr SubscriptLoad NameLoad Index NameLoad Assign NameStore NameLoad Assign NameStore NameLoad While CompareGt NameLoad Num body Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr NameLoad If NameLoad body AugAssignMult NameStore SubscriptLoad NameLoad Index NameLoad AugAssignMult NameStore SubscriptLoad NameLoad Index NameLoad orelse Assign NameStore SubscriptLoad NameLoad Index NameLoad Assign NameStore SubscriptLoad NameLoad Index NameLoad AugAssignSub NameStore BinOpPow Num NameLoad If CompareGt Call NameLoad NameLoad Num body Assign NameStore Call AttributeLoad Call NameLoad Call AttributeLoad AttributeLoad NameLoad attr attr ListLoad SubscriptLoad NameLoad Index Num ListLoad NameLoad attr NameLoad If CompareLt NameLoad Num body Assign NameStore ListLoad Call AttributeLoad NameLoad attr NameLoad orelse Assign NameStore ListLoad NameLoad If NameLoad body Assign SubscriptStore NameLoad Index Num Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index Num NameLoad Assert CompareEq AttributeLoad SubscriptLoad NameLoad Index Num attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr TupleLoad NameLoad AttributeLoad NameLoad attr Return NameLoad decorator_list NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body Expr Str If CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore NameLoad Assign NameStore ListLoad Assign NameStore Num Assign NameStore Num For NameStore AttributeLoad NameLoad attr body While BoolOpAnd AttributeLoad NameLoad attr CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body AugAssignBitXor NameStore NameLoad Assign NameStore SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num AugAssignAdd NameStore Num Assign NameStore Call AttributeLoad NameLoad attr NameLoad If CompareEq NameLoad Num body AugAssignAdd NameStore Num orelse If CompareEq NameLoad Num body AugAssignAdd NameStore Num AugAssignBitXor NameStore NameLoad orelse If CompareEq NameLoad Num body Return ListLoad Call NameLoad Num SubscriptLoad AttributeLoad NameLoad attr Index Num AttributeLoad NameLoad attr orelse Expr Call AttributeLoad NameLoad attr NameLoad If CompareNotEq NameLoad AttributeLoad NameLoad attr body If NameLoad body If CompareEq Call NameLoad NameLoad Num body If NameLoad body Assign NameStore UnaryOpUSub SubscriptLoad NameLoad Index Num orelse Assign NameStore SubscriptLoad NameLoad Index Num orelse If BoolOpAnd NameLoad CompareEq NameLoad Num CompareEq NameLoad Num body Return orelse If NameLoad body Assign NameStore Call AttributeLoad NameLoad attr Num keyword AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Assign NameStore BinOpAdd ListLoad NameLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad Return ListLoad Call NameLoad NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num AttributeLoad NameLoad attr orelse If NameLoad body Return ListLoad Call NameLoad Num SubscriptLoad AttributeLoad NameLoad attr Index Num AttributeLoad NameLoad attr orelse Return ListLoad Call NameLoad Num SubscriptLoad AttributeLoad NameLoad attr Index Num AttributeLoad NameLoad attr decorator_list Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr Expr Call NameLoad NameLoad FunctionDef arguments args NameParam defaults body FunctionDef arguments args NameParam defaults body Assign NameStore Call NameLoad NameLoad AttributeLoad NameLoad attr Return NameLoad decorator_list If CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore ListLoad For NameStore AttributeLoad NameLoad attr body TryExcept body Assign NameStore Call NameLoad NameLoad handlers ExceptHandler type NameLoad body Assign NameStore NameLoad If Call AttributeLoad NameLoad attr CompareEq NameLoad Num body Continue Expr Call AttributeLoad NameLoad attr NameLoad If CompareLt Call NameLoad NameLoad Call NameLoad AttributeLoad NameLoad attr body Assign NameStore AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr If CompareEq Call NameLoad NameLoad Num body Assign NameStore AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr Assign NameStore Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr BinOpMult TupleLoad Num NameLoad keyword NameLoad Assert CompareEq AttributeLoad AttributeLoad NameLoad attr attr BinOpMult TupleLoad NameLoad NameLoad Return Call NameLoad NameLoad If CompareEq Call NameLoad NameLoad Num body Assign NameStore Call NameLoad SubscriptLoad NameLoad Index Num orelse Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr NameLoad If CompareNotEq AttributeLoad SubscriptLoad NameLoad Index Num attr NameLoad body Assign NameStore ListLoad Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index Num NameLoad Return NameLoad orelse Return NameLoad decorator_list Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr Expr Call NameLoad NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad keyword Str FunctionDef arguments args NameParam NameParam defaults body Expr Str For NameStore Call NameLoad NameLoad body If BoolOpAnd AttributeLoad NameLoad attr CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr CompareIn SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num NameLoad body If Call AttributeLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num attr attr attr Str body Pass orelse Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num Return TupleLoad NameLoad NameLoad decorator_list Expr Call AttributeLoad NameLoad attr NameLoad Str FunctionDef arguments args NameParam defaults body Expr Str If BoolOpAnd CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr body Assert CompareEq AttributeLoad NameLoad attr Num If CompareEq AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr AttributeLoad NameLoad attr body Return ListLoad Call AttributeLoad NameLoad attr ListComp Call AttributeLoad NameLoad attr NameLoad comprehension NameStore AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr If CompareEq AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr AttributeLoad NameLoad attr body Assign NameStore AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr Return ListLoad Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index Num Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index Num decorator_list NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body Expr Str If BoolOpAnd CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr CompareGt Call NameLoad ListComp CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr comprehension NameStore AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num body Assign NameStore ListLoad For NameStore AttributeLoad NameLoad attr body If BoolOpAnd AttributeLoad NameLoad attr CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num orelse If Call NameLoad NameLoad NameLoad body TryExcept body Assign NameStore Call NameLoad NameLoad handlers ExceptHandler type NameLoad body Return NameLoad If UnaryOpNot Call AttributeLoad CompareGtE NameLoad Num attr body Return NameLoad Expr Call AttributeLoad NameLoad attr NameLoad orelse Return NameLoad Return ListLoad Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad If BoolOpAnd CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr CompareEq Call NameLoad ListComp CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr comprehension NameStore AttributeLoad NameLoad attr AttributeLoad NameLoad attr Num body Return ListLoad Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr Index Num SubscriptLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr Index Num decorator_list NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body If CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign TupleStore NameStore AttributeLoad NameLoad attr If BoolOpAnd AttributeLoad NameLoad attr CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body Assign TupleStore NameStore NameStore NameStore Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr If BoolOpAnd NameLoad Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad Num body If UnaryOpNot NameLoad body Pass If CompareEq Call NameLoad NameLoad Num body Return Call NameLoad Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index Num NameLoad orelse Return Call NameLoad Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr NameLoad NameLoad decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body If CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num If BoolOpAnd AttributeLoad NameLoad attr CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr If CompareNotEq Call NameLoad NameLoad Num body Return Assign NameStore ListComp SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num comprehension NameStore NameLoad BoolOpAnd AttributeLoad NameLoad attr CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr If CompareEq Call NameLoad NameLoad Call NameLoad NameLoad body Assign NameStore Call AttributeLoad NameLoad attr NameLoad Assign NameStore BinOpAdd NameLoad Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr ListComp BinOpSub NameLoad NameLoad comprehension NameStore NameLoad Assign AttributeStore AttributeLoad NameLoad attr attr NameLoad Return ListLoad NameLoad decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam NameParam NameParam NameParam defaults NameLoad NameLoad body If CompareIs NameLoad NameLoad body Assign NameStore Num orelse Assign NameStore Call AttributeLoad NameLoad attr Num keyword AttributeLoad NameLoad attr Assign NameStore BinOpSub Call NameLoad AttributeLoad NameLoad attr NameLoad NameLoad Call NameLoad AttributeLoad NameLoad attr NameLoad NameLoad If NameLoad body If Call AttributeLoad NameLoad attr CompareEq NameLoad Num body Return ListLoad orelse Return ListLoad NameLoad Return NameLoad decorator_list Assign NameStore Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad keyword Str Expr Call NameLoad NameLoad keyword Str FunctionDef arguments args NameParam NameParam NameParam NameParam NameParam NameParam defaults Num body Assign NameStore Num Assign NameStore BinOpAdd Call NameLoad NameLoad BinOpMult NameLoad Call NameLoad NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr ListComp TupleLoad BinOpAdd NameLoad NameLoad BinOpAdd NameLoad NameLoad NameLoad comprehension TupleStore NameStore NameStore NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr ListComp TupleLoad BinOpAdd NameLoad NameLoad BinOpAdd NameLoad NameLoad NameLoad comprehension TupleStore NameStore NameStore NameLoad For TupleStore TupleStore NameStore NameStore TupleStore NameStore NameStore Call NameLoad BinOpAdd NameLoad NameLoad BinOpAdd NameLoad NameLoad body AugAssignAdd NameStore BinOpSub BinOpSub BinOpAdd Call NameLoad NameLoad BinOpMult NameLoad Call NameLoad NameLoad Call NameLoad NameLoad BinOpMult NameLoad Call NameLoad NameLoad If CompareLtE NameLoad NameLoad body Return TupleLoad NameLoad NameLoad NameLoad Return TupleLoad NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam NameParam defaults body Assign TupleStore NameStore NameStore Call AttributeLoad NameLoad attr NameLoad If BoolOpAnd CompareEq Call NameLoad NameLoad Num UnaryOpNot NameLoad body Return TupleLoad NameLoad NameLoad NameLoad NameLoad Assign NameStore Call NameLoad Call NameLoad AttributeLoad NameLoad attr NameLoad Assign NameStore Call NameLoad Call NameLoad AttributeLoad NameLoad attr NameLoad Assign NameStore NameLoad For NameStore Call NameLoad NameLoad body Assign TupleStore NameStore NameStore NameStore Call NameLoad NameLoad NameLoad ListLoad NameLoad ListLoad NameLoad If NameLoad body Assign NameStore NameLoad Expr Call AttributeLoad NameLoad attr NameLoad For NameStore Call NameLoad NameLoad body Assign TupleStore NameStore NameStore NameStore Call NameLoad NameLoad NameLoad ListLoad ListLoad NameLoad NameLoad If NameLoad body Assign NameStore NameLoad Expr Call AttributeLoad NameLoad attr NameLoad If UnaryOpNot NameLoad body Return TupleLoad NameLoad NameLoad NameLoad NameLoad orelse Return TupleLoad NameLoad Call AttributeLoad NameLoad attr Call NameLoad Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad Call NameLoad Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num Assign TupleStore NameStore NameStore Call AttributeLoad NameLoad attr NameLoad If BoolOpAnd CompareEq Call NameLoad NameLoad Num UnaryOpNot NameLoad body Return NameLoad Assign TupleStore NameStore NameStore TupleLoad ListLoad ListLoad Assign NameStore NameLoad Assign NameStore AttributeLoad NameLoad attr For NameStore Call NameLoad NameLoad body If CompareNotIn NameLoad NameLoad body Continue Expr Call AttributeLoad NameLoad attr NameLoad Assign TupleStore NameStore NameStore NameStore NameStore Call NameLoad NameLoad NameLoad NameLoad NameLoad AugAssignBitOr NameStore NameLoad Expr Call AttributeLoad NameLoad attr NameLoad For NameStore Call NameLoad NameLoad body If CompareNotIn NameLoad NameLoad body Continue Expr Call AttributeLoad NameLoad attr NameLoad Assign TupleStore NameStore NameStore NameStore NameStore Call NameLoad NameLoad NameLoad NameLoad NameLoad AugAssignBitOr NameStore NameLoad Expr Call AttributeLoad NameLoad attr NameLoad If UnaryOpNot NameLoad body Return NameLoad AugAssignAdd NameStore NameLoad AugAssignAdd NameStore NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad If UnaryOpNot CompareEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Return NameLoad Return ListLoad NameLoad decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body For NameStore AttributeLoad NameLoad attr body If UnaryOpNot Call NameLoad NameLoad NameLoad body Return NameLoad If UnaryOpNot Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad body Return NameLoad Assign NameStore Call NameLoad ListComp TupleLoad NameLoad ListLoad AttributeLoad NameLoad attr comprehension NameStore AttributeLoad NameLoad attr Assign NameStore Call NameLoad ListComp TupleLoad NameLoad ListLoad NameLoad comprehension NameStore AttributeLoad NameLoad attr For NameStore AttributeLoad NameLoad attr body Assign SubscriptStore NameLoad Index NameLoad ListLoad NameLoad Assign SubscriptStore NameLoad Index NameLoad ListLoad NameLoad If BoolOpAnd Call NameLoad AttributeLoad NameLoad attr Str Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad body Assign NameStore Call NameLoad AttributeLoad NameLoad attr Str NameLoad TryFinally body Assign AttributeStore AttributeLoad NameLoad attr attr NameLoad Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad NameLoad NameLoad ListLoad finalbody Assign AttributeStore AttributeLoad NameLoad attr attr NameLoad orelse Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad NameLoad NameLoad keyword ListLoad Assign NameStore Call NameLoad Assert UnaryOpNot NameLoad Assign NameStore ListLoad For NameStore AttributeLoad NameLoad attr body Assert SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num TupleLoad NameLoad SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num TryExcept body Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr handlers ExceptHandler type NameLoad body Assign NameStore NameLoad Assign NameStore Call NameLoad AttributeLoad NameLoad attr SubscriptLoad SubscriptLoad NameLoad Index NameLoad Index Num Expr Call NameLoad NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Return NameLoad decorator_list Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call NameLoad NameLoad keyword NameLoad keyword Str Expr Call NameLoad NameLoad Str keyword NameLoad Expr Call NameLoad NameLoad Str keyword NameLoad Expr Call NameLoad NameLoad Str keyword NameLoad FunctionDef arguments args NameParam defaults body Expr Str Return ListComp NameLoad comprehension TupleStore NameStore NameStore AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr CompareNotEq NameLoad Str decorator_list FunctionDef arguments args NameParam defaults body Expr Str Assign NameStore ListLoad For TupleStore NameStore NameStore AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr body If CompareNotEq NameLoad Str body For NameStore AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr ListComp NameLoad comprehension TupleStore NameStore NameStore AttributeLoad NameLoad attr CompareNotEq NameLoad Str Return NameLoad decorator_list Assign NameStore Call AttributeLoad NameLoad attr TupleLoad AttributeLoad NameLoad attr Num TupleLoad AttributeLoad NameLoad attr Str TupleLoad AttributeLoad NameLoad attr TupleLoad AttributeLoad NameLoad attr Str keyword NameLoad keyword Str keyword ListLoad AttributeLoad NameLoad attr keyword NameLoad Expr Call NameLoad NameLoad Expr Call NameLoad NameLoad Expr Call NameLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr TupleLoad AttributeLoad NameLoad attr Num TupleLoad AttributeLoad NameLoad attr Str TupleLoad AttributeLoad NameLoad attr Str keyword NameLoad keyword Str Expr Call NameLoad NameLoad Expr Call NameLoad NameLoad Expr Call NameLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr TupleLoad AttributeLoad NameLoad attr Num TupleLoad AttributeLoad NameLoad attr Num TupleLoad AttributeLoad NameLoad attr Str TupleLoad AttributeLoad NameLoad attr Str keyword NameLoad keyword Str Expr Call NameLoad NameLoad Expr Call NameLoad NameLoad Expr Call NameLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr TupleLoad AttributeLoad NameLoad attr Num TupleLoad AttributeLoad NameLoad attr TupleLoad AttributeLoad NameLoad attr Str TupleLoad AttributeLoad NameLoad attr Str keyword NameLoad keyword Str keyword ListLoad AttributeLoad NameLoad attr keyword NameLoad Expr Call NameLoad NameLoad Expr Call NameLoad NameLoad Expr Call NameLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr TupleLoad AttributeLoad NameLoad attr Num TupleLoad AttributeLoad NameLoad attr Str TupleLoad AttributeLoad NameLoad attr TupleLoad AttributeLoad NameLoad attr Str keyword NameLoad keyword Str keyword ListLoad AttributeLoad NameLoad attr keyword NameLoad Expr Call NameLoad NameLoad Expr Call NameLoad NameLoad Expr Call NameLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr TupleLoad AttributeLoad NameLoad attr Num TupleLoad AttributeLoad NameLoad attr Str TupleLoad AttributeLoad NameLoad attr Str keyword NameLoad keyword Str keyword ListLoad AttributeLoad NameLoad attr keyword NameLoad Expr Call NameLoad NameLoad Expr Call NameLoad NameLoad Expr Call NameLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr TupleLoad AttributeLoad NameLoad attr Num TupleLoad AttributeLoad NameLoad attr TupleLoad AttributeLoad NameLoad attr Str TupleLoad AttributeLoad NameLoad attr Str keyword NameLoad keyword Str keyword ListLoad AttributeLoad NameLoad attr keyword NameLoad Expr Call NameLoad NameLoad Expr Call NameLoad NameLoad Expr Call NameLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr TupleLoad AttributeLoad NameLoad attr Num TupleLoad AttributeLoad NameLoad attr Num TupleLoad AttributeLoad NameLoad attr Str TupleLoad AttributeLoad NameLoad attr Str keyword NameLoad keyword Str keyword ListLoad AttributeLoad NameLoad attr keyword NameLoad Expr Call NameLoad NameLoad Expr Call NameLoad NameLoad Expr Call NameLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr TupleLoad AttributeLoad NameLoad attr Num TupleLoad AttributeLoad NameLoad attr TupleLoad AttributeLoad NameLoad attr Str TupleLoad AttributeLoad NameLoad attr Str keyword NameLoad keyword Str keyword ListLoad AttributeLoad NameLoad attr keyword NameLoad Expr Call NameLoad NameLoad Expr Call NameLoad NameLoad Expr Call NameLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr TupleLoad AttributeLoad NameLoad attr Num TupleLoad AttributeLoad NameLoad attr TupleLoad AttributeLoad NameLoad attr Str TupleLoad AttributeLoad NameLoad attr Str keyword NameLoad keyword Str keyword ListLoad AttributeLoad NameLoad attr keyword NameLoad Expr Call NameLoad NameLoad Expr Call NameLoad NameLoad Expr Call NameLoad NameLoad Assign NameStore Call AttributeLoad NameLoad attr TupleLoad AttributeLoad NameLoad attr Num TupleLoad AttributeLoad NameLoad attr TupleLoad AttributeLoad NameLoad attr Num Str TupleLoad AttributeLoad NameLoad attr Str keyword NameLoad keyword Str keyword ListLoad AttributeLoad NameLoad attr keyword NameLoad Expr Call NameLoad NameLoad Expr Call NameLoad NameLoad Expr Call NameLoad NameLoad FunctionDef arguments args NameParam defaults body If CompareNotEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Return NameLoad If BoolOpOr UnaryOpNot AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr CompareNotEq AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr AttributeLoad NameLoad attr body Return NameLoad If Call NameLoad AttributeLoad NameLoad attr Str body Return NameLoad Assign AttributeStore AttributeLoad NameLoad attr attr NameLoad Assign NameStore SubscriptLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr Index Num Assign NameStore BinOpAdd BinOpSub BinOpSub UnaryOpUSub BinOpPow NameLoad Num Call AttributeLoad NameLoad attr NameLoad BinOpMult Num Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr BinOpSub BinOpAdd BinOpSub Num BinOpDiv Num BinOpMult Num BinOpPow NameLoad Num BinOpDiv Num BinOpMult Num BinOpPow NameLoad Num BinOpDiv Num BinOpMult Num BinOpPow NameLoad Num If BoolOpOr CompareEq AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Str CompareEq AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Str body Assign NameStore Num orelse If CompareEq AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr Str body Assign NameStore Num Assign NameStore Call AttributeLoad NameLoad attr CompareLt NameLoad NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Assign AttributeStore AttributeLoad NameLoad attr attr NameLoad Return ListLoad NameLoad decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam defaults body If CompareNotEq AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Return NameLoad If BoolOpOr UnaryOpNot AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr CompareNotEq AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr AttributeLoad NameLoad attr body Return NameLoad Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num Assign NameStore SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num If UnaryOpNot AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr body Return NameLoad If CompareNotEq AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr AttributeLoad NameLoad attr body Assign NameStore NameLoad Assign NameStore ListLoad If BoolOpOr UnaryOpNot AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr CompareNotEq AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr AttributeLoad NameLoad attr body Return NameLoad Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num orelse Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num Assign NameStore NameLoad For TupleStore NameStore NameStore Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr body If BoolOpAnd AttributeLoad NameLoad attr CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body Assign NameStore NameLoad Break If CompareEq Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr Num body Assign NameStore ListLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index BinOpSub Num NameLoad orelse Assign NameStore SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Slice Delete SubscriptDel NameLoad Index NameLoad Delete NameDel If UnaryOpNot AttributeLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num attr body Return NameLoad If CompareEq AttributeLoad AttributeLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num attr attr AttributeLoad NameLoad attr body Assign NameStore SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num If BoolOpOr UnaryOpNot AttributeLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num attr CompareNotEq AttributeLoad AttributeLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num attr attr AttributeLoad NameLoad attr body Return NameLoad Assign NameStore SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num Assign NameStore SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num orelse If CompareEq AttributeLoad AttributeLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num attr attr AttributeLoad NameLoad attr body Assign NameStore SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num FunctionDef arguments args NameParam defaults body Assign NameStore ListLoad For NameStore NameLoad body If BoolOpAnd AttributeLoad NameLoad attr CompareEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr orelse Expr Call AttributeLoad NameLoad attr NameLoad Return NameLoad decorator_list Assign NameStore Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr For NameStore Call NameLoad Call NameLoad NameLoad body If Call NameLoad NameLoad NameLoad body If CompareEq NameLoad Num body Break orelse Assign NameStore SubscriptLoad NameLoad Index Num Assign SubscriptStore NameLoad Index Num SubscriptLoad NameLoad Index NameLoad Assign SubscriptStore NameLoad Index NameLoad NameLoad Break Assign NameStore Call AttributeLoad NameLoad attr NameLoad TryExcept body Assign NameStore Call NameLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num handlers ExceptHandler type NameLoad body Return NameLoad If CompareEq Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr Num body If BoolOpOr UnaryOpNot AttributeLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num attr CompareNotEq AttributeLoad AttributeLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num attr attr AttributeLoad NameLoad attr body Return NameLoad Assign NameStore SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num Assign NameStore SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num orelse If CompareEq Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr Num body If CompareIsNot SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num body Return NameLoad Assign NameStore SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num orelse Return NameLoad If CompareNotEq NameLoad Num body If BoolOpOr UnaryOpNot AttributeLoad NameLoad attr CompareNotEq AttributeLoad AttributeLoad NameLoad attr attr AttributeLoad NameLoad attr CompareNotEq Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr Num body Return NameLoad If CompareIsNot SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num body Return NameLoad Assign NameStore NameLoad TryExcept body Assign NameStore Call NameLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num handlers ExceptHandler type NameLoad body Return NameLoad If CompareNotEq NameLoad BinOpMult UnaryOpUSub NameLoad Num body Return NameLoad orelse If CompareIsNot NameLoad NameLoad body Return NameLoad orelse Return NameLoad If Call NameLoad AttributeLoad NameLoad attr Str body Return NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad Assign AttributeStore AttributeLoad AttributeLoad NameLoad attr attr attr NameLoad Assign NameStore BinOpMult BinOpMult NameLoad Call AttributeLoad NameLoad attr BinOpSub BinOpAdd BinOpSub Num BinOpDiv Num BinOpMult Num BinOpPow NameLoad Num BinOpDiv Num BinOpMult Num BinOpPow NameLoad Num BinOpDiv Num BinOpMult Num BinOpPow NameLoad Num Num Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr keyword AttributeLoad NameLoad attr If BoolOpOr CompareEq AttributeLoad NameLoad attr Str CompareEq AttributeLoad NameLoad attr Str body Assign NameStore Num orelse If CompareEq AttributeLoad NameLoad attr Str body Assign NameStore Num Assign NameStore Call AttributeLoad NameLoad attr CompareLt NameLoad NameLoad NameLoad NameLoad If NameLoad body Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad Assign AttributeStore AttributeLoad NameLoad attr attr NameLoad Return ListLoad NameLoad Expr Str decorator_list NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr FunctionDef arguments args NameParam NameParam NameParam defaults Lambda arguments args NameParam defaults Num NameLoad body Expr Str If CompareIs NameLoad NameLoad body FunctionDef arguments args NameParam NameParam defaults body Return Call NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str If CompareIsNot Call NameLoad AttributeLoad NameLoad attr NameLoad body Return NameLoad Assign NameStore ListLoad Assign NameStore ListLoad Assign NameStore ListLoad Assign NameStore Call NameLoad NameLoad Assign NameStore Call NameLoad AttributeLoad NameLoad attr Assign NameStore NameLoad For NameStore AttributeLoad NameLoad attr body Assign NameStore NameLoad Assign NameStore NameLoad Assign NameStore ListLoad Assign NameStore ListLoad If BoolOpAnd AttributeLoad NameLoad attr Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr NameLoad CompareEq Call NameLoad Call NameLoad ListComp NameLoad comprehension TupleStore NameStore NameStore AttributeLoad NameLoad attr Num CompareEq AttributeLoad SubscriptLoad AttributeLoad AttributeLoad NameLoad attr attr Index Num attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr body Assign NameStore NameLoad TryExcept body Assign NameStore ListLoad For NameStore AttributeLoad AttributeLoad NameLoad attr attr body If CompareIn NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index Call AttributeLoad NameLoad attr NameLoad orelse If CompareIn NameLoad NameLoad body Expr Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index Call AttributeLoad NameLoad attr NameLoad orelse Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr attr TryExcept body Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad If CompareGt AttributeLoad NameLoad attr Num body Assign AttributeStore AttributeLoad NameLoad attr attr SubscriptLoad Call AttributeLoad NameLoad attr Index Num orelse Assign AttributeStore AttributeLoad NameLoad attr attr NameLoad handlers ExceptHandler type NameLoad body Pass Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index Num Assign NameStore Call AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr keyword NameLoad NameLoad Expr Call AttributeLoad AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr attr AttributeLoad SubscriptLoad NameLoad Index Num attr Str ListComp Str comprehension NameStore AttributeLoad AttributeLoad NameLoad attr attr ListComp Str comprehension NameStore AttributeLoad AttributeLoad NameLoad attr attr Dict handlers ExceptHandler type NameLoad body Assign NameStore NameLoad ExceptHandler type NameLoad body Assign NameStore NameLoad If NameLoad body Expr Call AttributeLoad NameLoad attr BinOpMod Str Call NameLoad AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr Assign NameStore NameLoad Assign NameStore BinOpSub BinOpAdd NameLoad Call NameLoad NameLoad Num For NameStore NameLoad body If CompareIn NameLoad AttributeLoad NameLoad attr body AugAssignSub NameStore Num If BoolOpAnd NameLoad CompareLtE NameLoad NameLoad body Assign NameStore NameLoad Assign NameStore NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad orelse If CompareEq Call AttributeLoad NameLoad attr NameLoad Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad body Assign NameStore SubscriptLoad NameLoad Index Call AttributeLoad NameLoad attr NameLoad orelse Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr attr TryExcept body If CompareNotEq AttributeLoad AttributeLoad NameLoad attr attr Str body Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr NameLoad If CompareGt AttributeLoad NameLoad attr Num body Assign AttributeStore AttributeLoad NameLoad attr attr SubscriptLoad Call AttributeLoad NameLoad attr Index Num handlers ExceptHandler type NameLoad body Pass Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad If UnaryOpNot NameLoad body Return NameLoad If BoolOpOr CompareNotEq NameLoad Call NameLoad NameLoad CompareNotEq Call NameLoad NameLoad Call NameLoad NameLoad body Raise Call NameLoad Str Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr keyword NameLoad NameLoad TryExcept body Expr Call AttributeLoad AttributeLoad AttributeLoad SubscriptLoad NameLoad Index Num attr attr attr AttributeLoad SubscriptLoad NameLoad Index Num attr Str ListComp Str comprehension NameStore NameLoad ListComp Str comprehension NameStore NameLoad Dict handlers ExceptHandler type NameLoad body Expr Call AttributeLoad NameLoad attr BinOpMod Str Call NameLoad AttributeLoad AttributeLoad SubscriptLoad NameLoad Index Num attr attr Return NameLoad ExceptHandler type NameLoad body Expr Call AttributeLoad NameLoad attr BinOpMod Str Call NameLoad AttributeLoad AttributeLoad SubscriptLoad NameLoad Index Num attr attr Return NameLoad Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad Assign NameStore AttributeLoad Call Call NameLoad NameLoad NameLoad NameLoad attr Assert CompareEq Call NameLoad AttributeLoad NameLoad attr Num Assert CompareEq AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr If CompareGt Call NameLoad AttributeLoad NameLoad attr NameLoad body Expr Call AttributeLoad NameLoad attr Str Return NameLoad While NameLoad body Assign NameStore Call NameLoad NameLoad If BoolOpAnd CompareIsNot NameLoad NameLoad CompareIsNot NameLoad NameLoad body Assert CompareEq Call NameLoad NameLoad Call NameLoad AttributeLoad NameLoad attr Assert CompareEq Call NameLoad NameLoad Num Assign NameStore AttributeLoad SubscriptLoad NameLoad Index Num attr orelse Break Return AttributeLoad NameLoad attr decorator_list Return NameLoad decorator_list FunctionDef arguments args NameParam defaults body If UnaryOpNot AttributeLoad AttributeLoad NameLoad attr attr body Return Num Return Num decorator_list Assign NameStore Call NameLoad AttributeLoad NameLoad attr NameLoad ClassDef bases NameLoad body Expr Str FunctionDef arguments args NameParam NameParam defaults body Expr Call AttributeLoad NameLoad attr NameLoad Assign AttributeStore NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Call AttributeLoad NameLoad attr Call AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam defaults body Assign NameStore NameLoad Assign NameStore Num Assign NameStore Num Assign NameStore Num Assign NameStore Num If AttributeLoad NameLoad attr body Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore AttributeLoad NameLoad attr While NameLoad body Assign NameStore Call AttributeLoad NameLoad attr Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr AugAssignAdd NameStore BinOpSub Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr Assign NameStore NameLoad For NameStore NameLoad body If CompareIn NameLoad AttributeLoad NameLoad attr body Assign NameStore Call AttributeLoad NameLoad attr NameLoad If NameLoad body Assert CompareEq Call NameLoad NameLoad Call NameLoad AttributeLoad NameLoad attr TryExcept body Expr Call AttributeLoad NameLoad attr Call NameLoad Call NameLoad AttributeLoad NameLoad attr NameLoad keyword AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore NameLoad AugAssignAdd NameStore Num handlers ExceptHandler type NameLoad body AugAssignAdd NameStore Num Pass AugAssignAdd NameStore Num If AttributeLoad NameLoad attr body Assign NameStore BinOpSub AttributeLoad AttributeLoad NameLoad attr attr NameLoad Assign NameStore BinOpSub AttributeLoad NameLoad attr NameLoad Assign NameStore Dict For TupleStore NameStore NameStore Call NameLoad AttributeLoad NameLoad attr body If CompareIn NameLoad NameLoad body Assign SubscriptStore NameLoad Index NameLoad BinOpSub NameLoad SubscriptLoad NameLoad Index NameLoad orelse Assign SubscriptStore NameLoad Index NameLoad NameLoad orelse Assign NameStore NameLoad Assign NameStore NameLoad Assign NameStore Dict Return TupleLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam NameParam defaults Num body Assign NameStore BinOpMult Str NameLoad Expr Call NameLoad NameLoad Str keyword NameLoad Expr Call NameLoad NameLoad Str SubscriptLoad NameLoad Index Num keyword NameLoad Expr Call NameLoad NameLoad Str SubscriptLoad NameLoad Index Num keyword NameLoad Expr Call NameLoad NameLoad Str SubscriptLoad NameLoad Index Num keyword NameLoad Expr Call NameLoad NameLoad Str SubscriptLoad NameLoad Index Num keyword NameLoad Expr Call NameLoad NameLoad Str SubscriptLoad NameLoad Index Num keyword NameLoad If CompareGt SubscriptLoad NameLoad Index Num Num body Expr Call NameLoad NameLoad Str keyword NameLoad For NameStore Call NameLoad Call NameLoad SubscriptLoad NameLoad Index Num keyword Lambda arguments args NameParam defaults SubscriptLoad NameLoad Index Num body If CompareGt SubscriptLoad NameLoad Index Num Num body Expr Call NameLoad NameLoad Expr Call NameLoad NameLoad Str SubscriptLoad NameLoad Index Num keyword NameLoad decorator_list NameLoad decorator_list FunctionDef arguments args NameParam defaults body Expr Str If BoolOpOr UnaryOpNot Call NameLoad AttributeLoad NameLoad attr NameLoad UnaryOpNot Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr TupleLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Return NameLoad Assign NameStore AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr For NameStore AttributeLoad NameLoad attr body If BoolOpAnd AttributeLoad NameLoad attr Call NameLoad AttributeLoad AttributeLoad NameLoad attr attr NameLoad Call NameLoad AttributeLoad AttributeLoad AttributeLoad NameLoad attr attr attr NameLoad body Assign NameStore Call NameLoad AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr NameLoad Assign NameStore Call AttributeLoad NameLoad attr BinOpAdd NameLoad AttributeLoad AttributeLoad NameLoad attr attr Expr Call NameLoad SubscriptLoad AttributeLoad NameLoad attr Index Num NameLoad Return ListLoad NameLoad decorator_list If AttributeLoad AttributeLoad NameLoad attr attr body Expr Call AttributeLoad NameLoad attr Str Assign NameStore Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr Str Call NameLoad NameLoad Num Str Str Expr Call AttributeLoad NameLoad attr Str Call NameLoad NameLoad Num Str Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr Str NameLoad Num Str Str Str Str orelse Expr Call AttributeLoad NameLoad attr Str Expr Call AttributeLoad AttributeLoad NameLoad attr attr Str Call NameLoad NameLoad Num Str Str Str Expr Call NameLoad Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr Str Str keyword Str Expr Call NameLoad Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr Str Str keyword Str Expr Call NameLoad Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr Str Str keyword Str FunctionDef arguments args NameParam defaults body If Call NameLoad AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr body Return AttributeLoad NameLoad attr decorator_list NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad AttributeLoad NameLoad attr attr FunctionDef arguments args NameParam defaults body If UnaryOpNot Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Return NameLoad If BoolOpOr UnaryOpNot AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr UnaryOpNot Call NameLoad AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr AttributeLoad NameLoad attr body Return NameLoad Assign NameStore AttributeLoad NameLoad attr Assign NameStore AttributeLoad AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr attr Assign NameStore SubscriptLoad NameLoad Slice Num Assign NameStore SubscriptLoad NameLoad Slice Num Assign NameStore SubscriptLoad NameLoad Slice Num Assign NameStore SubscriptLoad NameLoad Slice Num Assign NameStore Num For TupleStore NameStore NameStore Call NameLoad NameLoad NameLoad body If CompareNotEq NameLoad NameLoad body If BoolOpAnd Call NameLoad NameLoad NameLoad CompareEq AttributeLoad NameLoad attr Num body Pass orelse Assign SubscriptStore NameLoad Index BinOpSub Num NameLoad Call Call NameLoad Str NameLoad Call AttributeLoad NameLoad attr NameLoad NameLoad AugAssignAdd NameStore Num Return ListLoad Call AttributeLoad NameLoad attr SubscriptLoad NameLoad Index Num NameLoad decorator_list NameLoad NameLoad NameLoad Call AttributeLoad NameLoad attr ListLoad AttributeLoad NameLoad attr
N/A N/A 
Tensor optimizations addressing the ops in basic.py.
 __future__ print_function N/A logging N/A itertools N/A operator N/A sys N/A time N/A traceback N/A warnings N/A numpy N/A numpy N six.moves xrange N/A theano theano gof theano.compat izip six integer_types iteritems six.moves reduce theano.gof opt InconsistencyError TopoOptimizer graph theano.gof Variable Constant theano.gof.utils MethodNotDefined theano.gradient DisconnectedType theano.configparser config theano.tensor.elemwise Elemwise DimShuffle theano.tensor.subtensor get_idx_list get_canonical_form_slice Subtensor IncSubtensor make_constant AdvancedIncSubtensor1 AdvancedIncSubtensor AdvancedSubtensor1 advanced_subtensor advanced_subtensor1 advanced_inc_subtensor1 theano scalar theano.scalar basic theano.tensor basic T theano compile theano.compile.ops Shape_i theano.tensor.type values_eq_approx_remove_inf values_eq_approx_remove_nan values_eq_approx_remove_inf_nan theano.gof.opt Optimizer pre_constant_merge pre_greedy_local_optimizer theano.gof toolbox theano.tensor.basic get_scalar_constant_value ShapeError NotScalarConstantError six StringIO N/A _logger N/A N/A logging getLogger theano.tensor.opt copy_stack_trace N/A N/A from_var to_var N/A N/A N/A 
    Copies the stack trace from one or more tensor variables to
    one or more tensor variables.

    Parameters
    ----------
    from_var
        Tensor variable or list of tensor variables to copy stack traces from.
    to_var
        Tensor variable or list of tensor variables to copy stack traces to.

    Notes
    -----
    The stacktrace is assumed to be of the form of a list of lists
    of tuples. Each tuple contains the filename, line number, function name
    and so on. Each list of tuples contains the truples belonging to a
    particular variable.

     N/A tr N/A N/A N/A N/A type from_var list N/A N/A v from_var N/A N/A tr N/A getattr N/A v tag trace N/A N/A N/A tr N/A getattr N/A from_var tag trace N/A N/A N/A N/A type to_var list N/A N/A v to_var N/A N/A N/A N/A v tag trace N/A N/A getattr N/A v tag trace N/A tr N/A N/A N/A N/A to_var tag trace N/A N/A getattr N/A to_var tag trace N/A tr N/A out2in N/A N/A N/A local_opts kwargs N/A N/A WRITEME  N/A name N/A kwargs N/A N/A kwargs pop name None N/A N/A N/A len local_opts 1 N/A N/A local_opts N/A N/A opt LocalOptGroup local_opts N/A N/A N/A local_opts local_opts N/A N/A name N/A N/A name N/A local_opts __name__ N/A ret N/A N/A opt TopoOptimizer local_opts order out_to_in failure_callback N/A TopoOptimizer warn_inplace kwargs N/A name N/A N/A N/A ret __name__ name N/A ret N/A in2out N/A N/A N/A local_opts kwargs N/A N/A WRITEME  N/A name N/A kwargs N/A N/A kwargs pop name None N/A N/A N/A len local_opts 1 N/A N/A local_opts N/A N/A opt LocalOptGroup local_opts N/A N/A N/A local_opts local_opts N/A N/A name N/A N/A name N/A local_opts __name__ N/A ret N/A N/A opt TopoOptimizer local_opts order in_to_out failure_callback N/A TopoOptimizer warn_inplace kwargs N/A name N/A N/A N/A ret __name__ name N/A ret N/A _fill_chain N/A N/A new_out orig_inputs N/A N/A N/A i orig_inputs N/A N/A new_out N/A N/A T fill i new_out N/A N/A new_out N/A encompasses_broadcastable N/A N/A b1 b2 N/A N/A N/A 

    Parameters
    ----------
    b1
        The broadcastable attribute of a tensor type.
    b2
        The broadcastable attribute of a tensor type.

    Returns
    -------
    bool
        True if the broadcastable patterns b1 and b2 are such that b2 is
        broadcasted to b1's shape and not the opposite.

     N/A N/A N/A len b1 N/A len b2 N/A N/A False N/A b1 N/A b1 N/A N/A N/A len b2 N/A N/A N/A any N/A N/A v1 N/A v2 N/A N/A v1 v2 N/A zip b1 b2 N/A merge_broadcastables N/A N/A broadcastables N/A N/A N/A N/A N/A all bcast N/A bcast N/A zip broadcastables N/A scalarconsts_rest N/A N/A inputs N/A N/A N/A Partition a list of variables into two kinds:
    scalar constants, and the rest. N/A consts N/A N/A origconsts N/A N/A nonconsts N/A N/A i inputs N/A N/A N/A N/A v N/A get_scalar_constant_value i N/A N/A N/A consts append v N/A N/A N/A origconsts append i N/A N/A N/A NotScalarConstantError N/A N/A N/A N/A nonconsts append i N/A N/A consts origconsts nonconsts N/A broadcast_like N/A N/A value template fgraph dtype N/A None N/A N/A 
    Return a Variable with the same shape and dtype as the template,
    filled by broadcasting value through it. `value` will be cast as
    necessary.

     N/A value N/A N/A T as_tensor_variable value N/A N/A N/A value type N/A template type N/A N/A value N/A N/A template N/A fgraph variables N/A N/A N/A NotImplementedError broadcast_like currently requires the template Variable to be in the fgraph already N/A N/A hasattr fgraph shape_feature N/A N/A new_shape N/A N/A N/A fgraph shape_feature shape_of N/A template N/A N/A new_shape N/A template shape N/A N/A dtype None N/A N/A dtype N/A template dtype N/A rval N/A N/A T alloc N/A N/A T cast value dtype new_shape N/A N/A N/A rval broadcastable N/A template broadcastable N/A N/A rval N/A N/A T unbroadcast rval N/A i N/A i N/A xrange N/A rval ndim N/A N/A N/A rval broadcastable N/A i N/A N/A N/A template broadcastable N/A i N/A N/A N/A N/A rval type dtype dtype N/A N/A N/A N/A rval type broadcastable N/A template broadcastable N/A N/A N/A AssertionError N/A N/A N/A rval.type.broadcastable is  N/A str N/A N/A rval type broadcastable  but template.broadcastable is N/A str N/A template broadcastable N/A rval N/A inplace_elemwise_optimizer_op N/A N/A OP N/A N/A N/A 
    We parametrise it to make it work for Elemwise and GpuElemwise op.
     inplace_elemwise_optimizer N/A N/A fgraph N/A N/A N/A 
        Usage: inplace_elemwise_optimizer.optimize(fgraph)

        Attempts to replace all Broadcast ops by versions of them
        that operate inplace. It operates greedily: for each Broadcast
        Op that is encountered, for each output, tries each input to
        see if it can operate inplace on that input. If so, makes the
        change and go to the next output or Broadcast Op.

        Examples
        --------
        x + y + z -> x += y += z
        (x + y) * (x * y) -> (x += y) *= (x * y) or (x + y) *= (x *= y)

         N/A check_each_change N/A N/A config tensor insert_inplace_optimizer_validate_nb N/A N/A check_each_change -1 N/A N/A N/A N/A len N/A fgraph apply_nodes 500 N/A N/A check_each_change 10 N/A N/A check_each_change 1 N/A nb_change_no_validate 0 N/A chk N/A N/A fgraph checkpoint N/A N/A fgraph update_mapping N/A N/A update_outs N/A N/A N/A fgraph outputs N/A i N/A i N/A fgraph update_mapping N/A N/A update_outs N/A N/A node N/A list N/A N/A graph io_toposort N/A fgraph inputs N/A fgraph outputs N/A N/A op N/A node op N/A N/A N/A N/A type op OP N/A N/A N/A N/A N/A check_each_change 1 N/A all N/A N/A N/A getattr N/A o type ndim -1 0 N/A o N/A node outputs N/A N/A N/A baseline N/A op inplace_pattern N/A protected_inputs N/A N/A f protected N/A f N/A N/A node fgraph _features N/A isinstance f N/A N/A N/A theano compile function_module Supervisor N/A protected_inputs N/A sum protected_inputs N/A N/A N/A N/A protected_inputs extend N/A fgraph outputs N/A candidate_outputs N/A i N/A i N/A xrange N/A len N/A node outputs N/A i baseline N/A candidate_inputs N/A i N/A i N/A xrange N/A len N/A node inputs N/A N/A i N/A N/A baseline values N/A N/A isinstance N/A N/A node inputs N/A i Constant N/A N/A N/A fgraph destroyers N/A N/A node inputs N/A i N/A N/A N/A node inputs N/A i protected_inputs N/A verbose False N/A raised_warning N/A verbose N/A candidate_output candidate_outputs N/A N/A candidate_out_var N/A N/A node outputs N/A candidate_output N/A sorted_candidate_inputs candidate_inputs N/A N/A candidate_out_var update_outs N/A N/A updated_inputs N/A N/A N/A i f_out N/A enumerate N/A fgraph outputs N/A N/A N/A N/A f_out candidate_out_var N/A i N/A fgraph update_mapping N/A N/A updated_inp_idx N/A N/A fgraph update_mapping N/A i N/A N/A N/A updated_inputs append N/A N/A fgraph inputs N/A updated_inp_idx N/A updated_vars N/A N/A vars_from_inplace N/A N/A other_vars N/A N/A inp_idx candidate_inputs N/A N/A inp N/A N/A node inputs N/A inp_idx N/A N/A inp updated_inputs N/A N/A N/A N/A updated_vars append inp_idx N/A N/A N/A N/A hasattr fgraph destroy_handler N/A inp owner N/A any N/A N/A N/A N/A N/A N/A fgraph destroy_handler root_destroyer get up_inp None N/A inp owner N/A up_inp updated_inputs N/A N/A N/A N/A vars_from_inplace append inp_idx N/A N/A N/A N/A other_vars append inp_idx N/A sorted_candidate_inputs N/A N/A updated_vars vars_from_inplace other_vars N/A candidate_input sorted_candidate_inputs N/A N/A N/A N/A N/A N/A node inputs N/A candidate_input type N/A N/A N/A node outputs N/A candidate_output type N/A N/A N/A inplace_pattern N/A dict baseline N/A N/A inplace_pattern N/A candidate_output candidate_input N/A N/A N/A N/A hasattr N/A op scalar_op make_new_inplace N/A N/A new_scal N/A N/A N/A op scalar_op make_new_inplace N/A N/A scalar transfer_type N/A N/A N/A inplace_pattern get i N/A o dtype N/A N/A i o N/A enumerate N/A node outputs N/A N/A new_scal N/A N/A N/A op scalar_op __class__ N/A N/A scalar transfer_type N/A N/A N/A inplace_pattern get i None N/A i N/A xrange N/A len N/A node outputs N/A new_outputs N/A N/A OP new_scal inplace_pattern N/A node inputs N/A dict return_list True N/A new_node N/A N/A new_outputs N/A 0 owner N/A N/A r new_r N/A zip N/A node outputs new_outputs N/A N/A N/A N/A fgraph replace r new_r reason inplace_elemwise_optimizer N/A nb_change_no_validate 1 N/A N/A nb_change_no_validate check_each_change N/A N/A N/A N/A fgraph validate N/A chk N/A N/A fgraph checkpoint N/A nb_change_no_validate 0 N/A N/A N/A N/A ValueError InconsistencyError N/A e N/A N/A N/A N/A check_each_change 1 N/A raised_warning N/A N/A N/A print Some inplace optimization was not performed due to unexpected error: file N/A sys stderr N/A N/A print e file N/A sys stderr N/A raised_warning True N/A N/A N/A fgraph revert chk N/A N/A N/A N/A candidate_inputs remove candidate_input N/A node new_node N/A baseline inplace_pattern N/A N/A N/A nb_change_no_validate 0 N/A N/A N/A N/A N/A N/A fgraph validate N/A N/A N/A Exception N/A N/A N/A raised_warning N/A N/A N/A print Some inplace optimization was not performed due to unexpected error file N/A sys stderr N/A N/A N/A fgraph revert chk N/A N/A gof inplace_optimizer N/A inplace_elemwise_optimizer N/A N/A inplace_elemwise_optimizer N/A inplace_elemwise_optimizer_op N/A T Elemwise N/A N/A N/A N/A compile optdb register inplace_elemwise_opt inplace_elemwise_optimizer 75 inplace_opt inplace_elemwise_optimizer fast_run inplace register_canonicalize N/A N/A lopt N/A tags kwargs N/A N/A N/A N/A type lopt str N/A register N/A N/A inner_lopt N/A N/A N/A N/A register_canonicalize inner_lopt lopt tags kwargs N/A N/A register N/A N/A name N/A N/A N/A kwargs pop name None N/A lopt __name__ N/A N/A N/A N/A N/A compile optdb N/A canonicalize register name lopt fast_run tags kwargs N/A lopt N/A register_stabilize N/A N/A lopt N/A tags kwargs N/A N/A N/A N/A type lopt str N/A register N/A N/A inner_lopt N/A N/A N/A N/A register_stabilize inner_lopt lopt tags kwargs N/A N/A register N/A N/A name N/A N/A N/A kwargs pop name None N/A lopt __name__ N/A N/A N/A N/A N/A compile optdb N/A stabilize register name lopt fast_run tags kwargs N/A lopt N/A register_specialize N/A N/A lopt N/A tags kwargs N/A N/A N/A N/A type lopt str N/A register N/A N/A inner_lopt N/A N/A N/A N/A register_specialize inner_lopt lopt tags kwargs N/A N/A register N/A N/A name N/A N/A N/A kwargs pop name None N/A lopt __name__ N/A N/A N/A N/A N/A compile optdb N/A specialize register name lopt fast_run tags kwargs N/A lopt N/A register_uncanonicalize N/A N/A lopt N/A tags kwargs N/A N/A N/A N/A type lopt str N/A register N/A N/A inner_lopt N/A N/A N/A N/A register_uncanonicalize inner_lopt lopt tags kwargs N/A N/A register N/A N/A name N/A N/A kwargs N/A N/A kwargs pop name N/A lopt __name__ N/A N/A N/A N/A N/A compile optdb N/A uncanonicalize register name lopt fast_run tags N/A lopt N/A register_specialize_device N/A N/A lopt N/A tags kwargs N/A N/A N/A N/A type lopt str N/A register N/A N/A inner_lopt N/A N/A N/A N/A register_specialize_device inner_lopt lopt tags kwargs N/A N/A register N/A N/A name N/A N/A kwargs N/A N/A kwargs pop name N/A lopt __name__ N/A N/A N/A N/A N/A compile optdb N/A specialize_device register name lopt fast_run tags N/A lopt N/A local_0_dot_x N/A N/A node N/A N/A N/A N/A N/A isinstance N/A node op N/A T Dot N/A N/A False N/A x N/A N/A node inputs N/A 0 N/A y N/A N/A node inputs N/A 1 N/A replace False N/A N/A N/A N/A N/A get_scalar_constant_value x 0 N/A N/A replace True N/A N/A N/A NotScalarConstantError N/A N/A N/A N/A N/A N/A N/A get_scalar_constant_value y 0 N/A N/A replace True N/A N/A N/A NotScalarConstantError N/A N/A N/A replace N/A N/A constant_zero N/A N/A T constant 0 dtype N/A N/A N/A N/A node outputs N/A 0 type dtype N/A N/A N/A N/A x ndim 2 N/A N/A y ndim 2 N/A N/A constant_zero N/A assert_ constant_zero N/A N/A T eq N/A N/A x shape N/A 1 N/A N/A y shape N/A 0 N/A N/A N/A N/A T alloc constant_zero N/A N/A x shape N/A 0 N/A N/A y shape N/A 1 N/A N/A N/A N/A N/A x ndim 1 N/A N/A y ndim 2 N/A N/A constant_zero N/A assert_ constant_zero N/A N/A T eq N/A N/A x shape N/A 0 N/A N/A y shape N/A 0 N/A N/A N/A N/A T alloc constant_zero N/A N/A y shape N/A 1 N/A N/A N/A N/A N/A x ndim 2 N/A N/A y ndim 1 N/A N/A constant_zero N/A assert_ constant_zero N/A N/A T eq N/A N/A x shape N/A 1 N/A N/A y shape N/A 0 N/A N/A N/A N/A T alloc constant_zero N/A N/A x shape N/A 0 N/A N/A N/A N/A N/A x ndim 1 N/A N/A y ndim 1 N/A N/A constant_zero N/A assert_ constant_zero N/A N/A T eq N/A N/A x shape N/A 0 N/A N/A y shape N/A 0 N/A N/A constant_zero N/A N/A N/A N/A _logger warning Optimization Warning: Optimization theano/opt.py:local_0_dot_x Found that it could apply, but was not implemented for dot product with these input types:
(%s, %s) N/A x type N/A y type N/A register_canonicalize register_stabilize N/A N/A gof local_optimizer N/A N/A T Dot apply_local_dimshuffle_lift N/A N/A var N/A N/A N/A N/A N/A var owner N/A N/A var N/A new N/A N/A local_dimshuffle_lift transform N/A var owner N/A new N/A N/A N/A new N/A 0 N/A var N/A local_dimshuffle_lift N/A N/A node N/A N/A N/A 
    "Lifts" DimShuffle through Elemwise operations and merges
    consecutive DimShuffles. Basically, applies the following
    transformations on the whole graph:

    DimShuffle(Elemwise(x, y)) => Elemwise(DimShuffle(x), DimShuffle(y))
    DimShuffle(DimShuffle(x)) => DimShuffle(x)
    DimShuffle{0,1,...}(x) => x (when the dimshuffle do nothing)

    After this transform, clusters of Elemwise operations are
    void of DimShuffle operations.

     N/A op N/A node op N/A N/A N/A isinstance op DimShuffle N/A N/A False N/A input N/A N/A node inputs N/A 0 N/A inode N/A input owner N/A N/A inode N/A isinstance N/A inode op Elemwise N/A N/A len N/A input clients 1 N/A N/A new_inputs N/A N/A inp N/A inode inputs N/A N/A new_inp N/A N/A N/A op __class__ N/A N/A inp type broadcastable N/A op new_order N/A op inplace inp N/A N/A N/A new_inputs append N/A apply_local_dimshuffle_lift new_inp N/A N/A copy_stack_trace N/A N/A node outputs N/A 0 new_inputs N/A ret N/A N/A inode op new_inputs N/A dict return_list True N/A ret N/A N/A inode N/A isinstance N/A inode op DimShuffle N/A N/A new_order N/A N/A N/A N/A x x x N/A N/A N/A inode op new_order N/A x N/A x N/A op new_order N/A inplace N/A N/A op inplace N/A N/A inode op inplace N/A iinput N/A N/A inode inputs N/A 0 N/A N/A N/A new_order N/A list N/A range N/A len new_order N/A N/A len new_order N/A N/A iinput type ndim N/A N/A N/A iinput N/A N/A ret N/A N/A N/A op __class__ N/A N/A iinput type broadcastable new_order inplace iinput N/A ret N/A apply_local_dimshuffle_lift ret N/A N/A copy_stack_trace N/A N/A node outputs N/A 0 ret N/A N/A ret N/A N/A N/A gof local_optimizer N/A DimShuffle local_lift_transpose_through_dot N/A N/A node N/A N/A N/A 
    dot(x,y).T -> dot(y.T, x.T)

    These optimizations "lift" (propagate towards the inputs) DimShuffle
    through dot product.  It allows to put the graph in a more standard shape,
    and to later merge consecutive DimShuffles.

    The transformation should be apply whether or not the transpose is
    inplace.  The newly-introduced transpositions are not inplace, this will
    be taken care of in a later optimization phase.

     N/A N/A N/A N/A isinstance N/A node op N/A T DimShuffle N/A N/A N/A node op new_order N/A 1 0 N/A N/A False N/A N/A N/A N/A N/A N/A node inputs N/A 0 owner N/A isinstance N/A N/A N/A N/A node inputs N/A 0 owner op N/A T Dot N/A N/A False N/A N/A x y N/A N/A N/A N/A node inputs N/A 0 owner inputs N/A N/A N/A x ndim N/A y ndim 2 N/A N/A ret N/A N/A N/A T dot N/A y T N/A x T N/A N/A copy_stack_trace N/A N/A node inputs N/A 0 ret N/A ret N/A register_canonicalize N/A N/A gof local_optimizer N/A N/A T DimShuffle dimshuffle_as_view N/A N/A node N/A N/A N/A op N/A node op N/A N/A N/A N/A isinstance op DimShuffle N/A op inplace N/A N/A False N/A new_op N/A N/A op __class__ N/A op input_broadcastable N/A op new_order inplace True N/A v N/A new_op N/A node inputs N/A N/A copy_stack_trace N/A N/A node outputs N/A 0 v N/A N/A v N/A N/A N/A gof local_optimizer N/A DimShuffle N/A N/A N/A N/A compile optdb register dimshuffle_as_view N/A TopoOptimizer dimshuffle_as_view failure_callback N/A TopoOptimizer warn_inplace 60 fast_run inplace N/A N/A register_canonicalize local_dimshuffle_lift N/A N/A register_specialize local_dimshuffle_lift local_dimshuffle_no_inplace_at_canonicalize N/A N/A node N/A N/A N/A N/A N/A isinstance N/A node op N/A T DimShuffle N/A N/A node op inplace N/A N/A N/A N/A N/A N/A T DimShuffle N/A N/A node op input_broadcastable N/A N/A node op new_order inplace False N/A N/A node inputs N/A 0 N/A register_canonicalize N/A N/A gof local_optimizer N/A N/A T DimShuffle local_tensor_scalar_tensor N/A N/A node N/A N/A N/A tensor_from_scalar(scalar_from_tensor(x)) -> x N/A N/A isinstance N/A node op N/A T TensorFromScalar N/A N/A s N/A N/A node inputs N/A 0 N/A N/A N/A s owner N/A isinstance N/A N/A s owner op N/A T ScalarFromTensor N/A N/A t N/A N/A N/A s owner inputs N/A 0 N/A N/A t N/A register_canonicalize register_specialize N/A N/A gof local_optimizer N/A N/A T TensorFromScalar local_scalar_tensor_scalar N/A N/A node N/A N/A N/A scalar_from_tensor(tensor_from_scalar(x)) -> x N/A N/A isinstance N/A node op N/A T ScalarFromTensor N/A N/A t N/A N/A node inputs N/A 0 N/A N/A N/A t owner N/A isinstance N/A N/A t owner op N/A T TensorFromScalar N/A N/A s N/A N/A N/A t owner inputs N/A 0 N/A N/A s N/A register_canonicalize register_specialize N/A N/A gof local_optimizer N/A N/A T ScalarFromTensor MakeVector N/A N/A T Op N/A N/A Concatenate a number of scalars together into a vector.

    This is a simple version of stack() that introduces far less cruft
    into the graph. Should work with 0 inputs. The constant_folding
    optimization will remove it.

     N/A __props__ N/A dtype __init__ N/A N/A self dtype N/A int64 N/A N/A N/A self dtype dtype N/A make_node N/A N/A self N/A inputs N/A N/A inputs N/A list N/A map N/A T as_tensor_variable inputs N/A N/A N/A N/A all N/A N/A N/A a type N/A N/A inputs N/A 0 type N/A a inputs N/A N/A N/A len inputs 0 N/A N/A N/A inputs N/A 0 dtype N/A self dtype N/A N/A dtype N/A N/A N/A theano scalar upcast N/A self dtype N/A N/A i dtype N/A i inputs N/A N/A dtype N/A self dtype The upcast of the inputs to MakeVector should match the dtype given in __init__. N/A N/A N/A all N/A N/A N/A self dtype N/A N/A N/A T cast i dtype dtype dtype N/A i inputs N/A N/A N/A TypeError N/A MakeVector.make_node expected inputs upcastable to %s. got %s N/A N/A self dtype N/A str N/A N/A i dtype N/A i inputs N/A inputs N/A N/A N/A T cast i dtype dtype N/A i inputs N/A N/A all N/A N/A N/A self dtype N/A a dtype N/A a inputs N/A N/A all N/A N/A N/A a ndim 0 N/A a inputs N/A inputs N/A N/A dtype N/A N/A N/A inputs N/A 0 type dtype N/A N/A dtype N/A self dtype N/A bcastable False N/A otype N/A N/A T TensorType broadcastable N/A bcastable dtype dtype N/A N/A N/A T Apply self inputs N/A N/A otype N/A perform N/A N/A self node inputs out_ N/A N/A N/A N/A out out_ N/A N/A N/A N/A out N/A 0 None N/A N/A N/A out N/A 0 size N/A len inputs N/A N/A N/A out N/A 0 N/A N/A theano _asarray inputs dtype N/A N/A N/A node outputs N/A 0 dtype N/A N/A N/A N/A out N/A 0 N/A inputs N/A c_code_cache_version N/A N/A self N/A N/A N/A N/A 2 N/A c_code N/A N/A self node name inp out_ sub N/A N/A N/A N/A out out_ N/A out_shape N/A len inp N/A out_num N/A N/A N/A numpy dtype N/A N/A N/A node outputs N/A 0 dtype num N/A out_dtype N/A N/A N/A N/A N/A N/A node outputs N/A 0 type dtype_specs N/A 1 N/A N/A N/A len inp 0 N/A N/A N/A N/A self dtype N/A N/A N/A node inputs N/A 0 dtype N/A out_num N/A PyArray_TYPE(%s) N/A inp N/A 0 N/A ret N/A 
        npy_intp dims[1];
        dims[0] = %(out_shape)s;
        if(!%(out)s || PyArray_DIMS(%(out)s)[0] != %(out_shape)s){
            Py_XDECREF(%(out)s);
            %(out)s = (PyArrayObject*)PyArray_EMPTY(1, dims, %(out_num)s, 0);
        }
         N/A locals N/A N/A idx i N/A enumerate inp N/A N/A ret N/A 
            *((%(out_dtype)s *)PyArray_GETPTR1(%(out)s, %(idx)s)) = *((%(out_dtype)s *) PyArray_DATA(%(i)s));
             N/A locals N/A ret N/A infer_shape N/A N/A self node ishapes N/A N/A N/A N/A N/A N/A len ishapes N/A grad N/A N/A self inputs output_gradients N/A N/A N/A N/A int N/A self dtype N/A N/A N/A N/A N/A N/A N/A ipt zeros_like astype N/A N/A theano config floatX N/A ipt inputs N/A grads N/A N/A N/A i inp N/A enumerate inputs N/A N/A N/A N/A grads append N/A N/A output_gradients N/A 0 N/A i N/A grads N/A R_op N/A N/A self inputs eval_points N/A N/A N/A N/A None eval_points N/A N/A N/A None N/A N/A N/A N/A self make_node eval_points outputs N/A N/A N/A make_vector N/A MakeVector MakeVectorPrinter N/A N/A process N/A N/A self r pstate N/A N/A N/A N/A N/A r owner None N/A N/A N/A TypeError Can only print make_vector. N/A N/A N/A isinstance N/A N/A r owner op MakeVector N/A N/A N/A [%s] N/A N/A ,  join N/A N/A N/A N/A pstate pprinter process input N/A N/A pstate clone precedence 1000 N/A input N/A N/A r owner inputs N/A N/A N/A TypeError Can only print make_vector. N/A N/A N/A N/A N/A N/A T pprint assign N/A N/A N/A pstate r N/A N/A N/A r owner N/A isinstance N/A N/A r owner op MakeVector N/A MakeVectorPrinter ShapeFeature N/A object N/A N/A Graph optimizer for removing all calls to shape().

    This optimizer replaces all Shapes and Subtensors of Shapes with
    Shape_i and MakeVector Ops.

    This optimizer has several goals:

    1. to 'lift' Shapes to as close to the inputs as possible.

    2. to infer the shape of every node in the graph in terms of the
       input shapes.

    3. remove all fills (T.second, T.fill) from the graph

    Lifting shapes as close to the inputs as possible is important for
    canonicalization because it is very bad form to have to compute
    something just to know how big it will be.  Firstly, it is a waste
    of time to compute such outputs.  But it is important to get rid
    of these outputs as early as possible in the compilation process
    because the extra computations make it appear as if many internal
    graph nodes have multiple clients.  Many optimizations refuse to
    work on nodes with multiple clients.

    Lifting is done by using an `<Op>.infer_shape` function if one is
    present, or else using a conservative default.  An Op that
    supports shape-lifting should define a infer_shape(self, node,
    input_shapes) function.  The argument input_shapes is a tuple of
    tuples... there is an interior tuple for each input to the node.
    The tuple has as many elements as dimensions.  The element in
    position i of tuple j represents the i'th shape component of the
    j'th input.  The function should return a tuple of tuples.  One
    output tuple for each node.output.  Again, the i'th element of the
    j'th output tuple represents the output[j].shape[i] of the
    function.  If an output is not a TensorType, then None should be
    returned instead of a tuple for that output.

    For example the infer_shape for a matrix-matrix product would accept
    input_shapes=((x0,x1), (y0,y1)) and return ((x0, y1),).

    Inferring the shape of internal nodes in the graph is important
    for doing size-driven optimizations.  If we know how big various
    intermediate results will be, we can estimate the cost of many Ops
    accurately, and generate c-code that is specific [e.g. unrolled]
    to particular sizes.

    In cases where you cannot figure out the shape, raise a ShapeError.

    Notes
    -----
    Right now there is only the ConvOp that could really take
    advantage of this shape inference, but it is worth it even
    just for the ConvOp.  All that's necessary to do shape
    inference is 1) to mark shared inputs as having a particular
    shape, either via a .tag or some similar hacking; and 2) to
    add an optional In() argument to promise that inputs will
    have a certain shape (or even to have certain shapes in
    certain dimensions). We can't automatically infer the shape of
    shared variables as they can change of shape during the
    execution by default.  (NOT IMPLEMENTED YET, BUT IS IN TRAC)


    **Using Shape information in Optimizations**

    To use this shape information in OPTIMIZATIONS, use the
    ``shape_of`` dictionary.

    For example:

    .. code-block:: python

        try:
            shape_of = node.fgraph.shape_feature.shape_of
        except AttributeError:
            # This can happen when the mode doesn't include the ShapeFeature.
            return

        shape_of_output_zero = shape_of[node.output[0]]

    The ``shape_of_output_zero`` symbol will contain a tuple, whose
    elements are either integers or symbolic integers.

    TODO: check to see if the symbols are necessarily
    non-constant... or are integer literals sometimes Theano
    constants?? That would be confusing.

     get_node_infer_shape N/A N/A self node N/A N/A N/A N/A N/A shape_infer N/A N/A node op infer_shape N/A N/A N/A AttributeError N/A N/A shape_infer N/A self default_infer_shape N/A N/A N/A o_shapes N/A shape_infer node N/A N/A N/A self shape_of N/A r N/A r N/A node inputs N/A N/A N/A ShapeError N/A N/A o_shapes N/A N/A self default_infer_shape node N/A N/A N/A self shape_of N/A r N/A r N/A node inputs N/A N/A NotImplementedError N/A e N/A N/A N/A NotImplementedError N/A Code called by infer_shape failed raising a NotImplementedError. Raising NotImplementedError to indicate that a shape cannot be computed is no longer supported, and one should now use tensor.ShapeError instead. The original exception message is: %s e N/A N/A Exception N/A e N/A N/A msg N/A Failed to infer_shape from Op %s.
Input shapes: %s
Exception encountered during infer_shape: %s
Exception message: %s
Traceback: %s N/A N/A node op N/A N/A N/A self shape_of N/A r N/A r N/A node inputs N/A type e N/A str e N/A N/A traceback format_exc N/A N/A N/A config on_shape_error raise N/A N/A N/A Exception msg N/A N/A N/A N/A _logger warning msg N/A o_shapes N/A N/A self default_infer_shape node N/A N/A N/A self shape_of N/A r N/A r N/A node inputs N/A o_shapes N/A get_shape N/A N/A self var idx N/A N/A N/A  Optimization can call this to get the current shape_i

        It is better to call this then use directly shape_of[var][idx]
        as this method should update shape_of if needed.

        TODO: Up to now, we don't update it in all cases. Update in all cases.
         N/A r N/A N/A N/A self shape_of N/A var N/A idx N/A N/A N/A r owner N/A isinstance N/A N/A r owner op Shape_i N/A N/A N/A N/A r owner inputs N/A 0 N/A N/A var fgraph variables N/A N/A N/A var owner N/A node N/A var owner N/A i N/A node inputs N/A N/A N/A N/A getattr i ndim None 0 N/A N/A N/A N/A self get_shape i 0 N/A o_shapes N/A N/A self get_node_infer_shape node N/A N/A N/A len o_shapes N/A len N/A node outputs N/A N/A new_shps out N/A zip o_shapes N/A node outputs N/A N/A N/A N/A hasattr out ndim N/A N/A N/A merged_shps N/A list N/A N/A self shape_of N/A out N/A changed False N/A i N/A range N/A out ndim N/A N/A n_r N/A merged_shps N/A i N/A N/A N/A n_r owner N/A isinstance N/A N/A n_r owner op Shape_i N/A N/A N/A N/A n_r owner inputs N/A 0 N/A N/A var fgraph variables N/A N/A changed True N/A N/A merged_shps N/A i N/A new_shps N/A i N/A changed N/A N/A N/A N/A self set_shape out merged_shps override True N/A r N/A N/A N/A self shape_of N/A var N/A idx N/A r N/A shape_ir N/A N/A self i r N/A N/A N/A Return symbolic r.shape[i] for tensor variable r, int i. N/A N/A N/A hasattr N/A r type broadcastable N/A N/A N/A r type broadcastable N/A i N/A N/A N/A self lscalar_one N/A N/A s N/A N/A Shape_i i r N/A N/A N/A s N/A get_scalar_constant_value s N/A N/A N/A NotScalarConstantError N/A N/A N/A s N/A shape_tuple N/A N/A self r N/A N/A N/A Return a tuple of symbolic shape vars for tensor variable r. N/A N/A N/A hasattr r ndim N/A N/A None N/A N/A tuple N/A N/A N/A self shape_ir i r N/A i N/A xrange N/A r ndim N/A default_infer_shape N/A N/A self node i_shapes N/A N/A N/A Return a list of shape tuple or None for the outputs of node.

        This function is used for Ops that don't implement infer_shape.
        Ops that do implement infer_shape should use the i_shapes parameter,
        but this default implementation ignores it.

         N/A rval N/A N/A r N/A node outputs N/A N/A N/A N/A N/A N/A rval append N/A N/A self shape_tuple r N/A N/A N/A AttributeError N/A N/A N/A N/A rval append None N/A rval N/A unpack N/A N/A self s_i N/A N/A N/A Return a symbolic integer scalar for the shape element s_i.

        The s_i argument was produced by the infer_shape() of an Op subclass.

         N/A N/A s_i None N/A N/A s_i 1 N/A N/A N/A self lscalar_one N/A N/A N/A N/A type s_i integer_types N/A isinstance s_i N/A numpy integer N/A N/A isinstance s_i N/A numpy ndarray N/A N/A s_i ndim 0 N/A N/A N/A s_i 0 N/A N/A N/A T constant s_i dtype int64 N/A N/A N/A type s_i N/A tuple list N/A N/A N/A NotImplementedError s_i N/A N/A N/A s_i owner N/A isinstance N/A N/A s_i owner op Subtensor N/A N/A N/A N/A s_i owner inputs N/A 0 owner N/A isinstance N/A N/A N/A N/A N/A s_i owner inputs N/A 0 owner op N/A T Shape N/A N/A N/A N/A s_i ndim 0 N/A N/A N/A len N/A N/A N/A s_i owner op idx_list 1 N/A idx N/A get_idx_list N/A N/A s_i owner inputs N/A N/A N/A s_i owner op idx_list N/A N/A N/A len idx 1 N/A idx N/A idx N/A 0 N/A N/A N/A i N/A get_scalar_constant_value idx N/A N/A N/A NotScalarConstantError N/A N/A N/A N/A x N/A N/A N/A N/A N/A N/A s_i owner inputs N/A 0 owner inputs N/A 0 N/A s_i N/A N/A N/A self shape_of N/A x N/A i N/A N/A N/A N/A N/A s_i type dtype N/A 3 N/A int uint N/A N/A N/A getattr N/A s_i type ndim 0 N/A N/A N/A TypeError Shape element must be scalar s_i N/A s_i N/A N/A N/A TypeError Unsupported shape element s_i N/A type s_i N/A getattr s_i type None N/A set_shape N/A N/A self r s override N/A False N/A N/A Assign the shape `s` to previously un-shaped variable `r`.

        Parameters
        ----------
        r : a variable
        s : None or a tuple of symbolic integers
        override : If False, it mean r is a new object in the fgraph.
            If True, it mean r is already in the fgraph and we want to
            override its shape.

         N/A N/A override N/A N/A N/A r N/A self shape_of r already in shape_of N/A N/A s None N/A N/A N/A N/A self shape_of N/A r s N/A N/A N/A N/A isinstance s N/A tuple list N/A N/A N/A TypeError shapes must be tuple/list N/A r s N/A N/A N/A r ndim N/A len s N/A N/A sio N/A StringIO N/A N/A N/A N/A theano printing debugprint r file sio print_type True N/A N/A AssertionError N/A Something inferred a shape with %d dimensions for a variable with %d dimensions for the variable:
%s N/A N/A len s N/A r ndim N/A N/A sio getvalue N/A shape_vars N/A N/A i N/A xrange N/A r ndim N/A N/A N/A N/A hasattr N/A r type broadcastable N/A N/A N/A r type broadcastable N/A i N/A N/A N/A N/A shape_vars append N/A self lscalar_one N/A N/A N/A N/A shape_vars append N/A N/A self unpack N/A s N/A i N/A N/A all N/A N/A N/A N/A hasattr N/A r type broadcastable N/A N/A N/A N/A r type broadcastable N/A i N/A N/A N/A self lscalar_one equals N/A shape_vars N/A i N/A N/A N/A self lscalar_one equals N/A N/A T extract_constant N/A shape_vars N/A i N/A i N/A xrange N/A r ndim N/A N/A N/A self shape_of N/A r N/A tuple shape_vars N/A sv shape_vars N/A N/A N/A N/A N/A N/A N/A self shape_of_reverse_index setdefault sv N/A set add r N/A update_shape N/A N/A self r other_r N/A N/A N/A Replace shape of r by shape of other_r.

        If, on some dimensions, the shape of other_r is not informative,
        keep the shape of r on those dimensions.

         N/A N/A other_r N/A self shape_of N/A other_r not in shape_of other_r N/A other_shape N/A N/A self shape_of N/A other_r N/A N/A other_shape None N/A N/A N/A N/A r N/A self shape_of N/A N/A r_shape N/A N/A self shape_of N/A r N/A N/A N/A N/A self set_shape r other_shape N/A N/A N/A N/A other_r owner N/A r owner N/A N/A N/A other_r owner inputs N/A N/A r owner inputs N/A N/A N/A other_r owner op N/A N/A r owner op N/A N/A N/A merged_shape N/A N/A N/A i ps N/A enumerate other_shape N/A N/A N/A N/A r_shape None other_shape N/A N/A N/A N/A merged_shape append N/A other_shape N/A i N/A N/A N/A N/A ps owner N/A isinstance N/A getattr N/A ps owner op None Shape_i N/A N/A N/A N/A ps owner op i i N/A N/A N/A N/A ps owner inputs N/A 0 N/A r other_r N/A N/A N/A N/A merged_shape append N/A r_shape N/A i N/A N/A N/A isinstance N/A r_shape N/A i N/A Constant int N/A N/A N/A N/A merged_shape append N/A r_shape N/A i N/A N/A N/A isinstance N/A other_shape N/A i N/A Constant int N/A N/A N/A N/A merged_shape append N/A other_shape N/A i N/A N/A N/A N/A other_shape N/A i N/A r_shape N/A i N/A N/A N/A N/A merged_shape append N/A r_shape N/A i N/A N/A N/A N/A r_shape N/A i N/A N/A N/A N/A theano gof graph ancestors N/A N/A other_shape N/A i N/A N/A N/A N/A merged_shape append N/A r_shape N/A i N/A N/A N/A N/A merged_shape append N/A other_shape N/A i N/A N/A all N/A N/A N/A N/A N/A hasattr N/A r type broadcastable N/A N/A N/A N/A N/A r type broadcastable N/A i N/A N/A N/A N/A other_r type broadcastable N/A i N/A N/A N/A self lscalar_one equals N/A merged_shape N/A i N/A N/A N/A self lscalar_one equals N/A N/A T extract_constant N/A merged_shape N/A i N/A i N/A xrange N/A r ndim N/A N/A N/A self shape_of N/A r N/A tuple merged_shape N/A sv N/A N/A self shape_of N/A r N/A N/A N/A N/A N/A N/A N/A self shape_of_reverse_index setdefault sv N/A set add r N/A set_shape_i N/A N/A self r i s_i N/A N/A N/A Replace element i of shape_of[r] by s_i N/A N/A r N/A self shape_of N/A prev_shape N/A N/A self shape_of N/A r N/A new_shape N/A N/A N/A j s_j N/A enumerate prev_shape N/A N/A N/A j i N/A N/A N/A N/A new_shape append N/A N/A self unpack s_i N/A N/A N/A N/A new_shape append s_j N/A N/A all N/A N/A N/A N/A hasattr N/A r type broadcastable N/A N/A N/A N/A r type broadcastable N/A idx N/A N/A N/A self lscalar_one equals N/A new_shape N/A idx N/A N/A N/A self lscalar_one equals N/A N/A T extract_constant N/A new_shape N/A idx N/A idx N/A xrange N/A r ndim N/A N/A N/A self shape_of N/A r N/A tuple new_shape N/A sv N/A N/A self shape_of N/A r N/A N/A N/A N/A N/A N/A N/A self shape_of_reverse_index setdefault sv N/A set add r N/A init_r N/A N/A self r N/A N/A N/A Register r's shape in the shape_of dictionary. N/A N/A r N/A self shape_of N/A N/A N/A N/A N/A N/A self set_shape r N/A N/A self shape_tuple r N/A N/A N/A AttributeError N/A N/A N/A N/A self set_shape r None N/A make_vector_shape N/A N/A self r N/A N/A N/A N/A make_vector N/A N/A self shape_of N/A r N/A on_attach N/A N/A self fgraph N/A N/A N/A N/A N/A hasattr fgraph shape_feature N/A N/A fgraph shape_feature self N/A N/A self lscalar_one N/A N/A T constant 1 dtype int64 N/A N/A N/A N/A self lscalar_one type N/A T lscalar N/A N/A self shape_of N/A N/A N/A self scheduled N/A N/A N/A self shape_of_reverse_index N/A N/A node N/A N/A fgraph toposort N/A N/A N/A N/A self on_import fgraph node reason on_attach N/A on_import N/A N/A self fgraph node reason N/A N/A N/A N/A N/A N/A node outputs N/A 0 N/A self shape_of N/A N/A r N/A N/A node outputs N/A node inputs N/A N/A N/A r N/A self shape_of N/A N/A N/A i r N/A enumerate N/A node inputs N/A N/A N/A N/A self init_r r N/A o_shapes N/A N/A self get_node_infer_shape node N/A N/A N/A len o_shapes N/A len N/A node outputs N/A N/A N/A Exception N/A N/A N/A The infer_shape method for the Op "%s" returned a list  with the wrong number of element: len(o_shapes) = %d   != len(node.outputs) = %d N/A N/A str N/A node op N/A len o_shapes N/A len N/A node outputs N/A N/A sh_idx sh N/A enumerate o_shapes N/A N/A N/A sh None N/A N/A N/A N/A N/A isinstance sh N/A list tuple N/A N/A N/A ValueError N/A infer_shape of %s didn't return a list of list. It returned '%s' N/A N/A str node N/A str o_shapes N/A new_shape N/A N/A N/A i d N/A enumerate sh N/A N/A N/A N/A getattr d dtype int64 int64 N/A N/A N/A N/A d dtype N/A N/A theano tensor discrete_dtypes N/A node N/A d dtype N/A N/A N/A str N/A d dtype uint64 node N/A new_shape N/A sh N/A N/A len new_shape N/A i 1 N/A N/A new_shape N/A i N/A N/A N/A theano tensor cast d int64 N/A new_shape N/A N/A new_shape N/A sh N/A N/A len new_shape N/A N/A o_shapes N/A sh_idx N/A tuple new_shape N/A N/A r s N/A izip N/A node outputs o_shapes N/A N/A N/A N/A self set_shape r s N/A on_change_input N/A N/A self fgraph node i r new_r reason N/A N/A N/A N/A new_r N/A self shape_of N/A N/A N/A N/A self init_r new_r N/A N/A N/A self update_shape new_r r N/A N/A shpnode idx N/A N/A r clients N/A N/A node i N/A N/A N/A isinstance N/A getattr shpnode op None Shape_i N/A N/A idx N/A N/A shpnode op i N/A repl N/A N/A N/A self shape_of N/A new_r N/A idx N/A N/A N/A repl owner shpnode N/A N/A N/A N/A N/A repl owner N/A N/A N/A N/A repl owner inputs N/A 0 N/A N/A shpnode inputs N/A 0 N/A isinstance N/A N/A repl owner op Shape_i N/A N/A N/A N/A repl owner op i N/A N/A shpnode op i N/A N/A N/A N/A N/A N/A shpnode outputs N/A 0 N/A N/A N/A N/A theano gof graph ancestors N/A repl N/A N/A N/A InconsistencyError N/A This substitution would insert a cycle in the graph:node: %s, i: %i, r: %s, new_r: %s N/A node i r new_r N/A N/A N/A self scheduled N/A shpnode new_r N/A unscheduled N/A k N/A N/A k v N/A N/A N/A self scheduled items N/A v r N/A k unscheduled N/A N/A N/A N/A self scheduled N/A k N/A v N/A N/A N/A self shape_of_reverse_index get r N/A N/A N/A N/A ii svi N/A enumerate N/A N/A N/A self shape_of get v N/A N/A N/A N/A svi r N/A N/A N/A N/A self set_shape_i v ii new_r N/A N/A N/A self shape_of_reverse_index N/A r N/A set N/A same_shape N/A N/A self x y dim_x dim_y N/A None None N/A N/A Return True if we are able to assert that x and y have the
        same shape.

        dim_x and dim_y are optional. If used, they should be an index
        to compare only 1 dimension of x and y.

         N/A sx N/A N/A self shape_of N/A x N/A sy N/A N/A self shape_of N/A y N/A N/A N/A sx None N/A sy None N/A N/A False N/A N/A dim_x None N/A N/A sx N/A N/A sx N/A dim_x N/A N/A dim_y None N/A N/A sy N/A N/A sy N/A dim_y N/A N/A N/A len sx N/A len sy N/A N/A dx dy N/A zip sx sy N/A N/A N/A dx dy N/A N/A N/A N/A N/A N/A dx owner N/A N/A dy owner N/A N/A False N/A N/A N/A N/A isinstance N/A N/A dx owner op Shape_i N/A N/A isinstance N/A N/A dy owner op Shape_i N/A N/A False N/A opx N/A N/A dx owner op N/A opy N/A N/A dy owner op N/A N/A N/A N/A opx i N/A opy i N/A N/A False N/A N/A N/A N/A N/A dx owner inputs N/A 0 N/A N/A N/A dy owner inputs N/A 0 N/A N/A theano.scan_module.scan_utils equal_computations N/A N/A N/A equal_computations N/A dx N/A dy N/A N/A False N/A True N/A N/A ShapeOptimizer N/A Optimizer N/A N/A Optimizer that serves to add ShapeFeature as an fgraph feature. __init__ N/A N/A self N/A N/A N/A N/A N/A Optimizer __init__ self N/A add_requirements N/A N/A self fgraph N/A N/A N/A N/A N/A fgraph attach_feature N/A ShapeFeature N/A apply N/A N/A self fgraph N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A theano compile mode optdb register ShapeOpt N/A ShapeOptimizer 0.1 fast_run fast_compile local_elemwise_alloc_op N/A N/A ElemwiseOP AllocOP DimShuffleOP N/A N/A local_elemwise_alloc N/A N/A node N/A N/A N/A 
        elemwise(alloc(x, shp), ..., y.TensorType(BROADCAST CONDITION))
          -> elemwise(x, y.TensorType(BROADCAST CONDITION))

        elemwise(dimshuffle(alloc(x, shp)),... ,y.TensorType(BROADCAST CONDITION))
          -> elemwise(x.dimshuffle(...), y.TensorType(BROADCAST CONDITION))

        BROADCAST CONDITION: the condition is that the one input that are
        not to be optimized to have the same broadcast pattern as the
        output.

        We can change the alloc by a dimshuffle as the elemwise
        already have the shape info.  The dimshuffle will be faster
        to exec.

         N/A N/A N/A isinstance N/A node op ElemwiseOP N/A N/A False N/A N/A N/A len N/A node outputs 1 N/A N/A N/A all N/A N/A N/A N/A o type broadcastable N/A N/A N/A N/A node outputs N/A 0 type broadcastable N/A o N/A N/A node outputs N/A 1 N/A N/A N/A any N/A N/A N/A N/A i type broadcastable N/A N/A N/A N/A node outputs N/A 0 type broadcastable N/A i N/A node inputs N/A N/A False dimshuffled_alloc N/A N/A i N/A N/A N/A N/A N/A isinstance N/A N/A i owner op DimShuffleOP N/A N/A N/A N/A i owner inputs N/A 0 owner N/A isinstance N/A N/A N/A N/A N/A i owner inputs N/A 0 owner op AllocOP N/A N/A N/A N/A any N/A N/A N/A i owner N/A N/A isinstance N/A N/A i owner op AllocOP N/A dimshuffled_alloc i N/A i N/A node inputs N/A N/A False N/A assert_op_idx -1 N/A N/A idx i N/A enumerate N/A node inputs N/A N/A N/A N/A N/A i type broadcastable N/A N/A N/A N/A node outputs N/A 0 type broadcastable N/A N/A N/A N/A N/A i owner N/A N/A isinstance N/A N/A i owner op AllocOP N/A dimshuffled_alloc i N/A N/A assert_op_idx idx N/A N/A N/A assert_op_idx 0 N/A N/A l2 N/A i N/A i N/A node inputs N/A N/A i owner N/A N/A isinstance N/A N/A i owner op AllocOP N/A dimshuffled_alloc i N/A N/A N/A len l2 1 N/A N/A l N/A idx N/A N/A idx i N/A enumerate N/A node inputs N/A N/A i broadcastable N/A N/A N/A node outputs N/A 0 broadcastable N/A assert_op_idx N/A l N/A 0 N/A N/A False N/A assert_op N/A N/A node inputs N/A assert_op_idx N/A cmp_op assert_op N/A new_i N/A N/A same_shape N/A N/A N/A node fgraph shape_feature same_shape N/A i N/A node inputs N/A N/A N/A N/A i owner N/A isinstance N/A N/A i owner op AllocOP N/A N/A N/A N/A N/A i owner inputs N/A 0 type N/A N/A N/A N/A i owner outputs N/A 0 type N/A N/A N/A N/A N/A i type ndim N/A cmp_op ndim N/A get_shape N/A N/A N/A node fgraph shape_feature get_shape N/A N/A N/A N/A theano config experimental local_alloc_elemwise_assert N/A N/A cond N/A N/A idx N/A xrange N/A N/A i type ndim N/A N/A N/A N/A N/A N/A N/A i type broadcastable N/A idx N/A N/A same_shape i cmp_op idx idx N/A N/A i_shp N/A get_shape i idx N/A cmp_shp N/A get_shape cmp_op idx N/A N/A N/A cond append N/A N/A T eq i_shp cmp_shp N/A cond N/A N/A assert_op N/A assert_ assert_op cond N/A N/A N/A new_i append N/A N/A N/A i owner inputs N/A 0 N/A N/A N/A N/A i owner N/A dimshuffled_alloc i N/A N/A N/A N/A N/A i type ndim N/A N/A cmp_op type ndim N/A N/A N/A N/A theano config experimental local_alloc_elemwise_assert N/A N/A assert_cond N/A N/A N/A T eq N/A N/A i shape N/A idx N/A N/A cmp_op shape N/A idx N/A idx N/A xrange N/A N/A i type ndim N/A N/A N/A N/A N/A i type broadcastable N/A idx N/A N/A same_shape i cmp_op idx idx N/A assert_cond N/A N/A assert_op N/A assert_ assert_op assert_cond N/A alloc_input N/A N/A N/A N/A N/A N/A i owner inputs N/A 0 owner inputs N/A 0 N/A N/A N/A alloc_input ndim N/A N/A N/A N/A i owner inputs N/A 0 ndim N/A N/A nb_dim_to_add N/A N/A N/A N/A N/A i owner inputs N/A 0 ndim N/A alloc_input ndim N/A alloc_input N/A N/A alloc_input dimshuffle N/A N/A N/A x nb_dim_to_add N/A list N/A range N/A alloc_input ndim N/A r_i N/A N/A N/A i owner op alloc_input N/A N/A copy_stack_trace i r_i N/A N/A N/A new_i append r_i N/A N/A N/A N/A new_i append i N/A N/A new_i N/A assert_op_idx assert_op N/A ret N/A N/A node op return_list True new_i N/A N/A copy_stack_trace N/A node outputs ret N/A ret N/A N/A local_elemwise_alloc N/A N/A local_elemwise_alloc N/A register_specialize N/A N/A N/A gof local_optimizer N/A N/A T Elemwise N/A local_elemwise_alloc_op N/A T Elemwise N/A T Alloc N/A T DimShuffle local_alloc_elemwise local_fill_sink N/A N/A node N/A N/A N/A 
    f(fill(a, b), fill(c, d), e) -> fill(a, fill(c, f(b, d, e)))

    f need to be an elemwise
     N/A N/A N/A N/A hasattr node op N/A N/A isinstance N/A node op N/A T Elemwise N/A N/A node op N/A T fill N/A N/A False N/A models N/A N/A inputs N/A N/A input N/A node inputs N/A N/A N/A N/A input owner N/A N/A N/A input owner op N/A T fill N/A N/A N/A N/A models append N/A N/A N/A input owner inputs N/A 0 N/A N/A N/A inputs append N/A N/A N/A input owner inputs N/A 1 N/A N/A N/A N/A inputs append input N/A N/A models N/A N/A False N/A c N/A N/A node op inputs N/A model models N/A N/A N/A N/A model type N/A c type N/A N/A c N/A N/A T fill model c N/A replacements N/A N/A N/A node outputs N/A 0 c N/A N/A client cl_idx N/A N/A N/A node outputs N/A 0 clients N/A N/A N/A N/A hasattr client op N/A isinstance N/A client op N/A T Elemwise N/A N/A N/A client op N/A T fill N/A N/A client_inputs N/A N/A client inputs N/A N/A N/A client_inputs N/A cl_idx c N/A new_client N/A N/A client op client_inputs N/A N/A N/A N/A N/A new_client owner outputs N/A 0 clients N/A N/A N/A client outputs N/A 0 clients N/A r N/A N/A local_fill_sink transform N/A new_client owner N/A N/A r N/A N/A N/A N/A N/A replacements update r N/A replacements N/A N/A N/A gof local_optimizer N/A N/A T Elemwise N/A N/A register_canonicalize local_fill_sink local_fill_to_alloc N/A N/A node N/A N/A N/A fill(s,v) -> alloc(v, shape(s))

    This is an important optimization because with the shape_to_shape_i
    optimization, the dependency on 's' is often removed.

     N/A N/A N/A node op N/A T fill N/A N/A N/A r v N/A node inputs N/A N/A N/A v type N/A N/A N/A node outputs N/A 0 type N/A N/A rval N/A v N/A N/A N/A N/A N/A v type broadcastable N/A N/A N/A N/A node outputs N/A 0 type broadcastable N/A N/A rval N/A N/A N/A T cast v N/A N/A N/A N/A node outputs N/A 0 type dtype N/A N/A N/A N/A N/A r type broadcastable N/A N/A N/A N/A node outputs N/A 0 type broadcastable N/A N/A o N/A broadcast_like v r N/A node fgraph dtype N/A v dtype N/A N/A copy_stack_trace N/A N/A node outputs N/A 0 o N/A rval N/A o N/A N/A N/A N/A N/A N/A rval N/A 0 type N/A N/A N/A node outputs N/A 0 type N/A rval N/A N/A rval N/A 0 type orig N/A N/A N/A node outputs N/A 0 type node node N/A rval N/A register_specialize register_stabilize N/A N/A gof local_optimizer N/A N/A T fill N/A N/A N/A N/A compile optdb register local_fill_to_alloc N/A in2out local_fill_to_alloc 1.51 fast_run N/A N/A N/A N/A compile optdb register local_elemwise_alloc N/A in2out local_elemwise_alloc 1.52 fast_run local_useless_fill N/A N/A node N/A N/A N/A fill(s,v) -> v

    This optimization is only needed in FAST_COMPILE to make the code
    more readable. Normally, it is done by the local_fill_to_alloc
    opt.

     N/A N/A N/A node op N/A T fill N/A N/A N/A r v N/A node inputs N/A N/A N/A v type N/A N/A N/A node outputs N/A 0 type N/A N/A N/A v N/A N/A register_canonicalize fast_compile N/A N/A gof local_optimizer N/A N/A T fill local_useless_alloc N/A N/A node N/A N/A N/A 
    If the input type is the same as the output type (dtype and broadcast)
    there is no change in the shape of the input. So this is just a simple copy
    of the input. This is not needed.

     N/A N/A N/A node op N/A T alloc N/A N/A N/A N/A N/A N/A node inputs N/A 0 type N/A N/A N/A node outputs N/A 0 type N/A N/A N/A N/A N/A node inputs N/A 0 N/A register_specialize register_stabilize register_canonicalize N/A N/A gof local_optimizer N/A N/A T alloc local_alloc_empty_to_zeros N/A N/A node N/A N/A N/A This convert AllocEmpty to Alloc of 0.

    This help investigate NaN with NanGuardMode.  Not registered by
    default. To activate it, use the Theano flag
    optimizer_including=alloc_empty_to_zeros. This also enable
    the GPU version of this optimizations.

     N/A N/A isinstance N/A node op N/A T AllocEmpty N/A N/A N/A N/A N/A T zeros N/A node inputs dtype N/A N/A N/A node outputs N/A 0 dtype N/A N/A N/A gof local_optimizer N/A N/A T AllocEmpty N/A N/A N/A N/A compile optdb register local_alloc_empty_to_zeros N/A in2out local_alloc_empty_to_zeros 49.3 alloc_empty_to_zeros local_shape_to_shape_i N/A N/A node N/A N/A N/A N/A N/A node op N/A T shape N/A N/A N/A N/A hasattr N/A node fgraph shape_feature N/A N/A N/A shape_feature N/A N/A node fgraph shape_feature N/A ret N/A N/A shape_feature make_vector_shape N/A N/A node inputs N/A 0 N/A N/A copy_stack_trace N/A N/A node outputs N/A 0 ret N/A N/A ret N/A register_specialize register_canonicalize N/A N/A gof local_optimizer N/A N/A T shape local_track_shape_i N/A N/A node N/A N/A N/A N/A N/A shape_feature N/A N/A node fgraph shape_feature N/A N/A N/A AttributeError N/A N/A N/A N/A node N/A shape_feature scheduled N/A N/A N/A isinstance N/A node op Shape_i N/A replacement N/A N/A shape_feature scheduled N/A node N/A N/A N/A N/A N/A shape_feature shape_of N/A replacement N/A N/A N/A node op i N/A register_specialize register_canonicalize N/A N/A gof local_optimizer None local_subtensor_make_vector N/A N/A node N/A N/A N/A 
    Replace all subtensor(make_vector) like:
    [a,b,c][0] -> a
    [a,b,c][0:2] -> [a,b]

    Replace all AdvancedSubtensor1(make_vector) like:
    [a,b,c][[0,2]] -> [a,c]

    We can do this for constant indexes.

     N/A x N/A N/A node inputs N/A 0 N/A N/A N/A N/A x owner N/A N/A N/A x owner op make_vector N/A N/A N/A N/A isinstance N/A node op Subtensor N/A N/A N/A N/A N/A idx N/A N/A node op idx_list N/A N/A N/A Exception N/A N/A N/A N/A isinstance idx N/A N/A scalar Scalar N/A T TensorType N/A N/A N/A old_idx idx N/A idx N/A N/A node inputs N/A 1 N/A N/A N/A idx type old_idx N/A N/A N/A isinstance N/A node op AdvancedSubtensor1 N/A N/A idx N/A N/A node inputs N/A 1 N/A N/A N/A N/A isinstance idx N/A int N/A numpy integer N/A N/A N/A N/A N/A N/A x owner inputs N/A idx N/A N/A N/A isinstance idx Variable N/A N/A N/A N/A idx ndim 0 N/A N/A N/A N/A v N/A get_scalar_constant_value idx N/A N/A isinstance v N/A numpy integer N/A N/A v N/A int v N/A N/A N/A ret N/A N/A N/A N/A x owner inputs N/A v N/A N/A N/A IndexError N/A N/A N/A NotScalarConstantError Bad user graph! N/A ret N/A N/A N/A NotScalarConstantError N/A N/A N/A N/A N/A N/A N/A idx ndim 1 N/A isinstance idx N/A T Constant N/A N/A values N/A list N/A map int N/A list N/A idx value N/A ret N/A N/A make_vector N/A N/A N/A N/A x owner inputs N/A v N/A v values N/A N/A copy_stack_trace N/A N/A node outputs N/A 0 ret N/A ret N/A N/A N/A TypeError case not expected N/A N/A N/A isinstance idx slice N/A N/A N/A N/A const_slice N/A N/A N/A N/A node op get_constant_idx N/A node inputs allow_partial False N/A 0 N/A ret N/A make_vector N/A N/A N/A x owner inputs N/A const_slice N/A N/A copy_stack_trace N/A node outputs ret N/A N/A ret N/A N/A N/A NotScalarConstantError N/A N/A N/A N/A N/A TypeError case not expected N/A register_specialize N/A register_canonicalize fast_compile_gpu N/A N/A gof local_optimizer N/A Subtensor AdvancedSubtensor1 local_useless_elemwise N/A N/A node N/A N/A N/A 
    eq(x,x) -> 1
    neq(x,x) -> 0
    mul(x) -> x
    add(x) -> x
    identity(x) -> x
    and(x,1) -> x
    and(x,0) -> zeros_like(x)
    or(x,0) -> x
    or(x,1) -> ones_like(x)
    xor(x,x) -> zeros_like(x)

     N/A N/A isinstance N/A node op N/A T Elemwise N/A zeros_like N/A N/A node in_idx N/A N/A N/A N/A N/A N/A T fill N/A N/A node inputs N/A in_idx N/A N/A T constant 0.0 dtype N/A N/A N/A N/A node outputs N/A 0 type dtype N/A ones_like N/A N/A node in_idx N/A N/A N/A N/A N/A N/A T fill N/A N/A node inputs N/A in_idx N/A N/A T constant 1.0 dtype N/A N/A N/A N/A node outputs N/A 0 type dtype N/A N/A N/A N/A N/A N/A node op scalar_op N/A N/A theano scalar eq N/A N/A len N/A node inputs 2 N/A N/A N/A N/A N/A node inputs N/A 0 N/A N/A node inputs N/A 1 N/A N/A ret N/A N/A N/A T fill N/A N/A node inputs N/A 0 N/A N/A T constant 1.0 dtype N/A N/A N/A N/A node outputs N/A 0 type dtype N/A N/A copy_stack_trace N/A N/A node outputs N/A 0 ret N/A ret N/A N/A N/A N/A N/A N/A node op scalar_op N/A N/A theano scalar neq N/A N/A len N/A node inputs 2 N/A N/A N/A N/A N/A node inputs N/A 0 N/A N/A node inputs N/A 1 N/A N/A ret N/A N/A N/A T fill N/A N/A node inputs N/A 0 N/A N/A T constant 0.0 dtype N/A N/A N/A N/A node outputs N/A 0 type dtype N/A N/A copy_stack_trace N/A N/A node outputs N/A 0 ret N/A ret N/A N/A N/A N/A N/A N/A node op scalar_op N/A N/A theano scalar mul N/A N/A len N/A node inputs 1 N/A N/A N/A N/A N/A node inputs N/A 0 N/A N/A N/A N/A N/A N/A node op scalar_op N/A N/A theano scalar add N/A N/A len N/A node inputs 1 N/A N/A N/A N/A N/A node inputs N/A 0 N/A N/A N/A N/A N/A N/A node op scalar_op N/A N/A theano scalar identity N/A N/A len N/A node inputs 1 N/A N/A N/A N/A N/A node inputs N/A 0 N/A N/A N/A N/A isinstance N/A N/A node op scalar_op N/A scalar AND N/A N/A len N/A node inputs 2 N/A N/A N/A isinstance N/A N/A node inputs N/A 0 N/A T TensorConstant N/A N/A const_val N/A N/A T extract_constant N/A N/A node inputs N/A 0 N/A N/A N/A isinstance const_val Variable N/A N/A N/A const_val 0 N/A N/A N/A zeros_like node 1 N/A N/A N/A N/A N/A node inputs N/A 1 N/A N/A isinstance N/A N/A node inputs N/A 1 N/A T TensorConstant N/A N/A const_val N/A N/A T extract_constant N/A N/A node inputs N/A 1 N/A N/A N/A isinstance const_val Variable N/A N/A N/A const_val 0 N/A N/A N/A zeros_like node 0 N/A N/A N/A N/A N/A node inputs N/A 0 N/A N/A N/A N/A isinstance N/A N/A node op scalar_op N/A scalar OR N/A N/A len N/A node inputs 2 N/A N/A N/A isinstance N/A N/A node inputs N/A 0 N/A T TensorConstant N/A N/A const_val N/A N/A T extract_constant N/A N/A node inputs N/A 0 N/A N/A N/A isinstance const_val Variable N/A N/A N/A const_val 0 N/A N/A N/A N/A N/A node inputs N/A 1 N/A N/A N/A ones_like node 1 N/A N/A isinstance N/A N/A node inputs N/A 1 N/A T TensorConstant N/A N/A const_val N/A N/A T extract_constant N/A N/A node inputs N/A 1 N/A N/A N/A isinstance const_val Variable N/A N/A N/A const_val 0 N/A N/A N/A N/A N/A node inputs N/A 0 N/A N/A N/A ones_like node 0 N/A N/A N/A N/A isinstance N/A N/A node op scalar_op N/A scalar XOR N/A N/A len N/A node inputs 2 N/A N/A N/A N/A N/A node inputs N/A 0 N/A N/A node inputs N/A 1 N/A N/A N/A zeros_like node 0 N/A N/A register_canonicalize fast_compile register_specialize N/A N/A gof local_optimizer N/A N/A T Elemwise local_alloc_unary N/A N/A node N/A N/A N/A unary(alloc(x, shp)) -> alloc(unary(x), shp) N/A N/A N/A isinstance N/A node op N/A T Elemwise N/A N/A len N/A node inputs 1 N/A N/A a N/A N/A node inputs N/A 0 N/A N/A N/A a owner N/A isinstance N/A N/A a owner op N/A T Alloc N/A N/A x N/A N/A N/A a owner inputs N/A 0 N/A shp N/A N/A N/A a owner inputs N/A 1 N/A v N/A N/A node op x N/A N/A copy_stack_trace N/A N/A node outputs N/A 0 v N/A ret N/A N/A T alloc N/A N/A T cast v N/A N/A N/A node outputs N/A 0 dtype shp N/A N/A copy_stack_trace N/A N/A N/A node outputs N/A 0 a ret N/A N/A ret N/A register_specialize N/A N/A gof local_optimizer N/A N/A T Elemwise local_cast_cast N/A N/A node N/A N/A N/A cast(cast(x, dtype1), dtype2)

    when those contrain:
    dtype1 == dtype2
    TODO: the base dtype is the same (int, uint, float, complex)
          and the first cast cause an upcast.

     N/A N/A N/A N/A isinstance N/A node op N/A T Elemwise N/A N/A isinstance N/A N/A node op scalar_op N/A scalar Cast N/A N/A N/A x N/A N/A node inputs N/A 0 N/A N/A N/A N/A x owner N/A N/A isinstance N/A N/A x owner op N/A T Elemwise N/A N/A isinstance N/A N/A N/A x owner op scalar_op N/A scalar Cast N/A N/A N/A N/A N/A N/A N/A node op scalar_op o_type N/A N/A N/A N/A x owner op scalar_op o_type N/A N/A N/A x N/A register_canonicalize register_specialize N/A N/A gof local_optimizer N/A N/A T Elemwise local_func_inv N/A N/A node N/A N/A N/A 
    Check for two consecutive operations that are functional inverses
    and remove them from the function graph.

     N/A inv_pairs N/A N/A N/A basic Deg2Rad N/A basic Rad2Deg N/A N/A basic Cosh N/A basic ArcCosh N/A N/A basic Tanh N/A basic ArcTanh N/A N/A basic Sinh N/A basic ArcSinh N/A N/A basic Conj N/A basic Conj N/A N/A basic Neg N/A basic Neg N/A N/A basic Inv N/A basic Inv N/A x N/A N/A node inputs N/A 0 N/A N/A N/A isinstance N/A node op N/A T Elemwise N/A N/A N/A N/A N/A N/A x owner N/A N/A isinstance N/A N/A x owner op N/A T Elemwise N/A N/A N/A prev_op N/A N/A N/A x owner op scalar_op N/A node_op N/A N/A node op scalar_op N/A inv_pair inv_pairs N/A N/A N/A is_inverse_pair node_op prev_op inv_pair N/A N/A N/A N/A x owner inputs N/A N/A register_canonicalize register_specialize N/A N/A gof local_optimizer N/A N/A T Elemwise is_inverse_pair N/A N/A node_op prev_op inv_pair N/A N/A N/A 
    Given two consecutive operations, check if they are the
    provided pair of inverse functions.

     N/A node_is_op0 N/A isinstance node_op N/A inv_pair N/A 0 N/A node_is_op1 N/A isinstance node_op N/A inv_pair N/A 1 N/A prev_is_op0 N/A isinstance prev_op N/A inv_pair N/A 0 N/A prev_is_op1 N/A isinstance prev_op N/A inv_pair N/A 1 N/A N/A N/A node_is_op0 prev_is_op1 N/A node_is_op1 prev_is_op0 N/A Assert N/A N/A T Op N/A N/A 
    Implements assertion in a computational graph.

    Returns the first parameter if the condition is true, otherwise, triggers
    AssertionError.

    Notes
    -----
    This Op is a debugging feature. It can be removed from the graph
    because of optimizations, and can hide some possible optimizations to
    the optimizer. Specifically, removing happens if it can be determined
    that condition will always be true. Also, the output of the Op must be
    used in the function computing the graph, but it doesn't have to be
    returned.

    Examples
    --------
    >>> import theano
    >>> T = theano.tensor
    >>> x = T.vector('x')
    >>> assert_op = T.opt.Assert()
    >>> func = theano.function([x], assert_op(x, x.size<2))

     N/A __props__ N/A msg N/A view_map N/A 0 N/A 0 N/A check_input False __init__ N/A N/A self msg N/A Theano Assert failed! N/A N/A N/A self msg msg N/A __setstate__ N/A N/A self attrs N/A N/A N/A N/A N/A N/A self __dict__ update attrs N/A N/A N/A hasattr self msg N/A N/A N/A self msg Theano Assert failed! N/A make_node N/A N/A self value N/A conds N/A N/A N/A N/A isinstance value Variable N/A N/A value N/A N/A T as_tensor_variable value N/A cond N/A N/A N/A T as_tensor_variable c N/A c conds N/A N/A N/A numpy all N/A N/A N/A N/A c type ndim 0 N/A c cond N/A N/A N/A gof Apply self N/A N/A value cond N/A N/A N/A value type N/A perform N/A N/A self node inputs out_ N/A N/A N/A N/A out out_ N/A v N/A inputs N/A 0 N/A N/A out N/A 0 v N/A N/A N/A numpy all N/A inputs N/A 1 N/A self msg N/A grad N/A N/A self input output_gradients N/A N/A N/A N/A output_gradients N/A N/A N/A N/A DisconnectedType N/A N/A len input 1 N/A connection_pattern N/A N/A self node N/A N/A N/A N/A N/A N/A 1 N/A N/A N/A 0 N/A N/A len N/A node inputs 1 N/A c_code N/A N/A self node name inames onames sub N/A N/A N/A value N/A inames N/A 0 N/A out N/A onames N/A 0 N/A check N/A N/A fail N/A sub N/A fail N/A msg N/A N/A N/A N/A N/A self msg replace " \" replace \n N/A idx N/A xrange N/A N/A len inames 1 N/A N/A i N/A inames N/A N/A idx 1 N/A dtype N/A N/A N/A node inputs N/A N/A idx 1 dtype N/A N/A N/A check append N/A if(!((npy_%(dtype)s*)PyArray_DATA(%(i)s))[0]){PyErr_SetString(PyExc_AssertionError,"%(msg)s");%(fail)s} N/A locals N/A check N/A N/A join check N/A N/A 
        %(check)s
        Py_XDECREF(%(out)s);
        %(out)s = %(value)s;
        Py_INCREF(%(value)s);
         N/A locals N/A c_code_cache_version N/A N/A self N/A N/A N/A N/A 3 0 N/A infer_shape N/A N/A self node input_shapes N/A N/A N/A N/A N/A input_shapes N/A 0 N/A N/A N/A assert_ N/A Assert N/A assert_op assert_ local_remove_useless_assert N/A N/A node N/A N/A N/A N/A isinstance N/A node op Assert N/A N/A cond N/A N/A c N/A N/A node inputs N/A 1 N/A N/A N/A N/A const N/A get_scalar_constant_value c N/A N/A N/A 0 N/A const ndim N/A const 0 N/A N/A N/A N/A cond append c N/A N/A N/A NotScalarConstantError N/A N/A N/A N/A cond append c N/A N/A N/A len cond 0 N/A N/A N/A N/A N/A node inputs N/A 0 N/A N/A N/A len cond N/A N/A len N/A node inputs 1 N/A N/A ret N/A assert_ N/A N/A node inputs N/A 0 cond N/A N/A copy_stack_trace N/A N/A node outputs N/A 0 ret N/A N/A ret N/A register_specialize N/A N/A gof local_optimizer N/A Assert local_remove_all_assert N/A N/A node N/A N/A N/A An optimization disabled by default that removes all asserts from
    the graph.

    Notes
    -----
    See the :ref:`unsafe` section to know how to enable it.

     N/A N/A N/A isinstance N/A node op Assert N/A N/A N/A N/A N/A N/A node inputs N/A 0 N/A N/A N/A gof local_optimizer N/A Assert N/A N/A N/A N/A N/A compile optdb N/A canonicalize register local_remove_all_assert local_remove_all_assert unsafe use_db_name_as_tag False N/A N/A N/A N/A N/A compile optdb N/A stabilize register local_remove_all_assert local_remove_all_assert unsafe use_db_name_as_tag False N/A N/A N/A N/A N/A compile optdb N/A specialize register local_remove_all_assert local_remove_all_assert unsafe use_db_name_as_tag False local_upcast_elemwise_constant_inputs N/A N/A node N/A N/A N/A This explicitly upcasts constant inputs to elemwise Ops, when
    those Ops do implicit upcasting anyway.

    Rationale: it helps merge things like (1-x) and (1.0 - x).

     N/A N/A N/A len N/A node outputs 1 N/A N/A N/A N/A N/A shape_i N/A N/A N/A node fgraph shape_feature shape_i N/A N/A N/A AttributeError N/A N/A shape_i None N/A N/A isinstance N/A node op N/A T Elemwise N/A N/A scalar_op N/A N/A node op scalar_op N/A N/A N/A getattr scalar_op output_types_preference None N/A N/A N/A T scal upgrade_to_float N/A N/A T scal upcast_out N/A N/A output_dtype N/A N/A N/A N/A node outputs N/A 0 type dtype N/A new_inputs N/A N/A i N/A node inputs N/A N/A N/A N/A N/A i type dtype output_dtype N/A N/A N/A N/A new_inputs append i N/A N/A N/A N/A cval_i N/A get_scalar_constant_value i elemwise False N/A N/A all N/A i broadcastable N/A N/A N/A N/A new_inputs append N/A N/A T shape_padleft N/A N/A T cast cval_i output_dtype N/A i ndim N/A N/A N/A shape_i None N/A N/A N/A N/A N/A new_inputs append N/A N/A T alloc N/A N/A T cast cval_i output_dtype N/A N/A N/A shape_i d i N/A d N/A xrange N/A i ndim N/A N/A N/A NotScalarConstantError N/A N/A N/A isinstance i N/A T TensorConstant N/A N/A N/A N/A new_inputs append N/A N/A T cast i output_dtype N/A N/A N/A N/A new_inputs append i N/A N/A new_inputs N/A node inputs N/A N/A rval N/A N/A N/A node op new_inputs N/A N/A N/A N/A rval N/A 0 type N/A N/A N/A node outputs N/A 0 type N/A N/A N/A N/A copy_stack_trace N/A N/A node outputs N/A 0 rval N/A rval N/A register_canonicalize N/A N/A gof local_optimizer N/A N/A T Elemwise local_useless_inc_subtensor N/A N/A node N/A N/A N/A 
    Remove IncSubtensor, when we overwrite the full inputs with the
    new value.

     N/A N/A N/A isinstance N/A node op IncSubtensor N/A N/A N/A N/A N/A N/A node op set_instead_of_inc False N/A N/A N/A N/A c N/A get_scalar_constant_value N/A N/A node inputs N/A 0 N/A N/A c 0 N/A N/A N/A N/A N/A NotScalarConstantError N/A N/A N/A N/A N/A N/A N/A N/A node inputs N/A 0 ndim N/A N/A N/A node inputs N/A 1 ndim N/A N/A N/A N/A node inputs N/A 0 broadcastable N/A N/A N/A node inputs N/A 1 broadcastable N/A N/A N/A idx_cst N/A get_idx_list N/A N/A node inputs N/A 1 N/A N/A node op idx_list N/A N/A all N/A N/A N/A isinstance e slice N/A N/A e start None N/A N/A e stop None N/A N/A N/A e step None N/A N/A N/A T extract_constant N/A e step -1 N/A e idx_cst N/A N/A N/A N/A hasattr N/A node fgraph shape_feature N/A N/A N/A N/A N/A N/A N/A N/A node fgraph shape_feature same_shape N/A N/A node inputs N/A 0 N/A N/A node inputs N/A 1 N/A N/A N/A N/A all N/A N/A N/A e step None N/A e N/A N/A node op idx_list N/A N/A N/A N/A N/A node inputs N/A 1 N/A ret N/A N/A Subtensor N/A N/A node op idx_list N/A N/A node inputs N/A 1 N/A N/A copy_stack_trace N/A node outputs ret N/A N/A ret N/A register_canonicalize register_specialize N/A N/A gof local_optimizer N/A IncSubtensor local_set_to_inc_subtensor N/A N/A node N/A N/A N/A 
    AdvancedIncSubtensor1(x, x[ilist]+other, ilist, set_instead_of_inc=True) ->
    AdvancedIncSubtensor1(x, other, ilist, set_instead_of_inc=False)

     N/A N/A N/A isinstance N/A node op AdvancedIncSubtensor1 N/A N/A node op set_instead_of_inc N/A N/A N/A node inputs N/A 1 owner N/A isinstance N/A N/A N/A N/A node inputs N/A 1 owner op Elemwise N/A isinstance N/A N/A N/A N/A N/A node inputs N/A 1 owner op scalar_op N/A scalar Add N/A N/A addn N/A N/A N/A node inputs N/A 1 owner N/A subn None N/A other None N/A N/A N/A N/A N/A addn inputs N/A 0 owner N/A isinstance N/A N/A N/A N/A addn inputs N/A 0 owner op AdvancedSubtensor1 N/A N/A subn N/A N/A N/A addn inputs N/A 0 owner N/A other N/A N/A addn inputs N/A 1 N/A N/A N/A N/A N/A N/A addn inputs N/A 1 owner N/A isinstance N/A N/A N/A N/A addn inputs N/A 1 owner op AdvancedSubtensor1 N/A N/A subn N/A N/A N/A addn inputs N/A 1 owner N/A other N/A N/A addn inputs N/A 0 N/A N/A N/A N/A N/A N/A N/A subn inputs N/A 1 N/A N/A node inputs N/A 2 N/A N/A N/A subn inputs N/A 0 N/A N/A node inputs N/A 0 N/A N/A N/A ret N/A advanced_inc_subtensor1 N/A N/A node inputs N/A 0 other N/A N/A node inputs N/A 2 N/A N/A copy_stack_trace N/A node outputs ret N/A N/A ret N/A register_canonicalize N/A N/A gof local_optimizer N/A AdvancedIncSubtensor1 local_useless_slice N/A N/A node N/A N/A N/A 
    Remove Subtensor of the form X[0, :] -> X[0]
     N/A N/A isinstance N/A node op Subtensor N/A N/A slices N/A get_idx_list N/A node inputs N/A N/A node op idx_list N/A last_slice N/A len slices N/A s N/A slices N/A -1 N/A N/A N/A N/A isinstance s slice N/A N/A s start None N/A N/A s stop None N/A N/A N/A s step None N/A N/A N/A T extract_constant N/A s step 1 N/A N/A last_slice 1 N/A N/A N/A N/A last_slice N/A len slices N/A N/A subtens N/A Subtensor N/A slices N/A last_slice N/A sl_ins N/A N/A Subtensor collapse N/A slices N/A last_slice N/A N/A N/A x N/A N/A isinstance x N/A T Variable N/A out N/A subtens N/A N/A node inputs N/A 0 sl_ins N/A N/A copy_stack_trace N/A node outputs out N/A N/A out N/A register_canonicalize register_specialize N/A N/A gof local_optimizer N/A Subtensor local_useless_subtensor N/A N/A node N/A N/A N/A 
    Remove Subtensor/AdvancedSubtensor1 if it takes the full input. In the
    AdvancedSubtensor1 case, the full input is taken when the indices are
    equivalent to `arange(0, input.shape[0], 1)` using either an explicit
    list/vector or the ARange op.

     N/A N/A N/A hasattr N/A node fgraph shape_feature N/A N/A N/A shape_of N/A N/A N/A node fgraph shape_feature shape_of N/A N/A isinstance N/A node op Subtensor N/A N/A cdata N/A N/A N/A node op get_constant_idx N/A node inputs allow_partial True only_process_constants True N/A N/A pos idx N/A enumerate cdata N/A N/A N/A N/A isinstance idx slice N/A N/A False N/A N/A N/A N/A idx start None N/A N/A idx start 0 N/A N/A False N/A N/A N/A N/A idx step None N/A N/A idx step 1 N/A N/A False N/A N/A pos idx N/A enumerate cdata N/A N/A length_pos N/A N/A shape_of N/A N/A N/A node inputs N/A 0 N/A pos N/A N/A isinstance N/A idx stop N/A int N/A numpy integer N/A N/A length_pos_data N/A sys maxsize N/A N/A N/A length_pos_data N/A get_scalar_constant_value length_pos N/A N/A N/A NotScalarConstantError N/A N/A N/A N/A N/A idx stop length_pos_data N/A N/A False N/A N/A N/A isinstance N/A idx stop N/A gof Variable N/A N/A length_pos_shape_i N/A idx stop N/A N/A N/A length_pos_shape_i owner N/A isinstance N/A N/A length_pos_shape_i owner op N/A T ScalarFromTensor N/A N/A length_pos_shape_i N/A N/A N/A length_pos_shape_i owner inputs N/A 0 N/A N/A N/A N/A length_pos owner N/A isinstance N/A N/A length_pos owner op N/A T TensorFromScalar N/A N/A length_pos N/A N/A N/A length_pos owner inputs N/A 0 N/A N/A False N/A N/A N/A str N/A N/A length_pos type dtype int64 N/A N/A N/A str N/A N/A length_pos_shape_i type dtype N/A int8 int16 int32 int64 N/A N/A length_pos_shape_i length_pos N/A N/A False N/A N/A N/A N/A idx stop None N/A N/A N/A N/A False N/A N/A N/A isinstance N/A node op AdvancedSubtensor1 N/A N/A N/A N/A length N/A get_scalar_constant_value N/A N/A shape_of N/A N/A N/A node inputs N/A 0 N/A 0 N/A N/A N/A NotScalarConstantError N/A N/A False N/A idx N/A N/A node inputs N/A 1 N/A N/A isinstance idx N/A T Constant N/A N/A idx N/A idx value N/A N/A N/A len idx length N/A N/A False N/A N/A N/A numpy any N/A idx N/A N/A numpy arange length N/A N/A False N/A N/A N/A N/A N/A idx owner None N/A isinstance N/A N/A idx owner op N/A T ARange N/A N/A N/A N/A N/A start stop step N/A map get_scalar_constant_value N/A N/A idx owner inputs N/A N/A N/A NotScalarConstantError N/A N/A False N/A N/A start 0 N/A N/A False N/A N/A stop length N/A N/A False N/A N/A step 1 N/A N/A False N/A N/A False N/A N/A False N/A N/A N/A N/A node inputs N/A 0 N/A register_canonicalize register_specialize N/A N/A gof local_optimizer N/A Subtensor AdvancedSubtensor1 local_subtensor_lift N/A N/A node N/A N/A N/A 
    unary(x)[idx] -> unary(x[idx])#any broadcast pattern.

    Handles the following unary ops:
    elemwise(x,...)[idx] -> elemwise(x[idx],...)
      when x,... are broadcasted scalar or not broadcasted at all
    rebroadcast(x)[idx] => rebroadcast(x[idx])

     N/A N/A isinstance N/A node op Subtensor N/A N/A u N/A N/A node inputs N/A 0 N/A N/A N/A N/A u owner N/A N/A len N/A u clients 1 N/A N/A False N/A N/A N/A isinstance N/A N/A u owner op N/A T Elemwise N/A N/A len N/A N/A u owner inputs 1 N/A N/A idx N/A N/A node inputs N/A 1 N/A x_idx N/A N/A node op N/A N/A N/A u owner inputs N/A 0 idx N/A N/A copy_stack_trace N/A node outputs x_idx N/A ret N/A N/A N/A u owner op x_idx N/A N/A copy_stack_trace N/A N/A N/A node outputs N/A 0 N/A N/A node inputs N/A 0 ret N/A N/A ret N/A N/A isinstance N/A N/A u owner op N/A T Elemwise N/A N/A new_inputs N/A N/A N/A all N/A N/A N/A sum N/A N/A i type broadcastable 0 N/A i N/A N/A u owner inputs N/A N/A idx N/A N/A node inputs N/A 1 N/A new_inputs N/A N/A N/A node op i idx N/A i N/A N/A u owner inputs N/A N/A copy_stack_trace N/A N/A node outputs N/A 0 new_inputs N/A ret N/A N/A N/A u owner op new_inputs N/A N/A copy_stack_trace N/A N/A N/A node outputs N/A 0 N/A N/A node inputs N/A 0 ret N/A N/A ret N/A N/A N/A all N/A N/A N/A sum N/A N/A i type broadcastable N/A N/A i ndim 0 N/A i N/A N/A u owner inputs N/A N/A idx N/A N/A node inputs N/A 1 N/A new_inputs N/A N/A i N/A N/A u owner inputs N/A N/A N/A N/A sum N/A N/A i type broadcastable 0 N/A N/A N/A N/A new_inputs append N/A N/A node op i idx N/A N/A N/A N/A N/A N/A node outputs N/A 0 ndim N/A i ndim N/A N/A N/A N/A new_inputs append i N/A N/A N/A N/A new_inputs append N/A N/A i dimshuffle N/A N/A x N/A N/A N/A node outputs N/A 0 ndim N/A N/A copy_stack_trace N/A N/A node outputs N/A 0 new_inputs N/A ret N/A N/A N/A u owner op new_inputs N/A N/A copy_stack_trace N/A N/A N/A node outputs N/A 0 N/A N/A node inputs N/A 0 ret N/A N/A ret N/A N/A isinstance N/A N/A u owner op N/A T Rebroadcast N/A N/A N/A N/A len N/A N/A u owner inputs 1 N/A new_axis N/A N/A j 0 N/A N/A i x N/A enumerate N/A N/A node op idx_list N/A N/A N/A isinstance x slice N/A N/A new_axis N/A N/A j N/A N/A u broadcastable N/A i N/A j 1 N/A i N/A xrange N/A len N/A N/A node op idx_list N/A len N/A u broadcastable N/A N/A new_axis N/A N/A j N/A N/A u broadcastable N/A i N/A j 1 N/A subt_x N/A N/A node op N/A N/A N/A u owner inputs N/A 0 N/A N/A node inputs N/A 1 N/A N/A copy_stack_trace N/A N/A node outputs N/A 0 subt_x N/A rbcast_subt_x N/A N/A N/A T Rebroadcast new_axis subt_x N/A N/A copy_stack_trace N/A N/A N/A node outputs N/A 0 N/A N/A node inputs N/A 0 rbcast_subt_x N/A N/A rbcast_subt_x N/A N/A register_canonicalize fast_compile N/A N/A gof local_optimizer N/A Subtensor merge_two_slices N/A N/A slice1 len1 slice2 len2 N/A N/A N/A 
     This function merges two slices into a single slice. The code works on
     the assumption that:

     a) slice1 is actually a slice and not an index, while slice2
        can be just an index.

     b) the two slices **have been applied consecutively** on the same
        tensor

    The output slice is **not** in canonical form, but actually just a slice
    that can be applied to a tensor to produce the same output as applying
    the two consecutive slices.
    ``len1`` is the length of the tensor **before** applying the first slice,
    while ``len2`` is the length **after** applying the first slice.
     N/A list_opt N/A local_abs_merge local_mul_switch_sink local_upcast_elemwise_constant_inputs local_useless_switch constant_folding N/A N/A N/A type slice1 slice N/A N/A N/A ValueError First provided slice should actually be of typeslice and not an index ! slice1 N/A N/A sl1 reverse1 N/A get_canonical_form_slice slice1 len1 N/A N/A sl2 reverse2 N/A get_canonical_form_slice slice2 len2 N/A N/A N/A type sl2 slice N/A N/A N/A reverse1 None N/A N/A val N/A N/A sl1 start N/A sl2 N/A sl1 step N/A val N/A N/A T switch N/A N/A T le len2 0 N/A len1 1 val N/A val N/A N/A T switch N/A N/A T ge sl2 len2 N/A len1 1 val N/A val N/A N/A T switch N/A N/A T lt sl2 0 N/A N/A len1 1 val N/A N/A sl1 step N/A N/A val N/A N/A T switch N/A N/A T eq N/A sl1 step 0 N/A len1 1 val N/A val N/A N/A p_val N/A N/A sl1 start N/A sl2 N/A sl1 step N/A n_val N/A N/A N/A sl1 stop 1 N/A sl2 N/A sl1 step N/A N/A N/A config warn subtensor_merge_bug N/A N/A N/A N/A _logger warn Your current code is fine, but Theano versions prior to 0.5rc2 might have given an incorrect result. To disable this warning, set the Theano flag warn.subtensor_merge_bug to False. N/A val N/A N/A T switch N/A N/A T lt reverse1 0 n_val p_val N/A val N/A N/A T switch N/A N/A T le len2 0 N/A len1 1 val N/A val N/A N/A T switch N/A N/A T ge sl2 len2 N/A len1 1 val N/A val N/A N/A T switch N/A N/A T lt sl2 0 N/A N/A len1 1 val N/A N/A sl1 step N/A N/A val N/A N/A T switch N/A N/A T eq N/A sl1 step 0 N/A len1 1 val N/A val N/A N/A flen N/A N/A sl2 stop N/A sl2 start N/A p_step N/A N/A sl1 step N/A sl2 step N/A n_step N/A N/A N/A sl1 step N/A sl2 step -1 N/A pp_start N/A N/A T minimum N/A N/A sl1 start N/A N/A sl2 start N/A sl1 step N/A sl1 stop N/A pp_stop N/A N/A T minimum N/A N/A sl1 start N/A N/A sl2 stop N/A sl1 step N/A sl1 stop N/A pn_stop N/A N/A sl1 start N/A N/A N/A sl2 start 1 N/A sl1 step N/A pn_stop N/A N/A T switch N/A N/A T and_ N/A N/A T lt pn_stop 0 N/A N/A T gt flen 0 N/A N/A len1 1 N/A N/A T minimum pn_stop N/A sl1 stop N/A pn_start N/A N/A sl1 start N/A N/A N/A sl2 stop 1 N/A sl1 step N/A pn_start N/A N/A T minimum pn_start N/A sl1 stop N/A pn_start N/A N/A T maximum pn_start 0 N/A np_stop N/A N/A N/A sl1 stop N/A N/A sl2 stop N/A sl1 step 1 N/A np_stop N/A N/A T switch N/A N/A T and_ N/A N/A T lt np_stop 0 N/A N/A T gt flen 0 N/A N/A len1 1 N/A N/A T maximum N/A N/A sl1 start 1 np_stop N/A np_start N/A N/A T maximum N/A sl1 start N/A N/A N/A sl1 stop N/A N/A sl2 start N/A sl1 step 1 N/A nn_start N/A N/A T maximum N/A sl1 start N/A N/A N/A sl1 stop 1 N/A N/A N/A sl2 stop 1 N/A sl1 step N/A nn_stop N/A N/A T maximum N/A sl1 start N/A N/A sl1 stop N/A N/A sl2 start N/A sl1 step N/A start N/A N/A T switch N/A N/A T lt N/A reverse2 reverse1 0 N/A N/A T switch N/A N/A T lt reverse1 0 np_start pn_start N/A N/A T switch N/A N/A T lt reverse1 0 nn_start pp_start N/A stop N/A N/A T switch N/A N/A T lt N/A reverse2 reverse1 0 N/A N/A T switch N/A N/A T lt reverse1 0 np_stop pn_stop N/A N/A T switch N/A N/A T lt reverse1 0 nn_stop pp_stop N/A step N/A N/A T switch N/A N/A T lt N/A reverse2 reverse1 0 n_step p_step N/A start N/A N/A T switch N/A N/A T le flen 0 0 start N/A stop N/A N/A T switch N/A N/A T le flen 0 0 stop N/A start N/A pre_greedy_local_optimizer list_opt start N/A stop N/A pre_greedy_local_optimizer list_opt stop N/A step N/A pre_greedy_local_optimizer list_opt step N/A start N/A pre_greedy_local_optimizer list_opt start N/A stop N/A pre_greedy_local_optimizer list_opt stop N/A step N/A pre_greedy_local_optimizer list_opt step N/A N/A start stop step N/A pre_constant_merge N/A start stop step N/A N/A slice start stop step N/A local_subtensor_merge N/A N/A node N/A N/A N/A 
    Refactored optimization to deal with all cases of tensor merging.
    Given a subgraph of the form Subtensor(Subtensor(u)), the optimization
    expresses all slices in a canonical form, and then merges them together.

     N/A N/A isinstance N/A node op Subtensor N/A N/A u N/A N/A node inputs N/A 0 N/A N/A N/A u owner N/A isinstance N/A N/A u owner op Subtensor N/A N/A x N/A N/A N/A u owner inputs N/A 0 N/A slices1 N/A get_idx_list N/A N/A u owner inputs N/A N/A N/A u owner op idx_list N/A slices2 N/A get_idx_list N/A node inputs N/A N/A node op idx_list N/A N/A N/A xshape N/A N/A N/A N/A node fgraph shape_feature shape_of N/A x N/A ushape N/A N/A N/A N/A node fgraph shape_feature shape_of N/A u N/A N/A N/A AttributeError N/A N/A xshape N/A x shape N/A ushape N/A u shape N/A merged_slices N/A N/A pos_2 0 N/A pos_1 0 N/A N/A N/A pos_1 N/A len slices1 N/A pos_2 N/A len slices2 N/A N/A slice1 N/A slices1 N/A pos_1 N/A N/A N/A type slice1 slice N/A N/A N/A N/A merged_slices append N/A merge_two_slices slice1 N/A xshape N/A pos_1 N/A slices2 N/A pos_2 N/A ushape N/A pos_2 N/A pos_2 1 N/A N/A N/A N/A merged_slices append slice1 N/A pos_1 1 N/A N/A pos_2 N/A len slices2 N/A N/A merged_slices N/A slices2 N/A pos_2 N/A N/A merged_slices N/A slices1 N/A pos_1 N/A merged_slices N/A make_constant merged_slices N/A subtens N/A Subtensor merged_slices N/A sl_ins N/A N/A Subtensor collapse merged_slices N/A N/A N/A x N/A N/A isinstance x N/A T Variable N/A out N/A subtens x sl_ins N/A N/A copy_stack_trace N/A N/A N/A node outputs N/A 0 N/A N/A node inputs N/A 0 out N/A N/A out N/A register_canonicalize register_specialize N/A N/A gof local_optimizer N/A Subtensor local_subtensor_of_alloc N/A N/A node N/A N/A N/A alloc[x:y] -> alloc N/A N/A N/A isinstance N/A node op Subtensor N/A N/A False N/A u N/A N/A node inputs N/A 0 N/A N/A N/A u owner None N/A N/A False N/A N/A N/A isinstance N/A N/A u owner op N/A T Alloc N/A N/A False N/A slices N/A get_idx_list N/A node inputs N/A N/A node op idx_list N/A val N/A N/A N/A u owner inputs N/A 0 N/A dims N/A N/A N/A u owner inputs N/A 1 N/A N/A N/A len slices N/A len dims N/A n_added_dims N/A N/A u ndim N/A val ndim N/A nw_dims N/A N/A val_slices N/A N/A N/A i N/A sl dim N/A enumerate N/A zip slices dims N/A N/A N/A i n_added_dims N/A N/A N/A N/A N/A N/A val type ndim N/A i n_added_dims N/A N/A N/A val type broadcastable N/A N/A i n_added_dims N/A N/A N/A N/A val_slices append N/A slice None N/A N/A N/A N/A val_slices append sl N/A N/A csl _ N/A get_canonical_form_slice sl dim N/A N/A N/A type csl slice N/A N/A N/A N/A nw_dim N/A N/A csl stop N/A csl start N/A N/A N/A csl step 1 N/A N/A nw_dim N/A N/A T ceil_intdiv nw_dim N/A csl step N/A nw_dims N/A nw_dim N/A nw_val N/A val N/A N/A tuple val_slices N/A nw_dims N/A dims N/A N/A len slices N/A N/A N/A nw_val ndim N/A len nw_dims N/A N/A False N/A rval N/A N/A T alloc nw_val nw_dims N/A N/A N/A type rval N/A list tuple N/A N/A rval N/A rval N/A N/A N/A N/A rval N/A 0 type N/A N/A N/A node outputs N/A 0 type N/A N/A N/A rval N/A 0 N/A N/A N/A theano tensor unbroadcast N/A rval N/A 0 N/A i N/A N/A i N/A b1 b2 N/A enumerate N/A zip N/A N/A rval N/A 0 broadcastable N/A N/A N/A node outputs N/A 0 broadcastable N/A b1 N/A b2 N/A rval N/A register_canonicalize register_specialize N/A N/A gof local_optimizer N/A Subtensor local_subtensor_of_dot N/A N/A node N/A N/A N/A 
    This optimization translates T.dot(A, B)[idxs] into T.dot(A[idxs_a], B[idxs_b]),
    where idxs_a and idxs_b are defined appropriately.

    idxs_a is the first A.ndim-1 entries of idxs,
    and idxs_b is the remaining entries of idxs (if any),
    modified to skip the second-to-last dimension of B
    (because dot sums over this dimension).

     N/A N/A N/A isinstance N/A node op Subtensor N/A N/A N/A N/A N/A N/A N/A N/A node inputs N/A 0 owner N/A N/A isinstance N/A N/A N/A N/A node inputs N/A 0 owner op N/A T Dot N/A N/A N/A N/A N/A len N/A N/A N/A node inputs N/A 0 clients 1 N/A N/A N/A a N/A N/A N/A N/A N/A node inputs N/A 0 owner inputs N/A 0 N/A b N/A N/A N/A N/A N/A node inputs N/A 0 owner inputs N/A 1 N/A idx_list N/A get_idx_list N/A node inputs N/A N/A node op idx_list N/A num_a_indices N/A min N/A N/A a ndim 1 N/A len idx_list N/A a_indices N/A idx_list N/A num_a_indices N/A b_indices N/A idx_list N/A num_a_indices N/A N/A N/A N/A b ndim 1 N/A N/A len b_indices N/A N/A b ndim 1 N/A N/A b_indices N/A N/A N/A b_indices N/A N/A N/A b ndim 2 N/A N/A slice None None None N/A b_indices N/A N/A N/A b ndim 2 N/A a_sub N/A N/A a __getitem__ N/A tuple a_indices N/A b_sub N/A b_indices N/A N/A b __getitem__ N/A tuple b_indices b N/A N/A copy_stack_trace N/A N/A node outputs N/A 0 N/A a_sub b_sub N/A r N/A N/A T dot a_sub b_sub N/A N/A copy_stack_trace N/A N/A N/A node outputs N/A 0 N/A N/A node inputs N/A 0 r N/A N/A r N/A register_canonicalize register_stabilize register_specialize N/A N/A gof local_optimizer N/A Subtensor local_IncSubtensor_serialize N/A N/A node N/A N/A N/A 
    When using Subtensor, gradient graphs can be ugly.

    If we ask for grad(f(a[0]), a), we are going to get something like

        IncSubtensor(Elemwise{second}(a, 0), g(f(a[0])), [0])

    This might be ugly, but at least it's as fast as you could want.
    If we ask for grad(f(a[0], a[1], a[2]), a), it's much worse...

        Elemwise{Add}
            IncSubtensor(Elemwise{second}(a, 0), g(f(a[0])), [0])
            IncSubtensor(Elemwise{second}(a, 0), g(f(a[1])), [1])
            IncSubtensor(Elemwise{second}(a, 0), g(f(a[2])), [2])

    This is much worse because this time we have to produce 3 matrices
    the size of 'a', just so we can add them together.

    This Op rearranges IncSubtensor's that all work on the same
    initial argument (here, Elemwise{second}(a,0)) into a chain.  The
    advantage of the chain structure is that each one can be optimized
    later in the pipeline to operate inplace.

    Ideally, the op will do something like this:

    #
    #  add(x, incsubtensor(b, c), incsubtensor(b, d))
    #  -> incsubtensor(incsubtensor(add(x,b,b), c), d)

     movable N/A N/A i N/A N/A N/A N/A N/A i owner N/A isinstance N/A N/A i owner op N/A IncSubtensor AdvancedIncSubtensor1 AdvancedIncSubtensor N/A N/A i type o_type N/A N/A len N/A i clients 1 N/A N/A N/A N/A i owner op set_instead_of_inc N/A N/A N/A N/A node op N/A T add N/A N/A o_type N/A N/A N/A node outputs N/A 0 type N/A movable_inputs N/A i N/A i N/A node inputs N/A movable i N/A movable_inputs N/A N/A new_inputs N/A N/A i N/A i N/A node inputs N/A N/A movable i N/A N/A N/A N/A mi owner inputs N/A 0 N/A mi movable_inputs N/A new_add N/A N/A T add new_inputs N/A N/A copy_stack_trace N/A N/A node outputs N/A 0 new_add N/A tip new_add N/A mi movable_inputs N/A N/A N/A N/A tip type o_type N/A N/A N/A tip type N/A N/A N/A N/A mi owner inputs N/A 0 type N/A tip N/A N/A N/A mi owner op tip N/A N/A N/A mi owner inputs N/A 1 N/A N/A copy_stack_trace N/A N/A node outputs N/A N/A mi owner outputs tip N/A N/A tip N/A register_canonicalize N/A N/A gof local_optimizer N/A N/A T add N/A N/A N/A N/A compile optdb register pre_local_IncSubtensor_serialize N/A in2out local_IncSubtensor_serialize 0.99 fast_run local_inplace_setsubtensor N/A N/A node N/A N/A N/A 
    Also work for GpuIncSubtensor.

     N/A N/A N/A isinstance N/A node op IncSubtensor N/A N/A N/A node op inplace N/A N/A dta N/A N/A node op destroyhandler_tolerate_aliased N/A new_op N/A N/A N/A node op __class__ N/A N/A node op idx_list inplace True set_instead_of_inc N/A N/A node op set_instead_of_inc destroyhandler_tolerate_aliased dta N/A new_node N/A new_op N/A node inputs N/A val N/A getattr N/A N/A N/A node outputs N/A 0 tag nan_guard_mode_check True N/A N/A N/A new_node tag nan_guard_mode_check val N/A N/A copy_stack_trace N/A node outputs new_node N/A N/A new_node N/A False N/A N/A N/A gof local_optimizer N/A IncSubtensor inplace True N/A N/A N/A N/A compile optdb register local_inplace_setsubtensor N/A TopoOptimizer local_inplace_setsubtensor failure_callback N/A TopoOptimizer warn_inplace 60 fast_run inplace local_inplace_incsubtensor1 N/A N/A node N/A N/A N/A 
    Also work for GpuAdvancedIncSubtensor1.

     N/A N/A N/A isinstance N/A node op AdvancedIncSubtensor1 N/A N/A N/A node op inplace N/A N/A new_op N/A N/A N/A node op clone_inplace N/A new_node N/A new_op N/A node inputs N/A N/A copy_stack_trace N/A node outputs new_node N/A N/A new_node N/A False N/A N/A N/A gof local_optimizer N/A AdvancedIncSubtensor1 inplace True N/A N/A N/A N/A compile optdb register local_inplace_incsubtensor1 N/A TopoOptimizer local_inplace_incsubtensor1 failure_callback N/A TopoOptimizer warn_inplace 60 fast_run inplace local_incsubtensor_of_zeros N/A N/A node N/A N/A N/A 
    IncSubtensor(x, zeros, idx) -> x

     N/A N/A N/A isinstance N/A node op N/A IncSubtensor AdvancedIncSubtensor AdvancedIncSubtensor1 N/A N/A N/A node op set_instead_of_inc N/A N/A x N/A N/A node inputs N/A 0 N/A y N/A N/A node inputs N/A 1 N/A replace False N/A N/A N/A N/A N/A get_scalar_constant_value y 0 N/A N/A replace True N/A N/A N/A NotScalarConstantError N/A N/A N/A replace N/A N/A N/A x N/A N/A False N/A N/A register_canonicalize local_incsubtensor_of_allocs N/A register_stabilize local_incsubtensor_of_allocs N/A N/A gof local_optimizer N/A IncSubtensor AdvancedIncSubtensor AdvancedIncSubtensor1 local_setsubtensor_of_constants N/A N/A node N/A N/A N/A 
    SetSubtensor(x, x[idx], idx) -> x

    when x is constant or alloc.

     N/A N/A N/A isinstance N/A node op IncSubtensor N/A N/A node op set_instead_of_inc N/A N/A x N/A N/A node inputs N/A 0 N/A y N/A N/A node inputs N/A 1 N/A replace_x None N/A replace_y None N/A N/A N/A replace_x N/A get_scalar_constant_value x N/A N/A N/A NotScalarConstantError N/A N/A N/A N/A N/A replace_y N/A get_scalar_constant_value y N/A N/A N/A NotScalarConstantError N/A N/A N/A N/A N/A replace_x None N/A replace_y None N/A replace_x replace_y N/A N/A N/A x N/A N/A False N/A N/A register_canonicalize local_setsubtensor_of_allocs N/A register_stabilize local_setsubtensor_of_allocs N/A N/A gof local_optimizer N/A IncSubtensor local_adv_sub1_adv_inc_sub1 N/A N/A node N/A N/A N/A Optimize the possible AdvSub1(AdvIncSub1(...), ...).

    AdvancedSubtensor1(AdvancedIncSubtensor1(0s, y, idx), idx) -> y
    AdvancedSubtensor1(AdvancedSetSubtensor1(x, y, idx), idx) -> y

    Notes
    -----
    This opt add AssertOp. Otherwise, it would remove shape and
    index error. If you want to get rid of them, see the
    :ref:`unsafe_optimization` section.

     N/A N/A N/A isinstance N/A node op AdvancedSubtensor1 N/A N/A N/A inp N/A N/A node inputs N/A 0 N/A N/A N/A N/A inp owner N/A N/A isinstance N/A N/A inp owner op AdvancedIncSubtensor1 N/A N/A N/A idx N/A N/A node inputs N/A 1 N/A idx2 N/A N/A N/A inp owner inputs N/A 2 N/A x N/A N/A N/A inp owner inputs N/A 0 N/A y N/A N/A N/A inp owner inputs N/A 1 N/A N/A idx idx2 N/A N/A N/A N/A N/A N/A N/A N/A inp owner op set_instead_of_inc N/A N/A N/A T extract_constant x 0 N/A N/A N/A cond N/A N/A N/A T all N/A N/A T and_ N/A N/A T lt idx N/A N/A x shape N/A 0 N/A N/A T ge idx N/A N/A N/A x shape N/A 0 N/A N/A N/A N/A N/A N/A node fgraph shape_feature same_shape idx y 0 0 N/A N/A N/A N/A cond append N/A N/A T eq N/A N/A idx shape N/A 0 N/A N/A y shape N/A 0 N/A y N/A N/A Assert Bad indexing or shapes in a AdvancedIncSubtensor1 that was optimized away y cond N/A N/A N/A y dtype N/A N/A N/A node outputs N/A 0 dtype N/A N/A N/A y N/A r N/A N/A T cast y N/A N/A N/A node outputs N/A 0 dtype N/A N/A copy_stack_trace y r N/A N/A r N/A register_canonicalize register_stabilize N/A N/A gof local_optimizer N/A AdvancedSubtensor1 local_useless_inc_subtensor_alloc N/A N/A node N/A N/A N/A 
    Replaces an [Advanced]IncSubtensor[1], whose increment is an `alloc` of
    a fully or partially broadcastable variable, by one that skips the
    intermediate `alloc` where possible.

     N/A N/A isinstance N/A node op N/A IncSubtensor AdvancedIncSubtensor AdvancedIncSubtensor1 N/A N/A x N/A N/A node inputs N/A 0 N/A y N/A N/A node inputs N/A 1 N/A i N/A N/A node inputs N/A 2 N/A N/A N/A N/A y owner None N/A isinstance N/A N/A y owner op N/A T Alloc N/A N/A z N/A N/A N/A y owner inputs N/A 0 N/A N/A N/A shape_feature N/A N/A node fgraph shape_feature N/A N/A N/A AttributeError N/A N/A False N/A shape_of N/A shape_feature shape_of N/A same_shape N/A shape_feature same_shape N/A N/A isinstance N/A node op IncSubtensor N/A N/A xi N/A N/A Subtensor N/A N/A node op idx_list x i N/A N/A N/A isinstance N/A node op AdvancedIncSubtensor N/A N/A xi N/A advanced_subtensor x i N/A N/A N/A isinstance N/A node op AdvancedIncSubtensor1 N/A N/A xi N/A advanced_subtensor1 x i N/A N/A N/A Exception Should never happen! N/A reason local_useless_incsubtensor_alloc N/A N/A xi shape_of N/A N/A N/A N/A shape_feature on_import N/A node fgraph N/A xi owner N/A %s: add `xi` reason N/A N/A N/A xi ndim N/A y ndim N/A N/A y N/A N/A T shape_padleft y N/A N/A xi ndim N/A y ndim N/A N/A y shape_of N/A N/A N/A N/A shape_feature on_import N/A node fgraph N/A y owner N/A %s: add `y` reason N/A z_broad N/A N/A N/A True N/A N/A xi ndim N/A z ndim N/A z broadcastable N/A cond N/A N/A N/A T or_ N/A N/A T eq N/A N/A y shape N/A k 1 N/A N/A T eq N/A N/A y shape N/A k N/A N/A xi shape N/A k N/A k N/A xrange N/A xi ndim N/A N/A z_broad N/A k N/A N/A same_shape xi y dim_x k dim_y k N/A N/A N/A shape_of N/A y N/A k 1 N/A N/A N/A len cond 0 N/A N/A msg `x[i]` and `y` do not have the same shape. N/A z N/A N/A Assert msg z cond N/A r N/A N/A node op x z i N/A N/A copy_stack_trace N/A node outputs r N/A N/A r N/A register_specialize register_stabilize register_canonicalize N/A N/A gof local_optimizer N/A IncSubtensor AdvancedIncSubtensor AdvancedIncSubtensor1 local_useless_rebroadcast N/A N/A node N/A N/A N/A 
    Remove Rebroadcast if id does not actually change the broadcasting pattern.

     N/A N/A isinstance N/A node op N/A T Rebroadcast N/A N/A x N/A N/A node inputs N/A 0 N/A N/A N/A numpy all N/A N/A x broadcastable N/A N/A N/A node outputs N/A 0 broadcastable N/A N/A N/A x N/A N/A new_axis N/A N/A N/A dim bc N/A list N/A N/A N/A N/A node op axis items N/A N/A N/A N/A N/A x broadcastable N/A dim bc N/A N/A N/A new_axis N/A dim bc N/A N/A new_axis N/A N/A node op axis N/A N/A N/A N/A r N/A N/A N/A T Rebroadcast N/A list N/A N/A new_axis items x N/A N/A copy_stack_trace N/A node outputs r N/A N/A r N/A register_canonicalize register_specialize N/A N/A gof local_optimizer N/A N/A T Rebroadcast local_rebroadcast_lift N/A N/A node N/A N/A N/A 
    Lifts Rebroadcast through unary Elemwise operations,
    and merges consecutive Rebroadcasts.

    Rebroadcast(Elemwise(x)) => Elemwise(Rebroadcast(x))
    Rebroadcast(Rebroadcast(x)) => Rebroadcast(x)

     N/A op N/A node op N/A N/A N/A isinstance op N/A T Rebroadcast N/A N/A False N/A input N/A N/A node inputs N/A 0 N/A inode N/A input owner N/A N/A inode N/A isinstance N/A inode op Elemwise N/A N/A len N/A inode inputs 1 N/A N/A N/A N/A hasattr input clients N/A N/A len N/A input clients 1 N/A N/A rebroadcasted N/A N/A N/A T Rebroadcast N/A list N/A N/A N/A op axis items N/A N/A inode inputs N/A 0 N/A N/A copy_stack_trace N/A node outputs rebroadcasted N/A rval N/A N/A N/A N/A inode op make_node rebroadcasted outputs N/A N/A copy_stack_trace N/A N/A node outputs N/A node inputs rval N/A rval N/A N/A inode N/A isinstance N/A inode op N/A T Rebroadcast N/A N/A axis N/A N/A N/A N/A inode op axis copy N/A N/A N/A axis update N/A op axis N/A iinput N/A N/A inode inputs N/A 0 N/A rval N/A N/A N/A N/A T Rebroadcast N/A list N/A N/A axis items iinput N/A N/A copy_stack_trace N/A N/A node outputs N/A node inputs rval N/A rval N/A register_canonicalize register_specialize N/A N/A gof local_optimizer N/A N/A T Rebroadcast apply_rebroadcast_opt N/A N/A rval N/A N/A N/A 
    Apply as many times as required the optimization local_useless_rebroadcast
    and local_rebroadcast_lift.

    Parameters
    ----------
    rval: a Variable

    Returns
    -------
    A Variable (the same if no optimization can be applied)

     N/A changed True N/A N/A changed N/A rval owner N/A N/A changed False N/A rval2 N/A N/A N/A N/A N/A theano tensor opt local_useless_rebroadcast transform N/A rval owner N/A rval2 N/A N/A N/A N/A len rval2 1 N/A rval N/A rval2 N/A 0 N/A changed True N/A N/A rval owner N/A N/A rval2 N/A N/A N/A N/A N/A theano tensor opt local_rebroadcast_lift transform N/A rval owner N/A rval2 N/A N/A N/A N/A len rval2 1 N/A rval N/A rval2 N/A 0 N/A changed True N/A rval N/A local_join_1 N/A N/A node N/A N/A N/A Join(i, x) => x

    Remove Join() when only one element is joined.

     N/A N/A N/A isinstance N/A node op N/A T Join N/A N/A N/A tensors N/A N/A node inputs N/A 1 N/A N/A N/A len tensors 1 N/A N/A N/A N/A tensors N/A 0 N/A register_specialize register_canonicalize N/A N/A gof local_optimizer N/A N/A T Join local_join_empty N/A N/A node N/A N/A N/A Join(i, x, y, empty) => Join(i, x, y)

    Remove empty inputs to joins. The empty inputs can be anywhere.

     N/A N/A N/A isinstance N/A node op N/A T Join N/A N/A N/A new_inputs N/A N/A N/A N/A join_idx N/A get_scalar_constant_value N/A N/A node inputs N/A 0 N/A N/A N/A NotScalarConstantError N/A N/A N/A idx N/A xrange 1 N/A len N/A node inputs N/A N/A inp N/A N/A node inputs N/A idx N/A N/A N/A isinstance inp N/A theano Constant N/A N/A N/A N/A inp data shape N/A join_idx 0 N/A N/A N/A N/A N/A new_inputs append inp N/A N/A N/A len new_inputs N/A N/A len N/A node inputs 1 N/A N/A N/A N/A len new_inputs 0 N/A N/A N/A ret N/A N/A T join N/A N/A node inputs N/A 0 new_inputs N/A o N/A N/A node outputs N/A 0 N/A N/A N/A ret dtype N/A o dtype N/A N/A N/A N/A copy_stack_trace N/A node outputs ret N/A N/A N/A ret type N/A o type N/A N/A N/A N/A ret dtype N/A o dtype N/A N/A N/A ret ndim N/A o ndim N/A ret N/A N/A T patternbroadcast ret N/A N/A N/A node outputs N/A 0 broadcastable N/A N/A copy_stack_trace N/A node outputs ret N/A N/A ret N/A register_specialize register_canonicalize N/A N/A gof local_optimizer N/A N/A T Join local_join_make_vector N/A N/A node N/A N/A N/A Join(0, make_vector1, make_vector2, ...) => Join(0, make_vector12, ...)

    Merge MakeVector inputs to Join. This can make the join completly
    disapear with the local_join_1 opt.

     N/A N/A N/A N/A isinstance N/A node op N/A T Join N/A N/A N/A N/A node outputs N/A 0 ndim 1 N/A N/A N/A new_inputs N/A N/A N/A node inputs N/A 1 N/A idx N/A xrange 2 N/A len N/A node inputs N/A N/A inp N/A N/A node inputs N/A idx N/A N/A N/A inp owner N/A isinstance N/A N/A inp owner op MakeVector N/A N/A new_inputs N/A -1 owner N/A isinstance N/A N/A N/A new_inputs N/A -1 owner op MakeVector N/A N/A N/A inp owner op N/A N/A N/A new_inputs N/A -1 owner op N/A N/A inps N/A N/A N/A N/A new_inputs N/A -1 owner inputs N/A N/A inp owner inputs N/A N/A new_inputs N/A -1 N/A N/A N/A inp owner op inps N/A N/A copy_stack_trace N/A node outputs N/A new_inputs N/A -1 N/A N/A N/A N/A new_inputs append inp N/A N/A N/A len new_inputs N/A N/A len N/A node inputs 1 N/A N/A ret N/A N/A T join N/A N/A node inputs N/A 0 new_inputs N/A N/A copy_stack_trace N/A node outputs ret N/A N/A ret N/A register_specialize register_canonicalize N/A N/A gof local_optimizer N/A N/A T Join local_useless_switch N/A N/A node N/A N/A N/A 
    This optimization makes the following changes in the graph:
        T.switch(cond,left,right) -->
               if cond is constant and cond == 0: right
               if cond is constant and cond != 0: left
               if left is right -> left

        T.switch(le(shape_i{id}(X), 0), 0, shape_i{id}(X)) -> shape_i{id}(X)
     N/A N/A N/A isinstance N/A node op N/A T Elemwise N/A isinstance N/A N/A node op scalar_op N/A N/A scalar basic Switch N/A N/A cond N/A N/A T extract_constant N/A N/A node inputs N/A 0 elemwise False N/A N/A N/A N/A type cond N/A numpy ndarray N/A N/A cond ndim 0 N/A N/A N/A cond 0 N/A N/A correct_out N/A N/A node inputs N/A 2 N/A N/A correct_out N/A N/A node inputs N/A 1 N/A N/A N/A correct_out ndim N/A N/A N/A node outputs N/A 0 ndim N/A N/A False N/A N/A N/A correct_out dtype N/A N/A N/A node outputs N/A 0 dtype N/A N/A out N/A N/A T cast correct_out N/A N/A N/A node outputs N/A 0 dtype N/A N/A out correct_out N/A N/A N/A N/A out type broadcastable N/A N/A N/A N/A node outputs N/A 0 type broadcastable N/A N/A out N/A N/A T alloc out N/A N/A N/A N/A N/A node outputs N/A 0 shape N/A i N/A i N/A xrange N/A out ndim N/A N/A out out N/A N/A copy_stack_trace N/A N/A node outputs correct_out out N/A N/A out N/A N/A N/A N/A node inputs N/A 1 N/A N/A node inputs N/A 2 N/A N/A N/A N/A cond type N/A N/A N/A node inputs N/A 1 type N/A N/A N/A N/A N/A node inputs N/A 1 N/A ret N/A N/A T fill cond N/A N/A node inputs N/A 1 N/A N/A copy_stack_trace N/A N/A node outputs N/A N/A node inputs N/A 1 ret N/A N/A ret N/A left N/A N/A node inputs N/A 1 N/A right N/A N/A node inputs N/A 2 N/A cond_var N/A N/A node inputs N/A 0 N/A N/A N/A cond_var owner N/A isinstance N/A N/A cond_var owner op N/A T Elemwise N/A isinstance N/A N/A N/A cond_var owner op scalar_op N/A scalar LE N/A N/A N/A N/A cond_var owner inputs N/A 0 owner N/A isinstance N/A N/A N/A N/A N/A cond_var owner inputs N/A 0 owner op Shape_i N/A N/A N/A T extract_constant N/A N/A N/A cond_var owner inputs N/A 1 0 N/A N/A N/A T extract_constant left 0 N/A right N/A N/A N/A cond_var owner inputs N/A 0 N/A N/A N/A N/A right type N/A N/A N/A node outputs N/A 0 type N/A N/A right N/A False N/A False N/A N/A register_canonicalize fast_compile local_remove_switch_const_cond register_specialize N/A N/A gof local_optimizer N/A N/A T Elemwise local_mul_switch_sink N/A N/A node N/A N/A N/A 
    This optimization makes the folowing changes in the graph:
    T.mul(A,T.switch(cond,0,iff),B) -->  T.switch(cond,0,T.mul(A,B,iff))
    T.mul(A,T.switch(cond,ift,0),B) -->  T.switch(cond,T.mul(A,B,ift),0)
    A and B being several (or none) symbolic variables.
    This is useful because A and B may not be numerically stable and give
    NaN or inf values for cases where the switch returns 0.
    With this optimization T.grad(T.switch(...)) has the right behavior.

    Examples
    --------
      x -> f(x)
      x -> g(x)
      y = T.switch(cond,f(x),g(x))
      **without the optimization
      T.grad(y,x) -> grad(f(x),x) * grad(y,f(x)) +  grad(g(x),x) * grad(y,g(x))
      **with the optimization
      T.grad(y,x) -> switch(cond,grad(f(x),x), 0) + switch(cond,0,grad(g(x),x))
    This will be particularly useful for the lazyif because we skip
    an entire part of the graph.

     N/A N/A N/A node op N/A T mul N/A N/A False N/A N/A idx i N/A enumerate N/A node inputs N/A N/A N/A N/A i owner N/A N/A N/A i owner op N/A T switch N/A N/A switch N/A i owner N/A N/A N/A N/A N/A get_scalar_constant_value N/A N/A switch inputs N/A 1 only_process_constants True 0.0 N/A N/A listmul N/A N/A N/A node inputs N/A idx N/A N/A node inputs N/A N/A idx 1 N/A fmul N/A N/A T mul N/A listmul N/A N/A N/A switch inputs N/A 2 N/A N/A copy_stack_trace N/A node outputs fmul N/A fct N/A N/A N/A T switch N/A N/A switch inputs N/A 0 0 fmul N/A N/A N/A N/A fct N/A 0 tag values_eq_approx values_eq_approx_remove_nan N/A N/A copy_stack_trace N/A N/A node outputs N/A switch outputs fct N/A fct N/A N/A N/A NotScalarConstantError N/A N/A N/A N/A N/A N/A N/A get_scalar_constant_value N/A N/A switch inputs N/A 2 only_process_constants True 0.0 N/A N/A listmul N/A N/A N/A node inputs N/A idx N/A N/A node inputs N/A N/A idx 1 N/A fmul N/A N/A T mul N/A listmul N/A N/A N/A switch inputs N/A 1 N/A N/A copy_stack_trace N/A node outputs fmul N/A fct N/A N/A N/A T switch N/A N/A switch inputs N/A 0 fmul 0 N/A N/A N/A N/A fct N/A 0 tag values_eq_approx values_eq_approx_remove_nan N/A N/A copy_stack_trace N/A N/A node outputs N/A switch outputs fct N/A fct N/A N/A N/A NotScalarConstantError N/A N/A N/A False N/A register_specialize register_canonicalize N/A N/A gof local_optimizer N/A N/A T mul local_div_switch_sink N/A N/A node N/A N/A N/A 
    This optimization makes the folowing changes in the graph:
    T.div(T.switch(cond,0,iff),A) -->  T.switch(cond,0,T.div(iff,A))
    T.div(T.switch(cond,ift,0),A) -->  T.switch(cond,T.div(ift,A),0)

    A being a symbolic variable.
    This is useful because A may not be numerically stable and give
    NaN or inf values for cases where the switch returns 0.
    See local_mul_switch_sink for more details.

     N/A N/A N/A N/A node op N/A T true_div N/A N/A node op N/A T int_div N/A N/A False N/A op N/A node op N/A N/A N/A N/A N/A node inputs N/A 0 owner N/A N/A N/A N/A N/A node inputs N/A 0 owner op N/A T switch N/A N/A switch N/A N/A N/A node inputs N/A 0 owner N/A N/A N/A N/A N/A get_scalar_constant_value N/A N/A switch inputs N/A 1 0.0 N/A N/A fdiv N/A op N/A N/A switch inputs N/A 2 N/A N/A node inputs N/A 1 N/A N/A copy_stack_trace N/A node outputs fdiv N/A fct N/A N/A N/A T switch N/A N/A switch inputs N/A 0 0 fdiv N/A N/A N/A N/A fct N/A 0 tag values_eq_approx values_eq_approx_remove_nan N/A N/A copy_stack_trace N/A N/A node outputs N/A switch outputs fct N/A fct N/A N/A N/A NotScalarConstantError N/A N/A N/A N/A N/A N/A N/A get_scalar_constant_value N/A N/A switch inputs N/A 2 0.0 N/A N/A fdiv N/A op N/A N/A switch inputs N/A 1 N/A N/A node inputs N/A 1 N/A N/A copy_stack_trace N/A node outputs fdiv N/A fct N/A N/A N/A T switch N/A N/A switch inputs N/A 0 fdiv 0 N/A N/A N/A N/A fct N/A 0 tag values_eq_approx values_eq_approx_remove_nan N/A N/A copy_stack_trace N/A N/A node outputs N/A switch outputs fct N/A fct N/A N/A N/A NotScalarConstantError N/A N/A N/A False N/A register_canonicalize N/A N/A gof local_optimizer N/A N/A T true_div N/A T int_div local_useless_tile N/A N/A node N/A N/A N/A Tile(x, (1,)*N) -> x

    This is useless tile. (1,)*N, just mean a vector with all element
    being 1.

     N/A N/A isinstance N/A node op N/A T Tile N/A N/A N/A N/A a N/A N/A T get_scalar_constant_value N/A N/A node inputs N/A 1 N/A N/A a 1 N/A N/A N/A N/A l N/A N/A T get_vector_length N/A N/A node inputs N/A 1 N/A N/A l N/A N/A N/A node inputs N/A 0 ndim N/A N/A N/A N/A N/A node inputs N/A 0 N/A N/A N/A l N/A N/A N/A node inputs N/A 0 ndim N/A N/A N/A N/A N/A N/A node inputs N/A 0 N/A N/A N/A x_nd N/A N/A N/A node inputs N/A 0 ndim N/A broad N/A N/A N/A x N/A l x_nd N/A xrange x_nd N/A ret N/A N/A N/A N/A node inputs N/A 0 dimshuffle broad N/A N/A copy_stack_trace N/A N/A node outputs N/A N/A node inputs N/A 0 ret N/A N/A ret N/A N/A N/A ValueError N/A N/A N/A N/A N/A NotScalarConstantError N/A N/A N/A register_canonicalize register_stabilize N/A N/A gof local_optimizer N/A N/A T Tile local_useless_split N/A N/A node N/A N/A N/A  Split{n_splits=1}(x, y) -> x

    Remove Split with only 1 split.

     N/A N/A isinstance N/A node op N/A T Split N/A N/A N/A N/A N/A node op len_splits 1 N/A N/A N/A x axis splits N/A node inputs N/A out N/A assert_op x N/A N/A T eq N/A N/A splits shape N/A 0 1 N/A out N/A assert_op out N/A N/A T eq N/A N/A x shape N/A axis N/A splits N/A 0 N/A N/A copy_stack_trace N/A node outputs out N/A N/A out N/A register_canonicalize register_specialize N/A N/A gof local_optimizer N/A N/A T Split local_flatten_lift N/A N/A node N/A N/A N/A 
    Flatten(UnaryElemwise(x)) -> UnaryElemwise(Flatten(x))

    This optimization is needed by optimization
    nnet/sigm.py:log1msigm_to_softplus to get applied when there is a flatten.

     N/A N/A N/A isinstance N/A node op N/A T Flatten N/A N/A N/A node inputs N/A 0 owner N/A isinstance N/A N/A N/A N/A node inputs N/A 0 owner op N/A T Elemwise N/A N/A len N/A N/A N/A N/A node inputs N/A 0 owner inputs 1 N/A N/A f N/A N/A node op N/A N/A N/A N/A N/A node inputs N/A 0 owner inputs N/A 0 N/A e N/A N/A N/A N/A N/A node inputs N/A 0 owner op f N/A N/A e N/A register_canonicalize register_stabilize N/A N/A gof local_optimizer N/A N/A T Flatten local_reshape_chain N/A N/A op N/A N/A f N/A N/A node N/A N/A N/A 
        Reshape(Reshape(shape1),shape2) -> Reshape(shape2)

         N/A N/A N/A N/A opt check_chain node op op N/A N/A False N/A rval N/A N/A node op N/A N/A N/A N/A N/A node inputs N/A 0 owner inputs N/A 0 N/A N/A node inputs N/A 1 N/A N/A N/A rval broadcastable N/A N/A N/A node outputs N/A 0 broadcastable N/A N/A N/A rval N/A N/A False N/A N/A N/A gof local_optimizer N/A op N/A f N/A N/A N/A register_canonicalize N/A local_reshape_chain N/A T Reshape name local_reshape_chain local_useless_reshape N/A N/A node N/A N/A N/A 
    Remove Reshape when both the input and the output have a
    single dimension.

     N/A N/A isinstance N/A node op N/A T Reshape N/A N/A N/A N/A N/A N/A N/A node inputs N/A 0 ndim 1 N/A N/A N/A N/A node outputs N/A 0 ndim 1 N/A N/A N/A N/A node inputs N/A 0 broadcastable N/A N/A N/A node outputs N/A 0 broadcastable N/A N/A N/A N/A N/A node inputs N/A 0 N/A register_canonicalize register_stabilize N/A N/A gof local_optimizer N/A N/A T Reshape local_reshape_lift N/A N/A node N/A N/A N/A 
    Reshape(UnaryElemwise(x)) -> UnaryElemwise(Reshape(x))

    This optimization is needed by optimization
    nnet/sigm.py:log1msigm_to_softplus to get applied when there is a reshape.

     N/A N/A N/A isinstance N/A node op N/A T Reshape N/A N/A N/A node inputs N/A 0 owner N/A isinstance N/A N/A N/A N/A node inputs N/A 0 owner op N/A T Elemwise N/A N/A len N/A N/A N/A N/A node inputs N/A 0 owner inputs 1 N/A N/A r N/A N/A node op N/A N/A N/A N/A N/A node inputs N/A 0 owner inputs N/A 0 N/A N/A node inputs N/A 1 N/A e N/A N/A N/A N/A N/A node inputs N/A 0 owner op r N/A N/A N/A e type N/A N/A N/A node outputs N/A 0 type N/A N/A e N/A N/A T patternbroadcast e N/A N/A N/A node outputs N/A 0 broadcastable N/A N/A e N/A register_canonicalize register_stabilize N/A N/A gof local_optimizer N/A N/A T Reshape N/A 0 N/A local_scalar_reshape N/A N/A node N/A N/A N/A Eliminate reshape Ops whose inputs and outputs are scalars  N/A N/A isinstance N/A node op N/A T Reshape N/A N/A N/A x shp N/A node inputs N/A N/A N/A N/A x ndim 0 N/A N/A N/A T get_vector_length shp 0 N/A N/A N/A x N/A register_canonicalize N/A N/A gof local_optimizer N/A N/A T Reshape N/A 0 N/A local_sum_over_empty N/A N/A node N/A N/A N/A N/A isinstance N/A node op N/A T Sum N/A N/A N/A N/A hasattr N/A node fgraph shape_feature N/A N/A N/A N/A y N/A node outputs N/A y_shape N/A N/A N/A N/A node fgraph shape_feature shape_of N/A y tmp N/A N/A thing N/A N/A N/A N/A N/A N/A N/A T get_scalar_constant_value thing N/A N/A N/A N/A TypeError ValueError N/A e N/A N/A N/A print e N/A N/A N/A thing owner inputs N/A 0 N/A None N/A N/A N/A print LOCAL SUM EMPTY N/A N/A tmp s N/A s y_shape N/A register_canonicalize N/A N/A gof local_optimizer N/A N/A T Sum local_fill_cut N/A N/A node N/A N/A N/A 
    f(fill(a,b), c) -> f(b, c)
    If c.type == a.type.
     N/A N/A N/A node op N/A T Elemwise N/A N/A False N/A output N/A N/A node outputs N/A 0 N/A N/A N/A reference N/A N/A input N/A input N/A node inputs N/A N/A N/A input type N/A output type N/A N/A N/A input owner N/A N/A N/A input owner op N/A T fill N/A 0 N/A N/A N/A IndexError N/A N/A False N/A new_inputs N/A N/A new False N/A input N/A node inputs N/A N/A N/A N/A input owner N/A N/A N/A input owner op N/A T fill N/A N/A N/A model filling N/A N/A input owner inputs N/A N/A encompasses_broadcastable N/A N/A reference type broadcastable N/A N/A filling type broadcastable N/A N/A N/A N/A new_inputs append filling N/A new True N/A N/A N/A N/A new_inputs append input N/A N/A new N/A N/A False N/A rval N/A N/A node op new_inputs N/A N/A isinstance rval N/A gof Variable N/A N/A N/A N/A rval owner outputs N/A N/A N/A N/A N/A rval N/A 0 owner outputs N/A N/A N/A gof local_optimizer N/A N/A T Elemwise N/A N/A register_canonicalize local_fill_cut N/A N/A register_canonicalize N/A N/A gof OpRemove N/A T tensor_copy name remove_tensor_copy Canonizer N/A N/A gof LocalOptimizer N/A N/A 
    Simplification tool. The variable is a local_optimizer. It is best used
    with a TopoOptimizer in in_to_out order.

    Usage: Canonizer(main, inverse, reciprocal, calculate)

    Parameters
    ----------
    main
        A suitable Op class that is commutative, associative and
        takes one to an arbitrary number of inputs, e.g. add or
        mul
    inverse
        An Op class such that inverse(main(x, y), y) == x
        e.g. sub or true_div
    reciprocal
        A function such that main(x, reciprocal(y)) == inverse(x, y)
        e.g. neg or inv
    calculate
        Function that takes a list of numpy.ndarray instances
        for the numerator, another list for the denumerator,
        and calculates inverse(main(\*num), main(\*denum)). It
        takes a keyword argument, aslist. If True, the value
        should be returned as a list of one element, unless
        the value is such that value = main(). In that case,
        the return value should be an empty list.

    Examples
    --------
    >>> import theano.tensor as T
    >>> from theano.tensor.opt import Canonizer
    >>> add_canonizer = Canonizer(T.add, T.sub, T.neg, \
    ...                           lambda n, d: sum(n) - sum(d))
    >>> mul_canonizer = Canonizer(T.mul, T.true_div, T.inv, \
    ...                           lambda n, d: prod(n) / prod(d))

    Examples of optimizations mul_canonizer can perform:

    | x / x -> 1
    | (x * y) / x -> y
    | x / y / x -> 1 / y
    | x / y / z -> x / (y * z)
    | x / (y / z) -> (x * z) / y
    | (a / b) * (b / c) * (c / d) -> a / d
    | (2.0 * x) / (4.0 * y) -> (0.5 * x) / y
    | 2 * x / 2 -> x
    | x * y * z -> Elemwise(T.mul){x,y,z} #only one pass over the memory.
    |           !-> Elemwise(T.mul){x,Elemwise(T.mul){y,z}}

     __init__ N/A N/A self main inverse reciprocal calculate use_reciprocal N/A True N/A N/A N/A self main main N/A N/A self inverse inverse N/A N/A self reciprocal reciprocal N/A N/A self calculate calculate N/A N/A self use_reciprocal use_reciprocal N/A N/A self external_simplifiers N/A N/A add_simplifier N/A N/A self simplifier reason N/A N/A N/A N/A N/A N/A self external_simplifiers append N/A reason simplifier N/A tracks N/A N/A self N/A N/A N/A N/A N/A self main N/A self inverse N/A self reciprocal N/A get_num_denum N/A N/A self input N/A N/A N/A 
        This extract two lists, num and denum, such that the input is:
        self.inverse(self.main(\*num), self.main(\*denum)). It returns
        the two lists in a (num, denum) pair.

        For example, for main, inverse and reciprocal = \*, / and inv(),

        | input -> returned value (num, denum)

        | x*y -> ([x, y], [])
        | inv(x) -> ([], [x])
        | inv(x) * inv(y) -> ([], [x, y])
        | x*y/z -> ([x, y], [z])
        | log(x) / y * (z + x) / y -> ([log(x), z + x], [y, y])
        | (((a / b) * c) / d) -> ([a, c], [b, d])
        | a / (b / c) -> ([a, c], [b])
        | log(x) -> ([log(x)], [])
        | x**y -> ([x**y], [])
        | x * y * z -> ([x, y, z], [])

         N/A 0 N/A N/A N/A N/A len N/A input clients 1 N/A N/A N/A N/A input N/A N/A N/A N/A N/A input owner None N/A N/A N/A input owner op N/A N/A self main N/A self inverse N/A self reciprocal N/A N/A N/A N/A input owner N/A isinstance N/A N/A input owner op N/A T DimShuffle N/A N/A dsn N/A input owner N/A dsop N/A dsn op N/A dsi0 N/A N/A dsn inputs N/A 0 N/A compatible_order N/A N/A N/A x N/A N/A N/A input type ndim N/A N/A dsi0 type ndim N/A tuple N/A range N/A N/A dsi0 type ndim N/A N/A N/A dsop new_order compatible_order N/A N/A N/A N/A self get_num_denum N/A N/A N/A input owner inputs N/A 0 N/A N/A N/A N/A input N/A N/A N/A N/A N/A input N/A N/A num N/A N/A denum N/A N/A parent N/A input owner N/A pairs N/A N/A N/A self get_num_denum input2 N/A input2 N/A parent inputs N/A N/A N/A parent op N/A self main N/A N/A num N/A reduce N/A list __iadd__ N/A map N/A N/A operator itemgetter 0 pairs N/A denum N/A reduce N/A list __iadd__ N/A map N/A N/A operator itemgetter 1 pairs N/A N/A N/A N/A parent op N/A self inverse N/A N/A num N/A N/A N/A pairs N/A 0 N/A 0 N/A N/A pairs N/A 1 N/A 1 N/A denum N/A N/A N/A pairs N/A 0 N/A 1 N/A N/A pairs N/A 1 N/A 0 N/A N/A N/A N/A parent op N/A self reciprocal N/A N/A num N/A N/A pairs N/A 0 N/A 1 N/A denum N/A N/A pairs N/A 0 N/A 0 N/A N/A num denum N/A merge_num_denum N/A N/A self num denum N/A N/A N/A 
        Utility function which takes two lists, num and denum, and
        returns something which is equivalent to inverse(main(\*num),
        main(\*denum)), but depends on the length of num and the length
        of denum (in order to minimize the number of operations).

        Let n = len(num) and d = len(denum):

        | n=0, d=0: neutral element (given by self.calculate([], []))
        |           (for example, this would be 0 if main is addition
        |           and 1 if main is multiplication)
        | n=1, d=0: num[0]
        | n=0, d=1: reciprocal(denum[0])
        | n=1, d=1: inverse(num[0], denum[0])
        | n=0, d>1: reciprocal(main(\*denum))
        | n>1, d=0: main(\*num)
        | n=1, d>1: inverse(num[0], main(\*denum))
        | n>1, d=1: inverse(main(\*num), denum[0])
        | n>1, d>1: inverse(main(\*num), main(\*denum))

        Given the values of n and d to which they are associated, all
        of the above are equivalent to:
        inverse(main(\*num), main(\*denum))

         N/A N/A ln ld N/A N/A len num N/A len denum N/A N/A N/A ln N/A ld N/A N/A N/A N/A T as_tensor_variable N/A N/A self calculate N/A N/A N/A N/A ln N/A N/A N/A self use_reciprocal N/A N/A N/A N/A self reciprocal N/A N/A self merge_num_denum denum N/A N/A N/A ln N/A N/A N/A self calculate N/A N/A aslist False N/A N/A ld N/A N/A N/A ln 1 N/A N/A N/A isinstance N/A num N/A 0 N/A gof Variable N/A N/A num N/A 0 N/A N/A N/A N/A self main num N/A N/A N/A self inverse N/A N/A self merge_num_denum num N/A N/A N/A self merge_num_denum denum N/A N/A get_constant N/A N/A v N/A N/A N/A 

        Returns
        -------
        object
            A numeric constant if v is a Constant or, well, a
            numeric constant. If v is a plain Variable, returns None.

         N/A N/A isinstance v Variable N/A N/A N/A N/A N/A get_scalar_constant_value v only_process_constants True N/A N/A N/A NotScalarConstantError N/A N/A None N/A N/A v N/A staticmethod simplify N/A N/A self num denum out_type N/A N/A N/A 
        Shorthand for:

        .. code-block:: python

            self.simplify_constants(*self.simplify_factors(num, denum))

         N/A rval N/A N/A self simplify_constants out_type out_type N/A N/A self simplify_factors num denum N/A N/A reason simplifier N/A self external_simplifiers N/A N/A rval N/A simplifier rval N/A rval N/A simplify_factors N/A N/A self num denum N/A N/A N/A 
        For any Variable r which is both in num and denum, removes it
        from both lists. Modifies the lists inplace. Returns the
        modified lists. For example:

        | [x], [x] -> [], []
        | [x, y], [x] -> [y], []
        | [a, b], [c, d] -> [a, b], [c, d]

         N/A v N/A list num N/A N/A N/A v denum N/A N/A N/A N/A num remove v N/A N/A N/A denum remove v N/A N/A num denum N/A simplify_constants N/A N/A self orig_num orig_denum out_type N/A None N/A N/A 
        Find all constants and put them together into a single constant.

        Finds all constants in orig_num and orig_denum (using
        get_constant) and puts them together into a single
        constant. The constant is inserted as the first element of the
        numerator. If the constant is the neutral element, it is
        removed from the numerator.

        Examples
        --------
        Let main be multiplication:

        | [2, 3, x], [] -> [6, x], []
        | [x, y, 2], [4, z] -> [0.5, x, y], [z]
        | [x, 2, y], [z, 2] -> [x, y], [z]

         N/A N/A num denum N/A N/A list orig_num N/A list orig_denum N/A N/A numct denumct N/A N/A N/A N/A v orig_num N/A N/A ct N/A N/A self get_constant v N/A N/A ct None N/A N/A N/A N/A num remove v N/A N/A N/A numct append ct N/A v orig_denum N/A N/A ct N/A N/A self get_constant v N/A N/A ct None N/A N/A N/A N/A denum remove v N/A N/A N/A denumct append ct N/A N/A N/A self use_reciprocal num N/A N/A ct N/A N/A self calculate numct denumct aslist True out_type out_type N/A N/A ct N/A N/A N/A self calculate numct denumct aslist False out_type out_type N/A ct N/A N/A N/A T constant c dtype N/A out_type dtype N/A c ct N/A N/A orig_num N/A N/A len numct 1 N/A N/A len denumct 0 ct N/A N/A N/A N/A len ct 1 N/A first_num_ct N/A N/A self get_constant N/A orig_num N/A 0 N/A N/A N/A first_num_ct None N/A N/A N/A N/A ct N/A 0 type values_eq N/A N/A ct N/A 0 data first_num_ct N/A N/A N/A orig_num orig_denum N/A N/A N/A ct num denum N/A transform N/A N/A self node N/A N/A N/A op N/A node op N/A N/A op N/A N/A self main N/A self inverse N/A self reciprocal N/A N/A False N/A N/A N/A len N/A node outputs 1 N/A out N/A N/A node outputs N/A 0 N/A N/A c c_idx N/A out clients N/A N/A N/A c output N/A N/A N/A N/A N/A isinstance N/A getattr c op None DimShuffle N/A N/A len N/A N/A N/A c outputs N/A 0 clients 1 N/A N/A c N/A N/A N/A N/A N/A c outputs N/A 0 clients N/A 0 N/A 0 N/A N/A N/A getattr c op N/A N/A self main N/A self inverse N/A self reciprocal N/A N/A False N/A N/A orig_num orig_denum N/A N/A self get_num_denum N/A N/A node outputs N/A 0 N/A N/A num denum N/A N/A self simplify N/A list orig_num N/A list orig_denum N/A out type same N/A N/A x y N/A N/A N/A N/A N/A N/A len x N/A len y N/A all N/A N/A N/A N all N/A xe ye N/A N/A xe ye N/A zip x y N/A N/A N/A N/A same orig_num num N/A same orig_denum denum N/A N/A False N/A new N/A N/A self merge_num_denum num denum N/A N/A N/A N/A new type dtype N/A N/A out type dtype N/A N/A elem_op N/A N/A T Elemwise N/A N/A scalar Identity N/A N/A scalar specific_out N/A getattr scalar N/A N/A out type dtype N/A new N/A elem_op new N/A N/A N/A N/A new type N/A out type N/A N/A N/A new type N/A out type N/A N/A N/A N/A new type N/A out type N/A N/A new N/A N/A _fill_chain new N/A node inputs N/A 0 N/A N/A N/A new type N/A out type N/A N/A N/A N/A new tag values_eq_approx values_eq_approx_remove_inf_nan N/A N/A new N/A N/A N/A N/A _logger warning N/A N/A join N/A CANONIZE FAILED: new, out =  new , out types N/A new type , N/A out type N/A False N/A __str__ N/A N/A self N/A N/A N/A N/A getattr self name N/A Canonizer(%s, %s, %s) N/A N/A self main N/A self inverse N/A self reciprocal N/A N/A mul_calculate N/A N/A num denum aslist out_type N/A False None N/A N/A N/A N/A num N/A denum N/A N/A aslist N/A N/A N/A N/A N/A N/A N/A N int8 1 N/A N/A out_type None N/A N/A out_dtype N/A N/A scalar upcast N/A N/A v dtype N/A v N/A num denum N/A N/A out_dtype N/A out_type dtype N/A one N/A N/A theano _asarray 1 dtype out_dtype N/A v N/A N/A reduce N/A N multiply num one N/A reduce N/A N multiply denum one N/A aslist N/A N/A N/A N/A N all N/A v 1 N/A N/A N/A N/A N/A N/A v N/A v N/A N/A local_mul_canonizer N/A Canonizer N/A T mul N/A T true_div N/A T inv mul_calculate False N/A N/A register_canonicalize local_mul_canonizer name local_mul_canonizer local_neg_to_mul N/A N/A node N/A N/A N/A N/A N/A node op N/A T neg N/A N/A N/A N/A N/A T mul N/A N/A numpy array -1 dtype N/A N/A N/A node inputs N/A 0 dtype N/A N/A node inputs N/A 0 N/A N/A N/A gof local_optimizer N/A N/A T neg N/A N/A register_canonicalize local_neg_to_mul local_sum_prod_mul_by_scalar N/A N/A node N/A N/A N/A 
    sum(scalar * smth) -> scalar * sum(smth)
    sum(-smth) -> -sum(smth)

    or

    prod(scalar * smth) -> scalar ** size(smth) * prod(smth)
    prod(-smth) -> -1 ** size(smth) * prod(smth)

     N/A N/A isinstance N/A node op N/A N/A T Sum N/A N/A T elemwise Prod N/A N/A N/A node_inps N/A node inputs N/A N/A N/A node_inps owner N/A N/A N/A node_inps owner op N/A T mul N/A N/A terms N/A N/A node_inps owner inputs N/A scalars N/A N/A N/A t dimshuffle N/A t terms N/A N/A numpy all N/A N/A t type broadcastable N/A N/A N/A len scalars 0 N/A N/A N/A non_scalars N/A t N/A t terms N/A N/A N/A numpy all N/A t broadcastable N/A N/A N/A len non_scalars 0 N/A N/A new_op_input_nb_elements 1 N/A new_op_output 1 N/A N/A N/A N/A len non_scalars 1 N/A N/A new_op_input_nb_elements N/A N/A non_scalars N/A 0 size N/A new_op_output N/A N/A node op N/A non_scalars N/A 0 N/A N/A new_op_input N/A N/A T mul non_scalars N/A new_op_input_nb_elements N/A new_op_input size N/A new_op_output N/A N/A node op new_op_input N/A N/A N/A isinstance N/A node op N/A N/A T elemwise Prod N/A new_op_input_nb_elements 1 N/A N/A scalars N/A N/A s new_op_input_nb_elements N/A s scalars N/A mul_inputs scalars N/A N/A new_op_input_nb_elements 1 N/A N/A N/A N/A mul_inputs append new_op_output N/A N/A N/A len mul_inputs 1 N/A N/A mul_inputs N/A N/A N/A N/A N/A T mul mul_inputs N/A N/A N/A isinstance N/A node op N/A T Sum N/A node_inps owner N/A N/A N/A node_inps owner op N/A T neg N/A N/A N/A N/A N/A T neg N/A N/A node op N/A N/A N/A node_inps owner inputs N/A 0 N/A register_specialize N/A N/A gof local_optimizer N/A N/A T Sum N/A N/A T elemwise Prod local_elemwise_sub_zeros N/A N/A node N/A N/A N/A 
    Elemwise{sub}(X,X) -> zeros_like(X)
     N/A N/A N/A isinstance N/A node op N/A T Elemwise N/A N/A N/A N/A node op scalar_op nin 2 N/A N/A N/A node op scalar_op N/A scalar sub N/A N/A N/A node inputs N/A 0 N/A N/A node inputs N/A 1 N/A N/A N/A N/A N/A T zeros_like N/A N/A node inputs N/A 0 N/A register_specialize N/A N/A gof local_optimizer N/A N/A T Elemwise local_useless_elemwise_comparison N/A N/A node N/A N/A N/A ...

    :note: These cases appear in the graph generated by scan.
           These optimizations will make the graph easier to read.
    # Comparing to itself is constant
    Elemwise[{LT,GT}](X, X) -> Elemwise[zeros](X)
    Elemwise[{LE,GE}](X, X) -> Elemwise[ones](X)
    Elemwise[{minimum,maximum}](X, X) -> X

    # Comparing shape to 0 can be constant
    Elemwise[LT](X.shape[i], 0) -> Elemwise[zeros](X)
    Elemwise[GE](X.shape[i], 0) -> Elemwise[ones](X)
    Elemwise[maximum](X.shape[i], 0) -> X.shape[i]
    Elemwise[maximum](0, X.shape[i]) -> X.shape[i]
    Elemwise[minimum](X.shape[i], 0) -> 0
    Elemwise[minimum](0, X.shape[i]) -> 0

    # The shape can be replaced with sum of shapes
    Elemwise[LT](add([anything that is shapes]), 0) -> Elemwise[zeros](X)
    Elemwise[GE](add([anything that is shapes]), 0) -> Elemwise[ones](X)

     N/A N/A N/A isinstance N/A node op N/A T Elemwise N/A N/A N/A N/A N/A N/A N/A node op scalar_op nin 2 N/A N/A N/A N/A N/A isinstance N/A N/A node op scalar_op N/A N/A scalar LT N/A scalar GT N/A N/A N/A node inputs N/A 0 N/A N/A node inputs N/A 1 N/A N/A N/A N/A N/A T zeros_like N/A N/A node inputs N/A 0 dtype N/A N/A N/A node outputs N/A 0 dtype N/A N/A N/A isinstance N/A N/A node op scalar_op N/A N/A scalar LE N/A scalar GE N/A N/A N/A node inputs N/A 0 N/A N/A node inputs N/A 1 N/A N/A N/A N/A N/A T ones_like N/A N/A node inputs N/A 0 dtype N/A N/A N/A node outputs N/A 0 dtype N/A N/A N/A isinstance N/A N/A node op scalar_op N/A N/A scalar Minimum N/A scalar Maximum N/A N/A N/A node inputs N/A 0 N/A N/A node inputs N/A 1 N/A N/A N/A N/A N/A node inputs N/A 0 N/A N/A N/A isinstance N/A N/A node op scalar_op N/A scalar LT N/A N/A N/A node inputs N/A 0 owner N/A isinstance N/A N/A N/A N/A node inputs N/A 0 owner op Shape_i N/A N/A N/A T extract_constant N/A N/A node inputs N/A 1 only_process_constants True 0 N/A N/A N/A N/A N/A T zeros_like N/A N/A node inputs N/A 0 dtype N/A N/A N/A node outputs N/A 0 dtype N/A N/A N/A isinstance N/A N/A node op scalar_op N/A scalar GE N/A N/A N/A node inputs N/A 0 owner N/A isinstance N/A N/A N/A N/A node inputs N/A 0 owner op Shape_i N/A N/A N/A T extract_constant N/A N/A node inputs N/A 1 only_process_constants True 0 N/A N/A N/A N/A N/A T ones_like N/A N/A node inputs N/A 0 dtype N/A N/A N/A node outputs N/A 0 dtype N/A N/A N/A isinstance N/A N/A node op scalar_op N/A scalar Maximum N/A N/A N/A node inputs N/A 0 owner N/A isinstance N/A N/A N/A N/A node inputs N/A 0 owner op Shape_i N/A N/A N/A T extract_constant N/A N/A node inputs N/A 1 only_process_constants True 0 N/A N/A N/A N/A N/A node inputs N/A 0 N/A N/A N/A isinstance N/A N/A node op scalar_op N/A scalar Maximum N/A N/A N/A T extract_constant N/A N/A node inputs N/A 0 only_process_constants True 0 N/A N/A N/A node inputs N/A 1 owner N/A isinstance N/A N/A N/A N/A node inputs N/A 1 owner op Shape_i N/A N/A N/A N/A N/A node inputs N/A 1 N/A N/A N/A isinstance N/A N/A node op scalar_op N/A scalar Minimum N/A N/A N/A node inputs N/A 0 owner N/A isinstance N/A N/A N/A N/A node inputs N/A 0 owner op Shape_i N/A N/A N/A T extract_constant N/A N/A node inputs N/A 1 only_process_constants True 0 N/A N/A N/A N/A N/A T zeros_like N/A N/A node inputs N/A 0 dtype N/A N/A N/A node outputs N/A 0 dtype N/A N/A N/A isinstance N/A N/A node op scalar_op N/A scalar Minimum N/A N/A N/A T extract_constant N/A N/A node inputs N/A 0 only_process_constants True 0 N/A N/A N/A node inputs N/A 1 owner N/A isinstance N/A N/A N/A N/A node inputs N/A 1 owner op Shape_i N/A N/A N/A N/A N/A T zeros_like N/A N/A node inputs N/A 1 dtype N/A N/A N/A node outputs N/A 0 dtype N/A N/A N/A isinstance N/A N/A node op scalar_op N/A scalar LT N/A N/A N/A node inputs N/A 0 owner N/A isinstance N/A N/A N/A N/A node inputs N/A 0 owner op Elemwise N/A isinstance N/A N/A N/A N/A N/A node inputs N/A 0 owner op scalar_op N/A scalar Add N/A all N/A N/A isinstance N/A N/A var owner N/A N/A var owner op Shape_i N/A var N/A N/A N/A N/A node inputs N/A 0 owner inputs N/A N/A N/A T extract_constant N/A N/A node inputs N/A 1 only_process_constants True 0 N/A N/A N/A N/A N/A T zeros_like N/A N/A node inputs N/A 0 dtype N/A N/A N/A node outputs N/A 0 dtype N/A N/A N/A isinstance N/A N/A node op scalar_op N/A scalar GE N/A N/A N/A node inputs N/A 0 owner N/A isinstance N/A N/A N/A N/A node inputs N/A 0 owner op Elemwise N/A isinstance N/A N/A N/A N/A N/A node inputs N/A 0 owner op scalar_op N/A scalar Add N/A all N/A N/A isinstance N/A N/A var owner N/A N/A var owner op Shape_i N/A var N/A N/A N/A N/A node inputs N/A 0 owner inputs N/A N/A N/A T extract_constant N/A N/A node inputs N/A 1 only_process_constants True 0 N/A N/A N/A N/A N/A T ones_like N/A N/A node inputs N/A 0 dtype N/A N/A N/A node outputs N/A 0 dtype N/A N/A register_specialize register_stabilize register_canonicalize N/A N/A gof local_optimizer N/A N/A T Elemwise local_sum_prod_div_dimshuffle N/A N/A node N/A N/A N/A 
    sum(a / dimshuffle{...}(b), axis=l) -> sum(a, axis={...}) / b,
    if dimension l of the DimShuffle is 'x'

    or

    prod(a / dimshuffle{...}(b), axis=l) ->
    prod(a, axis={...}) / b ** a.shape[l],
    if dimension l of the DimShuffle is 'x'
     N/A N/A isinstance N/A node op N/A N/A T Sum N/A N/A T elemwise Prod N/A N/A axis N/A N/A node op axis N/A N/A axis None N/A N/A axis N/A list N/A range N/A N/A N/A node inputs N/A 0 ndim N/A node_input N/A N/A node inputs N/A 0 N/A N/A N/A node_input owner N/A N/A N/A node_input owner op N/A T true_div N/A N/A N/A numerator denominator N/A N/A node_input owner inputs N/A N/A N/A N/A config warn sum_div_dimshuffle_bug N/A isinstance N/A node op N/A T Sum N/A numerator owner N/A isinstance N/A N/A numerator owner op N/A T DimShuffle N/A N/A new_order N/A N/A N/A numerator owner op new_order N/A compatible_dims True N/A ax axis N/A N/A N/A N/A N/A len new_order ax N/A N/A new_order N/A ax x N/A N/A compatible_dims False N/A N/A compatible_dims N/A N/A N/A N/A _logger warn WARNING: Your current code is fine, but Theano versions between rev. 3bd9b789f5e8 (2010-06-16) and cfc6322e5ad4 (2010-08-03) would have given an incorrect result. To disable this warning, set the Theano flag warn.sum_div_dimshuffle_bug to False. N/A N/A N/A denominator owner N/A isinstance N/A N/A denominator owner op N/A T DimShuffle N/A N/A dimshuffle_input N/A N/A N/A denominator owner inputs N/A 0 N/A dimshuffle_order N/A N/A N/A denominator owner op new_order N/A compatible_dims N/A N/A incompatible_dims N/A N/A ax axis N/A N/A N/A N/A ax N/A len dimshuffle_order N/A N/A dimshuffle_order N/A ax x N/A N/A N/A N/A compatible_dims append ax N/A N/A N/A N/A incompatible_dims append ax N/A reordered_incompatible_dims N/A N/A ic_ax incompatible_dims N/A N/A N/A N/A reordered_incompatible_dims append N/A ic_ax N/A sum N/A 1 N/A c_ax compatible_dims N/A c_ax ic_ax N/A N/A N/A len compatible_dims 0 N/A N/A optimized_dimshuffle_order N/A list N/A ax N/A N/A i ax N/A enumerate dimshuffle_order N/A N/A i axis N/A ax x N/A N/A N/A N/A len optimized_dimshuffle_order 0 N/A N/A optimized_dimshuffle_order N/A 0 x N/A N/A N/A optimized_dimshuffle_order N/A 0 N/A N/A all N/A N/A i e N/A N/A i e N/A enumerate optimized_dimshuffle_order N/A N/A optimized_dimshuffle dimshuffle_input N/A N/A optimized_dimshuffle N/A N/A N/A T DimShuffle N/A N/A dimshuffle_input type broadcastable optimized_dimshuffle_order dimshuffle_input N/A N/A N/A N/A config warn sum_div_dimshuffle_bug N/A isinstance N/A node op N/A T Sum N/A N/A N/A N/A _logger warn WARNING: Your current code is fine, but Theano versions between rev. 3bd9b789f5e8 (2010-06-16) and cfc6322e5ad4 (2010-08-03) would have given an incorrect result. To disable this warning, set the Theano flag warn.sum_div_dimshuffle_bug to False. N/A N/A isinstance N/A node op N/A T Sum N/A N/A op_on_compatible_dims N/A N/A T sum numerator axis compatible_dims N/A rval N/A N/A T true_div op_on_compatible_dims optimized_dimshuffle N/A N/A N/A len reordered_incompatible_dims 0 N/A N/A rval N/A N/A T sum rval axis reordered_incompatible_dims N/A N/A N/A isinstance N/A node op N/A N/A T elemwise Prod N/A N/A op_on_compatible_dims N/A N/A T prod numerator axis compatible_dims N/A dtype N/A numerator dtype N/A rval N/A N/A T true_div op_on_compatible_dims N/A optimized_dimshuffle N/A N/A T prod N/A N/A N/A N/A N/A numerator shape N/A ax astype dtype N/A ax compatible_dims N/A N/A N/A len reordered_incompatible_dims 0 N/A N/A rval N/A N/A T prod rval axis reordered_incompatible_dims N/A N/A rval N/A register_canonicalize register_specialize N/A N/A gof local_optimizer N/A N/A T Sum N/A N/A T elemwise Prod local_sum_prod_all_to_none N/A N/A node N/A N/A N/A 
    Sum{0,1,...N} -> Sum{} or
    Prod{0,1,...N} -> Prod{}

     N/A N/A N/A isinstance N/A node op N/A T Sum N/A isinstance N/A node op N/A N/A T elemwise Prod N/A N/A opt_type N/A N/A isinstance N/A node op N/A T Sum N/A T Sum N/A N/A T elemwise Prod N/A N/A N/A N/A node op axis None N/A N/A N/A N/A N/A set N/A N/A node op axis N/A set N/A range N/A N/A N/A N/A node inputs N/A 0 type ndim N/A N/A N/A N/A N/A opt_type axis None dtype N/A N/A node op dtype N/A N/A node inputs N/A 0 N/A register_canonicalize N/A N/A gof local_optimizer N/A N/A T Sum N/A N/A T elemwise Prod local_op_of_op N/A N/A node N/A N/A N/A 
    Prod(Prod()) -> single Prod()
    or
    Sum(Sum()) -> single Sum()

     N/A N/A N/A isinstance N/A node op N/A N/A T elemwise Prod N/A isinstance N/A node op N/A T Sum N/A N/A opt_type N/A N/A isinstance N/A node op N/A T Sum N/A T Sum N/A N/A T elemwise Prod N/A N/A node_inps N/A node inputs N/A out_dtype N/A N/A node op dtype N/A N/A N/A len N/A node_inps clients 1 N/A N/A N/A N/A node_inps owner N/A isinstance N/A N/A node_inps owner op N/A N/A node op __class__ N/A N/A N/A N/A N/A N/A N/A node_inps owner op axis None N/A N/A N/A node op axis None N/A N/A N/A N/A N/A opt_type None dtype out_dtype N/A N/A N/A node_inps owner inputs N/A 0 N/A newaxis N/A list N/A tuple N/A N/A N/A node_inps owner op axis N/A i N/A N/A node op axis N/A N/A new_i i N/A ii N/A N/A N/A node_inps owner op axis N/A N/A N/A new_i ii N/A N/A new_i 1 N/A N/A new_i newaxis N/A N/A N/A newaxis append new_i N/A N/A N/A len newaxis N/A len N/A N/A list N/A N/A N/A node_inps owner op axis N/A list N/A N/A node op axis N/A alldims N/A list N/A range N/A N/A N/A N/A N/A node_inps owner inputs N/A 0 type ndim N/A alldims N/A d N/A N/A i d N/A enumerate alldims N/A i N/A N/A N/A node_inps owner op axis N/A alldims N/A d N/A N/A i d N/A enumerate alldims N/A i N/A N/A node op axis N/A newaxis_old N/A i N/A i N/A xrange N/A N/A N/A N/A N/A node_inps owner inputs N/A 0 type ndim N/A i alldims N/A N/A N/A N/A N/A theano config warn sum_sum_bug N/A newaxis newaxis_old N/A N/A len newaxis N/A len newaxis_old N/A N/A N/A N/A _logger warn WARNING (YOUR CURRENT CODE IS FINE): Theano versions between version 9923a40c7b7a and August 2nd, 2010 generated bugged code in this case. This happens when there are two consecutive sums in the graph and the intermediate sum is not used elsewhere in the code. Some safeguard removed some bad code, but not in all cases. You are in one such case. To disable this warning (that you can safely ignore since this bug has been fixed) set the theano flag `warn.sum_sum_bug` to False. N/A combined N/A opt_type newaxis dtype out_dtype N/A N/A N/A combined N/A N/A N/A node_inps owner inputs N/A 0 N/A register_canonicalize N/A N/A gof local_optimizer N/A N/A T Sum N/A N/A T elemwise Prod N/A ALL_REDUCE N/A N/A N/A T elemwise CAReduce N/A N/A T elemwise All N/A N/A T elemwise Any N/A N/A T elemwise Sum N/A N/A T elemwise Prod N/A N/A T elemwise ProdWithoutZeros local_reduce_join N/A N/A node N/A N/A N/A 
    Reduce{scalar.op}(Join(axis=0, a, b), axis=0) -> Elemwise{scalar.op}(a, b)

    Notes
    -----
    Supported scalar.op are Maximum, Mimimum in some cases and Add and Mul in
    all cases.

    Currently we must reduce on axis 0. It is probably extensible to the case
    where we join and reduce on the same set of axis.

     N/A N/A N/A isinstance N/A node op N/A T CAReduce N/A N/A N/A node inputs N/A 0 owner N/A isinstance N/A N/A N/A N/A node inputs N/A 0 owner op N/A T Join N/A N/A join N/A N/A N/A node inputs N/A 0 owner N/A N/A N/A N/A T extract_constant N/A N/A join inputs N/A 0 0 N/A N/A N/A N/A isinstance N/A N/A node op scalar_op N/A N/A scalar Maximum N/A scalar Minimum N/A N/A N/A N/A len N/A join inputs 3 N/A N/A N/A N/A N/A N/A isinstance N/A N/A node op scalar_op N/A N/A scalar Add N/A scalar Mul N/A N/A N/A N/A N/A N/A len N/A join inputs 2 N/A N/A N/A new_inp N/A N/A inp N/A N/A join inputs N/A 1 N/A N/A inp N/A inp owner N/A N/A inp N/A N/A N/A N/A N/A N/A isinstance N/A inp op DimShuffle N/A N/A N/A inp op new_order N/A N/A x N/A tuple N/A range N/A N/A N/A inp inputs N/A 0 ndim N/A N/A N/A N/A N/A new_inp append N/A N/A inp inputs N/A 0 N/A ret N/A N/A Elemwise N/A N/A node op scalar_op new_inp N/A N/A N/A ret dtype N/A N/A N/A node outputs N/A 0 dtype N/A N/A N/A reduce_axis N/A N/A node op axis N/A N/A reduce_axis None N/A N/A reduce_axis N/A tuple N/A xrange N/A N/A N/A node inputs N/A 0 ndim N/A N/A N/A N/A len reduce_axis 1 N/A 0 reduce_axis N/A N/A N/A N/A N/A theano config warn reduce_join N/A N/A N/A N/A warnings warn Your current code is fine, but Theano versions prior to 0.7 (or this development version Sept 2014) might have given an incorrect result for this code. To disable this warning, set the Theano flag warn.reduce_join to False. The problem was an optimization, that modified the pattern "Reduce{scalar.op}(Join(axis=0, a, b), axis=0)", did not check the reduction axis. So if the reduction axis was not 0, you got a wrong answer. N/A N/A N/A N/A join_axis N/A get_scalar_constant_value N/A N/A join inputs N/A 0 N/A N/A join_axis N/A reduce_axis N/A 0 N/A N/A N/A N/A N/A NotScalarConstantError N/A N/A N/A N/A ret N/A register_canonicalize register_uncanonicalize N/A N/A gof local_optimizer ALL_REDUCE local_cut_useless_reduce N/A N/A node N/A N/A N/A Sum(a, axis=[]) -> a   N/A N/A isinstance N/A node op N/A T CAReduce N/A N/A N/A summed N/A node inputs N/A N/A N/A summed type N/A N/A N/A node outputs N/A 0 type N/A N/A N/A summed N/A N/A register_canonicalize fast_compile N/A N/A gof local_optimizer ALL_REDUCE local_reduce_broadcastable N/A N/A node N/A N/A N/A Remove reduction over broadcastable dimensions. N/A N/A isinstance N/A node op N/A T CAReduce N/A N/A N/A reduced N/A node inputs N/A odtype N/A N/A N/A node outputs N/A 0 dtype N/A N/A N/A N/A node op axis None N/A N/A N/A all N/A reduced broadcastable N/A N/A N/A N/A N/A N/A N/A reduced dimshuffle astype odtype N/A N/A axis N/A list N/A N/A node op axis N/A cuttable N/A a N/A a axis N/A N/A reduced broadcastable N/A a N/A cuttable N/A N/A new_axis N/A N/A pattern N/A N/A ii 0 N/A p N/A xrange N/A reduced ndim N/A N/A N/A p cuttable N/A N/A N/A p axis N/A N/A N/A N/A new_axis append ii N/A N/A N/A pattern append p N/A ii 1 N/A new_reduced N/A N/A reduced dimshuffle pattern N/A new_axis N/A N/A N/A N/A type N/A node op N/A N/A N/A theano tensor elemwise CAReduce N/A N/A new_op N/A N/A N/A node op __class__ N/A N/A node op scalar_op axis new_axis N/A N/A new_op N/A N/A N/A node op __class__ axis new_axis N/A N/A N/A new_op new_reduced N/A N/A N/A N/A N/A new_reduced astype odtype N/A register_uncanonicalize register_specialize N/A N/A gof local_optimizer ALL_REDUCE local_opt_alloc N/A N/A node N/A N/A N/A 
    sum(alloc(constant,shapes...)) => constant*prod(shapes)
    or
    prod(alloc(constant,shapes...)) => constant**prod(shapes)

     N/A N/A N/A isinstance N/A node op N/A T Sum N/A isinstance N/A node op N/A N/A T elemwise Prod N/A N/A N/A node_inps N/A node inputs N/A N/A N/A node_inps owner N/A isinstance N/A N/A node_inps owner op N/A T Alloc N/A N/A input N/A N/A N/A node_inps owner inputs N/A 0 N/A shapes N/A N/A N/A node_inps owner inputs N/A 1 N/A N/A N/A N/A N/A node op axis None N/A N/A N/A node op axis N/A tuple N/A range N/A input ndim N/A N/A N/A N/A val N/A get_scalar_constant_value input N/A N/A N/A val size 1 N/A N/A isinstance N/A node op N/A T Sum N/A N/A val N/A N/A N/A N/A val reshape 1 N/A 0 N/A N/A T mul shapes N/A N/A val N/A N/A N/A N/A val reshape 1 N/A 0 N/A N/A T mul shapes N/A N/A N/A N/A T cast val dtype N/A N/A N/A node outputs N/A 0 dtype N/A N/A N/A NotScalarConstantError N/A N/A N/A N/A N/A N/A val N/A get_scalar_constant_value input N/A N/A N/A val size 1 N/A val N/A N/A N/A val reshape 1 N/A 0 N/A to_prod N/A N/A shapes N/A i N/A i N/A xrange N/A len shapes N/A i N/A N/A node op axis N/A to_prod N/A N/A N/A isinstance N/A node op N/A T Sum N/A N/A val N/A N/A T mul to_prod N/A N/A val N/A val N/A N/A T mul to_prod N/A N/A N/A N/A T alloc N/A N/A T cast val dtype N/A N/A N/A node outputs N/A 0 dtype N/A N/A shapes N/A i N/A i N/A xrange N/A len shapes N/A i N/A N/A node op axis N/A N/A N/A NotScalarConstantError N/A N/A N/A register_specialize N/A N/A gof local_optimizer N/A N/A T Sum N/A N/A T elemwise Prod local_neg_neg N/A N/A node N/A N/A N/A N/A N/A node op N/A T neg N/A N/A N/A N/A N/A N/A node inputs N/A 0 owner N/A N/A N/A N/A N/A node inputs N/A 0 owner op N/A T neg N/A N/A N/A N/A N/A N/A N/A N/A node inputs N/A 0 owner inputs N/A 0 N/A register_specialize N/A N/A gof local_optimizer N/A N/A T neg local_neg_div_neg N/A N/A node N/A N/A N/A 
    - (-a / b) -> a / b

    Also performs - (c / b) -> ((-c) / b) when c is a scalar constant.

     N/A N/A N/A node op N/A T neg N/A N/A N/A N/A N/A N/A node inputs N/A 0 owner N/A N/A N/A N/A N/A node inputs N/A 0 owner op N/A T true_div N/A N/A frac N/A N/A node inputs N/A 0 N/A N/A num denom N/A N/A frac owner inputs N/A N/A N/A num owner N/A N/A N/A num owner op N/A T neg N/A N/A N/A N/A len N/A frac clients 1 N/A N/A new_num N/A N/A N/A num owner inputs N/A 0 N/A N/A N/A N/A T true_div new_num denom N/A N/A N/A N/A N/A numpy all N/A num broadcastable N/A isinstance num Constant N/A N/A N/A N/A len N/A frac clients 1 N/A N/A new_num N/A N/A num data N/A N/A N/A N/A T true_div new_num denom N/A register_specialize N/A N/A gof local_optimizer N/A N/A T neg local_mul_zero N/A N/A node N/A N/A N/A 
    As part of canonicalization, we replace multiplication by zero
    with zero.

     N/A N/A N/A node op N/A T mul N/A N/A otype N/A N/A N/A node outputs N/A 0 type N/A i N/A node inputs N/A N/A N/A N/A value N/A get_scalar_constant_value i N/A N/A N/A NotScalarConstantError N/A N/A N/A N/A value 0 N/A N/A N/A _fill_chain N/A N/A theano _asarray 0 dtype N/A otype dtype N/A node inputs N/A N/A N/A gof local_optimizer N/A N/A T mul N/A N/A register_canonicalize local_mul_zero local_div_to_inv N/A N/A node N/A N/A N/A N/A N/A N/A node op N/A T true_div N/A N/A N all N/A N/A N/A local_mul_canonizer get_constant N/A N/A node inputs N/A 0 1.0 N/A N/A out N/A N/A node outputs N/A 0 N/A new_out N/A N/A T inv N/A N/A local_mul_canonizer merge_num_denum N/A N/A node inputs N/A 1 N/A N/A N/A N/A new_out dtype N/A out dtype N/A N/A new_out N/A N/A T cast new_out dtype N/A out dtype N/A N/A N/A new_out type N/A out type N/A N/A new_out N/A broadcast_like new_out out N/A node fgraph N/A N/A new_out N/A N/A False N/A N/A N/A gof local_optimizer N/A N/A T true_div N/A N/A register_specialize local_div_to_inv local_inv_canon N/A N/A node N/A N/A N/A N/A N/A node op N/A T inv N/A N/A N/A N/A N/A T pow N/A N/A node inputs N/A 0 -1.0 N/A N/A False N/A N/A N/A gof local_optimizer N/A N/A T inv N/A N/A register_canonicalize local_inv_canon local_pow_canonicalize N/A N/A node N/A N/A N/A N/A N/A node op N/A T pow N/A N/A cst N/A N/A local_mul_canonizer get_constant N/A N/A node inputs N/A 1 N/A N/A cst 0 N/A N/A N/A N/A broadcast_like 1 N/A N/A node outputs N/A 0 N/A node fgraph N/A N/A cst 1 N/A N/A N/A N/A broadcast_like N/A N/A node inputs N/A 0 N/A N/A node outputs N/A 0 N/A node fgraph N/A N/A False N/A N/A N/A gof local_optimizer N/A N/A T pow N/A N/A register_canonicalize local_pow_canonicalize local_mul_to_sqr N/A N/A node N/A N/A N/A 
    x*x -> sqr(x)

    This is faster on the GPU when memory fetching is a big part of
    the computation time.

     N/A N/A N/A node op N/A T mul N/A N/A N/A N/A len N/A node inputs 2 N/A N/A N/A N/A N/A node inputs N/A 0 N/A N/A node inputs N/A 1 N/A N/A N/A N/A N/A T sqr N/A N/A node inputs N/A 0 N/A register_specialize N/A N/A gof local_optimizer N/A N/A T mul local_intdiv_by_one N/A N/A node N/A N/A N/A x // 1 -> x
     N/A N/A N/A node op N/A N/A T int_div N/A N/A N/A N/A isinstance N/A N/A node inputs N/A 1 N/A T TensorConstant N/A N/A numpy all N/A N/A N/A N/A node inputs N/A 1 value 1 N/A N/A N/A N/A N/A N/A N/A node inputs N/A 0 astype N/A N/A N/A node outputs N/A 0 dtype N/A register_canonicalize N/A N/A gof local_optimizer N/A N/A T int_div local_pow_specialize N/A N/A node N/A N/A N/A N/A N/A node op N/A T pow N/A N/A odtype N/A N/A N/A node outputs N/A 0 dtype N/A xsym N/A N/A node inputs N/A 0 N/A ysym N/A N/A node inputs N/A 1 N/A y N/A N/A local_mul_canonizer get_constant ysym N/A N/A N/A y None N/A encompasses_broadcastable N/A N/A xsym type broadcastable N/A N/A ysym type broadcastable N/A N/A rval None N/A N/A N/A N all N/A y 2 N/A N/A rval N/A N/A N/A T sqr xsym N/A N/A N/A N all N/A y 1 N/A N/A rval N/A xsym N/A N/A N/A N all N/A y 0 N/A N/A rval N/A N/A N/A T fill xsym N/A N/A numpy asarray 1 dtype odtype N/A N/A N/A N all N/A y 0.5 N/A N/A rval N/A N/A N/A T sqrt xsym N/A N/A N/A N all N/A y -0.5 N/A N/A rval N/A N/A N/A T inv N/A N/A T sqrt xsym N/A N/A N/A N all N/A y -1 N/A N/A rval N/A N/A N/A T inv xsym N/A N/A N/A N all N/A y -2 N/A N/A rval N/A N/A N/A T inv N/A N/A T sqr xsym N/A rval N/A N/A N/A rval N/A 0 N/A N/A T cast N/A rval N/A 0 odtype N/A N/A N/A N/A rval N/A 0 type N/A N/A N/A node outputs N/A 0 type N/A rval N/A node outputs N/A rval N/A N/A False N/A N/A N/A gof local_optimizer N/A N/A T pow N/A N/A register_specialize local_pow_specialize local_pow_specialize_device N/A N/A node N/A N/A N/A 
    This optimization is not the same on all device. We do it only on cpu here.
     N/A N/A N/A node op N/A T pow N/A N/A odtype N/A N/A N/A node outputs N/A 0 dtype N/A xsym N/A N/A node inputs N/A 0 N/A ysym N/A N/A node inputs N/A 1 N/A y N/A N/A local_mul_canonizer get_constant ysym N/A N/A isinstance y N/A numpy ndarray N/A N/A N/A N/A y size 1 N/A N/A N/A y N/A y N/A 0 N/A N/A N/A IndexError N/A N/A N/A N/A N/A y None N/A encompasses_broadcastable N/A N/A xsym type broadcastable N/A N/A ysym type broadcastable N/A N/A rval None N/A N/A N/A N/A abs y N/A int N/A abs y N/A N/A abs y 512 N/A N/A pow2 N/A xsym N/A pow2_scal N/A N/A N/A N/A N/A theano scalar get_scalar_type N/A xsym dtype N/A y_to_do N/A abs y N/A i N/A xrange N/A int N/A N/A numpy log2 y_to_do N/A N/A N/A N/A pow2 append N/A N/A T sqr N/A pow2 N/A i N/A N/A N/A pow2_scal append N/A N/A N/A theano scalar sqr N/A pow2_scal N/A i N/A rval1 None N/A rval1_scal None N/A N/A y_to_do 0 N/A N/A log_to_do N/A int N/A N/A numpy log2 y_to_do N/A rval1 N/A N/A rval1 N/A pow2 N/A log_to_do N/A rval1_scal N/A pow2_scal N/A log_to_do N/A N/A rval1 N/A pow2 N/A log_to_do N/A rval1_scal N/A pow2_scal N/A log_to_do N/A y_to_do N/A 2 log_to_do N/A N/A N/A abs y 2 N/A N/A rval1 N/A N/A N/A Elemwise N/A N/A N/A theano scalar Composite N/A N/A pow2_scal N/A 0 N/A rval1_scal make_node xsym N/A N/A y 0 N/A N/A rval N/A N/A N/A T inv rval1 N/A N/A rval N/A rval1 N/A rval N/A N/A N/A rval N/A 0 N/A N/A T cast N/A rval N/A 0 odtype N/A N/A N/A N/A rval N/A 0 type N/A N/A N/A node outputs N/A 0 type N/A rval N/A node outputs N/A rval N/A register_specialize_device N/A N/A gof local_optimizer N/A N/A T pow local_mul_specialize N/A N/A node N/A N/A N/A 
    Remove special-case constants from mul arguments and useless neg in inputs.

    mul(-1, x) -> neg(x)
    mul(1, x, y) -> mul(x, y)
    mul(0, ...) -> alloc(0, shapes...)

    This is not done if we would add more nodes in the graph, like with:

    mul(-1, x, y) -/-> neg(mul(x, y))

     N/A N/A N/A node op N/A T mul N/A N/A neg False N/A new_inputs N/A N/A nb_neg_node 0 N/A nb_cst 0 N/A input N/A node inputs N/A N/A N/A N/A input owner N/A N/A N/A input owner op N/A T neg N/A N/A neg True N/A input N/A N/A N/A input owner inputs N/A 0 N/A nb_neg_node 1 N/A y N/A N/A local_mul_canonizer get_constant input N/A N/A y 1.0 N/A N/A nb_cst 1 N/A N/A N/A y -1.0 N/A N/A nb_cst 1 N/A neg True N/A N/A N/A y 0.0 N/A N/A N/A N/A broadcast_like 0 N/A N/A node outputs N/A 0 N/A node fgraph N/A N/A N/A N/A new_inputs append input N/A N/A new_inputs N/A node inputs N/A N/A new_inputs N/A N/A N/A N/A len new_inputs 1 N/A N/A neg N/A N/A rval N/A N/A new_inputs N/A 0 N/A N/A rval N/A new_inputs N/A 0 N/A N/A N/A neg N/A nb_neg_node 0 N/A nb_cst 1 N/A N/A N/A N/A neg N/A N/A m1 N/A N/A numpy asarray -1 dtype N/A N/A N/A node outputs N/A 0 dtype N/A new_inputs N/A N/A m1 new_inputs N/A rval N/A N/A T mul new_inputs N/A N/A N/A broadcast_like rval N/A N/A node outputs N/A 0 N/A node fgraph N/A N/A neg N/A N/A N/A N/A broadcast_like -1 N/A N/A node outputs N/A 0 N/A node fgraph N/A N/A N/A N/A broadcast_like 1 N/A N/A node outputs N/A 0 N/A node fgraph N/A N/A N/A gof local_optimizer N/A N/A T mul N/A N/A register_specialize local_mul_specialize local_add_specialize N/A N/A node N/A N/A fill_chain N/A N/A v N/A N/A N/A out N/A _fill_chain v N/A node inputs N/A out N/A N/A N/A N/A node op N/A T add N/A N/A new_inputs N/A N/A input N/A node inputs N/A N/A N/A N/A y N/A get_scalar_constant_value input N/A N/A N/A NotScalarConstantError N/A N/A y input N/A N/A N/A numpy all N/A y 0.0 N/A N/A N/A N/A N/A new_inputs append input N/A N/A N/A len new_inputs N/A len N/A node inputs N/A N/A dtype N/A N/A N/A N/A node outputs N/A 0 type dtype N/A N/A N/A len new_inputs 0 N/A N/A ndim N/A N/A N/A N/A node outputs N/A 0 type ndim N/A cst N/A N/A T constant N/A N/A numpy zeros N/A N/A 1 ndim dtype dtype N/A N/A N/A N/A cst type broadcastable N/A N/A True ndim N/A N/A fill_chain cst N/A N/A N/A len new_inputs 1 N/A N/A ret N/A fill_chain N/A new_inputs N/A 0 N/A N/A ret N/A fill_chain N/A N/A T add new_inputs N/A N/A N/A N/A ret N/A 0 dtype dtype N/A N/A ret N/A N/A N/A T cast N/A ret N/A 0 dtype N/A ret N/A N/A False N/A N/A N/A gof local_optimizer N/A N/A T add N/A N/A register_specialize local_add_specialize N/A mul_canonizer N/A in2out N/A N/A gof LocalOptGroup local_mul_canonizer local_fill_cut local_fill_sink name mul_canonizer_groups check_for_x_over_absX N/A N/A numerators denominators N/A N/A N/A Convert x/abs(x) into sign(x).  N/A den N/A list denominators N/A N/A N/A N/A den owner N/A N/A N/A den owner op N/A T abs_ N/A N/A N/A N/A den owner inputs N/A 0 numerators N/A N/A N/A N/A N/A N/A N/A N/A N/A den owner inputs N/A 0 type dtype startswith complex N/A N/A N/A N/A N/A N/A denominators remove den N/A N/A N/A numerators remove N/A N/A N/A den owner inputs N/A 0 N/A N/A N/A numerators append N/A N/A T sgn N/A N/A N/A den owner inputs N/A 0 N/A N/A numerators denominators N/A N/A N/A N/A local_mul_canonizer add_simplifier check_for_x_over_absX X_over_absX local_abs_lift N/A N/A node N/A N/A N/A 
    Move the abs toward the input.

    This is needed for check_for_x_over_absX to apply in more case.

     N/A N/A N/A N/A node op N/A T abs_ N/A N/A N/A node inputs N/A 0 owner N/A N/A N/A N/A node nin 1 N/A N/A N/A N/A N/A N/A node inputs N/A 0 owner op N/A T mul N/A N/A N/A N/A N/A T mul N/A N/A N/A T abs_ i N/A i N/A N/A N/A N/A node inputs N/A 0 owner inputs N/A N/A N/A N/A N/A N/A node inputs N/A 0 owner op N/A T true_div N/A N/A i N/A N/A N/A N/A node inputs N/A 0 owner inputs N/A N/A N/A N/A T true_div N/A N/A T abs_ N/A i N/A 0 N/A N/A T abs_ N/A i N/A 1 N/A register_canonicalize N/A N/A gof local_optimizer N/A N/A T abs_ local_abs_merge N/A N/A node N/A N/A N/A 
    Merge abs generated by local_abs_lift when the canonizer don't
    need it anymore

     N/A N/A N/A N/A node op N/A T mul N/A N/A sum N/A N/A N/A N/A i owner op N/A T abs_ N/A i N/A node inputs N/A i owner 1 N/A N/A inputs N/A N/A i N/A node inputs N/A N/A N/A N/A i owner N/A N/A N/A i owner op N/A T abs_ N/A N/A N/A N/A inputs append N/A N/A N/A i owner inputs N/A 0 N/A N/A N/A isinstance i Constant N/A N/A N/A N/A const N/A get_scalar_constant_value i N/A N/A N/A NotScalarConstantError N/A N/A False N/A N/A N/A N/A N/A const 0 all N/A N/A False N/A N/A N/A inputs append i N/A N/A False N/A N/A N/A N/A T abs_ N/A N/A T mul inputs N/A N/A N/A N/A node op N/A T true_div N/A N/A sum N/A N/A N/A N/A i owner op N/A T abs_ N/A i N/A node inputs N/A i owner 2 N/A N/A N/A N/A N/A T abs_ N/A N/A T true_div N/A N/A N/A N/A N/A node inputs N/A 0 owner inputs N/A 0 N/A N/A N/A N/A N/A node inputs N/A 1 owner inputs N/A 0 N/A register_specialize N/A N/A gof local_optimizer N/A N/A T mul N/A T true_div local_log1p N/A N/A node N/A N/A N/A N/A N/A node op N/A T log N/A N/A N/A log_arg N/A node inputs N/A N/A N/A log_arg owner N/A N/A N/A log_arg owner op N/A T add N/A N/A N/A scalars scalar_inputs nonconsts N/A scalarconsts_rest N/A N/A log_arg owner inputs N/A N/A scalars N/A N/A numpy allclose N/A N/A numpy sum scalars 1 N/A N/A N/A nonconsts N/A N/A N/A N/A N/A len nonconsts 1 N/A N/A N/A _fill_chain N/A N/A T log1p N/A nonconsts N/A 0 scalar_inputs N/A N/A N/A _fill_chain N/A N/A T log1p N/A N/A T add nonconsts scalar_inputs N/A register_stabilize register_specialize N/A N/A gof local_optimizer N/A N/A T log local_log_add N/A N/A node N/A N/A N/A N/A N/A node op N/A T log N/A N/A z N/A N/A node inputs N/A 0 N/A N/A N/A z owner N/A N/A N/A z owner op N/A T add N/A N/A zi N/A N/A z owner inputs N/A N/A N/A len zi 2 N/A N/A N/A pre_exp N/A N/A N/A N/A x owner inputs N/A 0 N/A x zi N/A N/A x owner N/A N/A N/A x owner op N/A T exp N/A N/A N/A len pre_exp N/A len zi N/A N/A max_pre N/A N/A T maximum pre_exp N/A ret N/A max_pre N/A N/A T log1p N/A N/A T exp N/A N/A T add N/A N/A p max_pre N/A p pre_exp N/A N/A N/A ret tag values_eq_approx values_eq_approx_remove_inf N/A N/A ret N/A register_stabilize register_specialize N/A N/A gof local_optimizer N/A N/A T log add_calculate N/A N/A num denum aslist out_type N/A False None N/A N/A N/A out_type None N/A N/A zero 0.0 N/A N/A zero N/A N/A theano _asarray 0 dtype N/A out_type dtype N/A v N/A N/A reduce N/A N add num zero N/A reduce N/A N add denum zero N/A aslist N/A N/A N/A N/A N all N/A v 0 N/A N/A N/A N/A N/A N/A v N/A v N/A N/A local_add_canonizer N/A Canonizer N/A T add N/A T sub N/A T neg add_calculate N/A add_canonizer N/A in2out N/A N/A gof LocalOptGroup local_add_canonizer local_fill_cut local_fill_sink name add_canonizer_group N/A N/A register_canonicalize local_add_canonizer name local_add_canonizer distribute_greedy N/A N/A pos_pairs neg_pairs num denum out_type minscore N/A 0 N/A N/A div_cost 1.5 N/A score N/A N/A len num N/A div_cost N/A len denum N/A new_pos_pairs N/A list N/A N/A itertools starmap N/A local_mul_canonizer simplify N/A N/A N/A n num N/A d denum out_type N/A N/A n d pos_pairs N/A new_neg_pairs N/A list N/A N/A itertools starmap N/A local_mul_canonizer simplify N/A N/A N/A n num N/A d denum out_type N/A N/A n d neg_pairs N/A N/A N/A n d N/A nn dd N/A zip N/A pos_pairs neg_pairs N/A new_pos_pairs new_neg_pairs N/A N/A score N/A N/A N/A N/A len n N/A div_cost N/A len d N/A len nn N/A div_cost N/A len dd N/A N/A score minscore N/A N/A N/A False pos_pairs neg_pairs N/A N/A True new_pos_pairs new_neg_pairs N/A attempt_distribution N/A N/A factor num denum out_type N/A N/A N/A N/A pos neg N/A N/A local_add_canonizer get_num_denum factor N/A N/A N/A N/A len pos 1 N/A neg N/A N/A N/A False factor num denum N/A pos_pairs N/A list N/A map N/A local_mul_canonizer get_num_denum pos N/A neg_pairs N/A list N/A map N/A local_mul_canonizer get_num_denum neg N/A change False N/A n N/A list num N/A N/A N/A success pos_pairs neg_pairs N/A distribute_greedy pos_pairs neg_pairs N/A n N/A out_type N/A success N/A N/A change True N/A N/A N/A num remove n N/A d N/A list denum N/A N/A N/A success pos_pairs neg_pairs N/A distribute_greedy pos_pairs neg_pairs N/A N/A d out_type N/A success N/A N/A change True N/A N/A N/A denum remove d N/A N/A change N/A N/A N/A change factor num denum N/A N/A N/A change N/A N/A local_add_canonizer merge_num_denum N/A list N/A N/A itertools starmap N/A local_mul_canonizer merge_num_denum pos_pairs N/A list N/A N/A itertools starmap N/A local_mul_canonizer merge_num_denum neg_pairs num denum N/A local_greedy_distributor N/A N/A node N/A N/A N/A 
    Optimize by reducing the number of multiplications and/or divisions.

    This optimization tries to apply distributivity of multiplication
    to addition in order to reduce the number of multiplications
    and/or divisions that must be done. The algorithm weighs division
    more than multiplication to account for the former's slightly
    greater computational cost.

    The following expressions are simplified:
    1. ((a/x + b/y) * x * y) --> a*y + b*x
    2. ((a/x + b) * x) --> a + b*x
    3. There are other forms too where node is a true_div.

    The following expressions are not simplified:
    4. ((a + b) * x) -/-> a*x + b*x

    This optimization aims to reduce computational cost. It may also
    increase numerical stability, e.g. when x and/or y tend to 0 in
    example 1.

     N/A out N/A N/A node outputs N/A 0 N/A N/A num denum N/A N/A local_mul_canonizer get_num_denum out N/A N/A N/A N/A len num 1 N/A denum N/A N/A False N/A N/A new_num new_denum N/A N/A N/A N/A change False N/A out_type N/A out type N/A candidate N/A list num N/A N/A N/A candidate num N/A N/A N/A N/A N/A num remove candidate N/A N/A _change candidate num denum N/A attempt_distribution candidate num denum out_type N/A change _change N/A N/A N/A new_num append candidate N/A candidate N/A list denum N/A N/A N/A candidate denum N/A N/A N/A N/A N/A denum remove candidate N/A N/A _change candidate denum num N/A attempt_distribution candidate denum num out_type N/A change _change N/A N/A N/A new_denum append candidate N/A N/A change N/A N/A False N/A new_num num N/A new_denum denum N/A rval N/A N/A local_mul_canonizer merge_num_denum new_num new_denum N/A N/A N/A N/A rval type N/A out type N/A N/A False N/A N/A rval N/A register_canonicalize register_stabilize N/A N/A gof local_optimizer N/A N/A T mul N/A T true_div N/A T inv constant_folding N/A N/A node N/A N/A N/A input N/A node inputs N/A N/A N/A N/A isinstance input Constant N/A N/A False N/A N/A N/A N/A N/A node op do_constant_folding node N/A N/A False N/A storage_map N/A dict N/A N/A i N/A N/A i data N/A i N/A node inputs N/A compute_map N/A dict N/A N/A i N/A True N/A i N/A node inputs N/A o N/A node outputs N/A N/A N/A storage_map N/A o N/A None N/A N/A compute_map N/A o N/A False N/A N/A N/A hasattr N/A node op python_constant_folding N/A N/A N/A node op python_constant_folding node N/A N/A old_value N/A getattr N/A node op _op_use_c_code False N/A N/A N/A N/A N/A node op _op_use_c_code False N/A thunk N/A N/A N/A node op make_thunk node storage_map compute_map N/A N/A N/A N/A N/A node op _op_use_c_code old_value N/A N/A thunk N/A N/A N/A node op make_thunk node storage_map compute_map no_recycling N/A N/A required N/A thunk N/A N/A required N/A rval N/A N/A output N/A node outputs N/A N/A N/A N/A compute_map N/A output N/A 0 N/A output N/A N/A storage_map N/A output N/A 0 N/A N/A N/A constant N/A N/A output type Constant N/A N/A N/A AttributeError N/A N/A constant Constant N/A v N/A constant N/A output type N/A N/A storage_map N/A output N/A 0 N/A N/A copy_stack_trace output v N/A N/A N/A rval append v N/A rval N/A N/A N/A gof local_optimizer None N/A topo_constant_folding N/A in2out constant_folding ignore_newtrees True name topo_constant_folding N/A N/A register_canonicalize topo_constant_folding fast_compile final_opt True N/A N/A register_stabilize topo_constant_folding fast_compile final_opt True N/A N/A register_specialize topo_constant_folding fast_compile final_opt True get_clients N/A N/A node N/A N/A N/A 
    Used by erf/erfc opt to track less frequent op.

     N/A N/A c N/A N/A c i N/A N/A N/A node outputs N/A 0 clients N/A c output N/A get_clients2 N/A N/A node N/A N/A N/A 
    Used by erf/erfc opt to track less frequent op.

     N/A l N/A N/A N/A c i N/A N/A N/A node outputs N/A 0 clients N/A N/A N/A c output N/A N/A var N/A c outputs N/A N/A N/A N/A l extend N/A cc N/A N/A cc ii N/A var clients N/A cc output N/A l N/A N/A local_one_plus_erf N/A N/A gof PatternSub N/A N/A T add 1 N/A N/A T erf x N/A N/A T erfc N/A N/A T neg x allow_multiple_clients True name local_one_plus_erf tracks N/A N/A T erf get_nodes get_clients N/A N/A register_canonicalize local_one_plus_erf N/A N/A register_stabilize local_one_plus_erf N/A N/A register_specialize local_one_plus_erf N/A local_one_minus_erf N/A N/A gof PatternSub N/A N/A T sub 1 N/A N/A T erf x N/A N/A T erfc x allow_multiple_clients True name local_one_minus_erf N/A N/A register_canonicalize local_one_minus_erf N/A N/A register_stabilize local_one_minus_erf N/A N/A register_specialize local_one_minus_erf N/A local_one_minus_erf2 N/A N/A gof PatternSub N/A N/A T add 1 N/A N/A T mul -1 N/A N/A T erf x N/A N/A T erfc x allow_multiple_clients True name local_one_minus_erf2 N/A N/A register_canonicalize local_one_minus_erf2 N/A N/A register_stabilize local_one_minus_erf2 N/A N/A register_specialize local_one_minus_erf2 N/A local_one_plus_neg_erf N/A N/A gof PatternSub N/A N/A T add 1 N/A N/A T neg N/A N/A T erf x N/A N/A T erfc x allow_multiple_clients True name local_one_plus_neg_erf tracks N/A N/A T erf get_nodes get_clients2 N/A N/A register_canonicalize local_one_plus_neg_erf N/A N/A register_stabilize local_one_plus_neg_erf N/A N/A register_specialize local_one_plus_neg_erf N/A local_erf_minus_one N/A N/A gof PatternSub N/A N/A T add -1 N/A N/A T erf x N/A N/A T neg N/A N/A T erfc x allow_multiple_clients True name local_erf_minus_one tracks N/A N/A T erf get_nodes get_clients N/A N/A register_canonicalize local_erf_minus_one N/A N/A register_stabilize local_erf_minus_one N/A N/A register_specialize local_erf_minus_one N/A local_one_minus_erfc N/A N/A gof PatternSub N/A N/A T sub 1 N/A N/A T erfc x N/A N/A T erf x allow_multiple_clients True name local_one_minus_erfc tracks N/A N/A T erfc get_nodes get_clients N/A N/A register_canonicalize local_one_minus_erfc N/A N/A register_stabilize local_one_minus_erfc N/A N/A register_specialize local_one_minus_erfc N/A local_one_minus_erfc2 N/A N/A gof PatternSub N/A N/A T add 1 N/A N/A T neg N/A N/A T erfc x N/A N/A T erf x allow_multiple_clients True name local_one_minus_erfc2 tracks N/A N/A T erfc get_nodes get_clients2 N/A N/A register_canonicalize local_one_minus_erfc2 N/A N/A register_stabilize local_one_minus_erfc2 N/A N/A register_specialize local_one_minus_erfc2 N/A local_one_minus_erfc3 N/A N/A gof PatternSub N/A N/A T add 1 N/A N/A T mul -1 N/A N/A T erfc x N/A N/A T erf x allow_multiple_clients True name local_one_minus_erfc3 tracks N/A N/A T erfc get_nodes get_clients2 N/A N/A register_canonicalize local_one_minus_erfc3 N/A N/A register_stabilize local_one_minus_erfc3 N/A N/A register_specialize local_one_minus_erfc3 N/A local_one_add_neg_erfc N/A N/A gof PatternSub N/A N/A T add 1 N/A N/A T neg N/A N/A T erfc x N/A N/A T erf x allow_multiple_clients True name local_one_add_neg_erfc tracks N/A N/A T erfc get_nodes get_clients2 N/A N/A register_canonicalize local_one_add_neg_erfc N/A N/A register_stabilize local_one_add_neg_erfc N/A N/A register_specialize local_one_add_neg_erfc N/A local_erf_neg_minus_one N/A N/A gof PatternSub N/A N/A T add -1 N/A N/A T erfc N/A N/A T neg x N/A N/A T erf x allow_multiple_clients True name local_erf_neg_minus_one tracks N/A N/A T erfc get_nodes get_clients N/A N/A register_canonicalize local_erf_neg_minus_one N/A N/A register_stabilize local_erf_neg_minus_one N/A N/A register_specialize local_erf_neg_minus_one N/A local_erf_neg_minus_one2 N/A N/A gof PatternSub N/A N/A T add -1 N/A N/A T erfc N/A N/A T mul -1 x N/A N/A T erf x allow_multiple_clients True name local_erf_neg_minus_one2 tracks N/A N/A T erfc get_nodes get_clients N/A N/A register_canonicalize local_erf_neg_minus_one2 N/A N/A register_stabilize local_erf_neg_minus_one2 N/A N/A register_specialize local_erf_neg_minus_one2 local_log_erfc N/A N/A node N/A N/A N/A N/A N/A node op N/A T log N/A N/A False N/A N/A N/A N/A N/A N/A node inputs N/A 0 owner N/A N/A N/A N/A N/A node inputs N/A 0 owner op N/A T erfc N/A N/A False N/A N/A hasattr N/A node tag local_log_erfc_applied N/A N/A False N/A N/A N/A node tag local_log_erfc_applied True N/A x N/A N/A N/A N/A N/A node inputs N/A 0 owner inputs N/A 0 N/A stab_value N/A N/A N/A N/A N/A x 2 N/A N/A T log x N/A 0.5 N/A N/A T log N/A numpy pi N/A N/A T log N/A N/A N/A 1 N/A 1 N/A 2 N/A x 2 N/A 3 N/A 4 N/A x 4 N/A 15 N/A 8 N/A x 6 N/A N/A N/A N/A N/A N/A node outputs N/A 0 dtype float32 N/A N/A N/A N/A node outputs N/A 0 dtype float16 N/A N/A threshold 10.0541949 N/A N/A N/A N/A N/A N/A node outputs N/A 0 dtype float64 N/A N/A threshold 26.641747557 N/A ret N/A N/A T switch N/A x threshold N/A N/A node outputs N/A 0 stab_value N/A N/A N/A ret tag values_eq_approx values_eq_approx_remove_inf N/A N/A ret N/A register_stabilize register_specialize N/A N/A gof local_optimizer N/A N/A T log local_grad_log_erfc_neg N/A N/A node N/A N/A N/A N/A N/A node op N/A T true_div N/A N/A False N/A N/A N/A N/A N/A N/A node inputs N/A 1 owner N/A N/A N/A N/A N/A node inputs N/A 1 owner op N/A T erfc N/A N/A False N/A erfc N/A N/A node inputs N/A 1 N/A erfc_x N/A N/A N/A erfc owner inputs N/A 0 N/A N/A N/A N/A N/A node inputs N/A 0 owner N/A N/A False N/A N/A N/A N/A N/A N/A node inputs N/A 0 owner op N/A T mul N/A N/A mul None N/A y N/A N/A N/A N/A N/A N/A N/A node inputs N/A 0 owner N/A N/A N/A N/A N/A node inputs N/A 0 owner op N/A T exp N/A N/A False N/A exp N/A N/A node inputs N/A 0 N/A N/A mul N/A N/A node inputs N/A 0 N/A exp None N/A N/A idx inp N/A enumerate N/A N/A mul owner inputs N/A N/A N/A N/A inp owner N/A N/A N/A inp owner op N/A T exp N/A N/A exp inp N/A N/A N/A N/A len N/A N/A mul owner inputs 2 N/A N/A y N/A N/A N/A N/A mul owner inputs N/A N/A 1 idx N/A N/A y N/A N/A N/A mul owner inputs N/A N/A N/A y N/A idx N/A mul N/A N/A N/A N/A N/A N/A exp owner inputs N/A 0 owner N/A N/A False N/A N/A N/A N/A N/A N/A N/A exp owner inputs N/A 0 owner op N/A T neg N/A N/A neg N/A N/A N/A exp owner inputs N/A 0 N/A N/A N/A N/A N/A N/A N/A neg owner inputs N/A 0 owner N/A N/A N/A N/A N/A N/A neg owner inputs N/A 0 owner op N/A T sqr N/A N/A False N/A sqr N/A N/A N/A neg owner inputs N/A 0 N/A x N/A N/A N/A sqr owner inputs N/A 0 N/A N/A N/A N/A N/A N/A N/A N/A exp owner inputs N/A 0 owner op N/A T mul N/A N/A mul_neg N/A N/A N/A exp owner inputs N/A 0 check_input N/A N/A inputs N/A N/A N/A new_inputs N/A N/A i inputs N/A N/A N/A N/A i owner N/A N/A N/A i owner op N/A T mul N/A N/A N/A N/A new_inputs extend N/A check_input N/A N/A i owner inputs N/A N/A N/A N/A new_inputs append i N/A new_inputs N/A N/A mul_inputs N/A check_input N/A N/A mul_neg owner inputs N/A i N/A xrange N/A len mul_inputs N/A N/A N/A isinstance i Constant N/A N/A N/A i 0 N/A N/A N/A N/A tmp N/A mul_inputs N/A 0 N/A N/A mul_inputs N/A 0 N/A mul_inputs N/A i N/A N/A mul_inputs N/A i tmp N/A N/A mul_neg N/A N/A T mul mul_inputs N/A N/A N/A cst2 N/A get_scalar_constant_value N/A N/A N/A mul_neg owner inputs N/A 0 N/A N/A N/A NotScalarConstantError N/A N/A False N/A N/A N/A len N/A N/A mul_neg owner inputs 2 N/A N/A N/A N/A N/A N/A N/A N/A mul_neg owner inputs N/A 1 owner N/A N/A N/A N/A N/A N/A mul_neg owner inputs N/A 1 owner op N/A T sqr N/A N/A False N/A sqr N/A N/A N/A mul_neg owner inputs N/A 1 N/A x N/A N/A N/A sqr owner inputs N/A 0 N/A N/A N/A N/A len N/A N/A mul_neg owner inputs 3 N/A N/A N/A N/A N/A N/A mul_neg owner inputs N/A 1 N/A N/A N/A mul_neg owner inputs N/A 2 N/A N/A False N/A x N/A N/A N/A mul_neg owner inputs N/A 1 N/A N/A False N/A N/A cst2 -1 N/A N/A N/A N/A N/A erfc_x owner N/A N/A N/A erfc_x owner op N/A T mul N/A N/A len N/A N/A erfc_x owner inputs 2 N/A N/A False N/A N/A N/A N/A N/A erfc_x owner inputs N/A 1 N/A N/A N/A mul_neg owner inputs N/A 1 N/A N/A False N/A x erfc_x N/A N/A N/A cst N/A get_scalar_constant_value N/A N/A N/A erfc_x owner inputs N/A 0 N/A N/A N/A NotScalarConstantError N/A N/A False N/A N/A cst2 N/A N/A cst 2 N/A N/A False N/A N/A N/A erfc_x x N/A N/A False N/A N/A False N/A N/A hasattr N/A node tag local_grad_log_erfc_neg N/A N/A False N/A true_div_no_mul N/A N/A T true_div exp erfc N/A N/A N/A N/A true_div_no_mul owner tag local_grad_log_erfc_neg True N/A stab_value N/A N/A x N/A N/A T pow N/A N/A N/A 1 N/A 1 N/A 2 N/A x 2 N/A 3 N/A 4 N/A x 4 N/A 15 N/A 8 N/A x 6 -1 N/A N/A T cast N/A N/A T sqrt N/A numpy pi dtype N/A x dtype N/A N/A N/A N/A x dtype float32 N/A N/A x dtype float16 N/A N/A threshold 9.3 N/A N/A N/A N/A x dtype float64 N/A N/A threshold 26.641747557 N/A ret N/A N/A T switch N/A x threshold true_div_no_mul stab_value N/A y N/A N/A ret N/A N/A T mul ret y N/A N/A N/A ret tag values_eq_approx values_eq_approx_remove_inf_nan N/A N/A ret N/A 
The libm used for the test is amdlibm
    #([y*]exp(-(x**2)))/erfc(x) # The mul is optional
#exp(x**2)/erfc(-x) => when x>threashold,
#-x*(1-1/(2*x**2)+3/(4*x**4)-15/(8*x**6))*sqrt(pi) for float64:
#threshold=26.63 see below for float32: threshold=9.3 see below TODO
#remove the contraint that there are only 2 inputs to mul TODO: should
#we cast numpy.pi to x.dtype?

#float32 threshold 9.3 as the approximation is more precise at that
#point and more stable.
import numpy, scipy.special
r = numpy.arange(9,10.06,.01)

p64=[(numpy.exp(-(x**2)))/scipy.special.erfc(x) for x in r]
p32=[(numpy.exp(-(x**2)))/scipy.special.erfc(x) for x in
numpy.asarray(r,dtype='float32')]
a64=[x*((1-1/(2*x**2)+3/(4*x**4)-15/(8*x**6))**(-1))*numpy.sqrt(numpy.pi)
for x in r]
a32=[x*((1-1/(2*x**2)+3/(4*x**4)-15/(8*x**6))**(-1))
     * numpy.float32(numpy.sqrt(numpy.pi))
for x in numpy.asarray(r,dtype='float32')] for idx,(a,b,c,d,e) in
enumerate(zip(r,p64,p32,a64,a32)):print
a,b,c,d,e,c-b,e-b,numpy.absolute(c-b)<numpy.absolute(e-b)

#, show that the value don't look stable at some point before inf.
for i in xrange(1,len(p32)): print r[i], p32[i]-p32[i-1]

#float64 threshold is 26.63 the approx seam more precise at that
point.  r = numpy.arange(26.2,26.7,.001)
#scipy.special.erfc(numpy.float128(x)) don't work
#p128=[(numpy.exp(-(x**2)))/scipy.special.erfc(x)for x in
numpy.float128(r)] #those value have been computed with g++
theano/misc/erfc_stability_threshold.c && ./a.out
p128=numpy.float128(['46.47206725', '46.47383842', '46.47560959',
'46.47738076', '46.47915193', '46.48092309', '46.48269426',
'46.48446543', '46.48623660', '46.48800777', '46.48977894',
'46.49155011', '46.49332128', '46.49509245', '46.49686362',
'46.49863479', '46.50040596', '46.50217713', '46.50394830',
'46.50571947', '46.50749064', '46.50926181', '46.51103298',
'46.51280415', '46.51457532', '46.51634649', '46.51811766',
'46.51988883', '46.52166000', '46.52343118', '46.52520235',
'46.52697352', '46.52874469', '46.53051586', '46.53228703',
'46.53405820', '46.53582938', '46.53760055', '46.53937172',
'46.54114289', '46.54291407', '46.54468524', '46.54645641',
'46.54822758', '46.54999876', '46.55176993', '46.55354110',
'46.55531227', '46.55708345', '46.55885462', '46.56062579',
'46.56239697', '46.56416814', '46.56593931', '46.56771049',
'46.56948166', '46.57125283', '46.57302401', '46.57479518',
'46.57656636', '46.57833753', '46.58010871', '46.58187988',
'46.58365105', '46.58542223', '46.58719340', '46.58896458',
'46.59073575', '46.59250693', '46.59427810', '46.59604928',
'46.59782045', '46.59959163', '46.60136280', '46.60313398',
'46.60490516', '46.60667633', '46.60844751', '46.61021868',
'46.61198986', '46.61376104', '46.61553221', '46.61730339',
'46.61907456', '46.62084574', '46.62261692', '46.62438809',
'46.62615927', '46.62793045', '46.62970163', '46.63147280',
'46.63324398', '46.63501516', '46.63678633', '46.63855751',
'46.64032869', '46.64209987', '46.64387104', '46.64564222',
'46.64741340', '46.64918458', '46.65095576', '46.65272693',
'46.65449811', '46.65626929', '46.65804047', '46.65981165',
'46.66158283', '46.66335401', '46.66512519', '46.66689636',
'46.66866754', '46.67043872', '46.67220990', '46.67398108',
'46.67575226', '46.67752344', '46.67929462', '46.68106580',
'46.68283698', '46.68460816', '46.68637934', '46.68815052',
'46.68992170', '46.69169288', '46.69346406', '46.69523524',
'46.69700642', '46.69877760', '46.70054878', '46.70231997',
'46.70409115', '46.70586233', '46.70763351', '46.70940469',
'46.71117587', '46.71294705', '46.71471824', '46.71648942',
'46.71826060', '46.72003178', '46.72180296', '46.72357414',
'46.72534533', '46.72711651', '46.72888769', '46.73065887',
'46.73243006', '46.73420124', '46.73597242', '46.73774361',
'46.73951479', '46.74128597', '46.74305715', '46.74482834',
'46.74659952', '46.74837070', '46.75014189', '46.75191307',
'46.75368426', '46.75545544', '46.75722662', '46.75899781',
'46.76076899', '46.76254018', '46.76431136', '46.76608254',
'46.76785373', '46.76962491', '46.77139610', '46.77316728',
'46.77493847', '46.77670965', '46.77848084', '46.78025202',
'46.78202321', '46.78379439', '46.78556558', '46.78733677',
'46.78910795', '46.79087914', '46.79265032', '46.79442151',
'46.79619269', '46.79796388', '46.79973507', '46.80150625',
'46.80327744', '46.80504863', '46.80681981', '46.80859100',
'46.81036219', '46.81213337', '46.81390456', '46.81567575',
'46.81744693', '46.81921812', '46.82098931', '46.82276050',
'46.82453168', '46.82630287', '46.82807406', '46.82984525',
'46.83161644', '46.83338762', '46.83515881', '46.83693000',
'46.83870119', '46.84047238', '46.84224357', '46.84401475',
'46.84578594', '46.84755713', '46.84932832', '46.85109951',
'46.85287070', '46.85464189', '46.85641308', '46.85818427',
'46.85995546', '46.86172665', '46.86349784', '46.86526903',
'46.86704022', '46.86881141', '46.87058260', '46.87235379',
'46.87412498', '46.87589617', '46.87766736', '46.87943855',
'46.88120974', '46.88298093', '46.88475212', '46.88652331',
'46.88829450', '46.89006569', '46.89183688', '46.89360807',
'46.89537927', '46.89715046', '46.89892165', '46.90069284',
'46.90246403', '46.90423522', '46.90600642', '46.90777761',
'46.90954880', '46.91131999', '46.91309119', '46.91486238',
'46.91663357', '46.91840476', '46.92017596', '46.92194715',
'46.92371834', '46.92548953', '46.92726073', '46.92903192',
'46.93080311', '46.93257431', '46.93434550', '46.93611669',
'46.93788789', '46.93965908', '46.94143028', '46.94320147',
'46.94497266', '46.94674386', '46.94851505', '46.95028625',
'46.95205744', '46.95382864', '46.95559983', '46.95737103',
'46.95914222', '46.96091341', '46.96268461', '46.96445581',
'46.96622700', '46.96799820', '46.96976939', '46.97154059',
'46.97331178', '46.97508298', '46.97685417', '46.97862537',
'46.98039657', '46.98216776', '46.98393896', '46.98571015',
'46.98748135', '46.98925255', '46.99102374', '46.99279494',
'46.99456614', '46.99633733', '46.99810853', '46.99987973',
'47.00165092', '47.00342212', '47.00519332', '47.00696452',
'47.00873571', '47.01050691', '47.01227811', '47.01404931',
'47.01582050', '47.01759170', '47.01936290', '47.02113410',
'47.02290530', '47.02467649', '47.02644769', '47.02821889',
'47.02999009', '47.03176129', '47.03353249', '47.03530369',
'47.03707489', '47.03884608', '47.04061728', '47.04238848',
'47.04415968', '47.04593088', '47.04770208', '47.04947328',
'47.05124448', '47.05301568', '47.05478688', '47.05655808',
'47.05832928', '47.06010048', '47.06187168', '47.06364288',
'47.06541408', '47.06718528', '47.06895648', '47.07072768',
'47.07249888', '47.07427009', '47.07604129', '47.', '47.07958369',
'47.08135489', '47.08312609', '47.08489729', '47.08666850',
'47.08843970', '47.09021090', '47.09198210', '47.09375330',
'47.09552450', '47.09729571', '47.09906691', '47.10083811',
'47.10260931', '47.10438052', '47.10615172', '47.10792292',
'47.10969412', '47.11146533', '47.11323653', '47.11500773',
'47.11677894', '47.11855014', '47.12032134', '47.12209255',
'47.12386375', '47.12563495', '47.12740616', '47.12917736',
'47.13094857', '47.13271977', '47.13449097', '47.13626218',
'47.13803338', '47.13980459', '47.14157579', '47.14334700',
'47.14511820', '47.14688941', '47.14866061', '47.15043182',
'47.15220302', '47.15397423', '47.15574543', '47.15751664',
'47.15928784', '47.16105905', '47.16283025', '47.16460146',
'47.16637266', '47.16814387', '47.16991508', '47.17168628',
'47.17345749', '47.17522869', '47.17699990', '47.17877111',
'47.18054231', '47.18231352', '47.18408473', '47.18585593',
'47.18762714', '47.18939835', '47.19116956', '47.19294076',
'47.19471197', '47.19648318', '47.19825439', '47.20002559',
'47.20179680', '47.20356801', '47.20533922', '47.20711042',
'47.20888163', '47.21065284', '47.21242405', '47.21419526',
'47.21596647', '47.21773767', '47.21950888', '47.22128009',
'47.22305130', '47.22482251', '47.22659372', '47.22836493',
'47.23013614', '47.23190735', '47.23367855', '47.23544976',
'47.23722097', '47.23899218', '47.24076339', '47.24253460',
'47.24430581', '47.24607702', '47.24784823', '47.24961944',
'47.25139065', '47.25316186', '47.25493307', '47.25670429',
'47.25847550', '47.26024671', '47.26201792', '47.26378913',
'47.26556034', '47.26733155', '47.26910276', '47.27087397',
'47.27264518', '47.27441640', '47.27618761', '47.27795882',
'47.27973003', '47.28150124', '47.28327246', '47.28504367',
'47.28681488', '47.28858609', '47.29035730', '47.29212852',
'47.29389973', '47.29567094', '47.29744215', '47.29921337',
'47.30098458', '47.30275579', '47.30452701', '47.30629822',
'47.30806943', '47.30984065', '47.31161186', '47.31338307',
'47.31515429', '47.31692550', '47.31869671', '47.32046793',
'47.32223914', '47.32401036', '47.32578157', '47.32755278',
'47.32932400', '47.33109521', '47.33286643', '47.33463764',
'47.33640886', '47.33818007', '47.33995129', '47.34172250',
'47.34349372', '47.34526493', '47.34703615', '47.34880736',
'47.35057858', '47.35234979', '47.35412101', '47.35589223'])
p64=[(numpy.exp(-(x**2)))/scipy.special.erfc(x)for x in r]
a128=[x*((1-1/(2*x**2)+3/(4*x**4)-15/(8*x**6))**(-1))
      *numpy.float128(numpy.sqrt(numpy.pi))
      for x in numpy.asarray(r,dtype='float128')]
a64=[x*((1-1/(2*x**2)+3/(4*x**4)-15/(8*x**6)+63/(7*x**8))**(-1))
     *numpy.sqrt(numpy.pi)
     for x in r] for a,b,c,d in zip(r,p128,p64,a64):print a,b,c,d,c-b,d-b

for i in xrange(1,len(p64)): print i, 64[i]-p64[i-1]
    N/A register_stabilize register_specialize N/A N/A gof local_optimizer N/A N/A T true_div local_elemwise_fusion_op N/A N/A OP max_input_fct maker N/A N/A N/A N/A node N/A 32 None N/A N/A 
    We parametrize it to make it work for Elemwise and GpuElemwise op.

    Parameters
    ----------
    OP
        GpuElemwise or Elemwise class (the one that we want to fuse)
    max_input_fct
        A function that returns the maximum number of inputs
        that this elemwise can take (useful for GpuElemwise).
        GPU kernel currently has a limit of 256 bytes for
        the size of all parameters passed to it. As currently
        we pass many information only by parameter, we must
        limit how many ops we fuse together to avoid busting
        that 256 limit.

        On the CPU we limit to 32 input variables
        since that is the maximum numpy support.

     N/A N/A maker None N/A maker N/A N/A node scalar_op N/A N/A N/A N/A OP scalar_op N/A local_fuse N/A N/A node N/A N/A N/A 
        As part of specialization, we fuse two consecutive elemwise Ops of the
        same shape.

        For mixed dtype, we let the Composite op do the cast. It lets the C
        compiler do the cast.
        The number of dimensions is validated at call time by theano itself.

         N/A N/A N/A type N/A node op OP N/A N/A False N/A inputs N/A N/A s_inputs N/A N/A s_g N/A N/A max_nb_input N/A max_input_fct node N/A new_nb_input N/A len N/A node inputs N/A fused False N/A i N/A node inputs N/A N/A do_fusion False N/A catch False N/A tmp_input N/A N/A tmp_scalar N/A N/A N/A N/A i owner N/A isinstance N/A N/A i owner op OP N/A N/A len N/A set N/A n N/A N/A n idx N/A i clients 1 N/A N/A N/A N/A N/A i owner outputs N/A 0 broadcastable N/A N/A N/A node outputs N/A 0 broadcastable N/A N/A do_fusion True N/A N/A N/A tmp_s_input N/A N/A ii N/A N/A i owner inputs N/A N/A N/A ii inputs N/A N/A N/A N/A tmp_s_input append N/A s_inputs N/A N/A N/A inputs index ii N/A N/A N/A ii tmp_input N/A N/A N/A N/A tmp_s_input append N/A tmp_scalar N/A N/A N/A tmp_input index ii N/A N/A tmp N/A N/A N/A N/A scalar get_scalar_type N/A ii dtype make_variable N/A N/A N/A tv N/A N/A N/A gof op get_test_value ii N/A N/A N/A tv size 0 N/A N/A N/A N/A tmp tag test_value N/A N/A N/A tv flatten N/A 0 N/A N/A N/A N/A tmp tag test_value tv N/A N/A N/A AttributeError N/A N/A N/A N/A N/A tmp_s_input append tmp N/A N/A N/A tmp_input append ii N/A N/A N/A tmp_scalar append N/A tmp_s_input N/A -1 N/A s_op N/A N/A N/A N/A i owner op scalar_op return_list True tmp_s_input N/A N/A N/A N/A N/A N/A i owner op scalar_op c_code N/A N/A s_op N/A 0 owner test_presence_of_c_code N/A x N/A x N/A N/A i owner inputs N/A z N/A z N/A N/A i owner outputs N/A N/A N/A N/A MethodNotDefined N/A N/A catch True N/A N/A NotImplementedError N/A N/A catch True N/A catch N/A N/A N/A N/A _logger info N/A %s does not implement the c_code function. As well as being potentially slow, this disables loop fusion of this op. N/A str N/A N/A N/A i owner op scalar_op N/A do_fusion False N/A new_nb_input_ N/A N/A new_nb_input N/A len tmp_input 1 N/A x tmp_input N/A N/A N/A x N/A node inputs N/A N/A new_nb_input_ 1 N/A N/A do_fusion N/A new_nb_input_ max_nb_input N/A N/A fused True N/A new_nb_input new_nb_input_ N/A N/A N/A inputs extend tmp_input N/A N/A N/A s_inputs extend tmp_scalar N/A N/A N/A s_g extend s_op N/A N/A N/A N/A N/A inputs count i N/A N/A N/A node inputs count i N/A N/A s N/A s_inputs N/A N/A N/A inputs index i N/A N/A s N/A N/A N/A N/A scalar get_scalar_type N/A i dtype make_variable N/A N/A N/A N/A N/A N/A theano config compute_test_value off N/A N/A v N/A N/A N/A gof op get_test_value i N/A N/A N/A v size 0 N/A N/A N/A N/A s tag test_value N/A N/A N/A v flatten N/A 0 N/A N/A N/A AttributeError N/A N/A N/A N/A N/A inputs append i N/A N/A N/A s_inputs append s N/A N/A N/A s_g append s N/A N/A fused N/A N/A False N/A N/A N/A new_nb_input N/A len inputs N/A N/A len s_inputs N/A len inputs N/A N/A N/A Exception Something has gone wrong with the elemwise
fusion optimization. We skip this optimization. You can ignore this message,
your code will run correctly, but may be slower. N/A s_new_out N/A N/A N/A node op scalar_op return_list True s_g N/A N/A N/A N/A N/A N/A N/A N/A s_new_out N/A 0 owner op c_code N/A N/A s_new_out N/A 0 owner test_presence_of_c_code N/A x N/A x s_g N/A z N/A x s_new_out N/A N/A N/A N/A MethodNotDefined N/A N/A N/A N/A _logger info N/A %s does not implement the c_code function. As well as being potentially slow, this disables loop fusion of this op. N/A str N/A N/A N/A s_new_out N/A 0 owner op N/A False N/A N/A NotImplementedError N/A N/A N/A N/A _logger info N/A %s does not implement the c_code function. As well as being potentially slow, this disables loop fusion of this op. N/A str N/A N/A N/A s_new_out N/A 0 owner op N/A False N/A C N/A N/A scalar Composite s_inputs s_new_out N/A n N/A N/A N/A maker node C inputs owner N/A N/A N/A len N/A n outputs 1 N/A N/A N/A N/A N/A node outputs N/A 0 dtype N/A N/A N/A n outputs N/A 0 dtype N/A N/A N/A len N/A n inputs max_nb_input N/A N/A N/A N/A _logger info loop fusion failed because Op would exceed kernel argument limit. N/A False N/A True N/A N/A ret N/A local_fuse n N/A N/A N/A ret False N/A ret None N/A N/A N/A N/A len ret N/A len N/A n outputs N/A N/A N/A len ret 1 N/A n N/A N/A ret N/A 0 owner N/A N/A N/A N/A n outputs N/A N/A local_fuse N/A elemwise_max_input_fct N/A N/A node N/A N/A N/A N/A N/A N/A theano config cxx N/A N/A 31 N/A 1024 N/A N/A local_elemwise_fusion N/A local_elemwise_fusion_op N/A T Elemwise elemwise_max_input_fct FusionOptimizer N/A Optimizer N/A N/A Graph optimizer for Fusion of elemwise operations. __init__ N/A N/A self local_optimizer N/A N/A N/A N/A N/A Optimizer __init__ self N/A N/A self optimizer local_optimizer N/A add_requirements N/A N/A self fgraph N/A N/A N/A N/A N/A fgraph attach_feature N/A N/A toolbox ReplaceValidate N/A apply N/A N/A self fgraph N/A N/A N/A did_something True N/A nb_iter 0 N/A nb_replacement 0 N/A nb_inconsistency_replace 0 N/A time_toposort 0 N/A N/A fgraph profile N/A N/A validate_before N/A N/A fgraph profile validate_time N/A callbacks_before N/A N/A N/A fgraph execute_callbacks_times copy N/A callback_before N/A fgraph execute_callbacks_time N/A did_something N/A N/A t0 N/A N/A time time N/A nodelist N/A list N/A N/A fgraph toposort N/A time_toposort N/A N/A N/A time time t0 N/A N/A N/A nodelist reverse N/A did_something False N/A node nodelist N/A N/A N/A node N/A fgraph apply_nodes N/A N/A new_outputs N/A N/A self optimizer node N/A new_outputs N/A N/A N/A N/A len new_outputs N/A len N/A node outputs N/A N/A N/A N/A N/A fgraph replace_all_validate N/A list N/A zip N/A node outputs new_outputs reason N/A N/A self __class__ __name__ N/A did_something True N/A nb_replacement 1 N/A N/A N/A InconsistencyError N/A N/A nb_inconsistency_replace 1 N/A N/A nb_iter 1 N/A N/A fgraph profile N/A N/A validate_time N/A N/A N/A fgraph profile validate_time validate_before N/A callback_time N/A N/A fgraph execute_callbacks_time callback_before N/A callbacks_time N/A N/A N/A k v N/A iteritems N/A fgraph execute_callbacks_times N/A N/A N/A k callbacks_before N/A N/A N/A callbacks_time N/A k N/A v N/A callbacks_before N/A k N/A N/A N/A callbacks_time N/A k v N/A N/A validate_time None N/A callback_time None N/A callbacks_time N/A N/A N/A self nb_iter nb_replacement nb_inconsistency_replace validate_time callback_time callbacks_time time_toposort N/A print_profile N/A N/A stream prof level N/A 0 N/A N/A blanc N/A level N/A N/A print blanc FusionOptimizer file stream N/A N/A print blanc  nb_iter N/A prof N/A 1 file stream N/A N/A print blanc  nb_replacement N/A prof N/A 2 file stream N/A N/A print blanc  nb_inconsistency_replace N/A prof N/A 3 file stream N/A N/A print blanc  validate_time N/A prof N/A 4 file stream N/A N/A print blanc  callback_time N/A prof N/A 5 file stream N/A N/A N/A prof N/A 5 1 N/A N/A N/A print blanc  callbacks_time file stream N/A i N/A sorted N/A iteritems N/A prof N/A 6 key N/A N/A N/A a N/A N/A a N/A 1 N/A N/A N/A N/A i N/A 1 0 N/A N/A N/A print i N/A N/A print blanc  time_toposort N/A prof N/A 7 file stream N/A staticmethod N/A local_add_mul_fusion N/A N/A node N/A N/A N/A Fuse consecutive add or mul in one such node with more inputs.

    It is better to fuse add/mul that way then in a Composite node as
    this make the inner graph of the Compiste smaller. This allow to
    put more computation in a Composite before hitting the max
    recusion limit when pickling Composite.

     N/A N/A N/A N/A isinstance N/A node op Elemwise N/A N/A isinstance N/A N/A node op scalar_op N/A N/A scalar Add N/A scalar Mul N/A N/A False N/A s_op N/A N/A N/A node op scalar_op __class__ N/A inp N/A node inputs N/A N/A N/A N/A inp owner N/A isinstance N/A N/A inp owner op Elemwise N/A isinstance N/A N/A N/A inp owner op scalar_op s_op N/A N/A l N/A list N/A node inputs N/A N/A N/A l remove inp N/A output_node N/A N/A node op N/A l N/A N/A inp owner inputs N/A N/A copy_stack_trace N/A N/A node outputs N/A 0 output_node N/A N/A output_node N/A N/A N/A N/A config tensor local_elemwise_fusion N/A N/A N/A N/A _logger debug enabling optimization fusion elemwise in fast_run N/A fuse_seqopt N/A N/A gof SequenceDB N/A N/A N/A fuse_seqopt register local_add_mul_fusion N/A FusionOptimizer local_add_mul_fusion 0 fast_run fusion N/A N/A N/A fuse_seqopt register composite_elemwise_fusion N/A FusionOptimizer local_elemwise_fusion 1 fast_run fusion N/A N/A N/A N/A compile optdb register elemwise_fusion fuse_seqopt 49 fast_run fusion local_elemwise_fusion FusionOptimizer N/A N/A N/A N/A _logger debug not enabling optimization fusion elemwise in fast_run N/A N/A N/A N/A compile optdb register elemwise_fusion N/A FusionOptimizer local_elemwise_fusion 49 fusion local_elemwise_fusion FusionOptimizer N/A N/A register_canonicalize N/A N/A gof OpRemove N/A N/A theano gradient consider_constant_ fast_compile fast_run name remove_consider_constant N/A N/A register_canonicalize N/A N/A gof OpRemove N/A N/A theano gradient zero_grad_ fast_compile fast_run name remove_zero_grad N/A N/A register_canonicalize N/A N/A gof OpRemove N/A N/A theano gradient disconnected_grad_ fast_compile fast_run name remove_disconnected_grad local_grad_clip N/A N/A node N/A N/A N/A N/A isinstance N/A node op N/A N/A theano gradient GradClip N/A N/A N/A node inputs N/A register_canonicalize N/A N/A gof local_optimizer N/A N/A N/A theano gradient GradClip local_merge_alloc N/A N/A node N/A N/A N/A N/A N/A isinstance N/A node op N/A T Alloc N/A N/A False N/A N/A N/A N/A N/A N/A node inputs N/A 0 owner N/A N/A isinstance N/A N/A N/A N/A node inputs N/A 0 owner op N/A T Alloc N/A N/A False N/A inputs_outer N/A node inputs N/A inputs_inner N/A N/A N/A N/A node inputs N/A 0 owner inputs N/A dims_outer N/A inputs_outer N/A 1 N/A dims_inner N/A inputs_inner N/A 1 N/A dims_outer_rev N/A dims_outer N/A -1 N/A dims_inner_rev N/A dims_inner N/A -1 N/A i 0 N/A N/A dim_inner dim_outer N/A zip dims_inner_rev dims_outer_rev N/A N/A N/A dim_inner dim_outer N/A N/A N/A N/A isinstance dim_inner Constant N/A N/A dim_inner data 1 N/A N/A N/A N/A N/A dims_outer N/A N/A -1 i N/A N/A Assert You have a shape error in your graph. To see a better error message and a stack trace of where in your code the error is created, use the Theano flags optimizer=None or optimizer=fast_compile. dim_outer N/A N/A T eq dim_outer dim_inner N/A i 1 N/A N/A N/A N/A T alloc N/A inputs_inner N/A 0 dims_outer N/A register_canonicalize register_stabilize register_specialize N/A N/A gof local_optimizer N/A N/A T Alloc