diff -r 09d4d47ad210 Include/Python-ast.h --- a/Include/Python-ast.h Tue Jan 31 13:53:39 2017 +0100 +++ b/Include/Python-ast.h Wed Feb 01 01:56:27 2017 +0900 @@ -43,12 +43,13 @@ Suite_kind=4}; struct _mod { enum _mod_kind kind; union { struct { asdl_seq *body; + string docstring; } Module; struct { asdl_seq *body; } Interactive; @@ -77,28 +78,31 @@ struct { identifier name; arguments_ty args; asdl_seq *body; asdl_seq *decorator_list; expr_ty returns; + string docstring; } FunctionDef; struct { identifier name; arguments_ty args; asdl_seq *body; asdl_seq *decorator_list; expr_ty returns; + string docstring; } AsyncFunctionDef; struct { identifier name; asdl_seq *bases; asdl_seq *keywords; asdl_seq *body; asdl_seq *decorator_list; + string docstring; } ClassDef; struct { expr_ty value; } Return; @@ -205,17 +209,17 @@ }; enum _expr_kind {BoolOp_kind=1, BinOp_kind=2, UnaryOp_kind=3, Lambda_kind=4, IfExp_kind=5, Dict_kind=6, Set_kind=7, ListComp_kind=8, SetComp_kind=9, DictComp_kind=10, GeneratorExp_kind=11, Await_kind=12, Yield_kind=13, YieldFrom_kind=14, - Compare_kind=15, Call_kind=16, Num_kind=17, Str_kind=18, - FormattedValue_kind=19, JoinedStr_kind=20, Bytes_kind=21, - NameConstant_kind=22, Ellipsis_kind=23, Constant_kind=24, - Attribute_kind=25, Subscript_kind=26, Starred_kind=27, - Name_kind=28, List_kind=29, Tuple_kind=30}; + Compare_kind=15, Call_kind=16, Lit_kind=17, + FormattedValue_kind=18, JoinedStr_kind=19, + NameConstant_kind=20, Constant_kind=21, Attribute_kind=22, + Subscript_kind=23, Starred_kind=24, Name_kind=25, + List_kind=26, Tuple_kind=27}; struct _expr { enum _expr_kind kind; union { struct { boolop_ty op; asdl_seq *values; @@ -295,34 +299,26 @@ expr_ty func; asdl_seq *args; asdl_seq *keywords; } Call; struct { - object n; - } Num; - - struct { - string s; - } Str; + constant v; + } Lit; struct { expr_ty value; int conversion; expr_ty format_spec; } FormattedValue; struct { asdl_seq *values; } JoinedStr; struct { - bytes s; - } Bytes; - - struct { singleton value; } NameConstant; struct { constant value; } Constant; @@ -436,32 +432,33 @@ struct _withitem { expr_ty context_expr; expr_ty optional_vars; }; -#define Module(a0, a1) _Py_Module(a0, a1) -mod_ty _Py_Module(asdl_seq * body, PyArena *arena); +#define Module(a0, a1, a2) _Py_Module(a0, a1, a2) +mod_ty _Py_Module(asdl_seq * body, string docstring, PyArena *arena); #define Interactive(a0, a1) _Py_Interactive(a0, a1) mod_ty _Py_Interactive(asdl_seq * body, PyArena *arena); #define Expression(a0, a1) _Py_Expression(a0, a1) mod_ty _Py_Expression(expr_ty body, PyArena *arena); #define Suite(a0, a1) _Py_Suite(a0, a1) mod_ty _Py_Suite(asdl_seq * body, PyArena *arena); -#define FunctionDef(a0, a1, a2, a3, a4, a5, a6, a7) _Py_FunctionDef(a0, a1, a2, a3, a4, a5, a6, a7) +#define FunctionDef(a0, a1, a2, a3, a4, a5, a6, a7, a8) _Py_FunctionDef(a0, a1, a2, a3, a4, a5, a6, a7, a8) stmt_ty _Py_FunctionDef(identifier name, arguments_ty args, asdl_seq * body, - asdl_seq * decorator_list, expr_ty returns, int lineno, - int col_offset, PyArena *arena); -#define AsyncFunctionDef(a0, a1, a2, a3, a4, a5, a6, a7) _Py_AsyncFunctionDef(a0, a1, a2, a3, a4, a5, a6, a7) + asdl_seq * decorator_list, expr_ty returns, string + docstring, int lineno, int col_offset, PyArena *arena); +#define AsyncFunctionDef(a0, a1, a2, a3, a4, a5, a6, a7, a8) _Py_AsyncFunctionDef(a0, a1, a2, a3, a4, a5, a6, a7, a8) stmt_ty _Py_AsyncFunctionDef(identifier name, arguments_ty args, asdl_seq * body, asdl_seq * decorator_list, expr_ty returns, - int lineno, int col_offset, PyArena *arena); -#define ClassDef(a0, a1, a2, a3, a4, a5, a6, a7) _Py_ClassDef(a0, a1, a2, a3, a4, a5, a6, a7) + string docstring, int lineno, int col_offset, + PyArena *arena); +#define ClassDef(a0, a1, a2, a3, a4, a5, a6, a7, a8) _Py_ClassDef(a0, a1, a2, a3, a4, a5, a6, a7, a8) stmt_ty _Py_ClassDef(identifier name, asdl_seq * bases, asdl_seq * keywords, - asdl_seq * body, asdl_seq * decorator_list, int lineno, - int col_offset, PyArena *arena); + asdl_seq * body, asdl_seq * decorator_list, string + docstring, int lineno, int col_offset, PyArena *arena); #define Return(a0, a1, a2, a3) _Py_Return(a0, a1, a2, a3) stmt_ty _Py_Return(expr_ty value, int lineno, int col_offset, PyArena *arena); #define Delete(a0, a1, a2, a3) _Py_Delete(a0, a1, a2, a3) stmt_ty _Py_Delete(asdl_seq * targets, int lineno, int col_offset, PyArena *arena); #define Assign(a0, a1, a2, a3, a4) _Py_Assign(a0, a1, a2, a3, a4) @@ -563,29 +560,23 @@ #define Compare(a0, a1, a2, a3, a4, a5) _Py_Compare(a0, a1, a2, a3, a4, a5) expr_ty _Py_Compare(expr_ty left, asdl_int_seq * ops, asdl_seq * comparators, int lineno, int col_offset, PyArena *arena); #define Call(a0, a1, a2, a3, a4, a5) _Py_Call(a0, a1, a2, a3, a4, a5) expr_ty _Py_Call(expr_ty func, asdl_seq * args, asdl_seq * keywords, int lineno, int col_offset, PyArena *arena); -#define Num(a0, a1, a2, a3) _Py_Num(a0, a1, a2, a3) -expr_ty _Py_Num(object n, int lineno, int col_offset, PyArena *arena); -#define Str(a0, a1, a2, a3) _Py_Str(a0, a1, a2, a3) -expr_ty _Py_Str(string s, int lineno, int col_offset, PyArena *arena); +#define Lit(a0, a1, a2, a3) _Py_Lit(a0, a1, a2, a3) +expr_ty _Py_Lit(constant v, int lineno, int col_offset, PyArena *arena); #define FormattedValue(a0, a1, a2, a3, a4, a5) _Py_FormattedValue(a0, a1, a2, a3, a4, a5) expr_ty _Py_FormattedValue(expr_ty value, int conversion, expr_ty format_spec, int lineno, int col_offset, PyArena *arena); #define JoinedStr(a0, a1, a2, a3) _Py_JoinedStr(a0, a1, a2, a3) expr_ty _Py_JoinedStr(asdl_seq * values, int lineno, int col_offset, PyArena *arena); -#define Bytes(a0, a1, a2, a3) _Py_Bytes(a0, a1, a2, a3) -expr_ty _Py_Bytes(bytes s, int lineno, int col_offset, PyArena *arena); #define NameConstant(a0, a1, a2, a3) _Py_NameConstant(a0, a1, a2, a3) expr_ty _Py_NameConstant(singleton value, int lineno, int col_offset, PyArena *arena); -#define Ellipsis(a0, a1, a2) _Py_Ellipsis(a0, a1, a2) -expr_ty _Py_Ellipsis(int lineno, int col_offset, PyArena *arena); #define Constant(a0, a1, a2, a3) _Py_Constant(a0, a1, a2, a3) expr_ty _Py_Constant(constant value, int lineno, int col_offset, PyArena *arena); #define Attribute(a0, a1, a2, a3, a4, a5) _Py_Attribute(a0, a1, a2, a3, a4, a5) expr_ty _Py_Attribute(expr_ty value, identifier attr, expr_context_ty ctx, int lineno, int col_offset, PyArena *arena); diff -r 09d4d47ad210 Lib/ast.py --- a/Lib/ast.py Tue Jan 31 13:53:39 2017 +0100 +++ b/Lib/ast.py Wed Feb 01 01:56:27 2017 +0900 @@ -48,16 +48,14 @@ node_or_string = parse(node_or_string, mode='eval') if isinstance(node_or_string, Expression): node_or_string = node_or_string.body def _convert(node): if isinstance(node, Constant): return node.value - elif isinstance(node, (Str, Bytes)): - return node.s - elif isinstance(node, Num): - return node.n + elif isinstance(node, Lit): + return node.v elif isinstance(node, Tuple): return tuple(map(_convert, node.elts)) elif isinstance(node, List): return list(map(_convert, node.elts)) elif isinstance(node, Set): return set(map(_convert, node.elts)) @@ -194,21 +192,13 @@ Return the docstring for the given node or None if no docstring can be found. If the node provided does not have docstrings a TypeError will be raised. """ if not isinstance(node, (AsyncFunctionDef, FunctionDef, ClassDef, Module)): raise TypeError("%r can't have docstrings" % node.__class__.__name__) - if not(node.body and isinstance(node.body[0], Expr)): - return - node = node.body[0].value - if isinstance(node, Str): - text = node.s - elif isinstance(node, Constant) and isinstance(node.value, str): - text = node.value - else: - return + text = node.docstring if clean: import inspect text = inspect.cleandoc(text) return text @@ -279,13 +269,13 @@ class RewriteName(NodeTransformer): def visit_Name(self, node): return copy_location(Subscript( value=Name(id='data', ctx=Load()), - slice=Index(value=Str(s=node.id)), + slice=Index(value=Lit(v=node.id)), ctx=node.ctx ), node) Keep in mind that if the node you're operating on has child nodes you must either transform the child nodes yourself or call the :meth:`generic_visit` method for the node first. diff -r 09d4d47ad210 Lib/inspect.py --- a/Lib/inspect.py Tue Jan 31 13:53:39 2017 +0100 +++ b/Lib/inspect.py Wed Feb 01 01:56:27 2017 +0900 @@ -1952,18 +1952,14 @@ except NameError: try: value = eval(s, sys_module_dict) except NameError: raise RuntimeError() - if isinstance(value, str): - return ast.Str(value) - if isinstance(value, (int, float)): - return ast.Num(value) - if isinstance(value, bytes): - return ast.Bytes(value) + if isinstance(value, (int, float, bytes, str)): + return ast.Lit(value) if value in (True, False, None): return ast.NameConstant(value) raise RuntimeError() class RewriteSymbolics(ast.NodeTransformer): def visit_Attribute(self, node): diff -r 09d4d47ad210 Lib/test/test_ast.py --- a/Lib/test/test_ast.py Tue Jan 31 13:53:39 2017 +0100 +++ b/Lib/test/test_ast.py Wed Feb 01 01:56:27 2017 +0900 @@ -5,13 +5,13 @@ import unittest import weakref from test import support def to_tuple(t): - if t is None or isinstance(t, (str, int, complex)): + if t is None or isinstance(t, (str, bytes, int, complex)): return t elif isinstance(t, list): return [to_tuple(e) for e in t] result = [t.__class__.__name__] if hasattr(t, 'lineno') and hasattr(t, 'col_offset'): result.append((t.lineno, t.col_offset)) @@ -159,16 +159,16 @@ # Yield - yield expressions can't work outside a function # # Compare "1 < 2 < 3", # Call "f(1,2,c=3,*d,**e)", - # Num + # Literals "10", - # Str "'string'", + "b'string'", # Attribute "a.b", # Subscript "a[b:c]", # Name "v", @@ -284,60 +284,60 @@ x.vararg x = ast.arguments(*range(1, 7)) self.assertEqual(x.vararg, 2) def test_field_attr_writable(self): - x = ast.Num() + x = ast.Lit() # We can assign to _fields x._fields = 666 self.assertEqual(x._fields, 666) def test_classattrs(self): - x = ast.Num() - self.assertEqual(x._fields, ('n',)) + x = ast.Lit() + self.assertEqual(x._fields, ('v',)) with self.assertRaises(AttributeError): x.n - x = ast.Num(42) - self.assertEqual(x.n, 42) + x = ast.Lit(42) + self.assertEqual(x.v, 42) with self.assertRaises(AttributeError): x.lineno with self.assertRaises(AttributeError): x.foobar - x = ast.Num(lineno=2) + x = ast.Lit(lineno=2) self.assertEqual(x.lineno, 2) - x = ast.Num(42, lineno=0) + x = ast.Lit(42, lineno=0) self.assertEqual(x.lineno, 0) - self.assertEqual(x._fields, ('n',)) - self.assertEqual(x.n, 42) + self.assertEqual(x._fields, ('v',)) + self.assertEqual(x.v, 42) - self.assertRaises(TypeError, ast.Num, 1, 2) - self.assertRaises(TypeError, ast.Num, 1, 2, lineno=0) + self.assertRaises(TypeError, ast.Lit, 1, 2) + self.assertRaises(TypeError, ast.Lit, 1, 2, lineno=0) def test_module(self): - body = [ast.Num(42)] - x = ast.Module(body) + body = [ast.Lit(42)] + x = ast.Module(body, None) self.assertEqual(x.body, body) def test_nodeclasses(self): # Zero arguments constructor explicitly allowed x = ast.BinOp() self.assertEqual(x._fields, ('left', 'op', 'right')) # Random attribute allowed too x.foobarbaz = 5 self.assertEqual(x.foobarbaz, 5) - n1 = ast.Num(1) - n3 = ast.Num(3) + n1 = ast.Lit(1) + n3 = ast.Lit(3) addop = ast.Add() x = ast.BinOp(n1, addop, n3) self.assertEqual(x.left, n1) self.assertEqual(x.op, addop) self.assertEqual(x.right, n3) @@ -391,31 +391,24 @@ for ast in (compile(i, "?", "exec", 0x400) for i in exec_tests): ast2 = mod.loads(mod.dumps(ast, protocol)) self.assertEqual(to_tuple(ast2), to_tuple(ast)) def test_invalid_sum(self): pos = dict(lineno=2, col_offset=3) - m = ast.Module([ast.Expr(ast.expr(**pos), **pos)]) + m = ast.Module([ast.Expr(ast.expr(**pos), **pos)], "doc") with self.assertRaises(TypeError) as cm: compile(m, "", "exec") self.assertIn("but got <_ast.expr", str(cm.exception)) def test_invalid_identitifer(self): - m = ast.Module([ast.Expr(ast.Name(42, ast.Load()))]) + m = ast.Module([ast.Expr(ast.Name(42, ast.Load()))], None) ast.fix_missing_locations(m) with self.assertRaises(TypeError) as cm: compile(m, "", "exec") self.assertIn("identifier must be of type str", str(cm.exception)) - def test_invalid_string(self): - m = ast.Module([ast.Expr(ast.Str(42))]) - ast.fix_missing_locations(m) - with self.assertRaises(TypeError) as cm: - compile(m, "", "exec") - self.assertIn("string must be of type str", str(cm.exception)) - def test_empty_yield_from(self): # Issue 16546: yield from value is not optional. empty_yield_from = ast.parse("def f():\n yield from g()") empty_yield_from.body[0].body[0].value.value = None with self.assertRaises(ValueError) as cm: compile(empty_yield_from, "", "exec") @@ -438,66 +431,66 @@ self.assertIsNotNone(e.exception.__context__) def test_dump(self): node = ast.parse('spam(eggs, "and cheese")') self.assertEqual(ast.dump(node), "Module(body=[Expr(value=Call(func=Name(id='spam', ctx=Load()), " - "args=[Name(id='eggs', ctx=Load()), Str(s='and cheese')], " - "keywords=[]))])" + "args=[Name(id='eggs', ctx=Load()), Lit(v='and cheese')], " + "keywords=[]))], docstring=None)" ) self.assertEqual(ast.dump(node, annotate_fields=False), "Module([Expr(Call(Name('spam', Load()), [Name('eggs', Load()), " - "Str('and cheese')], []))])" + "Lit('and cheese')], []))], None)" ) self.assertEqual(ast.dump(node, include_attributes=True), "Module(body=[Expr(value=Call(func=Name(id='spam', ctx=Load(), " "lineno=1, col_offset=0), args=[Name(id='eggs', ctx=Load(), " - "lineno=1, col_offset=5), Str(s='and cheese', lineno=1, " + "lineno=1, col_offset=5), Lit(v='and cheese', lineno=1, " "col_offset=11)], keywords=[], " - "lineno=1, col_offset=0), lineno=1, col_offset=0)])" + "lineno=1, col_offset=0), lineno=1, col_offset=0)], docstring=None)" ) def test_copy_location(self): src = ast.parse('1 + 1', mode='eval') - src.body.right = ast.copy_location(ast.Num(2), src.body.right) + src.body.right = ast.copy_location(ast.Lit(2), src.body.right) self.assertEqual(ast.dump(src, include_attributes=True), - 'Expression(body=BinOp(left=Num(n=1, lineno=1, col_offset=0), ' - 'op=Add(), right=Num(n=2, lineno=1, col_offset=4), lineno=1, ' + 'Expression(body=BinOp(left=Lit(v=1, lineno=1, col_offset=0), ' + 'op=Add(), right=Lit(v=2, lineno=1, col_offset=4), lineno=1, ' 'col_offset=0))' ) def test_fix_missing_locations(self): src = ast.parse('write("spam")') src.body.append(ast.Expr(ast.Call(ast.Name('spam', ast.Load()), - [ast.Str('eggs')], []))) + [ast.Lit('eggs')], []))) self.assertEqual(src, ast.fix_missing_locations(src)) self.assertEqual(ast.dump(src, include_attributes=True), "Module(body=[Expr(value=Call(func=Name(id='write', ctx=Load(), " - "lineno=1, col_offset=0), args=[Str(s='spam', lineno=1, " + "lineno=1, col_offset=0), args=[Lit(v='spam', lineno=1, " "col_offset=6)], keywords=[], " "lineno=1, col_offset=0), lineno=1, col_offset=0), " "Expr(value=Call(func=Name(id='spam', ctx=Load(), lineno=1, " - "col_offset=0), args=[Str(s='eggs', lineno=1, col_offset=0)], " + "col_offset=0), args=[Lit(v='eggs', lineno=1, col_offset=0)], " "keywords=[], lineno=1, " - "col_offset=0), lineno=1, col_offset=0)])" + "col_offset=0), lineno=1, col_offset=0)], docstring=None)" ) def test_increment_lineno(self): src = ast.parse('1 + 1', mode='eval') self.assertEqual(ast.increment_lineno(src, n=3), src) self.assertEqual(ast.dump(src, include_attributes=True), - 'Expression(body=BinOp(left=Num(n=1, lineno=4, col_offset=0), ' - 'op=Add(), right=Num(n=1, lineno=4, col_offset=4), lineno=4, ' + 'Expression(body=BinOp(left=Lit(v=1, lineno=4, col_offset=0), ' + 'op=Add(), right=Lit(v=1, lineno=4, col_offset=4), lineno=4, ' 'col_offset=0))' ) # issue10869: do not increment lineno of root twice src = ast.parse('1 + 1', mode='eval') self.assertEqual(ast.increment_lineno(src.body, n=3), src.body) self.assertEqual(ast.dump(src, include_attributes=True), - 'Expression(body=BinOp(left=Num(n=1, lineno=4, col_offset=0), ' - 'op=Add(), right=Num(n=1, lineno=4, col_offset=4), lineno=4, ' + 'Expression(body=BinOp(left=Lit(v=1, lineno=4, col_offset=0), ' + 'op=Add(), right=Lit(v=1, lineno=4, col_offset=4), lineno=4, ' 'col_offset=0))' ) def test_iter_fields(self): node = ast.parse('foo()', mode='eval') d = dict(ast.iter_fields(node.body)) @@ -506,16 +499,16 @@ def test_iter_child_nodes(self): node = ast.parse("spam(23, 42, eggs='leek')", mode='eval') self.assertEqual(len(list(ast.iter_child_nodes(node.body))), 4) iterator = ast.iter_child_nodes(node.body) self.assertEqual(next(iterator).id, 'spam') - self.assertEqual(next(iterator).n, 23) - self.assertEqual(next(iterator).n, 42) + self.assertEqual(next(iterator).v, 23) + self.assertEqual(next(iterator).v, 42) self.assertEqual(ast.dump(next(iterator)), - "keyword(arg='eggs', value=Str(s='leek'))" + "keyword(arg='eggs', value=Lit(v='leek'))" ) def test_get_docstring(self): node = ast.parse('def foo():\n """line one\n line two"""') self.assertEqual(ast.get_docstring(node.body[0]), 'line one\nline two') @@ -542,23 +535,23 @@ def test_bad_integer(self): # issue13436: Bad error message with invalid numeric values body = [ast.ImportFrom(module='time', names=[ast.alias(name='sleep')], level=None, lineno=None, col_offset=None)] - mod = ast.Module(body) + mod = ast.Module(body, None) with self.assertRaises(ValueError) as cm: compile(mod, 'test', 'exec') self.assertIn("invalid integer value: None", str(cm.exception)) def test_level_as_none(self): body = [ast.ImportFrom(module='time', names=[ast.alias(name='sleep')], level=None, lineno=0, col_offset=0)] - mod = ast.Module(body) + mod = ast.Module(body, None) code = compile(mod, 'test', 'exec') ns = {} exec(code, ns) self.assertIn('sleep', ns) @@ -570,17 +563,17 @@ with self.assertRaises(exc) as cm: compile(mod, "", mode) if msg is not None: self.assertIn(msg, str(cm.exception)) def expr(self, node, msg=None, *, exc=ValueError): - mod = ast.Module([ast.Expr(node)]) + mod = ast.Module([ast.Expr(node)], None) self.mod(mod, msg, exc=exc) def stmt(self, stmt, msg=None): - mod = ast.Module([stmt]) + mod = ast.Module([stmt], None) self.mod(mod, msg) def test_module(self): m = ast.Interactive([ast.Expr(ast.Name("x", ast.Store()))]) self.mod(m, "must have Load context", "single") m = ast.Expression(ast.Name("x", ast.Store())) @@ -601,37 +594,37 @@ args = ast.arguments(args, vararg, kwonlyargs, kw_defaults, kwarg, defaults) return fac(args) args = [ast.arg("x", ast.Name("x", ast.Store()))] check(arguments(args=args), "must have Load context") check(arguments(kwonlyargs=args), "must have Load context") - check(arguments(defaults=[ast.Num(3)]), + check(arguments(defaults=[ast.Lit(3)]), "more positional defaults than args") - check(arguments(kw_defaults=[ast.Num(4)]), + check(arguments(kw_defaults=[ast.Lit(4)]), "length of kwonlyargs is not the same as kw_defaults") args = [ast.arg("x", ast.Name("x", ast.Load()))] check(arguments(args=args, defaults=[ast.Name("x", ast.Store())]), "must have Load context") args = [ast.arg("a", ast.Name("x", ast.Load())), ast.arg("b", ast.Name("y", ast.Load()))] check(arguments(kwonlyargs=args, kw_defaults=[None, ast.Name("x", ast.Store())]), "must have Load context") def test_funcdef(self): a = ast.arguments([], None, [], [], None, []) - f = ast.FunctionDef("x", a, [], [], None) + f = ast.FunctionDef("x", a, [], [], None, None) self.stmt(f, "empty body on FunctionDef") f = ast.FunctionDef("x", a, [ast.Pass()], [ast.Name("x", ast.Store())], - None) + None, None) self.stmt(f, "must have Load context") f = ast.FunctionDef("x", a, [ast.Pass()], [], - ast.Name("x", ast.Store())) + ast.Name("x", ast.Store()), None) self.stmt(f, "must have Load context") def fac(args): - return ast.FunctionDef("x", args, [ast.Pass()], [], None) + return ast.FunctionDef("x", args, [ast.Pass()], [], None, None) self._check_arguments(fac, self.stmt) def test_classdef(self): def cls(bases=None, keywords=None, body=None, decorator_list=None): if bases is None: bases = [] @@ -639,13 +632,13 @@ keywords = [] if body is None: body = [ast.Pass()] if decorator_list is None: decorator_list = [] return ast.ClassDef("myclass", bases, keywords, - body, decorator_list) + body, decorator_list, None) self.stmt(cls(bases=[ast.Name("x", ast.Store())]), "must have Load context") self.stmt(cls(keywords=[ast.keyword("x", ast.Name("x", ast.Store()))]), "must have Load context") self.stmt(cls(body=[]), "empty body on ClassDef") self.stmt(cls(body=[None]), "None disallowed") @@ -656,15 +649,15 @@ self.stmt(ast.Delete([]), "empty targets on Delete") self.stmt(ast.Delete([None]), "None disallowed") self.stmt(ast.Delete([ast.Name("x", ast.Load())]), "must have Del context") def test_assign(self): - self.stmt(ast.Assign([], ast.Num(3)), "empty targets on Assign") - self.stmt(ast.Assign([None], ast.Num(3)), "None disallowed") - self.stmt(ast.Assign([ast.Name("x", ast.Load())], ast.Num(3)), + self.stmt(ast.Assign([], ast.Lit(3)), "empty targets on Assign") + self.stmt(ast.Assign([None], ast.Lit(3)), "None disallowed") + self.stmt(ast.Assign([ast.Name("x", ast.Load())], ast.Lit(3)), "must have Store context") self.stmt(ast.Assign([ast.Name("x", ast.Store())], ast.Name("y", ast.Store())), "must have Load context") def test_augassign(self): @@ -686,45 +679,45 @@ "must have Load context") e = ast.Expr(ast.Name("x", ast.Store())) self.stmt(ast.For(x, y, [e], []), "must have Load context") self.stmt(ast.For(x, y, [p], [e]), "must have Load context") def test_while(self): - self.stmt(ast.While(ast.Num(3), [], []), "empty body on While") + self.stmt(ast.While(ast.Lit(3), [], []), "empty body on While") self.stmt(ast.While(ast.Name("x", ast.Store()), [ast.Pass()], []), "must have Load context") - self.stmt(ast.While(ast.Num(3), [ast.Pass()], + self.stmt(ast.While(ast.Lit(3), [ast.Pass()], [ast.Expr(ast.Name("x", ast.Store()))]), "must have Load context") def test_if(self): - self.stmt(ast.If(ast.Num(3), [], []), "empty body on If") + self.stmt(ast.If(ast.Lit(3), [], []), "empty body on If") i = ast.If(ast.Name("x", ast.Store()), [ast.Pass()], []) self.stmt(i, "must have Load context") - i = ast.If(ast.Num(3), [ast.Expr(ast.Name("x", ast.Store()))], []) + i = ast.If(ast.Lit(3), [ast.Expr(ast.Name("x", ast.Store()))], []) self.stmt(i, "must have Load context") - i = ast.If(ast.Num(3), [ast.Pass()], + i = ast.If(ast.Lit(3), [ast.Pass()], [ast.Expr(ast.Name("x", ast.Store()))]) self.stmt(i, "must have Load context") def test_with(self): p = ast.Pass() self.stmt(ast.With([], [p]), "empty items on With") - i = ast.withitem(ast.Num(3), None) + i = ast.withitem(ast.Lit(3), None) self.stmt(ast.With([i], []), "empty body on With") i = ast.withitem(ast.Name("x", ast.Store()), None) self.stmt(ast.With([i], [p]), "must have Load context") - i = ast.withitem(ast.Num(3), ast.Name("x", ast.Load())) + i = ast.withitem(ast.Lit(3), ast.Name("x", ast.Load())) self.stmt(ast.With([i], [p]), "must have Store context") def test_raise(self): - r = ast.Raise(None, ast.Num(3)) + r = ast.Raise(None, ast.Lit(3)) self.stmt(r, "Raise with cause but no exception") r = ast.Raise(ast.Name("x", ast.Store()), None) self.stmt(r, "must have Load context") - r = ast.Raise(ast.Num(4), ast.Name("x", ast.Store())) + r = ast.Raise(ast.Lit(4), ast.Name("x", ast.Store())) self.stmt(r, "must have Load context") def test_try(self): p = ast.Pass() t = ast.Try([], [], [], [p]) self.stmt(t, "empty body on Try") @@ -769,17 +762,17 @@ e = ast.Expr(ast.Name("x", ast.Store())) self.stmt(e, "must have Load context") def test_boolop(self): b = ast.BoolOp(ast.And(), []) self.expr(b, "less than 2 values") - b = ast.BoolOp(ast.And(), [ast.Num(3)]) + b = ast.BoolOp(ast.And(), [ast.Lit(3)]) self.expr(b, "less than 2 values") - b = ast.BoolOp(ast.And(), [ast.Num(4), None]) + b = ast.BoolOp(ast.And(), [ast.Lit(4), None]) self.expr(b, "None disallowed") - b = ast.BoolOp(ast.And(), [ast.Num(4), ast.Name("x", ast.Store())]) + b = ast.BoolOp(ast.And(), [ast.Lit(4), ast.Name("x", ast.Store())]) self.expr(b, "must have Load context") def test_unaryop(self): u = ast.UnaryOp(ast.Not(), ast.Name("x", ast.Store())) self.expr(u, "must have Load context") @@ -861,18 +854,14 @@ self.expr(ast.YieldFrom(ast.Name("x", ast.Store())), "must have Load") def test_compare(self): left = ast.Name("x", ast.Load()) comp = ast.Compare(left, [ast.In()], []) self.expr(comp, "no comparators") - comp = ast.Compare(left, [ast.In()], [ast.Num(4), ast.Num(5)]) + comp = ast.Compare(left, [ast.In()], [ast.Lit(4), ast.Lit(5)]) self.expr(comp, "different number of comparators and operands") - comp = ast.Compare(ast.Num("blah"), [ast.In()], [left]) - self.expr(comp, "non-numeric", exc=TypeError) - comp = ast.Compare(left, [ast.In()], [ast.Num("blah")]) - self.expr(comp, "non-numeric", exc=TypeError) def test_call(self): func = ast.Name("x", ast.Load()) args = [ast.Name("y", ast.Load())] keywords = [ast.keyword("w", ast.Name("z", ast.Load()))] call = ast.Call(ast.Name("x", ast.Store()), args, keywords) @@ -880,28 +869,18 @@ call = ast.Call(func, [None], keywords) self.expr(call, "None disallowed") bad_keywords = [ast.keyword("w", ast.Name("z", ast.Store()))] call = ast.Call(func, args, bad_keywords) self.expr(call, "must have Load context") - def test_num(self): - class subint(int): - pass - class subfloat(float): - pass - class subcomplex(complex): - pass - for obj in "0", "hello", subint(), subfloat(), subcomplex(): - self.expr(ast.Num(obj), "non-numeric", exc=TypeError) - def test_attribute(self): attr = ast.Attribute(ast.Name("x", ast.Store()), "y", ast.Load()) self.expr(attr, "must have Load context") def test_subscript(self): - sub = ast.Subscript(ast.Name("x", ast.Store()), ast.Index(ast.Num(3)), + sub = ast.Subscript(ast.Name("x", ast.Store()), ast.Index(ast.Lit(3)), ast.Load()) self.expr(sub, "must have Load context") x = ast.Name("x", ast.Load()) sub = ast.Subscript(x, ast.Index(ast.Name("y", ast.Store())), ast.Load()) self.expr(sub, "must have Load context") @@ -915,13 +894,13 @@ sl = ast.ExtSlice([ast.Index(s)]) self.expr(ast.Subscript(x, sl, ast.Load()), "must have Load context") def test_starred(self): left = ast.List([ast.Starred(ast.Name("x", ast.Load()), ast.Store())], ast.Store()) - assign = ast.Assign([left], ast.Num(4)) + assign = ast.Assign([left], ast.Lit(4)) self.stmt(assign, "must have Store context") def _sequence(self, fac): self.expr(fac([None], ast.Load()), "None disallowed") self.expr(fac([ast.Name("x", ast.Store())], ast.Load()), "must have Load context") @@ -941,12 +920,13 @@ tests.extend(["test/test_grammar.py", "test/test_unpack_ex.py"]) for module in tests: fn = os.path.join(stdlib, module) with open(fn, "r", encoding="utf-8") as fp: source = fp.read() mod = ast.parse(source, fn) + print(mod) compile(mod, fn, "exec") class ConstantTests(unittest.TestCase): """Tests on the ast.Constant node type.""" @@ -1006,15 +986,12 @@ "to in Store context") def test_get_docstring(self): tree = ast.parse("'docstring'\nx = 1") self.assertEqual(ast.get_docstring(tree), 'docstring') - tree.body[0].value = ast.Constant(value='constant docstring') - self.assertEqual(ast.get_docstring(tree), 'constant docstring') - def get_load_const(self, tree): # Compile to bytecode, disassemble and get parameter of LOAD_CONST # instructions co = compile(tree, '', 'exec') consts = [] for instr in dis.get_instructions(co): @@ -1080,81 +1057,82 @@ print("main()") raise SystemExit unittest.main() #### EVERYTHING BELOW IS GENERATED ##### exec_results = [ -('Module', [('Expr', (1, 0), ('NameConstant', (1, 0), None))]), -('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [], None, [], [], None, []), [('Pass', (1, 9))], [], None)]), -('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [('arg', (1, 6), 'a', None)], None, [], [], None, []), [('Pass', (1, 10))], [], None)]), -('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [('arg', (1, 6), 'a', None)], None, [], [], None, [('Num', (1, 8), 0)]), [('Pass', (1, 12))], [], None)]), -('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [], ('arg', (1, 7), 'args', None), [], [], None, []), [('Pass', (1, 14))], [], None)]), -('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [], None, [], [], ('arg', (1, 8), 'kwargs', None), []), [('Pass', (1, 17))], [], None)]), -('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [('arg', (1, 6), 'a', None), ('arg', (1, 9), 'b', None), ('arg', (1, 14), 'c', None), ('arg', (1, 22), 'd', None), ('arg', (1, 28), 'e', None)], ('arg', (1, 35), 'args', None), [('arg', (1, 41), 'f', None)], [('Num', (1, 43), 42)], ('arg', (1, 49), 'kwargs', None), [('Num', (1, 11), 1), ('NameConstant', (1, 16), None), ('List', (1, 24), [], ('Load',)), ('Dict', (1, 30), [], [])]), [('Pass', (1, 58))], [], None)]), -('Module', [('ClassDef', (1, 0), 'C', [], [], [('Pass', (1, 8))], [])]), -('Module', [('ClassDef', (1, 0), 'C', [('Name', (1, 8), 'object', ('Load',))], [], [('Pass', (1, 17))], [])]), -('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [], None, [], [], None, []), [('Return', (1, 8), ('Num', (1, 15), 1))], [], None)]), -('Module', [('Delete', (1, 0), [('Name', (1, 4), 'v', ('Del',))])]), -('Module', [('Assign', (1, 0), [('Name', (1, 0), 'v', ('Store',))], ('Num', (1, 4), 1))]), -('Module', [('AugAssign', (1, 0), ('Name', (1, 0), 'v', ('Store',)), ('Add',), ('Num', (1, 5), 1))]), -('Module', [('For', (1, 0), ('Name', (1, 4), 'v', ('Store',)), ('Name', (1, 9), 'v', ('Load',)), [('Pass', (1, 11))], [])]), -('Module', [('While', (1, 0), ('Name', (1, 6), 'v', ('Load',)), [('Pass', (1, 8))], [])]), -('Module', [('If', (1, 0), ('Name', (1, 3), 'v', ('Load',)), [('Pass', (1, 5))], [])]), -('Module', [('With', (1, 0), [('withitem', ('Name', (1, 5), 'x', ('Load',)), ('Name', (1, 10), 'y', ('Store',)))], [('Pass', (1, 13))])]), -('Module', [('With', (1, 0), [('withitem', ('Name', (1, 5), 'x', ('Load',)), ('Name', (1, 10), 'y', ('Store',))), ('withitem', ('Name', (1, 13), 'z', ('Load',)), ('Name', (1, 18), 'q', ('Store',)))], [('Pass', (1, 21))])]), -('Module', [('Raise', (1, 0), ('Call', (1, 6), ('Name', (1, 6), 'Exception', ('Load',)), [('Str', (1, 16), 'string')], []), None)]), -('Module', [('Try', (1, 0), [('Pass', (2, 2))], [('ExceptHandler', (3, 0), ('Name', (3, 7), 'Exception', ('Load',)), None, [('Pass', (4, 2))])], [], [])]), -('Module', [('Try', (1, 0), [('Pass', (2, 2))], [], [], [('Pass', (4, 2))])]), -('Module', [('Assert', (1, 0), ('Name', (1, 7), 'v', ('Load',)), None)]), -('Module', [('Import', (1, 0), [('alias', 'sys', None)])]), -('Module', [('ImportFrom', (1, 0), 'sys', [('alias', 'v', None)], 0)]), -('Module', [('Global', (1, 0), ['v'])]), -('Module', [('Expr', (1, 0), ('Num', (1, 0), 1))]), -('Module', [('Pass', (1, 0))]), -('Module', [('For', (1, 0), ('Name', (1, 4), 'v', ('Store',)), ('Name', (1, 9), 'v', ('Load',)), [('Break', (1, 11))], [])]), -('Module', [('For', (1, 0), ('Name', (1, 4), 'v', ('Store',)), ('Name', (1, 9), 'v', ('Load',)), [('Continue', (1, 11))], [])]), -('Module', [('For', (1, 0), ('Tuple', (1, 4), [('Name', (1, 4), 'a', ('Store',)), ('Name', (1, 6), 'b', ('Store',))], ('Store',)), ('Name', (1, 11), 'c', ('Load',)), [('Pass', (1, 14))], [])]), -('Module', [('Expr', (1, 0), ('ListComp', (1, 1), ('Tuple', (1, 2), [('Name', (1, 2), 'a', ('Load',)), ('Name', (1, 4), 'b', ('Load',))], ('Load',)), [('comprehension', ('Tuple', (1, 11), [('Name', (1, 11), 'a', ('Store',)), ('Name', (1, 13), 'b', ('Store',))], ('Store',)), ('Name', (1, 18), 'c', ('Load',)), [], 0)]))]), -('Module', [('Expr', (1, 0), ('GeneratorExp', (1, 1), ('Tuple', (1, 2), [('Name', (1, 2), 'a', ('Load',)), ('Name', (1, 4), 'b', ('Load',))], ('Load',)), [('comprehension', ('Tuple', (1, 11), [('Name', (1, 11), 'a', ('Store',)), ('Name', (1, 13), 'b', ('Store',))], ('Store',)), ('Name', (1, 18), 'c', ('Load',)), [], 0)]))]), -('Module', [('Expr', (1, 0), ('GeneratorExp', (1, 1), ('Tuple', (1, 2), [('Name', (1, 2), 'a', ('Load',)), ('Name', (1, 4), 'b', ('Load',))], ('Load',)), [('comprehension', ('Tuple', (1, 12), [('Name', (1, 12), 'a', ('Store',)), ('Name', (1, 14), 'b', ('Store',))], ('Store',)), ('Name', (1, 20), 'c', ('Load',)), [], 0)]))]), -('Module', [('Expr', (1, 0), ('GeneratorExp', (2, 4), ('Tuple', (3, 4), [('Name', (3, 4), 'Aa', ('Load',)), ('Name', (5, 7), 'Bb', ('Load',))], ('Load',)), [('comprehension', ('Tuple', (8, 4), [('Name', (8, 4), 'Aa', ('Store',)), ('Name', (10, 4), 'Bb', ('Store',))], ('Store',)), ('Name', (10, 10), 'Cc', ('Load',)), [], 0)]))]), -('Module', [('Expr', (1, 0), ('DictComp', (1, 0), ('Name', (1, 1), 'a', ('Load',)), ('Name', (1, 5), 'b', ('Load',)), [('comprehension', ('Name', (1, 11), 'w', ('Store',)), ('Name', (1, 16), 'x', ('Load',)), [], 0), ('comprehension', ('Name', (1, 22), 'm', ('Store',)), ('Name', (1, 27), 'p', ('Load',)), [('Name', (1, 32), 'g', ('Load',))], 0)]))]), -('Module', [('Expr', (1, 0), ('DictComp', (1, 0), ('Name', (1, 1), 'a', ('Load',)), ('Name', (1, 5), 'b', ('Load',)), [('comprehension', ('Tuple', (1, 11), [('Name', (1, 11), 'v', ('Store',)), ('Name', (1, 13), 'w', ('Store',))], ('Store',)), ('Name', (1, 18), 'x', ('Load',)), [], 0)]))]), -('Module', [('Expr', (1, 0), ('SetComp', (1, 0), ('Name', (1, 1), 'r', ('Load',)), [('comprehension', ('Name', (1, 7), 'l', ('Store',)), ('Name', (1, 12), 'x', ('Load',)), [('Name', (1, 17), 'g', ('Load',))], 0)]))]), -('Module', [('Expr', (1, 0), ('SetComp', (1, 0), ('Name', (1, 1), 'r', ('Load',)), [('comprehension', ('Tuple', (1, 7), [('Name', (1, 7), 'l', ('Store',)), ('Name', (1, 9), 'm', ('Store',))], ('Store',)), ('Name', (1, 14), 'x', ('Load',)), [], 0)]))]), -('Module', [('AsyncFunctionDef', (1, 6), 'f', ('arguments', [], None, [], [], None, []), [('Expr', (2, 1), ('Await', (2, 1), ('Call', (2, 7), ('Name', (2, 7), 'something', ('Load',)), [], [])))], [], None)]), -('Module', [('AsyncFunctionDef', (1, 6), 'f', ('arguments', [], None, [], [], None, []), [('AsyncFor', (2, 7), ('Name', (2, 11), 'e', ('Store',)), ('Name', (2, 16), 'i', ('Load',)), [('Expr', (2, 19), ('Num', (2, 19), 1))], [('Expr', (3, 7), ('Num', (3, 7), 2))])], [], None)]), -('Module', [('AsyncFunctionDef', (1, 6), 'f', ('arguments', [], None, [], [], None, []), [('AsyncWith', (2, 7), [('withitem', ('Name', (2, 12), 'a', ('Load',)), ('Name', (2, 17), 'b', ('Store',)))], [('Expr', (2, 20), ('Num', (2, 20), 1))])], [], None)]), -('Module', [('Expr', (1, 0), ('Dict', (1, 0), [None, ('Num', (1, 10), 2)], [('Dict', (1, 3), [('Num', (1, 4), 1)], [('Num', (1, 6), 2)]), ('Num', (1, 12), 3)]))]), -('Module', [('Expr', (1, 0), ('Set', (1, 0), [('Starred', (1, 1), ('Set', (1, 2), [('Num', (1, 3), 1), ('Num', (1, 6), 2)]), ('Load',)), ('Num', (1, 10), 3)]))]), -('Module', [('AsyncFunctionDef', (1, 6), 'f', ('arguments', [], None, [], [], None, []), [('Expr', (2, 1), ('ListComp', (2, 2), ('Name', (2, 2), 'i', ('Load',)), [('comprehension', ('Name', (2, 14), 'b', ('Store',)), ('Name', (2, 19), 'c', ('Load',)), [], 1)]))], [], None)]), +('Module', [('Expr', (1, 0), ('NameConstant', (1, 0), None))], None), +('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [], None, [], [], None, []), [('Pass', (1, 9))], [], None, None)], None), +('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [('arg', (1, 6), 'a', None)], None, [], [], None, []), [('Pass', (1, 10))], [], None, None)], None), +('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [('arg', (1, 6), 'a', None)], None, [], [], None, [('Lit', (1, 8), 0)]), [('Pass', (1, 12))], [], None, None)], None), +('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [], ('arg', (1, 7), 'args', None), [], [], None, []), [('Pass', (1, 14))], [], None, None)], None), +('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [], None, [], [], ('arg', (1, 8), 'kwargs', None), []), [('Pass', (1, 17))], [], None, None)], None), +('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [('arg', (1, 6), 'a', None), ('arg', (1, 9), 'b', None), ('arg', (1, 14), 'c', None), ('arg', (1, 22), 'd', None), ('arg', (1, 28), 'e', None)], ('arg', (1, 35), 'args', None), [('arg', (1, 41), 'f', None)], [('Lit', (1, 43), 42)], ('arg', (1, 49), 'kwargs', None), [('Lit', (1, 11), 1), ('NameConstant', (1, 16), None), ('List', (1, 24), [], ('Load',)), ('Dict', (1, 30), [], [])]), [('Pass', (1, 58))], [], None, None)], None), +('Module', [('ClassDef', (1, 0), 'C', [], [], [('Pass', (1, 8))], [], None)], None), +('Module', [('ClassDef', (1, 0), 'C', [('Name', (1, 8), 'object', ('Load',))], [], [('Pass', (1, 17))], [], None)], None), +('Module', [('FunctionDef', (1, 0), 'f', ('arguments', [], None, [], [], None, []), [('Return', (1, 8), ('Lit', (1, 15), 1))], [], None, None)], None), +('Module', [('Delete', (1, 0), [('Name', (1, 4), 'v', ('Del',))])], None), +('Module', [('Assign', (1, 0), [('Name', (1, 0), 'v', ('Store',))], ('Lit', (1, 4), 1))], None), +('Module', [('AugAssign', (1, 0), ('Name', (1, 0), 'v', ('Store',)), ('Add',), ('Lit', (1, 5), 1))], None), +('Module', [('For', (1, 0), ('Name', (1, 4), 'v', ('Store',)), ('Name', (1, 9), 'v', ('Load',)), [('Pass', (1, 11))], [])], None), +('Module', [('While', (1, 0), ('Name', (1, 6), 'v', ('Load',)), [('Pass', (1, 8))], [])], None), +('Module', [('If', (1, 0), ('Name', (1, 3), 'v', ('Load',)), [('Pass', (1, 5))], [])], None), +('Module', [('With', (1, 0), [('withitem', ('Name', (1, 5), 'x', ('Load',)), ('Name', (1, 10), 'y', ('Store',)))], [('Pass', (1, 13))])], None), +('Module', [('With', (1, 0), [('withitem', ('Name', (1, 5), 'x', ('Load',)), ('Name', (1, 10), 'y', ('Store',))), ('withitem', ('Name', (1, 13), 'z', ('Load',)), ('Name', (1, 18), 'q', ('Store',)))], [('Pass', (1, 21))])], None), +('Module', [('Raise', (1, 0), ('Call', (1, 6), ('Name', (1, 6), 'Exception', ('Load',)), [('Lit', (1, 16), 'string')], []), None)], None), +('Module', [('Try', (1, 0), [('Pass', (2, 2))], [('ExceptHandler', (3, 0), ('Name', (3, 7), 'Exception', ('Load',)), None, [('Pass', (4, 2))])], [], [])], None), +('Module', [('Try', (1, 0), [('Pass', (2, 2))], [], [], [('Pass', (4, 2))])], None), +('Module', [('Assert', (1, 0), ('Name', (1, 7), 'v', ('Load',)), None)], None), +('Module', [('Import', (1, 0), [('alias', 'sys', None)])], None), +('Module', [('ImportFrom', (1, 0), 'sys', [('alias', 'v', None)], 0)], None), +('Module', [('Global', (1, 0), ['v'])], None), +('Module', [('Expr', (1, 0), ('Lit', (1, 0), 1))], None), +('Module', [('Pass', (1, 0))], None), +('Module', [('For', (1, 0), ('Name', (1, 4), 'v', ('Store',)), ('Name', (1, 9), 'v', ('Load',)), [('Break', (1, 11))], [])], None), +('Module', [('For', (1, 0), ('Name', (1, 4), 'v', ('Store',)), ('Name', (1, 9), 'v', ('Load',)), [('Continue', (1, 11))], [])], None), +('Module', [('For', (1, 0), ('Tuple', (1, 4), [('Name', (1, 4), 'a', ('Store',)), ('Name', (1, 6), 'b', ('Store',))], ('Store',)), ('Name', (1, 11), 'c', ('Load',)), [('Pass', (1, 14))], [])], None), +('Module', [('Expr', (1, 0), ('ListComp', (1, 1), ('Tuple', (1, 2), [('Name', (1, 2), 'a', ('Load',)), ('Name', (1, 4), 'b', ('Load',))], ('Load',)), [('comprehension', ('Tuple', (1, 11), [('Name', (1, 11), 'a', ('Store',)), ('Name', (1, 13), 'b', ('Store',))], ('Store',)), ('Name', (1, 18), 'c', ('Load',)), [], 0)]))], None), +('Module', [('Expr', (1, 0), ('GeneratorExp', (1, 1), ('Tuple', (1, 2), [('Name', (1, 2), 'a', ('Load',)), ('Name', (1, 4), 'b', ('Load',))], ('Load',)), [('comprehension', ('Tuple', (1, 11), [('Name', (1, 11), 'a', ('Store',)), ('Name', (1, 13), 'b', ('Store',))], ('Store',)), ('Name', (1, 18), 'c', ('Load',)), [], 0)]))], None), +('Module', [('Expr', (1, 0), ('GeneratorExp', (1, 1), ('Tuple', (1, 2), [('Name', (1, 2), 'a', ('Load',)), ('Name', (1, 4), 'b', ('Load',))], ('Load',)), [('comprehension', ('Tuple', (1, 12), [('Name', (1, 12), 'a', ('Store',)), ('Name', (1, 14), 'b', ('Store',))], ('Store',)), ('Name', (1, 20), 'c', ('Load',)), [], 0)]))], None), +('Module', [('Expr', (1, 0), ('GeneratorExp', (2, 4), ('Tuple', (3, 4), [('Name', (3, 4), 'Aa', ('Load',)), ('Name', (5, 7), 'Bb', ('Load',))], ('Load',)), [('comprehension', ('Tuple', (8, 4), [('Name', (8, 4), 'Aa', ('Store',)), ('Name', (10, 4), 'Bb', ('Store',))], ('Store',)), ('Name', (10, 10), 'Cc', ('Load',)), [], 0)]))], None), +('Module', [('Expr', (1, 0), ('DictComp', (1, 0), ('Name', (1, 1), 'a', ('Load',)), ('Name', (1, 5), 'b', ('Load',)), [('comprehension', ('Name', (1, 11), 'w', ('Store',)), ('Name', (1, 16), 'x', ('Load',)), [], 0), ('comprehension', ('Name', (1, 22), 'm', ('Store',)), ('Name', (1, 27), 'p', ('Load',)), [('Name', (1, 32), 'g', ('Load',))], 0)]))], None), +('Module', [('Expr', (1, 0), ('DictComp', (1, 0), ('Name', (1, 1), 'a', ('Load',)), ('Name', (1, 5), 'b', ('Load',)), [('comprehension', ('Tuple', (1, 11), [('Name', (1, 11), 'v', ('Store',)), ('Name', (1, 13), 'w', ('Store',))], ('Store',)), ('Name', (1, 18), 'x', ('Load',)), [], 0)]))], None), +('Module', [('Expr', (1, 0), ('SetComp', (1, 0), ('Name', (1, 1), 'r', ('Load',)), [('comprehension', ('Name', (1, 7), 'l', ('Store',)), ('Name', (1, 12), 'x', ('Load',)), [('Name', (1, 17), 'g', ('Load',))], 0)]))], None), +('Module', [('Expr', (1, 0), ('SetComp', (1, 0), ('Name', (1, 1), 'r', ('Load',)), [('comprehension', ('Tuple', (1, 7), [('Name', (1, 7), 'l', ('Store',)), ('Name', (1, 9), 'm', ('Store',))], ('Store',)), ('Name', (1, 14), 'x', ('Load',)), [], 0)]))], None), +('Module', [('AsyncFunctionDef', (1, 6), 'f', ('arguments', [], None, [], [], None, []), [('Expr', (2, 1), ('Await', (2, 1), ('Call', (2, 7), ('Name', (2, 7), 'something', ('Load',)), [], [])))], [], None, None)], None), +('Module', [('AsyncFunctionDef', (1, 6), 'f', ('arguments', [], None, [], [], None, []), [('AsyncFor', (2, 7), ('Name', (2, 11), 'e', ('Store',)), ('Name', (2, 16), 'i', ('Load',)), [('Expr', (2, 19), ('Lit', (2, 19), 1))], [('Expr', (3, 7), ('Lit', (3, 7), 2))])], [], None, None)], None), +('Module', [('AsyncFunctionDef', (1, 6), 'f', ('arguments', [], None, [], [], None, []), [('AsyncWith', (2, 7), [('withitem', ('Name', (2, 12), 'a', ('Load',)), ('Name', (2, 17), 'b', ('Store',)))], [('Expr', (2, 20), ('Lit', (2, 20), 1))])], [], None, None)], None), +('Module', [('Expr', (1, 0), ('Dict', (1, 0), [None, ('Lit', (1, 10), 2)], [('Dict', (1, 3), [('Lit', (1, 4), 1)], [('Lit', (1, 6), 2)]), ('Lit', (1, 12), 3)]))], None), +('Module', [('Expr', (1, 0), ('Set', (1, 0), [('Starred', (1, 1), ('Set', (1, 2), [('Lit', (1, 3), 1), ('Lit', (1, 6), 2)]), ('Load',)), ('Lit', (1, 10), 3)]))], None), +('Module', [('AsyncFunctionDef', (1, 6), 'f', ('arguments', [], None, [], [], None, []), [('Expr', (2, 1), ('ListComp', (2, 2), ('Name', (2, 2), 'i', ('Load',)), [('comprehension', ('Name', (2, 14), 'b', ('Store',)), ('Name', (2, 19), 'c', ('Load',)), [], 1)]))], [], None, None)], None), ] single_results = [ -('Interactive', [('Expr', (1, 0), ('BinOp', (1, 0), ('Num', (1, 0), 1), ('Add',), ('Num', (1, 2), 2)))]), +('Interactive', [('Expr', (1, 0), ('BinOp', (1, 0), ('Lit', (1, 0), 1), ('Add',), ('Lit', (1, 2), 2)))]), ] eval_results = [ ('Expression', ('NameConstant', (1, 0), None)), ('Expression', ('BoolOp', (1, 0), ('And',), [('Name', (1, 0), 'a', ('Load',)), ('Name', (1, 6), 'b', ('Load',))])), ('Expression', ('BinOp', (1, 0), ('Name', (1, 0), 'a', ('Load',)), ('Add',), ('Name', (1, 4), 'b', ('Load',)))), ('Expression', ('UnaryOp', (1, 0), ('Not',), ('Name', (1, 4), 'v', ('Load',)))), ('Expression', ('Lambda', (1, 0), ('arguments', [], None, [], [], None, []), ('NameConstant', (1, 7), None))), -('Expression', ('Dict', (1, 0), [('Num', (1, 2), 1)], [('Num', (1, 4), 2)])), +('Expression', ('Dict', (1, 0), [('Lit', (1, 2), 1)], [('Lit', (1, 4), 2)])), ('Expression', ('Dict', (1, 0), [], [])), ('Expression', ('Set', (1, 0), [('NameConstant', (1, 1), None)])), -('Expression', ('Dict', (1, 0), [('Num', (2, 6), 1)], [('Num', (4, 10), 2)])), +('Expression', ('Dict', (1, 0), [('Lit', (2, 6), 1)], [('Lit', (4, 10), 2)])), ('Expression', ('ListComp', (1, 1), ('Name', (1, 1), 'a', ('Load',)), [('comprehension', ('Name', (1, 7), 'b', ('Store',)), ('Name', (1, 12), 'c', ('Load',)), [('Name', (1, 17), 'd', ('Load',))], 0)])), ('Expression', ('GeneratorExp', (1, 1), ('Name', (1, 1), 'a', ('Load',)), [('comprehension', ('Name', (1, 7), 'b', ('Store',)), ('Name', (1, 12), 'c', ('Load',)), [('Name', (1, 17), 'd', ('Load',))], 0)])), -('Expression', ('Compare', (1, 0), ('Num', (1, 0), 1), [('Lt',), ('Lt',)], [('Num', (1, 4), 2), ('Num', (1, 8), 3)])), -('Expression', ('Call', (1, 0), ('Name', (1, 0), 'f', ('Load',)), [('Num', (1, 2), 1), ('Num', (1, 4), 2), ('Starred', (1, 10), ('Name', (1, 11), 'd', ('Load',)), ('Load',))], [('keyword', 'c', ('Num', (1, 8), 3)), ('keyword', None, ('Name', (1, 15), 'e', ('Load',)))])), -('Expression', ('Num', (1, 0), 10)), -('Expression', ('Str', (1, 0), 'string')), +('Expression', ('Compare', (1, 0), ('Lit', (1, 0), 1), [('Lt',), ('Lt',)], [('Lit', (1, 4), 2), ('Lit', (1, 8), 3)])), +('Expression', ('Call', (1, 0), ('Name', (1, 0), 'f', ('Load',)), [('Lit', (1, 2), 1), ('Lit', (1, 4), 2), ('Starred', (1, 10), ('Name', (1, 11), 'd', ('Load',)), ('Load',))], [('keyword', 'c', ('Lit', (1, 8), 3)), ('keyword', None, ('Name', (1, 15), 'e', ('Load',)))])), +('Expression', ('Lit', (1, 0), 10)), +('Expression', ('Lit', (1, 0), 'string')), +('Expression', ('Lit', (1, 0), b'string')), ('Expression', ('Attribute', (1, 0), ('Name', (1, 0), 'a', ('Load',)), 'b', ('Load',))), ('Expression', ('Subscript', (1, 0), ('Name', (1, 0), 'a', ('Load',)), ('Slice', ('Name', (1, 2), 'b', ('Load',)), ('Name', (1, 4), 'c', ('Load',)), None), ('Load',))), ('Expression', ('Name', (1, 0), 'v', ('Load',))), -('Expression', ('List', (1, 0), [('Num', (1, 1), 1), ('Num', (1, 3), 2), ('Num', (1, 5), 3)], ('Load',))), +('Expression', ('List', (1, 0), [('Lit', (1, 1), 1), ('Lit', (1, 3), 2), ('Lit', (1, 5), 3)], ('Load',))), ('Expression', ('List', (1, 0), [], ('Load',))), -('Expression', ('Tuple', (1, 0), [('Num', (1, 0), 1), ('Num', (1, 2), 2), ('Num', (1, 4), 3)], ('Load',))), -('Expression', ('Tuple', (1, 1), [('Num', (1, 1), 1), ('Num', (1, 3), 2), ('Num', (1, 5), 3)], ('Load',))), +('Expression', ('Tuple', (1, 0), [('Lit', (1, 0), 1), ('Lit', (1, 2), 2), ('Lit', (1, 4), 3)], ('Load',))), +('Expression', ('Tuple', (1, 1), [('Lit', (1, 1), 1), ('Lit', (1, 3), 2), ('Lit', (1, 5), 3)], ('Load',))), ('Expression', ('Tuple', (1, 0), [], ('Load',))), -('Expression', ('Call', (1, 0), ('Attribute', (1, 0), ('Attribute', (1, 0), ('Attribute', (1, 0), ('Name', (1, 0), 'a', ('Load',)), 'b', ('Load',)), 'c', ('Load',)), 'd', ('Load',)), [('Subscript', (1, 8), ('Attribute', (1, 8), ('Name', (1, 8), 'a', ('Load',)), 'b', ('Load',)), ('Slice', ('Num', (1, 12), 1), ('Num', (1, 14), 2), None), ('Load',))], [])), +('Expression', ('Call', (1, 0), ('Attribute', (1, 0), ('Attribute', (1, 0), ('Attribute', (1, 0), ('Name', (1, 0), 'a', ('Load',)), 'b', ('Load',)), 'c', ('Load',)), 'd', ('Load',)), [('Subscript', (1, 8), ('Attribute', (1, 8), ('Name', (1, 8), 'a', ('Load',)), 'b', ('Load',)), ('Slice', ('Lit', (1, 12), 1), ('Lit', (1, 14), 2), None), ('Load',))], [])), ] main() diff -r 09d4d47ad210 Parser/Python.asdl --- a/Parser/Python.asdl Tue Jan 31 13:53:39 2017 +0100 +++ b/Parser/Python.asdl Wed Feb 01 01:56:27 2017 +0900 @@ -3,29 +3,32 @@ -- -- singleton: None, True or False -- constant can be None, whereas None means "no value" for object. module Python { - mod = Module(stmt* body) + mod = Module(stmt* body, string? docstring) | Interactive(stmt* body) | Expression(expr body) -- not really an actual node but useful in Jython's typesystem. | Suite(stmt* body) stmt = FunctionDef(identifier name, arguments args, - stmt* body, expr* decorator_list, expr? returns) + stmt* body, expr* decorator_list, expr? returns, + string? docstring) | AsyncFunctionDef(identifier name, arguments args, - stmt* body, expr* decorator_list, expr? returns) + stmt* body, expr* decorator_list, expr? returns, + string? docstring) | ClassDef(identifier name, expr* bases, keyword* keywords, stmt* body, - expr* decorator_list) + expr* decorator_list, + string? docstring) | Return(expr? value) | Delete(expr* targets) | Assign(expr* targets, expr value) | AugAssign(expr target, operator op, expr value) -- 'simple' indicates that we annotate simple name without parens @@ -72,19 +75,16 @@ | Yield(expr? value) | YieldFrom(expr value) -- need sequences for compare to distinguish between -- x < 4 < 3 and (x < 4) < 3 | Compare(expr left, cmpop* ops, expr* comparators) | Call(expr func, expr* args, keyword* keywords) - | Num(object n) -- a number as a PyObject. - | Str(string s) -- need to specify raw, unicode, etc? + | Lit(constant v) -- a literal as a PyObject. | FormattedValue(expr value, int? conversion, expr? format_spec) | JoinedStr(expr* values) - | Bytes(bytes s) | NameConstant(singleton value) - | Ellipsis | Constant(constant value) -- the following expression can appear in assignment context | Attribute(expr value, identifier attr, expr_context ctx) | Subscript(expr value, slice slice, expr_context ctx) | Starred(expr value, expr_context ctx) diff -r 09d4d47ad210 Parser/asdl_c.py --- a/Parser/asdl_c.py Tue Jan 31 13:53:39 2017 +0100 +++ b/Parser/asdl_c.py Wed Feb 01 01:56:27 2017 +0900 @@ -293,12 +293,16 @@ else: argstr = "PyArena *arena" self.emit("%s" % ctype, 0) emit("%s(%s)" % (name, argstr)) emit("{") emit("%s p;" % ctype, 1) + # XXX: special hack for Lit. Lit value can be None and it + # should be stored as Py_None, not as NULL. + if name == 'Lit': + emit('if (!v) v = Py_None;', 1) for argtype, argname, opt in args: if not opt and argtype != "int": emit("if (!%s) {" % argname, 1) emit("PyErr_SetString(PyExc_ValueError,", 2) msg = "field %s is required for %s" % (argname, name) emit(' "%s");' % msg, @@ -513,30 +517,34 @@ "be a list, not a %%.200s\", tmp->ob_type->tp_name);" % (name, field.name), depth+2, reflow=False) self.emit("goto failed;", depth+2) self.emit("}", depth+1) self.emit("len = PyList_GET_SIZE(tmp);", depth+1) + self.emit("if (len == 0)", depth+1) + self.emit("%s = NULL;" % field.name, depth+2) + self.emit("else {", depth+1) if self.isSimpleType(field): - self.emit("%s = _Py_asdl_int_seq_new(len, arena);" % field.name, depth+1) + self.emit("%s = _Py_asdl_int_seq_new(len, arena);" % field.name, depth+2) else: - self.emit("%s = _Py_asdl_seq_new(len, arena);" % field.name, depth+1) - self.emit("if (%s == NULL) goto failed;" % field.name, depth+1) - self.emit("for (i = 0; i < len; i++) {", depth+1) - self.emit("%s value;" % ctype, depth+2) + self.emit("%s = _Py_asdl_seq_new(len, arena);" % field.name, depth+2) + self.emit("if (%s == NULL) goto failed;" % field.name, depth+2) + self.emit("for (i = 0; i < len; i++) {", depth+2) + self.emit("%s value;" % ctype, depth+3) self.emit("res = obj2ast_%s(PyList_GET_ITEM(tmp, i), &value, arena);" % - field.type, depth+2, reflow=False) - self.emit("if (res != 0) goto failed;", depth+2) + field.type, depth+3, reflow=False) + self.emit("if (res != 0) goto failed;", depth+3) self.emit("if (len != PyList_GET_SIZE(tmp)) {", depth+2) self.emit("PyErr_SetString(PyExc_RuntimeError, \"%s field \\\"%s\\\" " "changed size during iteration\");" % (name, field.name), depth+3, reflow=False) self.emit("goto failed;", depth+3) self.emit("}", depth+2) - self.emit("asdl_seq_SET(%s, i, value);" % field.name, depth+2) + self.emit("asdl_seq_SET(%s, i, value);" % field.name, depth+3) + self.emit("}", depth+2) self.emit("}", depth+1) else: self.emit("res = obj2ast_%s(tmp, &%s, arena);" % (field.type, field.name), depth+1) self.emit("if (res != 0) goto failed;", depth+1) @@ -913,21 +921,12 @@ PyErr_SetString(PyExc_TypeError, "AST string must be of type str"); return 1; } return obj2ast_object(obj, out, arena); } -static int obj2ast_bytes(PyObject* obj, PyObject** out, PyArena* arena) -{ - if (!PyBytes_CheckExact(obj)) { - PyErr_SetString(PyExc_TypeError, "AST bytes must be of type bytes"); - return 1; - } - return obj2ast_object(obj, out, arena); -} - static int obj2ast_int(PyObject* obj, int* out, PyArena* arena) { int i; if (!PyLong_Check(obj)) { PyErr_Format(PyExc_ValueError, "invalid integer value: %R", obj); return 1; diff -r 09d4d47ad210 Python/Python-ast.c --- a/Python/Python-ast.c Tue Jan 31 13:53:39 2017 +0100 +++ b/Python/Python-ast.c Wed Feb 01 01:56:27 2017 +0900 @@ -7,14 +7,16 @@ static PyTypeObject AST_type; static PyTypeObject *mod_type; static PyObject* ast2obj_mod(void*); static PyTypeObject *Module_type; _Py_IDENTIFIER(body); +_Py_IDENTIFIER(docstring); static char *Module_fields[]={ "body", + "docstring", }; static PyTypeObject *Interactive_type; static char *Interactive_fields[]={ "body", }; static PyTypeObject *Expression_type; @@ -41,30 +43,33 @@ static char *FunctionDef_fields[]={ "name", "args", "body", "decorator_list", "returns", + "docstring", }; static PyTypeObject *AsyncFunctionDef_type; static char *AsyncFunctionDef_fields[]={ "name", "args", "body", "decorator_list", "returns", + "docstring", }; static PyTypeObject *ClassDef_type; _Py_IDENTIFIER(bases); _Py_IDENTIFIER(keywords); static char *ClassDef_fields[]={ "name", "bases", "keywords", "body", "decorator_list", + "docstring", }; static PyTypeObject *Return_type; _Py_IDENTIFIER(value); static char *Return_fields[]={ "value", }; @@ -281,21 +286,16 @@ _Py_IDENTIFIER(func); static char *Call_fields[]={ "func", "args", "keywords", }; -static PyTypeObject *Num_type; -_Py_IDENTIFIER(n); -static char *Num_fields[]={ - "n", -}; -static PyTypeObject *Str_type; -_Py_IDENTIFIER(s); -static char *Str_fields[]={ - "s", +static PyTypeObject *Lit_type; +_Py_IDENTIFIER(v); +static char *Lit_fields[]={ + "v", }; static PyTypeObject *FormattedValue_type; _Py_IDENTIFIER(conversion); _Py_IDENTIFIER(format_spec); static char *FormattedValue_fields[]={ "value", @@ -303,21 +303,16 @@ "format_spec", }; static PyTypeObject *JoinedStr_type; static char *JoinedStr_fields[]={ "values", }; -static PyTypeObject *Bytes_type; -static char *Bytes_fields[]={ - "s", -}; static PyTypeObject *NameConstant_type; static char *NameConstant_fields[]={ "value", }; -static PyTypeObject *Ellipsis_type; static PyTypeObject *Constant_type; static char *Constant_fields[]={ "value", }; static PyTypeObject *Attribute_type; _Py_IDENTIFIER(attr); @@ -795,21 +790,12 @@ PyErr_SetString(PyExc_TypeError, "AST string must be of type str"); return 1; } return obj2ast_object(obj, out, arena); } -static int obj2ast_bytes(PyObject* obj, PyObject** out, PyArena* arena) -{ - if (!PyBytes_CheckExact(obj)) { - PyErr_SetString(PyExc_TypeError, "AST bytes must be of type bytes"); - return 1; - } - return obj2ast_object(obj, out, arena); -} - static int obj2ast_int(PyObject* obj, int* out, PyArena* arena) { int i; if (!PyLong_Check(obj)) { PyErr_Format(PyExc_ValueError, "invalid integer value: %R", obj); return 1; @@ -858,31 +844,31 @@ static int initialized; if (initialized) return 1; if (add_ast_fields() < 0) return 0; mod_type = make_type("mod", &AST_type, NULL, 0); if (!mod_type) return 0; if (!add_attributes(mod_type, NULL, 0)) return 0; - Module_type = make_type("Module", mod_type, Module_fields, 1); + Module_type = make_type("Module", mod_type, Module_fields, 2); if (!Module_type) return 0; Interactive_type = make_type("Interactive", mod_type, Interactive_fields, 1); if (!Interactive_type) return 0; Expression_type = make_type("Expression", mod_type, Expression_fields, 1); if (!Expression_type) return 0; Suite_type = make_type("Suite", mod_type, Suite_fields, 1); if (!Suite_type) return 0; stmt_type = make_type("stmt", &AST_type, NULL, 0); if (!stmt_type) return 0; if (!add_attributes(stmt_type, stmt_attributes, 2)) return 0; FunctionDef_type = make_type("FunctionDef", stmt_type, FunctionDef_fields, - 5); + 6); if (!FunctionDef_type) return 0; AsyncFunctionDef_type = make_type("AsyncFunctionDef", stmt_type, - AsyncFunctionDef_fields, 5); + AsyncFunctionDef_fields, 6); if (!AsyncFunctionDef_type) return 0; - ClassDef_type = make_type("ClassDef", stmt_type, ClassDef_fields, 5); + ClassDef_type = make_type("ClassDef", stmt_type, ClassDef_fields, 6); if (!ClassDef_type) return 0; Return_type = make_type("Return", stmt_type, Return_fields, 1); if (!Return_type) return 0; Delete_type = make_type("Delete", stmt_type, Delete_fields, 1); if (!Delete_type) return 0; Assign_type = make_type("Assign", stmt_type, Assign_fields, 2); @@ -958,28 +944,22 @@ YieldFrom_type = make_type("YieldFrom", expr_type, YieldFrom_fields, 1); if (!YieldFrom_type) return 0; Compare_type = make_type("Compare", expr_type, Compare_fields, 3); if (!Compare_type) return 0; Call_type = make_type("Call", expr_type, Call_fields, 3); if (!Call_type) return 0; - Num_type = make_type("Num", expr_type, Num_fields, 1); - if (!Num_type) return 0; - Str_type = make_type("Str", expr_type, Str_fields, 1); - if (!Str_type) return 0; + Lit_type = make_type("Lit", expr_type, Lit_fields, 1); + if (!Lit_type) return 0; FormattedValue_type = make_type("FormattedValue", expr_type, FormattedValue_fields, 3); if (!FormattedValue_type) return 0; JoinedStr_type = make_type("JoinedStr", expr_type, JoinedStr_fields, 1); if (!JoinedStr_type) return 0; - Bytes_type = make_type("Bytes", expr_type, Bytes_fields, 1); - if (!Bytes_type) return 0; NameConstant_type = make_type("NameConstant", expr_type, NameConstant_fields, 1); if (!NameConstant_type) return 0; - Ellipsis_type = make_type("Ellipsis", expr_type, NULL, 0); - if (!Ellipsis_type) return 0; Constant_type = make_type("Constant", expr_type, Constant_fields, 1); if (!Constant_type) return 0; Attribute_type = make_type("Attribute", expr_type, Attribute_fields, 3); if (!Attribute_type) return 0; Subscript_type = make_type("Subscript", expr_type, Subscript_fields, 3); if (!Subscript_type) return 0; @@ -1203,20 +1183,21 @@ static int obj2ast_arg(PyObject* obj, arg_ty* out, PyArena* arena); static int obj2ast_keyword(PyObject* obj, keyword_ty* out, PyArena* arena); static int obj2ast_alias(PyObject* obj, alias_ty* out, PyArena* arena); static int obj2ast_withitem(PyObject* obj, withitem_ty* out, PyArena* arena); mod_ty -Module(asdl_seq * body, PyArena *arena) +Module(asdl_seq * body, string docstring, PyArena *arena) { mod_ty p; p = (mod_ty)PyArena_Malloc(arena, sizeof(*p)); if (!p) return NULL; p->kind = Module_kind; p->v.Module.body = body; + p->v.Module.docstring = docstring; return p; } mod_ty Interactive(asdl_seq * body, PyArena *arena) { @@ -1257,14 +1238,14 @@ p->v.Suite.body = body; return p; } stmt_ty FunctionDef(identifier name, arguments_ty args, asdl_seq * body, asdl_seq * - decorator_list, expr_ty returns, int lineno, int col_offset, - PyArena *arena) + decorator_list, expr_ty returns, string docstring, int lineno, int + col_offset, PyArena *arena) { stmt_ty p; if (!name) { PyErr_SetString(PyExc_ValueError, "field name is required for FunctionDef"); return NULL; @@ -1280,21 +1261,22 @@ p->kind = FunctionDef_kind; p->v.FunctionDef.name = name; p->v.FunctionDef.args = args; p->v.FunctionDef.body = body; p->v.FunctionDef.decorator_list = decorator_list; p->v.FunctionDef.returns = returns; + p->v.FunctionDef.docstring = docstring; p->lineno = lineno; p->col_offset = col_offset; return p; } stmt_ty AsyncFunctionDef(identifier name, arguments_ty args, asdl_seq * body, asdl_seq - * decorator_list, expr_ty returns, int lineno, int col_offset, - PyArena *arena) + * decorator_list, expr_ty returns, string docstring, int + lineno, int col_offset, PyArena *arena) { stmt_ty p; if (!name) { PyErr_SetString(PyExc_ValueError, "field name is required for AsyncFunctionDef"); return NULL; @@ -1310,21 +1292,22 @@ p->kind = AsyncFunctionDef_kind; p->v.AsyncFunctionDef.name = name; p->v.AsyncFunctionDef.args = args; p->v.AsyncFunctionDef.body = body; p->v.AsyncFunctionDef.decorator_list = decorator_list; p->v.AsyncFunctionDef.returns = returns; + p->v.AsyncFunctionDef.docstring = docstring; p->lineno = lineno; p->col_offset = col_offset; return p; } stmt_ty ClassDef(identifier name, asdl_seq * bases, asdl_seq * keywords, asdl_seq * - body, asdl_seq * decorator_list, int lineno, int col_offset, PyArena - *arena) + body, asdl_seq * decorator_list, string docstring, int lineno, int + col_offset, PyArena *arena) { stmt_ty p; if (!name) { PyErr_SetString(PyExc_ValueError, "field name is required for ClassDef"); return NULL; @@ -1335,12 +1318,13 @@ p->kind = ClassDef_kind; p->v.ClassDef.name = name; p->v.ClassDef.bases = bases; p->v.ClassDef.keywords = keywords; p->v.ClassDef.body = body; p->v.ClassDef.decorator_list = decorator_list; + p->v.ClassDef.docstring = docstring; p->lineno = lineno; p->col_offset = col_offset; return p; } stmt_ty @@ -2105,44 +2089,26 @@ p->lineno = lineno; p->col_offset = col_offset; return p; } expr_ty -Num(object n, int lineno, int col_offset, PyArena *arena) +Lit(constant v, int lineno, int col_offset, PyArena *arena) { expr_ty p; - if (!n) { + if (!v) v = Py_None; + if (!v) { PyErr_SetString(PyExc_ValueError, - "field n is required for Num"); + "field v is required for Lit"); return NULL; } p = (expr_ty)PyArena_Malloc(arena, sizeof(*p)); if (!p) return NULL; - p->kind = Num_kind; - p->v.Num.n = n; - p->lineno = lineno; - p->col_offset = col_offset; - return p; -} - -expr_ty -Str(string s, int lineno, int col_offset, PyArena *arena) -{ - expr_ty p; - if (!s) { - PyErr_SetString(PyExc_ValueError, - "field s is required for Str"); - return NULL; - } - p = (expr_ty)PyArena_Malloc(arena, sizeof(*p)); - if (!p) - return NULL; - p->kind = Str_kind; - p->v.Str.s = s; + p->kind = Lit_kind; + p->v.Lit.v = v; p->lineno = lineno; p->col_offset = col_offset; return p; } expr_ty @@ -2179,31 +2145,12 @@ p->lineno = lineno; p->col_offset = col_offset; return p; } expr_ty -Bytes(bytes s, int lineno, int col_offset, PyArena *arena) -{ - expr_ty p; - if (!s) { - PyErr_SetString(PyExc_ValueError, - "field s is required for Bytes"); - return NULL; - } - p = (expr_ty)PyArena_Malloc(arena, sizeof(*p)); - if (!p) - return NULL; - p->kind = Bytes_kind; - p->v.Bytes.s = s; - p->lineno = lineno; - p->col_offset = col_offset; - return p; -} - -expr_ty NameConstant(singleton value, int lineno, int col_offset, PyArena *arena) { expr_ty p; if (!value) { PyErr_SetString(PyExc_ValueError, "field value is required for NameConstant"); @@ -2217,25 +2164,12 @@ p->lineno = lineno; p->col_offset = col_offset; return p; } expr_ty -Ellipsis(int lineno, int col_offset, PyArena *arena) -{ - expr_ty p; - p = (expr_ty)PyArena_Malloc(arena, sizeof(*p)); - if (!p) - return NULL; - p->kind = Ellipsis_kind; - p->lineno = lineno; - p->col_offset = col_offset; - return p; -} - -expr_ty Constant(constant value, int lineno, int col_offset, PyArena *arena) { expr_ty p; if (!value) { PyErr_SetString(PyExc_ValueError, "field value is required for Constant"); @@ -2598,12 +2532,17 @@ if (!result) goto failed; value = ast2obj_list(o->v.Module.body, ast2obj_stmt); if (!value) goto failed; if (_PyObject_SetAttrId(result, &PyId_body, value) == -1) goto failed; Py_DECREF(value); + value = ast2obj_string(o->v.Module.docstring); + if (!value) goto failed; + if (_PyObject_SetAttrId(result, &PyId_docstring, value) == -1) + goto failed; + Py_DECREF(value); break; case Interactive_kind: result = PyType_GenericNew(Interactive_type, NULL, NULL); if (!result) goto failed; value = ast2obj_list(o->v.Interactive.body, ast2obj_stmt); if (!value) goto failed; @@ -2672,12 +2611,17 @@ Py_DECREF(value); value = ast2obj_expr(o->v.FunctionDef.returns); if (!value) goto failed; if (_PyObject_SetAttrId(result, &PyId_returns, value) == -1) goto failed; Py_DECREF(value); + value = ast2obj_string(o->v.FunctionDef.docstring); + if (!value) goto failed; + if (_PyObject_SetAttrId(result, &PyId_docstring, value) == -1) + goto failed; + Py_DECREF(value); break; case AsyncFunctionDef_kind: result = PyType_GenericNew(AsyncFunctionDef_type, NULL, NULL); if (!result) goto failed; value = ast2obj_identifier(o->v.AsyncFunctionDef.name); if (!value) goto failed; @@ -2702,12 +2646,17 @@ Py_DECREF(value); value = ast2obj_expr(o->v.AsyncFunctionDef.returns); if (!value) goto failed; if (_PyObject_SetAttrId(result, &PyId_returns, value) == -1) goto failed; Py_DECREF(value); + value = ast2obj_string(o->v.AsyncFunctionDef.docstring); + if (!value) goto failed; + if (_PyObject_SetAttrId(result, &PyId_docstring, value) == -1) + goto failed; + Py_DECREF(value); break; case ClassDef_kind: result = PyType_GenericNew(ClassDef_type, NULL, NULL); if (!result) goto failed; value = ast2obj_identifier(o->v.ClassDef.name); if (!value) goto failed; @@ -2731,12 +2680,17 @@ Py_DECREF(value); value = ast2obj_list(o->v.ClassDef.decorator_list, ast2obj_expr); if (!value) goto failed; if (_PyObject_SetAttrId(result, &PyId_decorator_list, value) == -1) goto failed; Py_DECREF(value); + value = ast2obj_string(o->v.ClassDef.docstring); + if (!value) goto failed; + if (_PyObject_SetAttrId(result, &PyId_docstring, value) == -1) + goto failed; + Py_DECREF(value); break; case Return_kind: result = PyType_GenericNew(Return_type, NULL, NULL); if (!result) goto failed; value = ast2obj_expr(o->v.Return.value); if (!value) goto failed; @@ -3304,27 +3258,18 @@ value = ast2obj_list(o->v.Call.keywords, ast2obj_keyword); if (!value) goto failed; if (_PyObject_SetAttrId(result, &PyId_keywords, value) == -1) goto failed; Py_DECREF(value); break; - case Num_kind: - result = PyType_GenericNew(Num_type, NULL, NULL); + case Lit_kind: + result = PyType_GenericNew(Lit_type, NULL, NULL); if (!result) goto failed; - value = ast2obj_object(o->v.Num.n); - if (!value) goto failed; - if (_PyObject_SetAttrId(result, &PyId_n, value) == -1) - goto failed; - Py_DECREF(value); - break; - case Str_kind: - result = PyType_GenericNew(Str_type, NULL, NULL); - if (!result) goto failed; - value = ast2obj_string(o->v.Str.s); - if (!value) goto failed; - if (_PyObject_SetAttrId(result, &PyId_s, value) == -1) + value = ast2obj_constant(o->v.Lit.v); + if (!value) goto failed; + if (_PyObject_SetAttrId(result, &PyId_v, value) == -1) goto failed; Py_DECREF(value); break; case FormattedValue_kind: result = PyType_GenericNew(FormattedValue_type, NULL, NULL); if (!result) goto failed; @@ -3350,34 +3295,21 @@ value = ast2obj_list(o->v.JoinedStr.values, ast2obj_expr); if (!value) goto failed; if (_PyObject_SetAttrId(result, &PyId_values, value) == -1) goto failed; Py_DECREF(value); break; - case Bytes_kind: - result = PyType_GenericNew(Bytes_type, NULL, NULL); - if (!result) goto failed; - value = ast2obj_bytes(o->v.Bytes.s); - if (!value) goto failed; - if (_PyObject_SetAttrId(result, &PyId_s, value) == -1) - goto failed; - Py_DECREF(value); - break; case NameConstant_kind: result = PyType_GenericNew(NameConstant_type, NULL, NULL); if (!result) goto failed; value = ast2obj_singleton(o->v.NameConstant.value); if (!value) goto failed; if (_PyObject_SetAttrId(result, &PyId_value, value) == -1) goto failed; Py_DECREF(value); break; - case Ellipsis_kind: - result = PyType_GenericNew(Ellipsis_type, NULL, NULL); - if (!result) goto failed; - break; case Constant_kind: result = PyType_GenericNew(Constant_type, NULL, NULL); if (!result) goto failed; value = ast2obj_constant(o->v.Constant.value); if (!value) goto failed; if (_PyObject_SetAttrId(result, &PyId_value, value) == -1) @@ -3971,42 +3903,57 @@ isinstance = PyObject_IsInstance(obj, (PyObject*)Module_type); if (isinstance == -1) { return 1; } if (isinstance) { asdl_seq* body; + string docstring; if (_PyObject_HasAttrId(obj, &PyId_body)) { int res; Py_ssize_t len; Py_ssize_t i; tmp = _PyObject_GetAttrId(obj, &PyId_body); if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "Module field \"body\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - body = _Py_asdl_seq_new(len, arena); - if (body == NULL) goto failed; - for (i = 0; i < len; i++) { - stmt_ty value; - res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + body = NULL; + else { + body = _Py_asdl_seq_new(len, arena); + if (body == NULL) goto failed; + for (i = 0; i < len; i++) { + stmt_ty value; + res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "Module field \"body\" changed size during iteration"); goto failed; } - asdl_seq_SET(body, i, value); + asdl_seq_SET(body, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"body\" missing from Module"); return 1; } - *out = Module(body, arena); + if (exists_not_none(obj, &PyId_docstring)) { + int res; + tmp = _PyObject_GetAttrId(obj, &PyId_docstring); + if (tmp == NULL) goto failed; + res = obj2ast_string(tmp, &docstring, arena); + if (res != 0) goto failed; + Py_CLEAR(tmp); + } else { + docstring = NULL; + } + *out = Module(body, docstring, arena); if (*out == NULL) goto failed; return 0; } isinstance = PyObject_IsInstance(obj, (PyObject*)Interactive_type); if (isinstance == -1) { return 1; @@ -4022,23 +3969,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "Interactive field \"body\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - body = _Py_asdl_seq_new(len, arena); - if (body == NULL) goto failed; - for (i = 0; i < len; i++) { - stmt_ty value; - res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + body = NULL; + else { + body = _Py_asdl_seq_new(len, arena); + if (body == NULL) goto failed; + for (i = 0; i < len; i++) { + stmt_ty value; + res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "Interactive field \"body\" changed size during iteration"); goto failed; } - asdl_seq_SET(body, i, value); + asdl_seq_SET(body, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"body\" missing from Interactive"); return 1; } @@ -4083,23 +4034,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "Suite field \"body\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - body = _Py_asdl_seq_new(len, arena); - if (body == NULL) goto failed; - for (i = 0; i < len; i++) { - stmt_ty value; - res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + body = NULL; + else { + body = _Py_asdl_seq_new(len, arena); + if (body == NULL) goto failed; + for (i = 0; i < len; i++) { + stmt_ty value; + res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "Suite field \"body\" changed size during iteration"); goto failed; } - asdl_seq_SET(body, i, value); + asdl_seq_SET(body, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"body\" missing from Suite"); return 1; } @@ -4156,12 +4111,13 @@ if (isinstance) { identifier name; arguments_ty args; asdl_seq* body; asdl_seq* decorator_list; expr_ty returns; + string docstring; if (_PyObject_HasAttrId(obj, &PyId_name)) { int res; tmp = _PyObject_GetAttrId(obj, &PyId_name); if (tmp == NULL) goto failed; res = obj2ast_identifier(tmp, &name, arena); @@ -4190,23 +4146,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "FunctionDef field \"body\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - body = _Py_asdl_seq_new(len, arena); - if (body == NULL) goto failed; - for (i = 0; i < len; i++) { - stmt_ty value; - res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + body = NULL; + else { + body = _Py_asdl_seq_new(len, arena); + if (body == NULL) goto failed; + for (i = 0; i < len; i++) { + stmt_ty value; + res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "FunctionDef field \"body\" changed size during iteration"); goto failed; } - asdl_seq_SET(body, i, value); + asdl_seq_SET(body, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"body\" missing from FunctionDef"); return 1; } @@ -4218,23 +4178,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "FunctionDef field \"decorator_list\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - decorator_list = _Py_asdl_seq_new(len, arena); - if (decorator_list == NULL) goto failed; - for (i = 0; i < len; i++) { - expr_ty value; - res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + decorator_list = NULL; + else { + decorator_list = _Py_asdl_seq_new(len, arena); + if (decorator_list == NULL) goto failed; + for (i = 0; i < len; i++) { + expr_ty value; + res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "FunctionDef field \"decorator_list\" changed size during iteration"); goto failed; } - asdl_seq_SET(decorator_list, i, value); + asdl_seq_SET(decorator_list, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"decorator_list\" missing from FunctionDef"); return 1; } @@ -4245,14 +4209,24 @@ res = obj2ast_expr(tmp, &returns, arena); if (res != 0) goto failed; Py_CLEAR(tmp); } else { returns = NULL; } - *out = FunctionDef(name, args, body, decorator_list, returns, lineno, - col_offset, arena); + if (exists_not_none(obj, &PyId_docstring)) { + int res; + tmp = _PyObject_GetAttrId(obj, &PyId_docstring); + if (tmp == NULL) goto failed; + res = obj2ast_string(tmp, &docstring, arena); + if (res != 0) goto failed; + Py_CLEAR(tmp); + } else { + docstring = NULL; + } + *out = FunctionDef(name, args, body, decorator_list, returns, + docstring, lineno, col_offset, arena); if (*out == NULL) goto failed; return 0; } isinstance = PyObject_IsInstance(obj, (PyObject*)AsyncFunctionDef_type); if (isinstance == -1) { return 1; @@ -4260,12 +4234,13 @@ if (isinstance) { identifier name; arguments_ty args; asdl_seq* body; asdl_seq* decorator_list; expr_ty returns; + string docstring; if (_PyObject_HasAttrId(obj, &PyId_name)) { int res; tmp = _PyObject_GetAttrId(obj, &PyId_name); if (tmp == NULL) goto failed; res = obj2ast_identifier(tmp, &name, arena); @@ -4294,23 +4269,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "AsyncFunctionDef field \"body\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - body = _Py_asdl_seq_new(len, arena); - if (body == NULL) goto failed; - for (i = 0; i < len; i++) { - stmt_ty value; - res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + body = NULL; + else { + body = _Py_asdl_seq_new(len, arena); + if (body == NULL) goto failed; + for (i = 0; i < len; i++) { + stmt_ty value; + res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "AsyncFunctionDef field \"body\" changed size during iteration"); goto failed; } - asdl_seq_SET(body, i, value); + asdl_seq_SET(body, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"body\" missing from AsyncFunctionDef"); return 1; } @@ -4322,23 +4301,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "AsyncFunctionDef field \"decorator_list\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - decorator_list = _Py_asdl_seq_new(len, arena); - if (decorator_list == NULL) goto failed; - for (i = 0; i < len; i++) { - expr_ty value; - res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + decorator_list = NULL; + else { + decorator_list = _Py_asdl_seq_new(len, arena); + if (decorator_list == NULL) goto failed; + for (i = 0; i < len; i++) { + expr_ty value; + res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "AsyncFunctionDef field \"decorator_list\" changed size during iteration"); goto failed; } - asdl_seq_SET(decorator_list, i, value); + asdl_seq_SET(decorator_list, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"decorator_list\" missing from AsyncFunctionDef"); return 1; } @@ -4349,14 +4332,24 @@ res = obj2ast_expr(tmp, &returns, arena); if (res != 0) goto failed; Py_CLEAR(tmp); } else { returns = NULL; } + if (exists_not_none(obj, &PyId_docstring)) { + int res; + tmp = _PyObject_GetAttrId(obj, &PyId_docstring); + if (tmp == NULL) goto failed; + res = obj2ast_string(tmp, &docstring, arena); + if (res != 0) goto failed; + Py_CLEAR(tmp); + } else { + docstring = NULL; + } *out = AsyncFunctionDef(name, args, body, decorator_list, returns, - lineno, col_offset, arena); + docstring, lineno, col_offset, arena); if (*out == NULL) goto failed; return 0; } isinstance = PyObject_IsInstance(obj, (PyObject*)ClassDef_type); if (isinstance == -1) { return 1; @@ -4364,12 +4357,13 @@ if (isinstance) { identifier name; asdl_seq* bases; asdl_seq* keywords; asdl_seq* body; asdl_seq* decorator_list; + string docstring; if (_PyObject_HasAttrId(obj, &PyId_name)) { int res; tmp = _PyObject_GetAttrId(obj, &PyId_name); if (tmp == NULL) goto failed; res = obj2ast_identifier(tmp, &name, arena); @@ -4387,23 +4381,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "ClassDef field \"bases\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - bases = _Py_asdl_seq_new(len, arena); - if (bases == NULL) goto failed; - for (i = 0; i < len; i++) { - expr_ty value; - res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + bases = NULL; + else { + bases = _Py_asdl_seq_new(len, arena); + if (bases == NULL) goto failed; + for (i = 0; i < len; i++) { + expr_ty value; + res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "ClassDef field \"bases\" changed size during iteration"); goto failed; } - asdl_seq_SET(bases, i, value); + asdl_seq_SET(bases, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"bases\" missing from ClassDef"); return 1; } @@ -4415,23 +4413,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "ClassDef field \"keywords\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - keywords = _Py_asdl_seq_new(len, arena); - if (keywords == NULL) goto failed; - for (i = 0; i < len; i++) { - keyword_ty value; - res = obj2ast_keyword(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + keywords = NULL; + else { + keywords = _Py_asdl_seq_new(len, arena); + if (keywords == NULL) goto failed; + for (i = 0; i < len; i++) { + keyword_ty value; + res = obj2ast_keyword(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "ClassDef field \"keywords\" changed size during iteration"); goto failed; } - asdl_seq_SET(keywords, i, value); + asdl_seq_SET(keywords, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"keywords\" missing from ClassDef"); return 1; } @@ -4443,23 +4445,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "ClassDef field \"body\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - body = _Py_asdl_seq_new(len, arena); - if (body == NULL) goto failed; - for (i = 0; i < len; i++) { - stmt_ty value; - res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + body = NULL; + else { + body = _Py_asdl_seq_new(len, arena); + if (body == NULL) goto failed; + for (i = 0; i < len; i++) { + stmt_ty value; + res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "ClassDef field \"body\" changed size during iteration"); goto failed; } - asdl_seq_SET(body, i, value); + asdl_seq_SET(body, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"body\" missing from ClassDef"); return 1; } @@ -4471,31 +4477,45 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "ClassDef field \"decorator_list\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - decorator_list = _Py_asdl_seq_new(len, arena); - if (decorator_list == NULL) goto failed; - for (i = 0; i < len; i++) { - expr_ty value; - res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + decorator_list = NULL; + else { + decorator_list = _Py_asdl_seq_new(len, arena); + if (decorator_list == NULL) goto failed; + for (i = 0; i < len; i++) { + expr_ty value; + res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "ClassDef field \"decorator_list\" changed size during iteration"); goto failed; } - asdl_seq_SET(decorator_list, i, value); + asdl_seq_SET(decorator_list, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"decorator_list\" missing from ClassDef"); return 1; } - *out = ClassDef(name, bases, keywords, body, decorator_list, lineno, - col_offset, arena); + if (exists_not_none(obj, &PyId_docstring)) { + int res; + tmp = _PyObject_GetAttrId(obj, &PyId_docstring); + if (tmp == NULL) goto failed; + res = obj2ast_string(tmp, &docstring, arena); + if (res != 0) goto failed; + Py_CLEAR(tmp); + } else { + docstring = NULL; + } + *out = ClassDef(name, bases, keywords, body, decorator_list, docstring, + lineno, col_offset, arena); if (*out == NULL) goto failed; return 0; } isinstance = PyObject_IsInstance(obj, (PyObject*)Return_type); if (isinstance == -1) { return 1; @@ -4532,23 +4552,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "Delete field \"targets\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - targets = _Py_asdl_seq_new(len, arena); - if (targets == NULL) goto failed; - for (i = 0; i < len; i++) { - expr_ty value; - res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + targets = NULL; + else { + targets = _Py_asdl_seq_new(len, arena); + if (targets == NULL) goto failed; + for (i = 0; i < len; i++) { + expr_ty value; + res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "Delete field \"targets\" changed size during iteration"); goto failed; } - asdl_seq_SET(targets, i, value); + asdl_seq_SET(targets, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"targets\" missing from Delete"); return 1; } @@ -4572,23 +4596,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "Assign field \"targets\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - targets = _Py_asdl_seq_new(len, arena); - if (targets == NULL) goto failed; - for (i = 0; i < len; i++) { - expr_ty value; - res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + targets = NULL; + else { + targets = _Py_asdl_seq_new(len, arena); + if (targets == NULL) goto failed; + for (i = 0; i < len; i++) { + expr_ty value; + res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "Assign field \"targets\" changed size during iteration"); goto failed; } - asdl_seq_SET(targets, i, value); + asdl_seq_SET(targets, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"targets\" missing from Assign"); return 1; } @@ -4751,23 +4779,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "For field \"body\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - body = _Py_asdl_seq_new(len, arena); - if (body == NULL) goto failed; - for (i = 0; i < len; i++) { - stmt_ty value; - res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + body = NULL; + else { + body = _Py_asdl_seq_new(len, arena); + if (body == NULL) goto failed; + for (i = 0; i < len; i++) { + stmt_ty value; + res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "For field \"body\" changed size during iteration"); goto failed; } - asdl_seq_SET(body, i, value); + asdl_seq_SET(body, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"body\" missing from For"); return 1; } @@ -4779,23 +4811,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "For field \"orelse\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - orelse = _Py_asdl_seq_new(len, arena); - if (orelse == NULL) goto failed; - for (i = 0; i < len; i++) { - stmt_ty value; - res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + orelse = NULL; + else { + orelse = _Py_asdl_seq_new(len, arena); + if (orelse == NULL) goto failed; + for (i = 0; i < len; i++) { + stmt_ty value; + res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "For field \"orelse\" changed size during iteration"); goto failed; } - asdl_seq_SET(orelse, i, value); + asdl_seq_SET(orelse, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"orelse\" missing from For"); return 1; } @@ -4843,23 +4879,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "AsyncFor field \"body\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - body = _Py_asdl_seq_new(len, arena); - if (body == NULL) goto failed; - for (i = 0; i < len; i++) { - stmt_ty value; - res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + body = NULL; + else { + body = _Py_asdl_seq_new(len, arena); + if (body == NULL) goto failed; + for (i = 0; i < len; i++) { + stmt_ty value; + res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "AsyncFor field \"body\" changed size during iteration"); goto failed; } - asdl_seq_SET(body, i, value); + asdl_seq_SET(body, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"body\" missing from AsyncFor"); return 1; } @@ -4871,23 +4911,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "AsyncFor field \"orelse\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - orelse = _Py_asdl_seq_new(len, arena); - if (orelse == NULL) goto failed; - for (i = 0; i < len; i++) { - stmt_ty value; - res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + orelse = NULL; + else { + orelse = _Py_asdl_seq_new(len, arena); + if (orelse == NULL) goto failed; + for (i = 0; i < len; i++) { + stmt_ty value; + res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "AsyncFor field \"orelse\" changed size during iteration"); goto failed; } - asdl_seq_SET(orelse, i, value); + asdl_seq_SET(orelse, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"orelse\" missing from AsyncFor"); return 1; } @@ -4923,23 +4967,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "While field \"body\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - body = _Py_asdl_seq_new(len, arena); - if (body == NULL) goto failed; - for (i = 0; i < len; i++) { - stmt_ty value; - res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + body = NULL; + else { + body = _Py_asdl_seq_new(len, arena); + if (body == NULL) goto failed; + for (i = 0; i < len; i++) { + stmt_ty value; + res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "While field \"body\" changed size during iteration"); goto failed; } - asdl_seq_SET(body, i, value); + asdl_seq_SET(body, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"body\" missing from While"); return 1; } @@ -4951,23 +4999,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "While field \"orelse\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - orelse = _Py_asdl_seq_new(len, arena); - if (orelse == NULL) goto failed; - for (i = 0; i < len; i++) { - stmt_ty value; - res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + orelse = NULL; + else { + orelse = _Py_asdl_seq_new(len, arena); + if (orelse == NULL) goto failed; + for (i = 0; i < len; i++) { + stmt_ty value; + res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "While field \"orelse\" changed size during iteration"); goto failed; } - asdl_seq_SET(orelse, i, value); + asdl_seq_SET(orelse, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"orelse\" missing from While"); return 1; } @@ -5003,23 +5055,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "If field \"body\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - body = _Py_asdl_seq_new(len, arena); - if (body == NULL) goto failed; - for (i = 0; i < len; i++) { - stmt_ty value; - res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + body = NULL; + else { + body = _Py_asdl_seq_new(len, arena); + if (body == NULL) goto failed; + for (i = 0; i < len; i++) { + stmt_ty value; + res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "If field \"body\" changed size during iteration"); goto failed; } - asdl_seq_SET(body, i, value); + asdl_seq_SET(body, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"body\" missing from If"); return 1; } @@ -5031,23 +5087,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "If field \"orelse\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - orelse = _Py_asdl_seq_new(len, arena); - if (orelse == NULL) goto failed; - for (i = 0; i < len; i++) { - stmt_ty value; - res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + orelse = NULL; + else { + orelse = _Py_asdl_seq_new(len, arena); + if (orelse == NULL) goto failed; + for (i = 0; i < len; i++) { + stmt_ty value; + res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "If field \"orelse\" changed size during iteration"); goto failed; } - asdl_seq_SET(orelse, i, value); + asdl_seq_SET(orelse, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"orelse\" missing from If"); return 1; } @@ -5071,23 +5131,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "With field \"items\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - items = _Py_asdl_seq_new(len, arena); - if (items == NULL) goto failed; - for (i = 0; i < len; i++) { - withitem_ty value; - res = obj2ast_withitem(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + items = NULL; + else { + items = _Py_asdl_seq_new(len, arena); + if (items == NULL) goto failed; + for (i = 0; i < len; i++) { + withitem_ty value; + res = obj2ast_withitem(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "With field \"items\" changed size during iteration"); goto failed; } - asdl_seq_SET(items, i, value); + asdl_seq_SET(items, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"items\" missing from With"); return 1; } @@ -5099,23 +5163,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "With field \"body\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - body = _Py_asdl_seq_new(len, arena); - if (body == NULL) goto failed; - for (i = 0; i < len; i++) { - stmt_ty value; - res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + body = NULL; + else { + body = _Py_asdl_seq_new(len, arena); + if (body == NULL) goto failed; + for (i = 0; i < len; i++) { + stmt_ty value; + res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "With field \"body\" changed size during iteration"); goto failed; } - asdl_seq_SET(body, i, value); + asdl_seq_SET(body, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"body\" missing from With"); return 1; } @@ -5139,23 +5207,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "AsyncWith field \"items\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - items = _Py_asdl_seq_new(len, arena); - if (items == NULL) goto failed; - for (i = 0; i < len; i++) { - withitem_ty value; - res = obj2ast_withitem(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + items = NULL; + else { + items = _Py_asdl_seq_new(len, arena); + if (items == NULL) goto failed; + for (i = 0; i < len; i++) { + withitem_ty value; + res = obj2ast_withitem(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "AsyncWith field \"items\" changed size during iteration"); goto failed; } - asdl_seq_SET(items, i, value); + asdl_seq_SET(items, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"items\" missing from AsyncWith"); return 1; } @@ -5167,23 +5239,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "AsyncWith field \"body\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - body = _Py_asdl_seq_new(len, arena); - if (body == NULL) goto failed; - for (i = 0; i < len; i++) { - stmt_ty value; - res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + body = NULL; + else { + body = _Py_asdl_seq_new(len, arena); + if (body == NULL) goto failed; + for (i = 0; i < len; i++) { + stmt_ty value; + res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "AsyncWith field \"body\" changed size during iteration"); goto failed; } - asdl_seq_SET(body, i, value); + asdl_seq_SET(body, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"body\" missing from AsyncWith"); return 1; } @@ -5241,23 +5317,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "Try field \"body\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - body = _Py_asdl_seq_new(len, arena); - if (body == NULL) goto failed; - for (i = 0; i < len; i++) { - stmt_ty value; - res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + body = NULL; + else { + body = _Py_asdl_seq_new(len, arena); + if (body == NULL) goto failed; + for (i = 0; i < len; i++) { + stmt_ty value; + res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "Try field \"body\" changed size during iteration"); goto failed; } - asdl_seq_SET(body, i, value); + asdl_seq_SET(body, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"body\" missing from Try"); return 1; } @@ -5269,23 +5349,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "Try field \"handlers\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - handlers = _Py_asdl_seq_new(len, arena); - if (handlers == NULL) goto failed; - for (i = 0; i < len; i++) { - excepthandler_ty value; - res = obj2ast_excepthandler(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + handlers = NULL; + else { + handlers = _Py_asdl_seq_new(len, arena); + if (handlers == NULL) goto failed; + for (i = 0; i < len; i++) { + excepthandler_ty value; + res = obj2ast_excepthandler(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "Try field \"handlers\" changed size during iteration"); goto failed; } - asdl_seq_SET(handlers, i, value); + asdl_seq_SET(handlers, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"handlers\" missing from Try"); return 1; } @@ -5297,23 +5381,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "Try field \"orelse\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - orelse = _Py_asdl_seq_new(len, arena); - if (orelse == NULL) goto failed; - for (i = 0; i < len; i++) { - stmt_ty value; - res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + orelse = NULL; + else { + orelse = _Py_asdl_seq_new(len, arena); + if (orelse == NULL) goto failed; + for (i = 0; i < len; i++) { + stmt_ty value; + res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "Try field \"orelse\" changed size during iteration"); goto failed; } - asdl_seq_SET(orelse, i, value); + asdl_seq_SET(orelse, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"orelse\" missing from Try"); return 1; } @@ -5325,23 +5413,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "Try field \"finalbody\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - finalbody = _Py_asdl_seq_new(len, arena); - if (finalbody == NULL) goto failed; - for (i = 0; i < len; i++) { - stmt_ty value; - res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + finalbody = NULL; + else { + finalbody = _Py_asdl_seq_new(len, arena); + if (finalbody == NULL) goto failed; + for (i = 0; i < len; i++) { + stmt_ty value; + res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "Try field \"finalbody\" changed size during iteration"); goto failed; } - asdl_seq_SET(finalbody, i, value); + asdl_seq_SET(finalbody, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"finalbody\" missing from Try"); return 1; } @@ -5398,23 +5490,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "Import field \"names\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - names = _Py_asdl_seq_new(len, arena); - if (names == NULL) goto failed; - for (i = 0; i < len; i++) { - alias_ty value; - res = obj2ast_alias(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + names = NULL; + else { + names = _Py_asdl_seq_new(len, arena); + if (names == NULL) goto failed; + for (i = 0; i < len; i++) { + alias_ty value; + res = obj2ast_alias(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "Import field \"names\" changed size during iteration"); goto failed; } - asdl_seq_SET(names, i, value); + asdl_seq_SET(names, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"names\" missing from Import"); return 1; } @@ -5449,23 +5545,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "ImportFrom field \"names\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - names = _Py_asdl_seq_new(len, arena); - if (names == NULL) goto failed; - for (i = 0; i < len; i++) { - alias_ty value; - res = obj2ast_alias(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + names = NULL; + else { + names = _Py_asdl_seq_new(len, arena); + if (names == NULL) goto failed; + for (i = 0; i < len; i++) { + alias_ty value; + res = obj2ast_alias(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "ImportFrom field \"names\" changed size during iteration"); goto failed; } - asdl_seq_SET(names, i, value); + asdl_seq_SET(names, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"names\" missing from ImportFrom"); return 1; } @@ -5498,23 +5598,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "Global field \"names\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - names = _Py_asdl_seq_new(len, arena); - if (names == NULL) goto failed; - for (i = 0; i < len; i++) { - identifier value; - res = obj2ast_identifier(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + names = NULL; + else { + names = _Py_asdl_seq_new(len, arena); + if (names == NULL) goto failed; + for (i = 0; i < len; i++) { + identifier value; + res = obj2ast_identifier(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "Global field \"names\" changed size during iteration"); goto failed; } - asdl_seq_SET(names, i, value); + asdl_seq_SET(names, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"names\" missing from Global"); return 1; } @@ -5537,23 +5641,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "Nonlocal field \"names\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - names = _Py_asdl_seq_new(len, arena); - if (names == NULL) goto failed; - for (i = 0; i < len; i++) { - identifier value; - res = obj2ast_identifier(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + names = NULL; + else { + names = _Py_asdl_seq_new(len, arena); + if (names == NULL) goto failed; + for (i = 0; i < len; i++) { + identifier value; + res = obj2ast_identifier(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "Nonlocal field \"names\" changed size during iteration"); goto failed; } - asdl_seq_SET(names, i, value); + asdl_seq_SET(names, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"names\" missing from Nonlocal"); return 1; } @@ -5682,23 +5790,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "BoolOp field \"values\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - values = _Py_asdl_seq_new(len, arena); - if (values == NULL) goto failed; - for (i = 0; i < len; i++) { - expr_ty value; - res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + values = NULL; + else { + values = _Py_asdl_seq_new(len, arena); + if (values == NULL) goto failed; + for (i = 0; i < len; i++) { + expr_ty value; + res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "BoolOp field \"values\" changed size during iteration"); goto failed; } - asdl_seq_SET(values, i, value); + asdl_seq_SET(values, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"values\" missing from BoolOp"); return 1; } @@ -5882,23 +5994,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "Dict field \"keys\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - keys = _Py_asdl_seq_new(len, arena); - if (keys == NULL) goto failed; - for (i = 0; i < len; i++) { - expr_ty value; - res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + keys = NULL; + else { + keys = _Py_asdl_seq_new(len, arena); + if (keys == NULL) goto failed; + for (i = 0; i < len; i++) { + expr_ty value; + res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "Dict field \"keys\" changed size during iteration"); goto failed; } - asdl_seq_SET(keys, i, value); + asdl_seq_SET(keys, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"keys\" missing from Dict"); return 1; } @@ -5910,23 +6026,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "Dict field \"values\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - values = _Py_asdl_seq_new(len, arena); - if (values == NULL) goto failed; - for (i = 0; i < len; i++) { - expr_ty value; - res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + values = NULL; + else { + values = _Py_asdl_seq_new(len, arena); + if (values == NULL) goto failed; + for (i = 0; i < len; i++) { + expr_ty value; + res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "Dict field \"values\" changed size during iteration"); goto failed; } - asdl_seq_SET(values, i, value); + asdl_seq_SET(values, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"values\" missing from Dict"); return 1; } @@ -5949,23 +6069,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "Set field \"elts\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - elts = _Py_asdl_seq_new(len, arena); - if (elts == NULL) goto failed; - for (i = 0; i < len; i++) { - expr_ty value; - res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + elts = NULL; + else { + elts = _Py_asdl_seq_new(len, arena); + if (elts == NULL) goto failed; + for (i = 0; i < len; i++) { + expr_ty value; + res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "Set field \"elts\" changed size during iteration"); goto failed; } - asdl_seq_SET(elts, i, value); + asdl_seq_SET(elts, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"elts\" missing from Set"); return 1; } @@ -6000,23 +6124,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "ListComp field \"generators\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - generators = _Py_asdl_seq_new(len, arena); - if (generators == NULL) goto failed; - for (i = 0; i < len; i++) { - comprehension_ty value; - res = obj2ast_comprehension(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + generators = NULL; + else { + generators = _Py_asdl_seq_new(len, arena); + if (generators == NULL) goto failed; + for (i = 0; i < len; i++) { + comprehension_ty value; + res = obj2ast_comprehension(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "ListComp field \"generators\" changed size during iteration"); goto failed; } - asdl_seq_SET(generators, i, value); + asdl_seq_SET(generators, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"generators\" missing from ListComp"); return 1; } @@ -6051,23 +6179,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "SetComp field \"generators\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - generators = _Py_asdl_seq_new(len, arena); - if (generators == NULL) goto failed; - for (i = 0; i < len; i++) { - comprehension_ty value; - res = obj2ast_comprehension(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + generators = NULL; + else { + generators = _Py_asdl_seq_new(len, arena); + if (generators == NULL) goto failed; + for (i = 0; i < len; i++) { + comprehension_ty value; + res = obj2ast_comprehension(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "SetComp field \"generators\" changed size during iteration"); goto failed; } - asdl_seq_SET(generators, i, value); + asdl_seq_SET(generators, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"generators\" missing from SetComp"); return 1; } @@ -6114,23 +6246,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "DictComp field \"generators\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - generators = _Py_asdl_seq_new(len, arena); - if (generators == NULL) goto failed; - for (i = 0; i < len; i++) { - comprehension_ty value; - res = obj2ast_comprehension(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + generators = NULL; + else { + generators = _Py_asdl_seq_new(len, arena); + if (generators == NULL) goto failed; + for (i = 0; i < len; i++) { + comprehension_ty value; + res = obj2ast_comprehension(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "DictComp field \"generators\" changed size during iteration"); goto failed; } - asdl_seq_SET(generators, i, value); + asdl_seq_SET(generators, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"generators\" missing from DictComp"); return 1; } @@ -6165,23 +6301,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "GeneratorExp field \"generators\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - generators = _Py_asdl_seq_new(len, arena); - if (generators == NULL) goto failed; - for (i = 0; i < len; i++) { - comprehension_ty value; - res = obj2ast_comprehension(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + generators = NULL; + else { + generators = _Py_asdl_seq_new(len, arena); + if (generators == NULL) goto failed; + for (i = 0; i < len; i++) { + comprehension_ty value; + res = obj2ast_comprehension(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "GeneratorExp field \"generators\" changed size during iteration"); goto failed; } - asdl_seq_SET(generators, i, value); + asdl_seq_SET(generators, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"generators\" missing from GeneratorExp"); return 1; } @@ -6282,23 +6422,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "Compare field \"ops\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - ops = _Py_asdl_int_seq_new(len, arena); - if (ops == NULL) goto failed; - for (i = 0; i < len; i++) { - cmpop_ty value; - res = obj2ast_cmpop(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + ops = NULL; + else { + ops = _Py_asdl_int_seq_new(len, arena); + if (ops == NULL) goto failed; + for (i = 0; i < len; i++) { + cmpop_ty value; + res = obj2ast_cmpop(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "Compare field \"ops\" changed size during iteration"); goto failed; } - asdl_seq_SET(ops, i, value); + asdl_seq_SET(ops, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"ops\" missing from Compare"); return 1; } @@ -6310,23 +6454,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "Compare field \"comparators\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - comparators = _Py_asdl_seq_new(len, arena); - if (comparators == NULL) goto failed; - for (i = 0; i < len; i++) { - expr_ty value; - res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + comparators = NULL; + else { + comparators = _Py_asdl_seq_new(len, arena); + if (comparators == NULL) goto failed; + for (i = 0; i < len; i++) { + expr_ty value; + res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "Compare field \"comparators\" changed size during iteration"); goto failed; } - asdl_seq_SET(comparators, i, value); + asdl_seq_SET(comparators, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"comparators\" missing from Compare"); return 1; } @@ -6362,23 +6510,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "Call field \"args\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - args = _Py_asdl_seq_new(len, arena); - if (args == NULL) goto failed; - for (i = 0; i < len; i++) { - expr_ty value; - res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + args = NULL; + else { + args = _Py_asdl_seq_new(len, arena); + if (args == NULL) goto failed; + for (i = 0; i < len; i++) { + expr_ty value; + res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "Call field \"args\" changed size during iteration"); goto failed; } - asdl_seq_SET(args, i, value); + asdl_seq_SET(args, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"args\" missing from Call"); return 1; } @@ -6390,74 +6542,56 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "Call field \"keywords\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - keywords = _Py_asdl_seq_new(len, arena); - if (keywords == NULL) goto failed; - for (i = 0; i < len; i++) { - keyword_ty value; - res = obj2ast_keyword(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + keywords = NULL; + else { + keywords = _Py_asdl_seq_new(len, arena); + if (keywords == NULL) goto failed; + for (i = 0; i < len; i++) { + keyword_ty value; + res = obj2ast_keyword(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "Call field \"keywords\" changed size during iteration"); goto failed; } - asdl_seq_SET(keywords, i, value); + asdl_seq_SET(keywords, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"keywords\" missing from Call"); return 1; } *out = Call(func, args, keywords, lineno, col_offset, arena); if (*out == NULL) goto failed; return 0; } - isinstance = PyObject_IsInstance(obj, (PyObject*)Num_type); + isinstance = PyObject_IsInstance(obj, (PyObject*)Lit_type); if (isinstance == -1) { return 1; } if (isinstance) { - object n; - - if (_PyObject_HasAttrId(obj, &PyId_n)) { - int res; - tmp = _PyObject_GetAttrId(obj, &PyId_n); - if (tmp == NULL) goto failed; - res = obj2ast_object(tmp, &n, arena); + constant v; + + if (_PyObject_HasAttrId(obj, &PyId_v)) { + int res; + tmp = _PyObject_GetAttrId(obj, &PyId_v); + if (tmp == NULL) goto failed; + res = obj2ast_constant(tmp, &v, arena); if (res != 0) goto failed; Py_CLEAR(tmp); } else { - PyErr_SetString(PyExc_TypeError, "required field \"n\" missing from Num"); + PyErr_SetString(PyExc_TypeError, "required field \"v\" missing from Lit"); return 1; } - *out = Num(n, lineno, col_offset, arena); - if (*out == NULL) goto failed; - return 0; - } - isinstance = PyObject_IsInstance(obj, (PyObject*)Str_type); - if (isinstance == -1) { - return 1; - } - if (isinstance) { - string s; - - if (_PyObject_HasAttrId(obj, &PyId_s)) { - int res; - tmp = _PyObject_GetAttrId(obj, &PyId_s); - if (tmp == NULL) goto failed; - res = obj2ast_string(tmp, &s, arena); - if (res != 0) goto failed; - Py_CLEAR(tmp); - } else { - PyErr_SetString(PyExc_TypeError, "required field \"s\" missing from Str"); - return 1; - } - *out = Str(s, lineno, col_offset, arena); + *out = Lit(v, lineno, col_offset, arena); if (*out == NULL) goto failed; return 0; } isinstance = PyObject_IsInstance(obj, (PyObject*)FormattedValue_type); if (isinstance == -1) { return 1; @@ -6518,55 +6652,37 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "JoinedStr field \"values\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - values = _Py_asdl_seq_new(len, arena); - if (values == NULL) goto failed; - for (i = 0; i < len; i++) { - expr_ty value; - res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + values = NULL; + else { + values = _Py_asdl_seq_new(len, arena); + if (values == NULL) goto failed; + for (i = 0; i < len; i++) { + expr_ty value; + res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "JoinedStr field \"values\" changed size during iteration"); goto failed; } - asdl_seq_SET(values, i, value); + asdl_seq_SET(values, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"values\" missing from JoinedStr"); return 1; } *out = JoinedStr(values, lineno, col_offset, arena); if (*out == NULL) goto failed; return 0; } - isinstance = PyObject_IsInstance(obj, (PyObject*)Bytes_type); - if (isinstance == -1) { - return 1; - } - if (isinstance) { - bytes s; - - if (_PyObject_HasAttrId(obj, &PyId_s)) { - int res; - tmp = _PyObject_GetAttrId(obj, &PyId_s); - if (tmp == NULL) goto failed; - res = obj2ast_bytes(tmp, &s, arena); - if (res != 0) goto failed; - Py_CLEAR(tmp); - } else { - PyErr_SetString(PyExc_TypeError, "required field \"s\" missing from Bytes"); - return 1; - } - *out = Bytes(s, lineno, col_offset, arena); - if (*out == NULL) goto failed; - return 0; - } isinstance = PyObject_IsInstance(obj, (PyObject*)NameConstant_type); if (isinstance == -1) { return 1; } if (isinstance) { singleton value; @@ -6583,22 +6699,12 @@ return 1; } *out = NameConstant(value, lineno, col_offset, arena); if (*out == NULL) goto failed; return 0; } - isinstance = PyObject_IsInstance(obj, (PyObject*)Ellipsis_type); - if (isinstance == -1) { - return 1; - } - if (isinstance) { - - *out = Ellipsis(lineno, col_offset, arena); - if (*out == NULL) goto failed; - return 0; - } isinstance = PyObject_IsInstance(obj, (PyObject*)Constant_type); if (isinstance == -1) { return 1; } if (isinstance) { constant value; @@ -6794,23 +6900,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "List field \"elts\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - elts = _Py_asdl_seq_new(len, arena); - if (elts == NULL) goto failed; - for (i = 0; i < len; i++) { - expr_ty value; - res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + elts = NULL; + else { + elts = _Py_asdl_seq_new(len, arena); + if (elts == NULL) goto failed; + for (i = 0; i < len; i++) { + expr_ty value; + res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "List field \"elts\" changed size during iteration"); goto failed; } - asdl_seq_SET(elts, i, value); + asdl_seq_SET(elts, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"elts\" missing from List"); return 1; } @@ -6845,23 +6955,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "Tuple field \"elts\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - elts = _Py_asdl_seq_new(len, arena); - if (elts == NULL) goto failed; - for (i = 0; i < len; i++) { - expr_ty value; - res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + elts = NULL; + else { + elts = _Py_asdl_seq_new(len, arena); + if (elts == NULL) goto failed; + for (i = 0; i < len; i++) { + expr_ty value; + res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "Tuple field \"elts\" changed size during iteration"); goto failed; } - asdl_seq_SET(elts, i, value); + asdl_seq_SET(elts, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"elts\" missing from Tuple"); return 1; } @@ -7014,23 +7128,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "ExtSlice field \"dims\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - dims = _Py_asdl_seq_new(len, arena); - if (dims == NULL) goto failed; - for (i = 0; i < len; i++) { - slice_ty value; - res = obj2ast_slice(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + dims = NULL; + else { + dims = _Py_asdl_seq_new(len, arena); + if (dims == NULL) goto failed; + for (i = 0; i < len; i++) { + slice_ty value; + res = obj2ast_slice(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "ExtSlice field \"dims\" changed size during iteration"); goto failed; } - asdl_seq_SET(dims, i, value); + asdl_seq_SET(dims, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"dims\" missing from ExtSlice"); return 1; } @@ -7378,23 +7496,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "comprehension field \"ifs\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - ifs = _Py_asdl_seq_new(len, arena); - if (ifs == NULL) goto failed; - for (i = 0; i < len; i++) { - expr_ty value; - res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + ifs = NULL; + else { + ifs = _Py_asdl_seq_new(len, arena); + if (ifs == NULL) goto failed; + for (i = 0; i < len; i++) { + expr_ty value; + res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "comprehension field \"ifs\" changed size during iteration"); goto failed; } - asdl_seq_SET(ifs, i, value); + asdl_seq_SET(ifs, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"ifs\" missing from comprehension"); return 1; } @@ -7488,23 +7610,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "ExceptHandler field \"body\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - body = _Py_asdl_seq_new(len, arena); - if (body == NULL) goto failed; - for (i = 0; i < len; i++) { - stmt_ty value; - res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + body = NULL; + else { + body = _Py_asdl_seq_new(len, arena); + if (body == NULL) goto failed; + for (i = 0; i < len; i++) { + stmt_ty value; + res = obj2ast_stmt(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "ExceptHandler field \"body\" changed size during iteration"); goto failed; } - asdl_seq_SET(body, i, value); + asdl_seq_SET(body, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"body\" missing from ExceptHandler"); return 1; } @@ -7538,23 +7664,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "arguments field \"args\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - args = _Py_asdl_seq_new(len, arena); - if (args == NULL) goto failed; - for (i = 0; i < len; i++) { - arg_ty value; - res = obj2ast_arg(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + args = NULL; + else { + args = _Py_asdl_seq_new(len, arena); + if (args == NULL) goto failed; + for (i = 0; i < len; i++) { + arg_ty value; + res = obj2ast_arg(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "arguments field \"args\" changed size during iteration"); goto failed; } - asdl_seq_SET(args, i, value); + asdl_seq_SET(args, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"args\" missing from arguments"); return 1; } @@ -7576,23 +7706,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "arguments field \"kwonlyargs\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - kwonlyargs = _Py_asdl_seq_new(len, arena); - if (kwonlyargs == NULL) goto failed; - for (i = 0; i < len; i++) { - arg_ty value; - res = obj2ast_arg(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + kwonlyargs = NULL; + else { + kwonlyargs = _Py_asdl_seq_new(len, arena); + if (kwonlyargs == NULL) goto failed; + for (i = 0; i < len; i++) { + arg_ty value; + res = obj2ast_arg(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "arguments field \"kwonlyargs\" changed size during iteration"); goto failed; } - asdl_seq_SET(kwonlyargs, i, value); + asdl_seq_SET(kwonlyargs, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"kwonlyargs\" missing from arguments"); return 1; } @@ -7604,23 +7738,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "arguments field \"kw_defaults\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - kw_defaults = _Py_asdl_seq_new(len, arena); - if (kw_defaults == NULL) goto failed; - for (i = 0; i < len; i++) { - expr_ty value; - res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + kw_defaults = NULL; + else { + kw_defaults = _Py_asdl_seq_new(len, arena); + if (kw_defaults == NULL) goto failed; + for (i = 0; i < len; i++) { + expr_ty value; + res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "arguments field \"kw_defaults\" changed size during iteration"); goto failed; } - asdl_seq_SET(kw_defaults, i, value); + asdl_seq_SET(kw_defaults, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"kw_defaults\" missing from arguments"); return 1; } @@ -7642,23 +7780,27 @@ if (tmp == NULL) goto failed; if (!PyList_Check(tmp)) { PyErr_Format(PyExc_TypeError, "arguments field \"defaults\" must be a list, not a %.200s", tmp->ob_type->tp_name); goto failed; } len = PyList_GET_SIZE(tmp); - defaults = _Py_asdl_seq_new(len, arena); - if (defaults == NULL) goto failed; - for (i = 0; i < len; i++) { - expr_ty value; - res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); - if (res != 0) goto failed; + if (len == 0) + defaults = NULL; + else { + defaults = _Py_asdl_seq_new(len, arena); + if (defaults == NULL) goto failed; + for (i = 0; i < len; i++) { + expr_ty value; + res = obj2ast_expr(PyList_GET_ITEM(tmp, i), &value, arena); + if (res != 0) goto failed; if (len != PyList_GET_SIZE(tmp)) { PyErr_SetString(PyExc_RuntimeError, "arguments field \"defaults\" changed size during iteration"); goto failed; } - asdl_seq_SET(defaults, i, value); + asdl_seq_SET(defaults, i, value); + } } Py_CLEAR(tmp); } else { PyErr_SetString(PyExc_TypeError, "required field \"defaults\" missing from arguments"); return 1; } @@ -7930,24 +8072,19 @@ NULL; if (PyDict_SetItemString(d, "YieldFrom", (PyObject*)YieldFrom_type) < 0) return NULL; if (PyDict_SetItemString(d, "Compare", (PyObject*)Compare_type) < 0) return NULL; if (PyDict_SetItemString(d, "Call", (PyObject*)Call_type) < 0) return NULL; - if (PyDict_SetItemString(d, "Num", (PyObject*)Num_type) < 0) return NULL; - if (PyDict_SetItemString(d, "Str", (PyObject*)Str_type) < 0) return NULL; + if (PyDict_SetItemString(d, "Lit", (PyObject*)Lit_type) < 0) return NULL; if (PyDict_SetItemString(d, "FormattedValue", (PyObject*)FormattedValue_type) < 0) return NULL; if (PyDict_SetItemString(d, "JoinedStr", (PyObject*)JoinedStr_type) < 0) return NULL; - if (PyDict_SetItemString(d, "Bytes", (PyObject*)Bytes_type) < 0) return - NULL; if (PyDict_SetItemString(d, "NameConstant", (PyObject*)NameConstant_type) < 0) return NULL; - if (PyDict_SetItemString(d, "Ellipsis", (PyObject*)Ellipsis_type) < 0) - return NULL; if (PyDict_SetItemString(d, "Constant", (PyObject*)Constant_type) < 0) return NULL; if (PyDict_SetItemString(d, "Attribute", (PyObject*)Attribute_type) < 0) return NULL; if (PyDict_SetItemString(d, "Subscript", (PyObject*)Subscript_type) < 0) return NULL; diff -r 09d4d47ad210 Python/ast.c --- a/Python/ast.c Tue Jan 31 13:53:39 2017 +0100 +++ b/Python/ast.c Wed Feb 01 01:56:27 2017 +0900 @@ -283,53 +283,35 @@ return validate_exprs(exp->v.Compare.comparators, Load, 0) && validate_expr(exp->v.Compare.left, Load); case Call_kind: return validate_expr(exp->v.Call.func, Load) && validate_exprs(exp->v.Call.args, Load, 0) && validate_keywords(exp->v.Call.keywords); + case Lit_kind: + if (!validate_constant(exp->v.Lit.v)) { + PyErr_Format(PyExc_TypeError, + "got an invalid type in Literal: %s", + Py_TYPE(exp->v.Lit.v)->tp_name); + return 0; + } case Constant_kind: if (!validate_constant(exp->v.Constant.value)) { PyErr_Format(PyExc_TypeError, "got an invalid type in Constant: %s", Py_TYPE(exp->v.Constant.value)->tp_name); return 0; } return 1; - case Num_kind: { - PyObject *n = exp->v.Num.n; - if (!PyLong_CheckExact(n) && !PyFloat_CheckExact(n) && - !PyComplex_CheckExact(n)) { - PyErr_SetString(PyExc_TypeError, "non-numeric type in Num"); - return 0; - } - return 1; - } - case Str_kind: { - PyObject *s = exp->v.Str.s; - if (!PyUnicode_CheckExact(s)) { - PyErr_SetString(PyExc_TypeError, "non-string type in Str"); - return 0; - } - return 1; - } case JoinedStr_kind: return validate_exprs(exp->v.JoinedStr.values, Load, 0); case FormattedValue_kind: if (validate_expr(exp->v.FormattedValue.value, Load) == 0) return 0; if (exp->v.FormattedValue.format_spec) return validate_expr(exp->v.FormattedValue.format_spec, Load); return 1; - case Bytes_kind: { - PyObject *b = exp->v.Bytes.s; - if (!PyBytes_CheckExact(b)) { - PyErr_SetString(PyExc_TypeError, "non-bytes type in Bytes"); - return 0; - } - return 1; - } case Attribute_kind: return validate_expr(exp->v.Attribute.value, Load); case Subscript_kind: return validate_slice(exp->v.Subscript.slice) && validate_expr(exp->v.Subscript.value, Load); case Starred_kind: @@ -338,13 +320,12 @@ return validate_exprs(exp->v.List.elts, ctx, 0); case Tuple_kind: return validate_exprs(exp->v.Tuple.elts, ctx, 0); /* These last cases don't have any checking. */ case Name_kind: case NameConstant_kind: - case Ellipsis_kind: return 1; default: PyErr_SetString(PyExc_SystemError, "unexpected expression"); return 0; } } @@ -591,13 +572,15 @@ PyObject *c_normalize_args; /* Normalization argument tuple. */ }; static asdl_seq *seq_for_testlist(struct compiling *, const node *); static expr_ty ast_for_expr(struct compiling *, const node *); static stmt_ty ast_for_stmt(struct compiling *, const node *); -static asdl_seq *ast_for_suite(struct compiling *, const node *); +static asdl_seq *ast_for_body(struct compiling *c, const node *n, + string *docstring); +static string docstring_from_stmts(asdl_seq *stmts); static asdl_seq *ast_for_exprlist(struct compiling *, const node *, expr_context_ty); static expr_ty ast_for_testlist(struct compiling *, const node *); static stmt_ty ast_for_classdef(struct compiling *, const node *, asdl_seq *); static stmt_ty ast_for_with_stmt(struct compiling *, const node *, int); @@ -803,13 +786,13 @@ if (!s) goto out; asdl_seq_SET(stmts, k++, s); } } } - res = Module(stmts, arena); + res = Module(stmts, docstring_from_stmts(stmts), arena); break; case eval_input: { expr_ty testlist_ast; /* XXX Why not comp_for here? */ testlist_ast = ast_for_testlist(&c, CHILD(n, 0)); @@ -926,12 +909,18 @@ "None", "True", "False", NULL, }; +static PyObject* FORBIDDEN_VALUES[] = { + Py_None, + Py_True, + Py_False +}; + static int forbidden_name(struct compiling *c, identifier name, const node *n, int full_checks) { assert(PyUnicode_Check(name)); if (_PyUnicode_EqualToASCIIString(name, "__debug__")) { @@ -969,12 +958,30 @@ } } } return 0; } +static int +make_name_literal(expr_ty e) +{ + int i; + identifier name; + + assert(e->kind == Name_kind); + name = e->v.Name.id; + for (i = 0; FORBIDDEN[i]; i++) { + if (PyUnicode_CompareWithASCIIString(name, FORBIDDEN[i]) == 0) { + e->kind = Lit_kind; + e->v.Lit.v = FORBIDDEN_VALUES[i]; + return 1; + } + } + return 0; +} + /* Set the context ctx for expr_ty e, recursively traversing e. Only sets context for expr kinds that "can appear in assignment context" (according to ../Parser/Python.asdl). For other expr kinds, it sets an appropriate syntax error and returns false. */ @@ -1055,25 +1062,25 @@ break; case DictComp_kind: expr_name = "dict comprehension"; break; case Dict_kind: case Set_kind: - case Num_kind: - case Str_kind: - case Bytes_kind: + case Lit_kind: case JoinedStr_kind: case FormattedValue_kind: + /* Tweak error message */ + if (e->v.Lit.v == Py_None || + e->v.Lit.v == Py_True || + e->v.Lit.v == Py_False) + return ast_error(c, n, "assignment to keyword"); expr_name = "literal"; break; case NameConstant_kind: expr_name = "keyword"; break; - case Ellipsis_kind: - expr_name = "Ellipsis"; - break; case Compare_kind: expr_name = "comparison"; break; case IfExp_kind: expr_name = "conditional expression"; break; @@ -1590,12 +1597,13 @@ { /* funcdef: 'def' NAME parameters ['->' test] ':' suite */ identifier name; arguments_ty args; asdl_seq *body; expr_ty returns = NULL; + string docstring; int name_i = 1; REQ(n, funcdef); name = NEW_IDENTIFIER(CHILD(n, name_i)); if (!name) @@ -1608,23 +1616,23 @@ if (TYPE(CHILD(n, name_i+2)) == RARROW) { returns = ast_for_expr(c, CHILD(n, name_i + 3)); if (!returns) return NULL; name_i += 2; } - body = ast_for_suite(c, CHILD(n, name_i + 3)); + body = ast_for_body(c, CHILD(n, name_i + 3), &docstring); if (!body) return NULL; if (is_async) return AsyncFunctionDef(name, args, body, decorator_seq, returns, - LINENO(n), + docstring, LINENO(n), n->n_col_offset, c->c_arena); else return FunctionDef(name, args, body, decorator_seq, returns, - LINENO(n), + docstring, LINENO(n), n->n_col_offset, c->c_arena); } static stmt_ty ast_for_async_funcdef(struct compiling *c, const node *n, asdl_seq *decorator_seq) { @@ -2098,13 +2106,15 @@ return NameConstant(Py_False, LINENO(n), n->n_col_offset, c->c_arena); } name = new_identifier(s, c); if (!name) return NULL; /* All names start in Load context, but may later be changed. */ - return Name(name, Load, LINENO(n), n->n_col_offset, c->c_arena); + expr_ty e = Name(name, Load, LINENO(n), n->n_col_offset, c->c_arena); + make_name_literal(e); + return e; } case STRING: { expr_ty str = parsestrplus(c, n); if (!str) { const char *errtype = NULL; if (PyErr_ExceptionMatches(PyExc_UnicodeError)) @@ -2141,16 +2151,16 @@ return NULL; if (PyArena_AddPyObject(c->c_arena, pynum) < 0) { Py_DECREF(pynum); return NULL; } - return Num(pynum, LINENO(n), n->n_col_offset, c->c_arena); + return Lit(pynum, LINENO(n), n->n_col_offset, c->c_arena); } case ELLIPSIS: /* Ellipsis */ - return Ellipsis(LINENO(n), n->n_col_offset, c->c_arena); + return Lit(Py_Ellipsis, LINENO(n), n->n_col_offset, c->c_arena); case LPAR: /* some parenthesized expressions */ ch = CHILD(n, 1); if (TYPE(ch) == RPAR) return Tuple(NULL, Load, LINENO(n), n->n_col_offset, c->c_arena); @@ -3511,12 +3521,46 @@ } } assert(pos == seq->size); return seq; } +static string +docstring_from_stmts(asdl_seq *stmts) +{ + /* XXX not very efficient, but simple */ + if (stmts && stmts->size) { + stmt_ty s; + + s = (stmt_ty)asdl_seq_GET(stmts, 0); + if (s->kind == Expr_kind && + s->v.Expr.value->kind == Lit_kind && + PyUnicode_CheckExact(s->v.Expr.value->v.Lit.v)) { + /* If first statement is a literal string, it's the + doc string. */ + string doc = s->v.Expr.value->v.Lit.v; + memmove(&asdl_seq_GET(stmts, 0), &asdl_seq_GET(stmts, 1), + (stmts->size - 1) * sizeof(void*)); + stmts->size--; + return doc; + } + } + + return NULL; +} + +static asdl_seq * +ast_for_body(struct compiling *c, const node *n, string *docstring) +{ + asdl_seq *stmts; + + stmts = ast_for_suite(c, n); + *docstring = docstring_from_stmts(stmts); + return stmts; +} + static stmt_ty ast_for_if_stmt(struct compiling *c, const node *n) { /* if_stmt: 'if' test ':' suite ('elif' test ':' suite)* ['else' ':' suite] */ @@ -3895,40 +3939,41 @@ static stmt_ty ast_for_classdef(struct compiling *c, const node *n, asdl_seq *decorator_seq) { /* classdef: 'class' NAME ['(' arglist ')'] ':' suite */ PyObject *classname; asdl_seq *s; + string docstring; expr_ty call; REQ(n, classdef); if (NCH(n) == 4) { /* class NAME ':' suite */ - s = ast_for_suite(c, CHILD(n, 3)); + s = ast_for_body(c, CHILD(n, 3), &docstring); if (!s) return NULL; classname = NEW_IDENTIFIER(CHILD(n, 1)); if (!classname) return NULL; if (forbidden_name(c, classname, CHILD(n, 3), 0)) return NULL; - return ClassDef(classname, NULL, NULL, s, decorator_seq, LINENO(n), - n->n_col_offset, c->c_arena); + return ClassDef(classname, NULL, NULL, s, decorator_seq, docstring, + LINENO(n), n->n_col_offset, c->c_arena); } if (TYPE(CHILD(n, 3)) == RPAR) { /* class NAME '(' ')' ':' suite */ - s = ast_for_suite(c, CHILD(n,5)); + s = ast_for_body(c, CHILD(n, 5), &docstring); if (!s) return NULL; classname = NEW_IDENTIFIER(CHILD(n, 1)); if (!classname) return NULL; if (forbidden_name(c, classname, CHILD(n, 3), 0)) return NULL; - return ClassDef(classname, NULL, NULL, s, decorator_seq, LINENO(n), - n->n_col_offset, c->c_arena); + return ClassDef(classname, NULL, NULL, s, decorator_seq, docstring, + LINENO(n), n->n_col_offset, c->c_arena); } /* class NAME '(' arglist ')' ':' suite */ /* build up a fake Call node so we can extract its pieces */ { PyObject *dummy_name; @@ -3938,23 +3983,24 @@ return NULL; dummy = Name(dummy_name, Load, LINENO(n), n->n_col_offset, c->c_arena); call = ast_for_call(c, CHILD(n, 3), dummy); if (!call) return NULL; } - s = ast_for_suite(c, CHILD(n, 6)); + s = ast_for_body(c, CHILD(n, 6), &docstring); if (!s) return NULL; classname = NEW_IDENTIFIER(CHILD(n, 1)); if (!classname) return NULL; if (forbidden_name(c, classname, CHILD(n, 1), 0)) return NULL; return ClassDef(classname, call->v.Call.args, call->v.Call.keywords, s, - decorator_seq, LINENO(n), n->n_col_offset, c->c_arena); + decorator_seq, docstring, LINENO(n), n->n_col_offset, + c->c_arena); } static stmt_ty ast_for_stmt(struct compiling *c, const node *n) { if (TYPE(n) == stmt) { @@ -4820,13 +4866,13 @@ *str = NULL; assert(PyUnicode_CheckExact(s)); if (PyArena_AddPyObject(c->c_arena, s) < 0) { Py_DECREF(s); return NULL; } - return Str(s, LINENO(n), n->n_col_offset, c->c_arena); + return Lit(s, LINENO(n), n->n_col_offset, c->c_arena); } /* Add a non-f-string (that is, a regular literal string). str is decref'd. */ static int FstringParser_ConcatAndDel(FstringParser *state, PyObject *str) @@ -5185,13 +5231,13 @@ } } if (bytesmode) { /* Just return the bytes object and we're done. */ if (PyArena_AddPyObject(c->c_arena, bytes_str) < 0) goto error; - return Bytes(bytes_str, LINENO(n), n->n_col_offset, c->c_arena); + return Lit(bytes_str, LINENO(n), n->n_col_offset, c->c_arena); } /* We're not a bytes string, bytes_str should never have been set. */ assert(bytes_str == NULL); return FstringParser_Finish(&state, c, n); diff -r 09d4d47ad210 Python/compile.c --- a/Python/compile.c Tue Jan 31 13:53:39 2017 +0100 +++ b/Python/compile.c Wed Feb 01 01:56:27 2017 +0900 @@ -1322,53 +1322,31 @@ return 0; \ } \ } \ } static int -compiler_isdocstring(stmt_ty s) -{ - if (s->kind != Expr_kind) - return 0; - if (s->v.Expr.value->kind == Str_kind) - return 1; - if (s->v.Expr.value->kind == Constant_kind) - return PyUnicode_CheckExact(s->v.Expr.value->v.Constant.value); - return 0; -} - -static int is_const(expr_ty e) { switch (e->kind) { + case Lit_kind: case Constant_kind: - case Num_kind: - case Str_kind: - case Bytes_kind: - case Ellipsis_kind: case NameConstant_kind: return 1; default: return 0; } } static PyObject * get_const_value(expr_ty e) { switch (e->kind) { + case Lit_kind: case Constant_kind: return e->v.Constant.value; - case Num_kind: - return e->v.Num.n; - case Str_kind: - return e->v.Str.s; - case Bytes_kind: - return e->v.Bytes.s; - case Ellipsis_kind: - return Py_Ellipsis; case NameConstant_kind: return e->v.NameConstant.value; default: assert(!is_const(e)); return NULL; } @@ -1432,41 +1410,35 @@ } /* Compile a sequence of statements, checking for a docstring and for annotations. */ static int -compiler_body(struct compiler *c, asdl_seq *stmts) +compiler_body(struct compiler *c, asdl_seq *stmts, string docstring) { - int i = 0; - stmt_ty st; - /* Set current line number to the line number of first statement. This way line number for SETUP_ANNOTATIONS will always coincide with the line number of first "real" statement in module. If body is empy, then lineno will be set later in assemble. */ if (c->u->u_scope_type == COMPILER_SCOPE_MODULE && !c->u->u_lineno && asdl_seq_LEN(stmts)) { - st = (stmt_ty)asdl_seq_GET(stmts, 0); + stmt_ty st = (stmt_ty)asdl_seq_GET(stmts, 0); c->u->u_lineno = st->lineno; } /* Every annotated class and module should have __annotations__. */ if (find_ann(stmts)) { ADDOP(c, SETUP_ANNOTATIONS); } + /* if not -OO mode, set docstring */ + if (c->c_optimize < 2 && docstring) { + ADDOP_O(c, LOAD_CONST, docstring, consts); + ADDOP_NAME(c, STORE_NAME, __doc__, names); + } if (!asdl_seq_LEN(stmts)) return 1; - st = (stmt_ty)asdl_seq_GET(stmts, 0); - if (compiler_isdocstring(st) && c->c_optimize < 2) { - /* don't generate docstrings if -OO */ - i = 1; - VISIT(c, expr, st->v.Expr.value); - if (!compiler_nameop(c, __doc__, Store)) - return 0; - } - for (; i < asdl_seq_LEN(stmts); i++) + for (int i = 0; i < asdl_seq_LEN(stmts); i++) VISIT(c, stmt, (stmt_ty)asdl_seq_GET(stmts, i)); return 1; } static PyCodeObject * compiler_mod(struct compiler *c, mod_ty mod) @@ -1481,13 +1453,13 @@ } /* Use 0 for firstlineno initially, will fixup in assemble(). */ if (!compiler_enter_scope(c, module, COMPILER_SCOPE_MODULE, mod, 0)) return NULL; switch (mod->kind) { case Module_kind: - if (!compiler_body(c, mod->v.Module.body)) { + if (!compiler_body(c, mod->v.Module.body, mod->v.Module.docstring)) { compiler_exit_scope(c); return 0; } break; case Interactive_kind: if (find_ann(mod->v.Interactive.body)) { @@ -1809,21 +1781,20 @@ } static int compiler_function(struct compiler *c, stmt_ty s, int is_async) { PyCodeObject *co; - PyObject *qualname, *first_const = Py_None; + PyObject *qualname, *docstring = Py_None; arguments_ty args; expr_ty returns; identifier name; asdl_seq* decos; asdl_seq *body; stmt_ty st; Py_ssize_t i, n, funcflags; - int docstring; int annotations; int scope_type; if (is_async) { assert(s->kind == AsyncFunctionDef_kind); @@ -1864,29 +1835,25 @@ if (!compiler_enter_scope(c, name, scope_type, (void *)s, s->lineno)) { return 0; } st = (stmt_ty)asdl_seq_GET(body, 0); - docstring = compiler_isdocstring(st); - if (docstring && c->c_optimize < 2) { - if (st->v.Expr.value->kind == Constant_kind) - first_const = st->v.Expr.value->v.Constant.value; - else - first_const = st->v.Expr.value->v.Str.s; - } - if (compiler_add_o(c, c->u->u_consts, first_const) < 0) { + /* if not -OO mode, add docstring */ + if (c->c_optimize < 2 && s->v.FunctionDef.docstring) + docstring = s->v.FunctionDef.docstring; + if (compiler_add_o(c, c->u->u_consts, docstring) < 0) { compiler_exit_scope(c); return 0; } c->u->u_argcount = asdl_seq_LEN(args->args); c->u->u_kwonlyargcount = asdl_seq_LEN(args->kwonlyargs); n = asdl_seq_LEN(body); /* if there was a docstring, we need to skip the first statement */ - for (i = docstring; i < n; i++) { + for (i = 0; i < n; i++) { st = (stmt_ty)asdl_seq_GET(body, i); VISIT_IN_SCOPE(c, stmt, st); } co = assemble(c, 1); qualname = c->u->u_qualname; Py_INCREF(qualname); @@ -1964,13 +1931,13 @@ Py_XDECREF(str); compiler_exit_scope(c); return 0; } Py_DECREF(str); /* compile the body proper */ - if (!compiler_body(c, s->v.ClassDef.body)) { + if (!compiler_body(c, s->v.ClassDef.body, s->v.ClassDef.docstring)) { compiler_exit_scope(c); return 0; } /* Return __classcell__ if it is referenced, otherwise return None */ if (c->u->u_ste->ste_needs_class_closure) { /* Store __classcell__ into class namespace & return it */ @@ -4075,37 +4042,17 @@ Return values: 1 for true, 0 for false, -1 for non-constant. */ static int expr_constant(struct compiler *c, expr_ty e) { - const char *id; switch (e->kind) { - case Ellipsis_kind: - return 1; + case Lit_kind: + return PyObject_IsTrue(e->v.Lit.v); case Constant_kind: return PyObject_IsTrue(e->v.Constant.value); - case Num_kind: - return PyObject_IsTrue(e->v.Num.n); - case Str_kind: - return PyObject_IsTrue(e->v.Str.s); - case Name_kind: - /* optimize away names that can't be reassigned */ - id = PyUnicode_AsUTF8(e->v.Name.id); - if (id && strcmp(id, "__debug__") == 0) - return !c->c_optimize; - return -1; - case NameConstant_kind: { - PyObject *o = e->v.NameConstant.value; - if (o == Py_None) - return 0; - else if (o == Py_True) - return 1; - else if (o == Py_False) - return 0; - } default: return -1; } } @@ -4363,31 +4310,20 @@ ADDOP(c, YIELD_FROM); break; case Compare_kind: return compiler_compare(c, e); case Call_kind: return compiler_call(c, e); + case Lit_kind: case Constant_kind: ADDOP_O(c, LOAD_CONST, e->v.Constant.value, consts); break; - case Num_kind: - ADDOP_O(c, LOAD_CONST, e->v.Num.n, consts); - break; - case Str_kind: - ADDOP_O(c, LOAD_CONST, e->v.Str.s, consts); - break; case JoinedStr_kind: return compiler_joined_str(c, e); case FormattedValue_kind: return compiler_formatted_value(c, e); - case Bytes_kind: - ADDOP_O(c, LOAD_CONST, e->v.Bytes.s, consts); - break; - case Ellipsis_kind: - ADDOP_O(c, LOAD_CONST, Py_Ellipsis, consts); - break; case NameConstant_kind: ADDOP_O(c, LOAD_CONST, e->v.NameConstant.value, consts); break; /* The following exprs can be assignment targets. */ case Attribute_kind: if (e->v.Attribute.ctx != AugStore) diff -r 09d4d47ad210 Python/future.c --- a/Python/future.c Tue Jan 31 13:53:39 2017 +0100 +++ b/Python/future.c Wed Feb 01 01:56:27 2017 +0900 @@ -58,13 +58,12 @@ } static int future_parse(PyFutureFeatures *ff, mod_ty mod, PyObject *filename) { int i, done = 0, prev_line = 0; - stmt_ty first; if (!(mod->kind == Module_kind || mod->kind == Interactive_kind)) return 1; if (asdl_seq_LEN(mod->v.Module.body) == 0) return 1; @@ -74,22 +73,13 @@ however, that is easier to handle here: A series of imports joined by semi-colons, where the first import is a future statement but some subsequent import has the future form but is preceded by a regular import. */ - i = 0; - first = (stmt_ty)asdl_seq_GET(mod->v.Module.body, i); - if (first->kind == Expr_kind - && (first->v.Expr.value->kind == Str_kind - || (first->v.Expr.value->kind == Constant_kind - && PyUnicode_CheckExact(first->v.Expr.value->v.Constant.value)))) - i++; - - - for (; i < asdl_seq_LEN(mod->v.Module.body); i++) { + for (i = 0; i < asdl_seq_LEN(mod->v.Module.body); i++) { stmt_ty s = (stmt_ty)asdl_seq_GET(mod->v.Module.body, i); if (done && s->lineno > prev_line) return 1; prev_line = s->lineno; diff -r 09d4d47ad210 Python/importlib.h --- a/Python/importlib.h Tue Jan 31 13:53:39 2017 +0100 +++ b/Python/importlib.h Wed Feb 01 01:56:27 2017 +0900 @@ -119,32 +119,32 @@ 0,0,1,10,1,10,1,6,1,6,1,6,1,122,20,95, 77,111,100,117,108,101,76,111,99,107,46,95,95,105,110,105, 116,95,95,99,1,0,0,0,0,0,0,0,4,0,0,0, 3,0,0,0,67,0,0,0,115,64,0,0,0,116,0,160, 1,161,0,125,1,124,0,106,2,125,2,120,44,116,3,160, 4,124,2,161,1,125,3,124,3,100,0,107,8,114,38,100, - 1,83,0,124,3,106,2,125,2,124,2,124,1,107,2,114, - 16,100,2,83,0,113,16,87,0,100,0,83,0,41,3,78, - 70,84,41,5,114,20,0,0,0,218,9,103,101,116,95,105, + 2,83,0,124,3,106,2,125,2,124,2,124,1,107,2,114, + 16,100,1,83,0,113,16,87,0,100,0,83,0,41,3,78, + 84,70,41,5,114,20,0,0,0,218,9,103,101,116,95,105, 100,101,110,116,114,23,0,0,0,218,12,95,98,108,111,99, 107,105,110,103,95,111,110,218,3,103,101,116,41,4,114,26, 0,0,0,90,2,109,101,218,3,116,105,100,114,21,0,0, 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, 218,12,104,97,115,95,100,101,97,100,108,111,99,107,65,0, 0,0,115,18,0,0,0,0,2,8,1,6,1,2,1,10, 1,8,1,4,1,6,1,8,1,122,24,95,77,111,100,117, 108,101,76,111,99,107,46,104,97,115,95,100,101,97,100,108, 111,99,107,99,1,0,0,0,0,0,0,0,2,0,0,0, 16,0,0,0,67,0,0,0,115,168,0,0,0,116,0,160, 1,161,0,125,1,124,0,116,2,124,1,60,0,122,138,120, - 132,124,0,106,3,143,96,1,0,124,0,106,4,100,1,107, + 132,124,0,106,3,143,96,1,0,124,0,106,4,100,2,107, 2,115,48,124,0,106,5,124,1,107,2,114,72,124,1,124, - 0,95,5,124,0,4,0,106,4,100,2,55,0,2,0,95, - 4,100,3,83,0,124,0,160,6,161,0,114,92,116,7,100, + 0,95,5,124,0,4,0,106,4,100,3,55,0,2,0,95, + 4,100,1,83,0,124,0,160,6,161,0,114,92,116,7,100, 4,124,0,22,0,131,1,130,1,124,0,106,8,160,9,100, - 5,161,1,114,118,124,0,4,0,106,10,100,2,55,0,2, + 5,161,1,114,118,124,0,4,0,106,10,100,3,55,0,2, 0,95,10,87,0,100,6,81,0,82,0,88,0,124,0,106, 8,160,9,161,0,1,0,124,0,106,8,160,11,161,0,1, 0,113,20,87,0,87,0,100,6,116,2,124,1,61,0,88, 0,100,6,83,0,41,7,122,185,10,32,32,32,32,32,32, 32,32,65,99,113,117,105,114,101,32,116,104,101,32,109,111, 100,117,108,101,32,108,111,99,107,46,32,32,73,102,32,97, @@ -154,13 +154,13 @@ 108,111,99,107,69,114,114,111,114,32,105,115,32,114,97,105, 115,101,100,46,10,32,32,32,32,32,32,32,32,79,116,104, 101,114,119,105,115,101,44,32,116,104,101,32,108,111,99,107, 32,105,115,32,97,108,119,97,121,115,32,97,99,113,117,105, 114,101,100,32,97,110,100,32,84,114,117,101,32,105,115,32, 114,101,116,117,114,110,101,100,46,10,32,32,32,32,32,32, - 32,32,114,19,0,0,0,233,1,0,0,0,84,122,23,100, + 32,32,84,114,19,0,0,0,233,1,0,0,0,122,23,100, 101,97,100,108,111,99,107,32,100,101,116,101,99,116,101,100, 32,98,121,32,37,114,70,78,41,12,114,20,0,0,0,114, 28,0,0,0,114,29,0,0,0,114,21,0,0,0,114,24, 0,0,0,114,23,0,0,0,114,32,0,0,0,114,17,0, 0,0,114,22,0,0,0,218,7,97,99,113,117,105,114,101, 114,25,0,0,0,218,7,114,101,108,101,97,115,101,41,2, @@ -203,1620 +203,1620 @@ 122,20,95,77,111,100,117,108,101,76,111,99,107,46,95,95, 114,101,112,114,95,95,78,41,9,114,1,0,0,0,114,0, 0,0,0,114,2,0,0,0,114,3,0,0,0,114,27,0, 0,0,114,32,0,0,0,114,34,0,0,0,114,35,0,0, 0,114,40,0,0,0,114,10,0,0,0,114,10,0,0,0, 114,10,0,0,0,114,11,0,0,0,114,18,0,0,0,51, - 0,0,0,115,12,0,0,0,8,4,4,2,8,8,8,12, - 8,25,8,13,114,18,0,0,0,99,0,0,0,0,0,0, - 0,0,0,0,0,0,2,0,0,0,64,0,0,0,115,48, - 0,0,0,101,0,90,1,100,0,90,2,100,1,90,3,100, - 2,100,3,132,0,90,4,100,4,100,5,132,0,90,5,100, - 6,100,7,132,0,90,6,100,8,100,9,132,0,90,7,100, - 10,83,0,41,11,218,16,95,68,117,109,109,121,77,111,100, - 117,108,101,76,111,99,107,122,86,65,32,115,105,109,112,108, - 101,32,95,77,111,100,117,108,101,76,111,99,107,32,101,113, - 117,105,118,97,108,101,110,116,32,102,111,114,32,80,121,116, - 104,111,110,32,98,117,105,108,100,115,32,119,105,116,104,111, - 117,116,10,32,32,32,32,109,117,108,116,105,45,116,104,114, - 101,97,100,105,110,103,32,115,117,112,112,111,114,116,46,99, - 2,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0, - 67,0,0,0,115,16,0,0,0,124,1,124,0,95,0,100, - 1,124,0,95,1,100,0,83,0,41,2,78,114,19,0,0, - 0,41,2,114,15,0,0,0,114,24,0,0,0,41,2,114, - 26,0,0,0,114,15,0,0,0,114,10,0,0,0,114,10, - 0,0,0,114,11,0,0,0,114,27,0,0,0,123,0,0, - 0,115,4,0,0,0,0,1,6,1,122,25,95,68,117,109, - 109,121,77,111,100,117,108,101,76,111,99,107,46,95,95,105, - 110,105,116,95,95,99,1,0,0,0,0,0,0,0,1,0, - 0,0,3,0,0,0,67,0,0,0,115,18,0,0,0,124, - 0,4,0,106,0,100,1,55,0,2,0,95,0,100,2,83, - 0,41,3,78,114,33,0,0,0,84,41,1,114,24,0,0, - 0,41,1,114,26,0,0,0,114,10,0,0,0,114,10,0, - 0,0,114,11,0,0,0,114,34,0,0,0,127,0,0,0, - 115,4,0,0,0,0,1,14,1,122,24,95,68,117,109,109, - 121,77,111,100,117,108,101,76,111,99,107,46,97,99,113,117, - 105,114,101,99,1,0,0,0,0,0,0,0,1,0,0,0, - 3,0,0,0,67,0,0,0,115,36,0,0,0,124,0,106, - 0,100,1,107,2,114,18,116,1,100,2,131,1,130,1,124, - 0,4,0,106,0,100,3,56,0,2,0,95,0,100,0,83, - 0,41,4,78,114,19,0,0,0,122,31,99,97,110,110,111, - 116,32,114,101,108,101,97,115,101,32,117,110,45,97,99,113, - 117,105,114,101,100,32,108,111,99,107,114,33,0,0,0,41, - 2,114,24,0,0,0,114,36,0,0,0,41,1,114,26,0, - 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, - 0,114,35,0,0,0,131,0,0,0,115,6,0,0,0,0, - 1,10,1,8,1,122,24,95,68,117,109,109,121,77,111,100, - 117,108,101,76,111,99,107,46,114,101,108,101,97,115,101,99, - 1,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0, - 67,0,0,0,115,18,0,0,0,100,1,160,0,124,0,106, - 1,116,2,124,0,131,1,161,2,83,0,41,2,78,122,28, - 95,68,117,109,109,121,77,111,100,117,108,101,76,111,99,107, - 40,123,33,114,125,41,32,97,116,32,123,125,41,3,114,38, - 0,0,0,114,15,0,0,0,114,39,0,0,0,41,1,114, - 26,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11, - 0,0,0,114,40,0,0,0,136,0,0,0,115,2,0,0, - 0,0,1,122,25,95,68,117,109,109,121,77,111,100,117,108, - 101,76,111,99,107,46,95,95,114,101,112,114,95,95,78,41, - 8,114,1,0,0,0,114,0,0,0,0,114,2,0,0,0, - 114,3,0,0,0,114,27,0,0,0,114,34,0,0,0,114, - 35,0,0,0,114,40,0,0,0,114,10,0,0,0,114,10, - 0,0,0,114,10,0,0,0,114,11,0,0,0,114,41,0, - 0,0,119,0,0,0,115,10,0,0,0,8,2,4,2,8, - 4,8,4,8,5,114,41,0,0,0,99,0,0,0,0,0, - 0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,115, - 36,0,0,0,101,0,90,1,100,0,90,2,100,1,100,2, - 132,0,90,3,100,3,100,4,132,0,90,4,100,5,100,6, - 132,0,90,5,100,7,83,0,41,8,218,18,95,77,111,100, - 117,108,101,76,111,99,107,77,97,110,97,103,101,114,99,2, - 0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,67, - 0,0,0,115,16,0,0,0,124,1,124,0,95,0,100,0, - 124,0,95,1,100,0,83,0,41,1,78,41,2,218,5,95, - 110,97,109,101,218,5,95,108,111,99,107,41,2,114,26,0, + 0,0,0,115,10,0,0,0,12,6,8,8,8,12,8,25, + 8,13,114,18,0,0,0,99,0,0,0,0,0,0,0,0, + 0,0,0,0,2,0,0,0,64,0,0,0,115,48,0,0, + 0,101,0,90,1,100,0,90,2,100,1,90,3,100,2,100, + 3,132,0,90,4,100,4,100,5,132,0,90,5,100,6,100, + 7,132,0,90,6,100,8,100,9,132,0,90,7,100,10,83, + 0,41,11,218,16,95,68,117,109,109,121,77,111,100,117,108, + 101,76,111,99,107,122,86,65,32,115,105,109,112,108,101,32, + 95,77,111,100,117,108,101,76,111,99,107,32,101,113,117,105, + 118,97,108,101,110,116,32,102,111,114,32,80,121,116,104,111, + 110,32,98,117,105,108,100,115,32,119,105,116,104,111,117,116, + 10,32,32,32,32,109,117,108,116,105,45,116,104,114,101,97, + 100,105,110,103,32,115,117,112,112,111,114,116,46,99,2,0, + 0,0,0,0,0,0,2,0,0,0,2,0,0,0,67,0, + 0,0,115,16,0,0,0,124,1,124,0,95,0,100,1,124, + 0,95,1,100,0,83,0,41,2,78,114,19,0,0,0,41, + 2,114,15,0,0,0,114,24,0,0,0,41,2,114,26,0, 0,0,114,15,0,0,0,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,114,27,0,0,0,142,0,0,0,115, - 4,0,0,0,0,1,6,1,122,27,95,77,111,100,117,108, - 101,76,111,99,107,77,97,110,97,103,101,114,46,95,95,105, - 110,105,116,95,95,99,1,0,0,0,0,0,0,0,1,0, - 0,0,11,0,0,0,67,0,0,0,115,42,0,0,0,122, - 16,116,0,124,0,106,1,131,1,124,0,95,2,87,0,100, - 0,116,3,160,4,161,0,1,0,88,0,124,0,106,2,160, - 5,161,0,1,0,100,0,83,0,41,1,78,41,6,218,16, - 95,103,101,116,95,109,111,100,117,108,101,95,108,111,99,107, - 114,43,0,0,0,114,44,0,0,0,218,4,95,105,109,112, - 218,12,114,101,108,101,97,115,101,95,108,111,99,107,114,34, - 0,0,0,41,1,114,26,0,0,0,114,10,0,0,0,114, - 10,0,0,0,114,11,0,0,0,218,9,95,95,101,110,116, - 101,114,95,95,146,0,0,0,115,8,0,0,0,0,1,2, - 1,16,2,10,1,122,28,95,77,111,100,117,108,101,76,111, - 99,107,77,97,110,97,103,101,114,46,95,95,101,110,116,101, - 114,95,95,99,1,0,0,0,0,0,0,0,3,0,0,0, - 2,0,0,0,79,0,0,0,115,14,0,0,0,124,0,106, - 0,160,1,161,0,1,0,100,0,83,0,41,1,78,41,2, - 114,44,0,0,0,114,35,0,0,0,41,3,114,26,0,0, - 0,218,4,97,114,103,115,90,6,107,119,97,114,103,115,114, - 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,8, - 95,95,101,120,105,116,95,95,153,0,0,0,115,2,0,0, - 0,0,1,122,27,95,77,111,100,117,108,101,76,111,99,107, - 77,97,110,97,103,101,114,46,95,95,101,120,105,116,95,95, - 78,41,6,114,1,0,0,0,114,0,0,0,0,114,2,0, - 0,0,114,27,0,0,0,114,48,0,0,0,114,50,0,0, - 0,114,10,0,0,0,114,10,0,0,0,114,10,0,0,0, - 114,11,0,0,0,114,42,0,0,0,140,0,0,0,115,6, - 0,0,0,8,2,8,4,8,7,114,42,0,0,0,99,1, - 0,0,0,0,0,0,0,3,0,0,0,12,0,0,0,3, - 0,0,0,115,106,0,0,0,100,1,125,1,121,14,116,0, - 136,0,25,0,131,0,125,1,87,0,110,20,4,0,116,1, - 107,10,114,38,1,0,1,0,1,0,89,0,110,2,88,0, - 124,1,100,1,107,8,114,102,116,2,100,1,107,8,114,66, - 116,3,136,0,131,1,125,1,110,8,116,4,136,0,131,1, - 125,1,135,0,102,1,100,2,100,3,132,8,125,2,116,5, - 160,6,124,1,124,2,161,2,116,0,136,0,60,0,124,1, - 83,0,41,4,122,109,71,101,116,32,111,114,32,99,114,101, - 97,116,101,32,116,104,101,32,109,111,100,117,108,101,32,108, - 111,99,107,32,102,111,114,32,97,32,103,105,118,101,110,32, - 109,111,100,117,108,101,32,110,97,109,101,46,10,10,32,32, - 32,32,83,104,111,117,108,100,32,111,110,108,121,32,98,101, - 32,99,97,108,108,101,100,32,119,105,116,104,32,116,104,101, - 32,105,109,112,111,114,116,32,108,111,99,107,32,116,97,107, - 101,110,46,78,99,1,0,0,0,0,0,0,0,1,0,0, - 0,2,0,0,0,19,0,0,0,115,10,0,0,0,116,0, - 136,0,61,0,100,0,83,0,41,1,78,41,1,218,13,95, - 109,111,100,117,108,101,95,108,111,99,107,115,41,1,218,1, - 95,41,1,114,15,0,0,0,114,10,0,0,0,114,11,0, - 0,0,218,2,99,98,173,0,0,0,115,2,0,0,0,0, - 1,122,28,95,103,101,116,95,109,111,100,117,108,101,95,108, - 111,99,107,46,60,108,111,99,97,108,115,62,46,99,98,41, - 7,114,51,0,0,0,218,8,75,101,121,69,114,114,111,114, - 114,20,0,0,0,114,41,0,0,0,114,18,0,0,0,218, - 8,95,119,101,97,107,114,101,102,90,3,114,101,102,41,3, - 114,15,0,0,0,114,21,0,0,0,114,53,0,0,0,114, - 10,0,0,0,41,1,114,15,0,0,0,114,11,0,0,0, - 114,45,0,0,0,159,0,0,0,115,24,0,0,0,0,4, - 4,1,2,1,14,1,14,1,6,1,8,1,8,1,10,2, - 8,1,12,2,16,1,114,45,0,0,0,99,1,0,0,0, - 0,0,0,0,2,0,0,0,11,0,0,0,67,0,0,0, - 115,62,0,0,0,116,0,124,0,131,1,125,1,116,1,160, - 2,161,0,1,0,121,12,124,1,160,3,161,0,1,0,87, - 0,110,20,4,0,116,4,107,10,114,48,1,0,1,0,1, - 0,89,0,110,10,88,0,124,1,160,5,161,0,1,0,100, - 1,83,0,41,2,97,21,1,0,0,82,101,108,101,97,115, - 101,32,116,104,101,32,103,108,111,98,97,108,32,105,109,112, - 111,114,116,32,108,111,99,107,44,32,97,110,100,32,97,99, - 113,117,105,114,101,115,32,116,104,101,110,32,114,101,108,101, - 97,115,101,32,116,104,101,10,32,32,32,32,109,111,100,117, - 108,101,32,108,111,99,107,32,102,111,114,32,97,32,103,105, - 118,101,110,32,109,111,100,117,108,101,32,110,97,109,101,46, - 10,32,32,32,32,84,104,105,115,32,105,115,32,117,115,101, - 100,32,116,111,32,101,110,115,117,114,101,32,97,32,109,111, - 100,117,108,101,32,105,115,32,99,111,109,112,108,101,116,101, - 108,121,32,105,110,105,116,105,97,108,105,122,101,100,44,32, - 105,110,32,116,104,101,10,32,32,32,32,101,118,101,110,116, - 32,105,116,32,105,115,32,98,101,105,110,103,32,105,109,112, - 111,114,116,101,100,32,98,121,32,97,110,111,116,104,101,114, - 32,116,104,114,101,97,100,46,10,10,32,32,32,32,83,104, + 0,114,11,0,0,0,114,27,0,0,0,123,0,0,0,115, + 4,0,0,0,0,1,6,1,122,25,95,68,117,109,109,121, + 77,111,100,117,108,101,76,111,99,107,46,95,95,105,110,105, + 116,95,95,99,1,0,0,0,0,0,0,0,1,0,0,0, + 3,0,0,0,67,0,0,0,115,18,0,0,0,124,0,4, + 0,106,0,100,1,55,0,2,0,95,0,100,2,83,0,41, + 3,78,114,33,0,0,0,84,41,1,114,24,0,0,0,41, + 1,114,26,0,0,0,114,10,0,0,0,114,10,0,0,0, + 114,11,0,0,0,114,34,0,0,0,127,0,0,0,115,4, + 0,0,0,0,1,14,1,122,24,95,68,117,109,109,121,77, + 111,100,117,108,101,76,111,99,107,46,97,99,113,117,105,114, + 101,99,1,0,0,0,0,0,0,0,1,0,0,0,3,0, + 0,0,67,0,0,0,115,36,0,0,0,124,0,106,0,100, + 1,107,2,114,18,116,1,100,2,131,1,130,1,124,0,4, + 0,106,0,100,3,56,0,2,0,95,0,100,0,83,0,41, + 4,78,114,19,0,0,0,122,31,99,97,110,110,111,116,32, + 114,101,108,101,97,115,101,32,117,110,45,97,99,113,117,105, + 114,101,100,32,108,111,99,107,114,33,0,0,0,41,2,114, + 24,0,0,0,114,36,0,0,0,41,1,114,26,0,0,0, + 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114, + 35,0,0,0,131,0,0,0,115,6,0,0,0,0,1,10, + 1,8,1,122,24,95,68,117,109,109,121,77,111,100,117,108, + 101,76,111,99,107,46,114,101,108,101,97,115,101,99,1,0, + 0,0,0,0,0,0,1,0,0,0,5,0,0,0,67,0, + 0,0,115,18,0,0,0,100,1,160,0,124,0,106,1,116, + 2,124,0,131,1,161,2,83,0,41,2,78,122,28,95,68, + 117,109,109,121,77,111,100,117,108,101,76,111,99,107,40,123, + 33,114,125,41,32,97,116,32,123,125,41,3,114,38,0,0, + 0,114,15,0,0,0,114,39,0,0,0,41,1,114,26,0, + 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, + 0,114,40,0,0,0,136,0,0,0,115,2,0,0,0,0, + 1,122,25,95,68,117,109,109,121,77,111,100,117,108,101,76, + 111,99,107,46,95,95,114,101,112,114,95,95,78,41,8,114, + 1,0,0,0,114,0,0,0,0,114,2,0,0,0,114,3, + 0,0,0,114,27,0,0,0,114,34,0,0,0,114,35,0, + 0,0,114,40,0,0,0,114,10,0,0,0,114,10,0,0, + 0,114,10,0,0,0,114,11,0,0,0,114,41,0,0,0, + 119,0,0,0,115,8,0,0,0,12,4,8,4,8,4,8, + 5,114,41,0,0,0,99,0,0,0,0,0,0,0,0,0, + 0,0,0,2,0,0,0,64,0,0,0,115,36,0,0,0, + 101,0,90,1,100,0,90,2,100,1,100,2,132,0,90,3, + 100,3,100,4,132,0,90,4,100,5,100,6,132,0,90,5, + 100,7,83,0,41,8,218,18,95,77,111,100,117,108,101,76, + 111,99,107,77,97,110,97,103,101,114,99,2,0,0,0,0, + 0,0,0,2,0,0,0,2,0,0,0,67,0,0,0,115, + 16,0,0,0,124,1,124,0,95,0,100,0,124,0,95,1, + 100,0,83,0,41,1,78,41,2,218,5,95,110,97,109,101, + 218,5,95,108,111,99,107,41,2,114,26,0,0,0,114,15, + 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0, + 0,0,114,27,0,0,0,142,0,0,0,115,4,0,0,0, + 0,1,6,1,122,27,95,77,111,100,117,108,101,76,111,99, + 107,77,97,110,97,103,101,114,46,95,95,105,110,105,116,95, + 95,99,1,0,0,0,0,0,0,0,1,0,0,0,11,0, + 0,0,67,0,0,0,115,42,0,0,0,122,16,116,0,124, + 0,106,1,131,1,124,0,95,2,87,0,100,0,116,3,160, + 4,161,0,1,0,88,0,124,0,106,2,160,5,161,0,1, + 0,100,0,83,0,41,1,78,41,6,218,16,95,103,101,116, + 95,109,111,100,117,108,101,95,108,111,99,107,114,43,0,0, + 0,114,44,0,0,0,218,4,95,105,109,112,218,12,114,101, + 108,101,97,115,101,95,108,111,99,107,114,34,0,0,0,41, + 1,114,26,0,0,0,114,10,0,0,0,114,10,0,0,0, + 114,11,0,0,0,218,9,95,95,101,110,116,101,114,95,95, + 146,0,0,0,115,8,0,0,0,0,1,2,1,16,2,10, + 1,122,28,95,77,111,100,117,108,101,76,111,99,107,77,97, + 110,97,103,101,114,46,95,95,101,110,116,101,114,95,95,99, + 1,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0, + 79,0,0,0,115,14,0,0,0,124,0,106,0,160,1,161, + 0,1,0,100,0,83,0,41,1,78,41,2,114,44,0,0, + 0,114,35,0,0,0,41,3,114,26,0,0,0,218,4,97, + 114,103,115,90,6,107,119,97,114,103,115,114,10,0,0,0, + 114,10,0,0,0,114,11,0,0,0,218,8,95,95,101,120, + 105,116,95,95,153,0,0,0,115,2,0,0,0,0,1,122, + 27,95,77,111,100,117,108,101,76,111,99,107,77,97,110,97, + 103,101,114,46,95,95,101,120,105,116,95,95,78,41,6,114, + 1,0,0,0,114,0,0,0,0,114,2,0,0,0,114,27, + 0,0,0,114,48,0,0,0,114,50,0,0,0,114,10,0, + 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, + 0,114,42,0,0,0,140,0,0,0,115,6,0,0,0,8, + 2,8,4,8,7,114,42,0,0,0,99,1,0,0,0,0, + 0,0,0,3,0,0,0,12,0,0,0,3,0,0,0,115, + 106,0,0,0,100,1,125,1,121,14,116,0,136,0,25,0, + 131,0,125,1,87,0,110,20,4,0,116,1,107,10,114,38, + 1,0,1,0,1,0,89,0,110,2,88,0,124,1,100,1, + 107,8,114,102,116,2,100,1,107,8,114,66,116,3,136,0, + 131,1,125,1,110,8,116,4,136,0,131,1,125,1,135,0, + 102,1,100,2,100,3,132,8,125,2,116,5,160,6,124,1, + 124,2,161,2,116,0,136,0,60,0,124,1,83,0,41,4, + 122,109,71,101,116,32,111,114,32,99,114,101,97,116,101,32, + 116,104,101,32,109,111,100,117,108,101,32,108,111,99,107,32, + 102,111,114,32,97,32,103,105,118,101,110,32,109,111,100,117, + 108,101,32,110,97,109,101,46,10,10,32,32,32,32,83,104, 111,117,108,100,32,111,110,108,121,32,98,101,32,99,97,108, 108,101,100,32,119,105,116,104,32,116,104,101,32,105,109,112, 111,114,116,32,108,111,99,107,32,116,97,107,101,110,46,78, - 41,6,114,45,0,0,0,114,46,0,0,0,114,47,0,0, - 0,114,34,0,0,0,114,17,0,0,0,114,35,0,0,0, - 41,2,114,15,0,0,0,114,21,0,0,0,114,10,0,0, - 0,114,10,0,0,0,114,11,0,0,0,218,19,95,108,111, - 99,107,95,117,110,108,111,99,107,95,109,111,100,117,108,101, - 178,0,0,0,115,14,0,0,0,0,7,8,1,8,1,2, - 1,12,1,14,3,6,2,114,56,0,0,0,99,1,0,0, - 0,0,0,0,0,3,0,0,0,3,0,0,0,79,0,0, - 0,115,10,0,0,0,124,0,124,1,124,2,142,1,83,0, - 41,1,97,46,1,0,0,114,101,109,111,118,101,95,105,109, - 112,111,114,116,108,105,98,95,102,114,97,109,101,115,32,105, - 110,32,105,109,112,111,114,116,46,99,32,119,105,108,108,32, - 97,108,119,97,121,115,32,114,101,109,111,118,101,32,115,101, - 113,117,101,110,99,101,115,10,32,32,32,32,111,102,32,105, - 109,112,111,114,116,108,105,98,32,102,114,97,109,101,115,32, - 116,104,97,116,32,101,110,100,32,119,105,116,104,32,97,32, - 99,97,108,108,32,116,111,32,116,104,105,115,32,102,117,110, - 99,116,105,111,110,10,10,32,32,32,32,85,115,101,32,105, - 116,32,105,110,115,116,101,97,100,32,111,102,32,97,32,110, - 111,114,109,97,108,32,99,97,108,108,32,105,110,32,112,108, - 97,99,101,115,32,119,104,101,114,101,32,105,110,99,108,117, - 100,105,110,103,32,116,104,101,32,105,109,112,111,114,116,108, - 105,98,10,32,32,32,32,102,114,97,109,101,115,32,105,110, - 116,114,111,100,117,99,101,115,32,117,110,119,97,110,116,101, - 100,32,110,111,105,115,101,32,105,110,116,111,32,116,104,101, - 32,116,114,97,99,101,98,97,99,107,32,40,101,46,103,46, - 32,119,104,101,110,32,101,120,101,99,117,116,105,110,103,10, - 32,32,32,32,109,111,100,117,108,101,32,99,111,100,101,41, - 10,32,32,32,32,114,10,0,0,0,41,3,218,1,102,114, - 49,0,0,0,90,4,107,119,100,115,114,10,0,0,0,114, - 10,0,0,0,114,11,0,0,0,218,25,95,99,97,108,108, - 95,119,105,116,104,95,102,114,97,109,101,115,95,114,101,109, - 111,118,101,100,197,0,0,0,115,2,0,0,0,0,8,114, - 58,0,0,0,114,33,0,0,0,41,1,218,9,118,101,114, - 98,111,115,105,116,121,99,1,0,0,0,1,0,0,0,3, - 0,0,0,5,0,0,0,71,0,0,0,115,54,0,0,0, - 116,0,106,1,106,2,124,1,107,5,114,50,124,0,160,3, - 100,6,161,1,115,30,100,3,124,0,23,0,125,0,116,4, - 124,0,106,5,124,2,142,0,116,0,106,6,100,4,141,2, - 1,0,100,5,83,0,41,7,122,61,80,114,105,110,116,32, - 116,104,101,32,109,101,115,115,97,103,101,32,116,111,32,115, - 116,100,101,114,114,32,105,102,32,45,118,47,80,89,84,72, - 79,78,86,69,82,66,79,83,69,32,105,115,32,116,117,114, - 110,101,100,32,111,110,46,250,1,35,250,7,105,109,112,111, - 114,116,32,122,2,35,32,41,1,90,4,102,105,108,101,78, - 41,2,114,60,0,0,0,114,61,0,0,0,41,7,114,14, - 0,0,0,218,5,102,108,97,103,115,218,7,118,101,114,98, - 111,115,101,218,10,115,116,97,114,116,115,119,105,116,104,218, - 5,112,114,105,110,116,114,38,0,0,0,218,6,115,116,100, - 101,114,114,41,3,218,7,109,101,115,115,97,103,101,114,59, - 0,0,0,114,49,0,0,0,114,10,0,0,0,114,10,0, - 0,0,114,11,0,0,0,218,16,95,118,101,114,98,111,115, - 101,95,109,101,115,115,97,103,101,208,0,0,0,115,8,0, - 0,0,0,2,12,1,10,1,8,1,114,68,0,0,0,99, - 1,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0, - 3,0,0,0,115,26,0,0,0,135,0,102,1,100,1,100, - 2,132,8,125,1,116,0,124,1,136,0,131,2,1,0,124, - 1,83,0,41,3,122,49,68,101,99,111,114,97,116,111,114, - 32,116,111,32,118,101,114,105,102,121,32,116,104,101,32,110, - 97,109,101,100,32,109,111,100,117,108,101,32,105,115,32,98, - 117,105,108,116,45,105,110,46,99,2,0,0,0,0,0,0, - 0,2,0,0,0,4,0,0,0,19,0,0,0,115,38,0, - 0,0,124,1,116,0,106,1,107,7,114,28,116,2,100,1, - 160,3,124,1,161,1,124,1,100,2,141,2,130,1,136,0, - 124,0,124,1,131,2,83,0,41,3,78,122,29,123,33,114, - 125,32,105,115,32,110,111,116,32,97,32,98,117,105,108,116, - 45,105,110,32,109,111,100,117,108,101,41,1,114,15,0,0, - 0,41,4,114,14,0,0,0,218,20,98,117,105,108,116,105, - 110,95,109,111,100,117,108,101,95,110,97,109,101,115,218,11, - 73,109,112,111,114,116,69,114,114,111,114,114,38,0,0,0, - 41,2,114,26,0,0,0,218,8,102,117,108,108,110,97,109, - 101,41,1,218,3,102,120,110,114,10,0,0,0,114,11,0, - 0,0,218,25,95,114,101,113,117,105,114,101,115,95,98,117, - 105,108,116,105,110,95,119,114,97,112,112,101,114,218,0,0, - 0,115,8,0,0,0,0,1,10,1,10,1,8,1,122,52, + 99,1,0,0,0,0,0,0,0,1,0,0,0,2,0,0, + 0,19,0,0,0,115,10,0,0,0,116,0,136,0,61,0, + 100,0,83,0,41,1,78,41,1,218,13,95,109,111,100,117, + 108,101,95,108,111,99,107,115,41,1,218,1,95,41,1,114, + 15,0,0,0,114,10,0,0,0,114,11,0,0,0,218,2, + 99,98,173,0,0,0,115,2,0,0,0,0,1,122,28,95, + 103,101,116,95,109,111,100,117,108,101,95,108,111,99,107,46, + 60,108,111,99,97,108,115,62,46,99,98,41,7,114,51,0, + 0,0,218,8,75,101,121,69,114,114,111,114,114,20,0,0, + 0,114,41,0,0,0,114,18,0,0,0,218,8,95,119,101, + 97,107,114,101,102,90,3,114,101,102,41,3,114,15,0,0, + 0,114,21,0,0,0,114,53,0,0,0,114,10,0,0,0, + 41,1,114,15,0,0,0,114,11,0,0,0,114,45,0,0, + 0,159,0,0,0,115,24,0,0,0,0,4,4,1,2,1, + 14,1,14,1,6,1,8,1,8,1,10,2,8,1,12,2, + 16,1,114,45,0,0,0,99,1,0,0,0,0,0,0,0, + 2,0,0,0,11,0,0,0,67,0,0,0,115,62,0,0, + 0,116,0,124,0,131,1,125,1,116,1,160,2,161,0,1, + 0,121,12,124,1,160,3,161,0,1,0,87,0,110,20,4, + 0,116,4,107,10,114,48,1,0,1,0,1,0,89,0,110, + 10,88,0,124,1,160,5,161,0,1,0,100,1,83,0,41, + 2,97,21,1,0,0,82,101,108,101,97,115,101,32,116,104, + 101,32,103,108,111,98,97,108,32,105,109,112,111,114,116,32, + 108,111,99,107,44,32,97,110,100,32,97,99,113,117,105,114, + 101,115,32,116,104,101,110,32,114,101,108,101,97,115,101,32, + 116,104,101,10,32,32,32,32,109,111,100,117,108,101,32,108, + 111,99,107,32,102,111,114,32,97,32,103,105,118,101,110,32, + 109,111,100,117,108,101,32,110,97,109,101,46,10,32,32,32, + 32,84,104,105,115,32,105,115,32,117,115,101,100,32,116,111, + 32,101,110,115,117,114,101,32,97,32,109,111,100,117,108,101, + 32,105,115,32,99,111,109,112,108,101,116,101,108,121,32,105, + 110,105,116,105,97,108,105,122,101,100,44,32,105,110,32,116, + 104,101,10,32,32,32,32,101,118,101,110,116,32,105,116,32, + 105,115,32,98,101,105,110,103,32,105,109,112,111,114,116,101, + 100,32,98,121,32,97,110,111,116,104,101,114,32,116,104,114, + 101,97,100,46,10,10,32,32,32,32,83,104,111,117,108,100, + 32,111,110,108,121,32,98,101,32,99,97,108,108,101,100,32, + 119,105,116,104,32,116,104,101,32,105,109,112,111,114,116,32, + 108,111,99,107,32,116,97,107,101,110,46,78,41,6,114,45, + 0,0,0,114,46,0,0,0,114,47,0,0,0,114,34,0, + 0,0,114,17,0,0,0,114,35,0,0,0,41,2,114,15, + 0,0,0,114,21,0,0,0,114,10,0,0,0,114,10,0, + 0,0,114,11,0,0,0,218,19,95,108,111,99,107,95,117, + 110,108,111,99,107,95,109,111,100,117,108,101,178,0,0,0, + 115,14,0,0,0,0,7,8,1,8,1,2,1,12,1,14, + 3,6,2,114,56,0,0,0,99,1,0,0,0,0,0,0, + 0,3,0,0,0,3,0,0,0,79,0,0,0,115,10,0, + 0,0,124,0,124,1,124,2,142,1,83,0,41,1,97,46, + 1,0,0,114,101,109,111,118,101,95,105,109,112,111,114,116, + 108,105,98,95,102,114,97,109,101,115,32,105,110,32,105,109, + 112,111,114,116,46,99,32,119,105,108,108,32,97,108,119,97, + 121,115,32,114,101,109,111,118,101,32,115,101,113,117,101,110, + 99,101,115,10,32,32,32,32,111,102,32,105,109,112,111,114, + 116,108,105,98,32,102,114,97,109,101,115,32,116,104,97,116, + 32,101,110,100,32,119,105,116,104,32,97,32,99,97,108,108, + 32,116,111,32,116,104,105,115,32,102,117,110,99,116,105,111, + 110,10,10,32,32,32,32,85,115,101,32,105,116,32,105,110, + 115,116,101,97,100,32,111,102,32,97,32,110,111,114,109,97, + 108,32,99,97,108,108,32,105,110,32,112,108,97,99,101,115, + 32,119,104,101,114,101,32,105,110,99,108,117,100,105,110,103, + 32,116,104,101,32,105,109,112,111,114,116,108,105,98,10,32, + 32,32,32,102,114,97,109,101,115,32,105,110,116,114,111,100, + 117,99,101,115,32,117,110,119,97,110,116,101,100,32,110,111, + 105,115,101,32,105,110,116,111,32,116,104,101,32,116,114,97, + 99,101,98,97,99,107,32,40,101,46,103,46,32,119,104,101, + 110,32,101,120,101,99,117,116,105,110,103,10,32,32,32,32, + 109,111,100,117,108,101,32,99,111,100,101,41,10,32,32,32, + 32,114,10,0,0,0,41,3,218,1,102,114,49,0,0,0, + 90,4,107,119,100,115,114,10,0,0,0,114,10,0,0,0, + 114,11,0,0,0,218,25,95,99,97,108,108,95,119,105,116, + 104,95,102,114,97,109,101,115,95,114,101,109,111,118,101,100, + 197,0,0,0,115,2,0,0,0,0,8,114,58,0,0,0, + 114,33,0,0,0,41,1,218,9,118,101,114,98,111,115,105, + 116,121,99,1,0,0,0,1,0,0,0,3,0,0,0,5, + 0,0,0,71,0,0,0,115,54,0,0,0,116,0,106,1, + 106,2,124,1,107,5,114,50,124,0,160,3,100,6,161,1, + 115,30,100,3,124,0,23,0,125,0,116,4,124,0,106,5, + 124,2,142,0,116,0,106,6,100,4,141,2,1,0,100,5, + 83,0,41,7,122,61,80,114,105,110,116,32,116,104,101,32, + 109,101,115,115,97,103,101,32,116,111,32,115,116,100,101,114, + 114,32,105,102,32,45,118,47,80,89,84,72,79,78,86,69, + 82,66,79,83,69,32,105,115,32,116,117,114,110,101,100,32, + 111,110,46,250,1,35,250,7,105,109,112,111,114,116,32,122, + 2,35,32,41,1,90,4,102,105,108,101,78,41,2,114,60, + 0,0,0,114,61,0,0,0,41,7,114,14,0,0,0,218, + 5,102,108,97,103,115,218,7,118,101,114,98,111,115,101,218, + 10,115,116,97,114,116,115,119,105,116,104,218,5,112,114,105, + 110,116,114,38,0,0,0,218,6,115,116,100,101,114,114,41, + 3,218,7,109,101,115,115,97,103,101,114,59,0,0,0,114, + 49,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11, + 0,0,0,218,16,95,118,101,114,98,111,115,101,95,109,101, + 115,115,97,103,101,208,0,0,0,115,8,0,0,0,0,2, + 12,1,10,1,8,1,114,68,0,0,0,99,1,0,0,0, + 0,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0, + 115,26,0,0,0,135,0,102,1,100,1,100,2,132,8,125, + 1,116,0,124,1,136,0,131,2,1,0,124,1,83,0,41, + 3,122,49,68,101,99,111,114,97,116,111,114,32,116,111,32, + 118,101,114,105,102,121,32,116,104,101,32,110,97,109,101,100, + 32,109,111,100,117,108,101,32,105,115,32,98,117,105,108,116, + 45,105,110,46,99,2,0,0,0,0,0,0,0,2,0,0, + 0,4,0,0,0,19,0,0,0,115,38,0,0,0,124,1, + 116,0,106,1,107,7,114,28,116,2,100,1,160,3,124,1, + 161,1,124,1,100,2,141,2,130,1,136,0,124,0,124,1, + 131,2,83,0,41,3,78,122,29,123,33,114,125,32,105,115, + 32,110,111,116,32,97,32,98,117,105,108,116,45,105,110,32, + 109,111,100,117,108,101,41,1,114,15,0,0,0,41,4,114, + 14,0,0,0,218,20,98,117,105,108,116,105,110,95,109,111, + 100,117,108,101,95,110,97,109,101,115,218,11,73,109,112,111, + 114,116,69,114,114,111,114,114,38,0,0,0,41,2,114,26, + 0,0,0,218,8,102,117,108,108,110,97,109,101,41,1,218, + 3,102,120,110,114,10,0,0,0,114,11,0,0,0,218,25, 95,114,101,113,117,105,114,101,115,95,98,117,105,108,116,105, - 110,46,60,108,111,99,97,108,115,62,46,95,114,101,113,117, - 105,114,101,115,95,98,117,105,108,116,105,110,95,119,114,97, - 112,112,101,114,41,1,114,12,0,0,0,41,2,114,72,0, - 0,0,114,73,0,0,0,114,10,0,0,0,41,1,114,72, - 0,0,0,114,11,0,0,0,218,17,95,114,101,113,117,105, - 114,101,115,95,98,117,105,108,116,105,110,216,0,0,0,115, - 6,0,0,0,0,2,12,5,10,1,114,74,0,0,0,99, - 1,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0, - 3,0,0,0,115,26,0,0,0,135,0,102,1,100,1,100, - 2,132,8,125,1,116,0,124,1,136,0,131,2,1,0,124, - 1,83,0,41,3,122,47,68,101,99,111,114,97,116,111,114, - 32,116,111,32,118,101,114,105,102,121,32,116,104,101,32,110, - 97,109,101,100,32,109,111,100,117,108,101,32,105,115,32,102, - 114,111,122,101,110,46,99,2,0,0,0,0,0,0,0,2, - 0,0,0,4,0,0,0,19,0,0,0,115,38,0,0,0, - 116,0,160,1,124,1,161,1,115,28,116,2,100,1,160,3, - 124,1,161,1,124,1,100,2,141,2,130,1,136,0,124,0, - 124,1,131,2,83,0,41,3,78,122,27,123,33,114,125,32, - 105,115,32,110,111,116,32,97,32,102,114,111,122,101,110,32, - 109,111,100,117,108,101,41,1,114,15,0,0,0,41,4,114, - 46,0,0,0,218,9,105,115,95,102,114,111,122,101,110,114, - 70,0,0,0,114,38,0,0,0,41,2,114,26,0,0,0, - 114,71,0,0,0,41,1,114,72,0,0,0,114,10,0,0, - 0,114,11,0,0,0,218,24,95,114,101,113,117,105,114,101, - 115,95,102,114,111,122,101,110,95,119,114,97,112,112,101,114, - 229,0,0,0,115,8,0,0,0,0,1,10,1,10,1,8, - 1,122,50,95,114,101,113,117,105,114,101,115,95,102,114,111, - 122,101,110,46,60,108,111,99,97,108,115,62,46,95,114,101, - 113,117,105,114,101,115,95,102,114,111,122,101,110,95,119,114, - 97,112,112,101,114,41,1,114,12,0,0,0,41,2,114,72, - 0,0,0,114,76,0,0,0,114,10,0,0,0,41,1,114, - 72,0,0,0,114,11,0,0,0,218,16,95,114,101,113,117, - 105,114,101,115,95,102,114,111,122,101,110,227,0,0,0,115, - 6,0,0,0,0,2,12,5,10,1,114,77,0,0,0,99, - 2,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, - 67,0,0,0,115,62,0,0,0,116,0,124,1,124,0,131, - 2,125,2,124,1,116,1,106,2,107,6,114,50,116,1,106, - 2,124,1,25,0,125,3,116,3,124,2,124,3,131,2,1, - 0,116,1,106,2,124,1,25,0,83,0,116,4,124,2,131, - 1,83,0,100,1,83,0,41,2,122,128,76,111,97,100,32, - 116,104,101,32,115,112,101,99,105,102,105,101,100,32,109,111, - 100,117,108,101,32,105,110,116,111,32,115,121,115,46,109,111, - 100,117,108,101,115,32,97,110,100,32,114,101,116,117,114,110, - 32,105,116,46,10,10,32,32,32,32,84,104,105,115,32,109, - 101,116,104,111,100,32,105,115,32,100,101,112,114,101,99,97, - 116,101,100,46,32,32,85,115,101,32,108,111,97,100,101,114, - 46,101,120,101,99,95,109,111,100,117,108,101,32,105,110,115, - 116,101,97,100,46,10,10,32,32,32,32,78,41,5,218,16, - 115,112,101,99,95,102,114,111,109,95,108,111,97,100,101,114, - 114,14,0,0,0,218,7,109,111,100,117,108,101,115,218,5, - 95,101,120,101,99,218,5,95,108,111,97,100,41,4,114,26, - 0,0,0,114,71,0,0,0,218,4,115,112,101,99,218,6, - 109,111,100,117,108,101,114,10,0,0,0,114,10,0,0,0, - 114,11,0,0,0,218,17,95,108,111,97,100,95,109,111,100, - 117,108,101,95,115,104,105,109,239,0,0,0,115,12,0,0, - 0,0,6,10,1,10,1,10,1,10,1,10,2,114,84,0, - 0,0,99,1,0,0,0,0,0,0,0,5,0,0,0,36, - 0,0,0,67,0,0,0,115,216,0,0,0,116,0,124,0, - 100,1,100,0,131,3,125,1,116,1,124,1,100,2,131,2, - 114,54,121,10,124,1,160,2,124,0,161,1,83,0,4,0, - 116,3,107,10,114,52,1,0,1,0,1,0,89,0,110,2, - 88,0,121,10,124,0,106,4,125,2,87,0,110,20,4,0, - 116,5,107,10,114,84,1,0,1,0,1,0,89,0,110,18, - 88,0,124,2,100,0,107,9,114,102,116,6,124,2,131,1, - 83,0,121,10,124,0,106,7,125,3,87,0,110,24,4,0, - 116,5,107,10,114,136,1,0,1,0,1,0,100,3,125,3, - 89,0,110,2,88,0,121,10,124,0,106,8,125,4,87,0, - 110,50,4,0,116,5,107,10,114,198,1,0,1,0,1,0, - 124,1,100,0,107,8,114,182,100,4,160,9,124,3,161,1, - 83,0,100,5,160,9,124,3,124,1,161,2,83,0,89,0, - 110,14,88,0,100,6,160,9,124,3,124,4,161,2,83,0, - 100,0,83,0,41,7,78,218,10,95,95,108,111,97,100,101, - 114,95,95,218,11,109,111,100,117,108,101,95,114,101,112,114, - 250,1,63,122,13,60,109,111,100,117,108,101,32,123,33,114, + 110,95,119,114,97,112,112,101,114,218,0,0,0,115,8,0, + 0,0,0,1,10,1,10,1,8,1,122,52,95,114,101,113, + 117,105,114,101,115,95,98,117,105,108,116,105,110,46,60,108, + 111,99,97,108,115,62,46,95,114,101,113,117,105,114,101,115, + 95,98,117,105,108,116,105,110,95,119,114,97,112,112,101,114, + 41,1,114,12,0,0,0,41,2,114,72,0,0,0,114,73, + 0,0,0,114,10,0,0,0,41,1,114,72,0,0,0,114, + 11,0,0,0,218,17,95,114,101,113,117,105,114,101,115,95, + 98,117,105,108,116,105,110,216,0,0,0,115,6,0,0,0, + 0,2,12,5,10,1,114,74,0,0,0,99,1,0,0,0, + 0,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0, + 115,26,0,0,0,135,0,102,1,100,1,100,2,132,8,125, + 1,116,0,124,1,136,0,131,2,1,0,124,1,83,0,41, + 3,122,47,68,101,99,111,114,97,116,111,114,32,116,111,32, + 118,101,114,105,102,121,32,116,104,101,32,110,97,109,101,100, + 32,109,111,100,117,108,101,32,105,115,32,102,114,111,122,101, + 110,46,99,2,0,0,0,0,0,0,0,2,0,0,0,4, + 0,0,0,19,0,0,0,115,38,0,0,0,116,0,160,1, + 124,1,161,1,115,28,116,2,100,1,160,3,124,1,161,1, + 124,1,100,2,141,2,130,1,136,0,124,0,124,1,131,2, + 83,0,41,3,78,122,27,123,33,114,125,32,105,115,32,110, + 111,116,32,97,32,102,114,111,122,101,110,32,109,111,100,117, + 108,101,41,1,114,15,0,0,0,41,4,114,46,0,0,0, + 218,9,105,115,95,102,114,111,122,101,110,114,70,0,0,0, + 114,38,0,0,0,41,2,114,26,0,0,0,114,71,0,0, + 0,41,1,114,72,0,0,0,114,10,0,0,0,114,11,0, + 0,0,218,24,95,114,101,113,117,105,114,101,115,95,102,114, + 111,122,101,110,95,119,114,97,112,112,101,114,229,0,0,0, + 115,8,0,0,0,0,1,10,1,10,1,8,1,122,50,95, + 114,101,113,117,105,114,101,115,95,102,114,111,122,101,110,46, + 60,108,111,99,97,108,115,62,46,95,114,101,113,117,105,114, + 101,115,95,102,114,111,122,101,110,95,119,114,97,112,112,101, + 114,41,1,114,12,0,0,0,41,2,114,72,0,0,0,114, + 76,0,0,0,114,10,0,0,0,41,1,114,72,0,0,0, + 114,11,0,0,0,218,16,95,114,101,113,117,105,114,101,115, + 95,102,114,111,122,101,110,227,0,0,0,115,6,0,0,0, + 0,2,12,5,10,1,114,77,0,0,0,99,2,0,0,0, + 0,0,0,0,4,0,0,0,3,0,0,0,67,0,0,0, + 115,62,0,0,0,116,0,124,1,124,0,131,2,125,2,124, + 1,116,1,106,2,107,6,114,50,116,1,106,2,124,1,25, + 0,125,3,116,3,124,2,124,3,131,2,1,0,116,1,106, + 2,124,1,25,0,83,0,116,4,124,2,131,1,83,0,100, + 1,83,0,41,2,122,128,76,111,97,100,32,116,104,101,32, + 115,112,101,99,105,102,105,101,100,32,109,111,100,117,108,101, + 32,105,110,116,111,32,115,121,115,46,109,111,100,117,108,101, + 115,32,97,110,100,32,114,101,116,117,114,110,32,105,116,46, + 10,10,32,32,32,32,84,104,105,115,32,109,101,116,104,111, + 100,32,105,115,32,100,101,112,114,101,99,97,116,101,100,46, + 32,32,85,115,101,32,108,111,97,100,101,114,46,101,120,101, + 99,95,109,111,100,117,108,101,32,105,110,115,116,101,97,100, + 46,10,10,32,32,32,32,78,41,5,218,16,115,112,101,99, + 95,102,114,111,109,95,108,111,97,100,101,114,114,14,0,0, + 0,218,7,109,111,100,117,108,101,115,218,5,95,101,120,101, + 99,218,5,95,108,111,97,100,41,4,114,26,0,0,0,114, + 71,0,0,0,218,4,115,112,101,99,218,6,109,111,100,117, + 108,101,114,10,0,0,0,114,10,0,0,0,114,11,0,0, + 0,218,17,95,108,111,97,100,95,109,111,100,117,108,101,95, + 115,104,105,109,239,0,0,0,115,12,0,0,0,0,6,10, + 1,10,1,10,1,10,1,10,2,114,84,0,0,0,99,1, + 0,0,0,0,0,0,0,5,0,0,0,36,0,0,0,67, + 0,0,0,115,216,0,0,0,116,0,124,0,100,1,100,0, + 131,3,125,1,116,1,124,1,100,2,131,2,114,54,121,10, + 124,1,160,2,124,0,161,1,83,0,4,0,116,3,107,10, + 114,52,1,0,1,0,1,0,89,0,110,2,88,0,121,10, + 124,0,106,4,125,2,87,0,110,20,4,0,116,5,107,10, + 114,84,1,0,1,0,1,0,89,0,110,18,88,0,124,2, + 100,0,107,9,114,102,116,6,124,2,131,1,83,0,121,10, + 124,0,106,7,125,3,87,0,110,24,4,0,116,5,107,10, + 114,136,1,0,1,0,1,0,100,3,125,3,89,0,110,2, + 88,0,121,10,124,0,106,8,125,4,87,0,110,50,4,0, + 116,5,107,10,114,198,1,0,1,0,1,0,124,1,100,0, + 107,8,114,182,100,4,160,9,124,3,161,1,83,0,100,5, + 160,9,124,3,124,1,161,2,83,0,89,0,110,14,88,0, + 100,6,160,9,124,3,124,4,161,2,83,0,100,0,83,0, + 41,7,78,218,10,95,95,108,111,97,100,101,114,95,95,218, + 11,109,111,100,117,108,101,95,114,101,112,114,250,1,63,122, + 13,60,109,111,100,117,108,101,32,123,33,114,125,62,122,20, + 60,109,111,100,117,108,101,32,123,33,114,125,32,40,123,33, + 114,125,41,62,122,23,60,109,111,100,117,108,101,32,123,33, + 114,125,32,102,114,111,109,32,123,33,114,125,62,41,10,114, + 6,0,0,0,114,4,0,0,0,114,86,0,0,0,218,9, + 69,120,99,101,112,116,105,111,110,218,8,95,95,115,112,101, + 99,95,95,218,14,65,116,116,114,105,98,117,116,101,69,114, + 114,111,114,218,22,95,109,111,100,117,108,101,95,114,101,112, + 114,95,102,114,111,109,95,115,112,101,99,114,1,0,0,0, + 218,8,95,95,102,105,108,101,95,95,114,38,0,0,0,41, + 5,114,83,0,0,0,218,6,108,111,97,100,101,114,114,82, + 0,0,0,114,15,0,0,0,218,8,102,105,108,101,110,97, + 109,101,114,10,0,0,0,114,10,0,0,0,114,11,0,0, + 0,218,12,95,109,111,100,117,108,101,95,114,101,112,114,255, + 0,0,0,115,46,0,0,0,0,2,12,1,10,4,2,1, + 10,1,14,1,6,1,2,1,10,1,14,1,6,2,8,1, + 8,4,2,1,10,1,14,1,10,1,2,1,10,1,14,1, + 8,1,10,2,18,2,114,95,0,0,0,99,0,0,0,0, + 0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,0, + 115,36,0,0,0,101,0,90,1,100,0,90,2,100,1,100, + 2,132,0,90,3,100,3,100,4,132,0,90,4,100,5,100, + 6,132,0,90,5,100,7,83,0,41,8,218,17,95,105,110, + 115,116,97,108,108,101,100,95,115,97,102,101,108,121,99,2, + 0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,67, + 0,0,0,115,18,0,0,0,124,1,124,0,95,0,124,1, + 106,1,124,0,95,2,100,0,83,0,41,1,78,41,3,218, + 7,95,109,111,100,117,108,101,114,89,0,0,0,218,5,95, + 115,112,101,99,41,2,114,26,0,0,0,114,83,0,0,0, + 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114, + 27,0,0,0,37,1,0,0,115,4,0,0,0,0,1,6, + 1,122,26,95,105,110,115,116,97,108,108,101,100,95,115,97, + 102,101,108,121,46,95,95,105,110,105,116,95,95,99,1,0, + 0,0,0,0,0,0,1,0,0,0,3,0,0,0,67,0, + 0,0,115,28,0,0,0,100,1,124,0,106,0,95,1,124, + 0,106,2,116,3,106,4,124,0,106,0,106,5,60,0,100, + 0,83,0,41,2,78,84,41,6,114,98,0,0,0,218,13, + 95,105,110,105,116,105,97,108,105,122,105,110,103,114,97,0, + 0,0,114,14,0,0,0,114,79,0,0,0,114,15,0,0, + 0,41,1,114,26,0,0,0,114,10,0,0,0,114,10,0, + 0,0,114,11,0,0,0,114,48,0,0,0,41,1,0,0, + 115,4,0,0,0,0,4,8,1,122,27,95,105,110,115,116, + 97,108,108,101,100,95,115,97,102,101,108,121,46,95,95,101, + 110,116,101,114,95,95,99,1,0,0,0,0,0,0,0,3, + 0,0,0,17,0,0,0,71,0,0,0,115,98,0,0,0, + 122,82,124,0,106,0,125,2,116,1,100,1,100,2,132,0, + 124,1,68,0,131,1,131,1,114,64,121,14,116,2,106,3, + 124,2,106,4,61,0,87,0,113,80,4,0,116,5,107,10, + 114,60,1,0,1,0,1,0,89,0,113,80,88,0,110,16, + 116,6,100,3,124,2,106,4,124,2,106,7,131,3,1,0, + 87,0,100,0,100,4,124,0,106,0,95,8,88,0,100,0, + 83,0,41,5,78,99,1,0,0,0,0,0,0,0,2,0, + 0,0,3,0,0,0,115,0,0,0,115,22,0,0,0,124, + 0,93,14,125,1,124,1,100,0,107,9,86,0,1,0,113, + 2,100,0,83,0,41,1,78,114,10,0,0,0,41,2,90, + 2,46,48,90,3,97,114,103,114,10,0,0,0,114,10,0, + 0,0,114,11,0,0,0,250,9,60,103,101,110,101,120,112, + 114,62,51,1,0,0,115,2,0,0,0,4,0,122,45,95, + 105,110,115,116,97,108,108,101,100,95,115,97,102,101,108,121, + 46,95,95,101,120,105,116,95,95,46,60,108,111,99,97,108, + 115,62,46,60,103,101,110,101,120,112,114,62,122,18,105,109, + 112,111,114,116,32,123,33,114,125,32,35,32,123,33,114,125, + 70,41,9,114,98,0,0,0,218,3,97,110,121,114,14,0, + 0,0,114,79,0,0,0,114,15,0,0,0,114,54,0,0, + 0,114,68,0,0,0,114,93,0,0,0,114,99,0,0,0, + 41,3,114,26,0,0,0,114,49,0,0,0,114,82,0,0, + 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, + 114,50,0,0,0,48,1,0,0,115,18,0,0,0,0,1, + 2,1,6,1,18,1,2,1,14,1,14,1,8,2,20,2, + 122,26,95,105,110,115,116,97,108,108,101,100,95,115,97,102, + 101,108,121,46,95,95,101,120,105,116,95,95,78,41,6,114, + 1,0,0,0,114,0,0,0,0,114,2,0,0,0,114,27, + 0,0,0,114,48,0,0,0,114,50,0,0,0,114,10,0, + 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, + 0,114,96,0,0,0,35,1,0,0,115,6,0,0,0,8, + 2,8,4,8,7,114,96,0,0,0,99,0,0,0,0,0, + 0,0,0,0,0,0,0,4,0,0,0,64,0,0,0,115, + 114,0,0,0,101,0,90,1,100,0,90,2,100,1,90,3, + 100,2,100,2,100,2,100,3,156,3,100,4,100,5,132,2, + 90,4,100,6,100,7,132,0,90,5,100,8,100,9,132,0, + 90,6,101,7,100,10,100,11,132,0,131,1,90,8,101,8, + 106,9,100,12,100,11,132,0,131,1,90,8,101,7,100,13, + 100,14,132,0,131,1,90,10,101,7,100,15,100,16,132,0, + 131,1,90,11,101,11,106,9,100,17,100,16,132,0,131,1, + 90,11,100,2,83,0,41,18,218,10,77,111,100,117,108,101, + 83,112,101,99,97,208,5,0,0,84,104,101,32,115,112,101, + 99,105,102,105,99,97,116,105,111,110,32,102,111,114,32,97, + 32,109,111,100,117,108,101,44,32,117,115,101,100,32,102,111, + 114,32,108,111,97,100,105,110,103,46,10,10,32,32,32,32, + 65,32,109,111,100,117,108,101,39,115,32,115,112,101,99,32, + 105,115,32,116,104,101,32,115,111,117,114,99,101,32,102,111, + 114,32,105,110,102,111,114,109,97,116,105,111,110,32,97,98, + 111,117,116,32,116,104,101,32,109,111,100,117,108,101,46,32, + 32,70,111,114,10,32,32,32,32,100,97,116,97,32,97,115, + 115,111,99,105,97,116,101,100,32,119,105,116,104,32,116,104, + 101,32,109,111,100,117,108,101,44,32,105,110,99,108,117,100, + 105,110,103,32,115,111,117,114,99,101,44,32,117,115,101,32, + 116,104,101,32,115,112,101,99,39,115,10,32,32,32,32,108, + 111,97,100,101,114,46,10,10,32,32,32,32,96,110,97,109, + 101,96,32,105,115,32,116,104,101,32,97,98,115,111,108,117, + 116,101,32,110,97,109,101,32,111,102,32,116,104,101,32,109, + 111,100,117,108,101,46,32,32,96,108,111,97,100,101,114,96, + 32,105,115,32,116,104,101,32,108,111,97,100,101,114,10,32, + 32,32,32,116,111,32,117,115,101,32,119,104,101,110,32,108, + 111,97,100,105,110,103,32,116,104,101,32,109,111,100,117,108, + 101,46,32,32,96,112,97,114,101,110,116,96,32,105,115,32, + 116,104,101,32,110,97,109,101,32,111,102,32,116,104,101,10, + 32,32,32,32,112,97,99,107,97,103,101,32,116,104,101,32, + 109,111,100,117,108,101,32,105,115,32,105,110,46,32,32,84, + 104,101,32,112,97,114,101,110,116,32,105,115,32,100,101,114, + 105,118,101,100,32,102,114,111,109,32,116,104,101,32,110,97, + 109,101,46,10,10,32,32,32,32,96,105,115,95,112,97,99, + 107,97,103,101,96,32,100,101,116,101,114,109,105,110,101,115, + 32,105,102,32,116,104,101,32,109,111,100,117,108,101,32,105, + 115,32,99,111,110,115,105,100,101,114,101,100,32,97,32,112, + 97,99,107,97,103,101,32,111,114,10,32,32,32,32,110,111, + 116,46,32,32,79,110,32,109,111,100,117,108,101,115,32,116, + 104,105,115,32,105,115,32,114,101,102,108,101,99,116,101,100, + 32,98,121,32,116,104,101,32,96,95,95,112,97,116,104,95, + 95,96,32,97,116,116,114,105,98,117,116,101,46,10,10,32, + 32,32,32,96,111,114,105,103,105,110,96,32,105,115,32,116, + 104,101,32,115,112,101,99,105,102,105,99,32,108,111,99,97, + 116,105,111,110,32,117,115,101,100,32,98,121,32,116,104,101, + 32,108,111,97,100,101,114,32,102,114,111,109,32,119,104,105, + 99,104,32,116,111,10,32,32,32,32,108,111,97,100,32,116, + 104,101,32,109,111,100,117,108,101,44,32,105,102,32,116,104, + 97,116,32,105,110,102,111,114,109,97,116,105,111,110,32,105, + 115,32,97,118,97,105,108,97,98,108,101,46,32,32,87,104, + 101,110,32,102,105,108,101,110,97,109,101,32,105,115,10,32, + 32,32,32,115,101,116,44,32,111,114,105,103,105,110,32,119, + 105,108,108,32,109,97,116,99,104,46,10,10,32,32,32,32, + 96,104,97,115,95,108,111,99,97,116,105,111,110,96,32,105, + 110,100,105,99,97,116,101,115,32,116,104,97,116,32,97,32, + 115,112,101,99,39,115,32,34,111,114,105,103,105,110,34,32, + 114,101,102,108,101,99,116,115,32,97,32,108,111,99,97,116, + 105,111,110,46,10,32,32,32,32,87,104,101,110,32,116,104, + 105,115,32,105,115,32,84,114,117,101,44,32,96,95,95,102, + 105,108,101,95,95,96,32,97,116,116,114,105,98,117,116,101, + 32,111,102,32,116,104,101,32,109,111,100,117,108,101,32,105, + 115,32,115,101,116,46,10,10,32,32,32,32,96,99,97,99, + 104,101,100,96,32,105,115,32,116,104,101,32,108,111,99,97, + 116,105,111,110,32,111,102,32,116,104,101,32,99,97,99,104, + 101,100,32,98,121,116,101,99,111,100,101,32,102,105,108,101, + 44,32,105,102,32,97,110,121,46,32,32,73,116,10,32,32, + 32,32,99,111,114,114,101,115,112,111,110,100,115,32,116,111, + 32,116,104,101,32,96,95,95,99,97,99,104,101,100,95,95, + 96,32,97,116,116,114,105,98,117,116,101,46,10,10,32,32, + 32,32,96,115,117,98,109,111,100,117,108,101,95,115,101,97, + 114,99,104,95,108,111,99,97,116,105,111,110,115,96,32,105, + 115,32,116,104,101,32,115,101,113,117,101,110,99,101,32,111, + 102,32,112,97,116,104,32,101,110,116,114,105,101,115,32,116, + 111,10,32,32,32,32,115,101,97,114,99,104,32,119,104,101, + 110,32,105,109,112,111,114,116,105,110,103,32,115,117,98,109, + 111,100,117,108,101,115,46,32,32,73,102,32,115,101,116,44, + 32,105,115,95,112,97,99,107,97,103,101,32,115,104,111,117, + 108,100,32,98,101,10,32,32,32,32,84,114,117,101,45,45, + 97,110,100,32,70,97,108,115,101,32,111,116,104,101,114,119, + 105,115,101,46,10,10,32,32,32,32,80,97,99,107,97,103, + 101,115,32,97,114,101,32,115,105,109,112,108,121,32,109,111, + 100,117,108,101,115,32,116,104,97,116,32,40,109,97,121,41, + 32,104,97,118,101,32,115,117,98,109,111,100,117,108,101,115, + 46,32,32,73,102,32,97,32,115,112,101,99,10,32,32,32, + 32,104,97,115,32,97,32,110,111,110,45,78,111,110,101,32, + 118,97,108,117,101,32,105,110,32,96,115,117,98,109,111,100, + 117,108,101,95,115,101,97,114,99,104,95,108,111,99,97,116, + 105,111,110,115,96,44,32,116,104,101,32,105,109,112,111,114, + 116,10,32,32,32,32,115,121,115,116,101,109,32,119,105,108, + 108,32,99,111,110,115,105,100,101,114,32,109,111,100,117,108, + 101,115,32,108,111,97,100,101,100,32,102,114,111,109,32,116, + 104,101,32,115,112,101,99,32,97,115,32,112,97,99,107,97, + 103,101,115,46,10,10,32,32,32,32,79,110,108,121,32,102, + 105,110,100,101,114,115,32,40,115,101,101,32,105,109,112,111, + 114,116,108,105,98,46,97,98,99,46,77,101,116,97,80,97, + 116,104,70,105,110,100,101,114,32,97,110,100,10,32,32,32, + 32,105,109,112,111,114,116,108,105,98,46,97,98,99,46,80, + 97,116,104,69,110,116,114,121,70,105,110,100,101,114,41,32, + 115,104,111,117,108,100,32,109,111,100,105,102,121,32,77,111, + 100,117,108,101,83,112,101,99,32,105,110,115,116,97,110,99, + 101,115,46,10,10,32,32,32,32,78,41,3,218,6,111,114, + 105,103,105,110,218,12,108,111,97,100,101,114,95,115,116,97, + 116,101,218,10,105,115,95,112,97,99,107,97,103,101,99,3, + 0,0,0,3,0,0,0,6,0,0,0,2,0,0,0,67, + 0,0,0,115,54,0,0,0,124,1,124,0,95,0,124,2, + 124,0,95,1,124,3,124,0,95,2,124,4,124,0,95,3, + 124,5,114,32,103,0,110,2,100,0,124,0,95,4,100,1, + 124,0,95,5,100,0,124,0,95,6,100,0,83,0,41,2, + 78,70,41,7,114,15,0,0,0,114,93,0,0,0,114,103, + 0,0,0,114,104,0,0,0,218,26,115,117,98,109,111,100, + 117,108,101,95,115,101,97,114,99,104,95,108,111,99,97,116, + 105,111,110,115,218,13,95,115,101,116,95,102,105,108,101,97, + 116,116,114,218,7,95,99,97,99,104,101,100,41,6,114,26, + 0,0,0,114,15,0,0,0,114,93,0,0,0,114,103,0, + 0,0,114,104,0,0,0,114,105,0,0,0,114,10,0,0, + 0,114,10,0,0,0,114,11,0,0,0,114,27,0,0,0, + 99,1,0,0,115,14,0,0,0,0,2,6,1,6,1,6, + 1,6,1,14,3,6,1,122,19,77,111,100,117,108,101,83, + 112,101,99,46,95,95,105,110,105,116,95,95,99,1,0,0, + 0,0,0,0,0,2,0,0,0,6,0,0,0,67,0,0, + 0,115,102,0,0,0,100,1,160,0,124,0,106,1,161,1, + 100,2,160,0,124,0,106,2,161,1,103,2,125,1,124,0, + 106,3,100,0,107,9,114,52,124,1,160,4,100,3,160,0, + 124,0,106,3,161,1,161,1,1,0,124,0,106,5,100,0, + 107,9,114,80,124,1,160,4,100,4,160,0,124,0,106,5, + 161,1,161,1,1,0,100,5,160,0,124,0,106,6,106,7, + 100,6,160,8,124,1,161,1,161,2,83,0,41,7,78,122, + 9,110,97,109,101,61,123,33,114,125,122,11,108,111,97,100, + 101,114,61,123,33,114,125,122,11,111,114,105,103,105,110,61, + 123,33,114,125,122,29,115,117,98,109,111,100,117,108,101,95, + 115,101,97,114,99,104,95,108,111,99,97,116,105,111,110,115, + 61,123,125,122,6,123,125,40,123,125,41,122,2,44,32,41, + 9,114,38,0,0,0,114,15,0,0,0,114,93,0,0,0, + 114,103,0,0,0,218,6,97,112,112,101,110,100,114,106,0, + 0,0,218,9,95,95,99,108,97,115,115,95,95,114,1,0, + 0,0,218,4,106,111,105,110,41,2,114,26,0,0,0,114, + 49,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11, + 0,0,0,114,40,0,0,0,111,1,0,0,115,16,0,0, + 0,0,1,10,1,14,1,10,1,18,1,10,1,8,1,10, + 1,122,19,77,111,100,117,108,101,83,112,101,99,46,95,95, + 114,101,112,114,95,95,99,2,0,0,0,0,0,0,0,3, + 0,0,0,11,0,0,0,67,0,0,0,115,102,0,0,0, + 124,0,106,0,125,2,121,70,124,0,106,1,124,1,106,1, + 107,2,111,76,124,0,106,2,124,1,106,2,107,2,111,76, + 124,0,106,3,124,1,106,3,107,2,111,76,124,2,124,1, + 106,0,107,2,111,76,124,0,106,4,124,1,106,4,107,2, + 111,76,124,0,106,5,124,1,106,5,107,2,83,0,4,0, + 116,6,107,10,114,96,1,0,1,0,1,0,100,1,83,0, + 88,0,100,0,83,0,41,2,78,70,41,7,114,106,0,0, + 0,114,15,0,0,0,114,93,0,0,0,114,103,0,0,0, + 218,6,99,97,99,104,101,100,218,12,104,97,115,95,108,111, + 99,97,116,105,111,110,114,90,0,0,0,41,3,114,26,0, + 0,0,90,5,111,116,104,101,114,90,4,115,109,115,108,114, + 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,6, + 95,95,101,113,95,95,121,1,0,0,115,20,0,0,0,0, + 1,6,1,2,1,12,1,12,1,12,1,10,1,12,1,12, + 1,14,1,122,17,77,111,100,117,108,101,83,112,101,99,46, + 95,95,101,113,95,95,99,1,0,0,0,0,0,0,0,1, + 0,0,0,3,0,0,0,67,0,0,0,115,58,0,0,0, + 124,0,106,0,100,0,107,8,114,52,124,0,106,1,100,0, + 107,9,114,52,124,0,106,2,114,52,116,3,100,0,107,8, + 114,38,116,4,130,1,116,3,160,5,124,0,106,1,161,1, + 124,0,95,0,124,0,106,0,83,0,41,1,78,41,6,114, + 108,0,0,0,114,103,0,0,0,114,107,0,0,0,218,19, + 95,98,111,111,116,115,116,114,97,112,95,101,120,116,101,114, + 110,97,108,218,19,78,111,116,73,109,112,108,101,109,101,110, + 116,101,100,69,114,114,111,114,90,11,95,103,101,116,95,99, + 97,99,104,101,100,41,1,114,26,0,0,0,114,10,0,0, + 0,114,10,0,0,0,114,11,0,0,0,114,112,0,0,0, + 133,1,0,0,115,12,0,0,0,0,2,10,1,16,1,8, + 1,4,1,14,1,122,17,77,111,100,117,108,101,83,112,101, + 99,46,99,97,99,104,101,100,99,2,0,0,0,0,0,0, + 0,2,0,0,0,2,0,0,0,67,0,0,0,115,10,0, + 0,0,124,1,124,0,95,0,100,0,83,0,41,1,78,41, + 1,114,108,0,0,0,41,2,114,26,0,0,0,114,112,0, + 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, + 0,114,112,0,0,0,142,1,0,0,115,2,0,0,0,0, + 2,99,1,0,0,0,0,0,0,0,1,0,0,0,3,0, + 0,0,67,0,0,0,115,36,0,0,0,124,0,106,0,100, + 1,107,8,114,26,124,0,106,1,160,2,100,2,161,1,100, + 3,25,0,83,0,124,0,106,1,83,0,100,1,83,0,41, + 4,122,32,84,104,101,32,110,97,109,101,32,111,102,32,116, + 104,101,32,109,111,100,117,108,101,39,115,32,112,97,114,101, + 110,116,46,78,218,1,46,114,19,0,0,0,41,3,114,106, + 0,0,0,114,15,0,0,0,218,10,114,112,97,114,116,105, + 116,105,111,110,41,1,114,26,0,0,0,114,10,0,0,0, + 114,10,0,0,0,114,11,0,0,0,218,6,112,97,114,101, + 110,116,146,1,0,0,115,6,0,0,0,0,3,10,1,16, + 2,122,17,77,111,100,117,108,101,83,112,101,99,46,112,97, + 114,101,110,116,99,1,0,0,0,0,0,0,0,1,0,0, + 0,1,0,0,0,67,0,0,0,115,6,0,0,0,124,0, + 106,0,83,0,41,1,78,41,1,114,107,0,0,0,41,1, + 114,26,0,0,0,114,10,0,0,0,114,10,0,0,0,114, + 11,0,0,0,114,113,0,0,0,154,1,0,0,115,2,0, + 0,0,0,2,122,23,77,111,100,117,108,101,83,112,101,99, + 46,104,97,115,95,108,111,99,97,116,105,111,110,99,2,0, + 0,0,0,0,0,0,2,0,0,0,2,0,0,0,67,0, + 0,0,115,14,0,0,0,116,0,124,1,131,1,124,0,95, + 1,100,0,83,0,41,1,78,41,2,218,4,98,111,111,108, + 114,107,0,0,0,41,2,114,26,0,0,0,218,5,118,97, + 108,117,101,114,10,0,0,0,114,10,0,0,0,114,11,0, + 0,0,114,113,0,0,0,158,1,0,0,115,2,0,0,0, + 0,2,41,12,114,1,0,0,0,114,0,0,0,0,114,2, + 0,0,0,114,3,0,0,0,114,27,0,0,0,114,40,0, + 0,0,114,114,0,0,0,218,8,112,114,111,112,101,114,116, + 121,114,112,0,0,0,218,6,115,101,116,116,101,114,114,119, + 0,0,0,114,113,0,0,0,114,10,0,0,0,114,10,0, + 0,0,114,10,0,0,0,114,11,0,0,0,114,102,0,0, + 0,62,1,0,0,115,18,0,0,0,12,37,4,1,14,11, + 8,10,8,12,12,9,14,4,12,8,12,4,114,102,0,0, + 0,41,2,114,103,0,0,0,114,105,0,0,0,99,2,0, + 0,0,2,0,0,0,6,0,0,0,14,0,0,0,67,0, + 0,0,115,154,0,0,0,116,0,124,1,100,1,131,2,114, + 74,116,1,100,2,107,8,114,22,116,2,130,1,116,1,106, + 3,125,4,124,3,100,2,107,8,114,48,124,4,124,0,124, + 1,100,3,141,2,83,0,124,3,114,56,103,0,110,2,100, + 2,125,5,124,4,124,0,124,1,124,5,100,4,141,3,83, + 0,124,3,100,2,107,8,114,138,116,0,124,1,100,5,131, + 2,114,134,121,14,124,1,160,4,124,0,161,1,125,3,87, + 0,113,138,4,0,116,5,107,10,114,130,1,0,1,0,1, + 0,100,2,125,3,89,0,113,138,88,0,110,4,100,6,125, + 3,116,6,124,0,124,1,124,2,124,3,100,7,141,4,83, + 0,41,8,122,53,82,101,116,117,114,110,32,97,32,109,111, + 100,117,108,101,32,115,112,101,99,32,98,97,115,101,100,32, + 111,110,32,118,97,114,105,111,117,115,32,108,111,97,100,101, + 114,32,109,101,116,104,111,100,115,46,90,12,103,101,116,95, + 102,105,108,101,110,97,109,101,78,41,1,114,93,0,0,0, + 41,2,114,93,0,0,0,114,106,0,0,0,114,105,0,0, + 0,70,41,2,114,103,0,0,0,114,105,0,0,0,41,7, + 114,4,0,0,0,114,115,0,0,0,114,116,0,0,0,218, + 23,115,112,101,99,95,102,114,111,109,95,102,105,108,101,95, + 108,111,99,97,116,105,111,110,114,105,0,0,0,114,70,0, + 0,0,114,102,0,0,0,41,6,114,15,0,0,0,114,93, + 0,0,0,114,103,0,0,0,114,105,0,0,0,114,124,0, + 0,0,90,6,115,101,97,114,99,104,114,10,0,0,0,114, + 10,0,0,0,114,11,0,0,0,114,78,0,0,0,163,1, + 0,0,115,34,0,0,0,0,2,10,1,8,1,4,1,6, + 2,8,1,12,1,12,1,6,1,8,2,8,1,10,1,2, + 1,14,1,14,1,12,3,4,2,114,78,0,0,0,99,3, + 0,0,0,0,0,0,0,8,0,0,0,53,0,0,0,67, + 0,0,0,115,56,1,0,0,121,10,124,0,106,0,125,3, + 87,0,110,20,4,0,116,1,107,10,114,30,1,0,1,0, + 1,0,89,0,110,14,88,0,124,3,100,0,107,9,114,44, + 124,3,83,0,124,0,106,2,125,4,124,1,100,0,107,8, + 114,90,121,10,124,0,106,3,125,1,87,0,110,20,4,0, + 116,1,107,10,114,88,1,0,1,0,1,0,89,0,110,2, + 88,0,121,10,124,0,106,4,125,5,87,0,110,24,4,0, + 116,1,107,10,114,124,1,0,1,0,1,0,100,0,125,5, + 89,0,110,2,88,0,124,2,100,0,107,8,114,184,124,5, + 100,0,107,8,114,180,121,10,124,1,106,5,125,2,87,0, + 113,184,4,0,116,1,107,10,114,176,1,0,1,0,1,0, + 100,0,125,2,89,0,113,184,88,0,110,4,124,5,125,2, + 121,10,124,0,106,6,125,6,87,0,110,24,4,0,116,1, + 107,10,114,218,1,0,1,0,1,0,100,0,125,6,89,0, + 110,2,88,0,121,14,116,7,124,0,106,8,131,1,125,7, + 87,0,110,26,4,0,116,1,107,10,144,1,114,4,1,0, + 1,0,1,0,100,0,125,7,89,0,110,2,88,0,116,9, + 124,4,124,1,124,2,100,1,141,3,125,3,124,5,100,0, + 107,8,144,1,114,34,100,2,110,2,100,3,124,3,95,10, + 124,6,124,3,95,11,124,7,124,3,95,12,124,3,83,0, + 41,4,78,41,1,114,103,0,0,0,70,84,41,13,114,89, + 0,0,0,114,90,0,0,0,114,1,0,0,0,114,85,0, + 0,0,114,92,0,0,0,90,7,95,79,82,73,71,73,78, + 218,10,95,95,99,97,99,104,101,100,95,95,218,4,108,105, + 115,116,218,8,95,95,112,97,116,104,95,95,114,102,0,0, + 0,114,107,0,0,0,114,112,0,0,0,114,106,0,0,0, + 41,8,114,83,0,0,0,114,93,0,0,0,114,103,0,0, + 0,114,82,0,0,0,114,15,0,0,0,90,8,108,111,99, + 97,116,105,111,110,114,112,0,0,0,114,106,0,0,0,114, + 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,17, + 95,115,112,101,99,95,102,114,111,109,95,109,111,100,117,108, + 101,192,1,0,0,115,72,0,0,0,0,2,2,1,10,1, + 14,1,6,2,8,1,4,2,6,1,8,1,2,1,10,1, + 14,2,6,1,2,1,10,1,14,1,10,1,8,1,8,1, + 2,1,10,1,14,1,12,2,4,1,2,1,10,1,14,1, + 10,1,2,1,14,1,16,1,10,2,14,1,20,1,6,1, + 6,1,114,128,0,0,0,70,41,1,218,8,111,118,101,114, + 114,105,100,101,99,2,0,0,0,1,0,0,0,5,0,0, + 0,59,0,0,0,67,0,0,0,115,212,1,0,0,124,2, + 115,20,116,0,124,1,100,1,100,0,131,3,100,0,107,8, + 114,54,121,12,124,0,106,1,124,1,95,2,87,0,110,20, + 4,0,116,3,107,10,114,52,1,0,1,0,1,0,89,0, + 110,2,88,0,124,2,115,74,116,0,124,1,100,2,100,0, + 131,3,100,0,107,8,114,166,124,0,106,4,125,3,124,3, + 100,0,107,8,114,134,124,0,106,5,100,0,107,9,114,134, + 116,6,100,0,107,8,114,110,116,7,130,1,116,6,106,8, + 125,4,124,4,160,9,124,4,161,1,125,3,124,0,106,5, + 124,3,95,10,121,10,124,3,124,1,95,11,87,0,110,20, + 4,0,116,3,107,10,114,164,1,0,1,0,1,0,89,0, + 110,2,88,0,124,2,115,186,116,0,124,1,100,3,100,0, + 131,3,100,0,107,8,114,220,121,12,124,0,106,12,124,1, + 95,13,87,0,110,20,4,0,116,3,107,10,114,218,1,0, + 1,0,1,0,89,0,110,2,88,0,121,10,124,0,124,1, + 95,14,87,0,110,20,4,0,116,3,107,10,114,250,1,0, + 1,0,1,0,89,0,110,2,88,0,124,2,144,1,115,20, + 116,0,124,1,100,4,100,0,131,3,100,0,107,8,144,1, + 114,68,124,0,106,5,100,0,107,9,144,1,114,68,121,12, + 124,0,106,5,124,1,95,15,87,0,110,22,4,0,116,3, + 107,10,144,1,114,66,1,0,1,0,1,0,89,0,110,2, + 88,0,124,0,106,16,144,1,114,208,124,2,144,1,115,100, + 116,0,124,1,100,5,100,0,131,3,100,0,107,8,144,1, + 114,136,121,12,124,0,106,17,124,1,95,18,87,0,110,22, + 4,0,116,3,107,10,144,1,114,134,1,0,1,0,1,0, + 89,0,110,2,88,0,124,2,144,1,115,160,116,0,124,1, + 100,6,100,0,131,3,100,0,107,8,144,1,114,208,124,0, + 106,19,100,0,107,9,144,1,114,208,121,12,124,0,106,19, + 124,1,95,20,87,0,110,22,4,0,116,3,107,10,144,1, + 114,206,1,0,1,0,1,0,89,0,110,2,88,0,124,1, + 83,0,41,7,78,114,1,0,0,0,114,85,0,0,0,218, + 11,95,95,112,97,99,107,97,103,101,95,95,114,127,0,0, + 0,114,92,0,0,0,114,125,0,0,0,41,21,114,6,0, + 0,0,114,15,0,0,0,114,1,0,0,0,114,90,0,0, + 0,114,93,0,0,0,114,106,0,0,0,114,115,0,0,0, + 114,116,0,0,0,218,16,95,78,97,109,101,115,112,97,99, + 101,76,111,97,100,101,114,218,7,95,95,110,101,119,95,95, + 90,5,95,112,97,116,104,114,85,0,0,0,114,119,0,0, + 0,114,130,0,0,0,114,89,0,0,0,114,127,0,0,0, + 114,113,0,0,0,114,103,0,0,0,114,92,0,0,0,114, + 112,0,0,0,114,125,0,0,0,41,5,114,82,0,0,0, + 114,83,0,0,0,114,129,0,0,0,114,93,0,0,0,114, + 131,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11, + 0,0,0,218,18,95,105,110,105,116,95,109,111,100,117,108, + 101,95,97,116,116,114,115,237,1,0,0,115,92,0,0,0, + 0,4,20,1,2,1,12,1,14,1,6,2,20,1,6,1, + 8,2,10,1,8,1,4,1,6,2,10,1,8,1,2,1, + 10,1,14,1,6,2,20,1,2,1,12,1,14,1,6,2, + 2,1,10,1,14,1,6,2,24,1,12,1,2,1,12,1, + 16,1,6,2,8,1,24,1,2,1,12,1,16,1,6,2, + 24,1,12,1,2,1,12,1,16,1,6,1,114,133,0,0, + 0,99,1,0,0,0,0,0,0,0,2,0,0,0,3,0, + 0,0,67,0,0,0,115,82,0,0,0,100,1,125,1,116, + 0,124,0,106,1,100,2,131,2,114,30,124,0,106,1,160, + 2,124,0,161,1,125,1,110,20,116,0,124,0,106,1,100, + 3,131,2,114,50,116,3,100,4,131,1,130,1,124,1,100, + 1,107,8,114,68,116,4,124,0,106,5,131,1,125,1,116, + 6,124,0,124,1,131,2,1,0,124,1,83,0,41,5,122, + 43,67,114,101,97,116,101,32,97,32,109,111,100,117,108,101, + 32,98,97,115,101,100,32,111,110,32,116,104,101,32,112,114, + 111,118,105,100,101,100,32,115,112,101,99,46,78,218,13,99, + 114,101,97,116,101,95,109,111,100,117,108,101,218,11,101,120, + 101,99,95,109,111,100,117,108,101,122,66,108,111,97,100,101, + 114,115,32,116,104,97,116,32,100,101,102,105,110,101,32,101, + 120,101,99,95,109,111,100,117,108,101,40,41,32,109,117,115, + 116,32,97,108,115,111,32,100,101,102,105,110,101,32,99,114, + 101,97,116,101,95,109,111,100,117,108,101,40,41,41,7,114, + 4,0,0,0,114,93,0,0,0,114,134,0,0,0,114,70, + 0,0,0,114,16,0,0,0,114,15,0,0,0,114,133,0, + 0,0,41,2,114,82,0,0,0,114,83,0,0,0,114,10, + 0,0,0,114,10,0,0,0,114,11,0,0,0,218,16,109, + 111,100,117,108,101,95,102,114,111,109,95,115,112,101,99,41, + 2,0,0,115,18,0,0,0,0,3,4,1,12,3,14,1, + 12,1,8,2,8,1,10,1,10,1,114,136,0,0,0,99, + 1,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0, + 67,0,0,0,115,106,0,0,0,124,0,106,0,100,1,107, + 8,114,14,100,2,110,4,124,0,106,0,125,1,124,0,106, + 1,100,1,107,8,114,66,124,0,106,2,100,1,107,8,114, + 50,100,3,160,3,124,1,161,1,83,0,100,4,160,3,124, + 1,124,0,106,2,161,2,83,0,110,36,124,0,106,4,114, + 86,100,5,160,3,124,1,124,0,106,1,161,2,83,0,100, + 6,160,3,124,0,106,0,124,0,106,1,161,2,83,0,100, + 1,83,0,41,7,122,38,82,101,116,117,114,110,32,116,104, + 101,32,114,101,112,114,32,116,111,32,117,115,101,32,102,111, + 114,32,116,104,101,32,109,111,100,117,108,101,46,78,114,87, + 0,0,0,122,13,60,109,111,100,117,108,101,32,123,33,114, 125,62,122,20,60,109,111,100,117,108,101,32,123,33,114,125, 32,40,123,33,114,125,41,62,122,23,60,109,111,100,117,108, 101,32,123,33,114,125,32,102,114,111,109,32,123,33,114,125, - 62,41,10,114,6,0,0,0,114,4,0,0,0,114,86,0, - 0,0,218,9,69,120,99,101,112,116,105,111,110,218,8,95, - 95,115,112,101,99,95,95,218,14,65,116,116,114,105,98,117, - 116,101,69,114,114,111,114,218,22,95,109,111,100,117,108,101, - 95,114,101,112,114,95,102,114,111,109,95,115,112,101,99,114, - 1,0,0,0,218,8,95,95,102,105,108,101,95,95,114,38, - 0,0,0,41,5,114,83,0,0,0,218,6,108,111,97,100, - 101,114,114,82,0,0,0,114,15,0,0,0,218,8,102,105, - 108,101,110,97,109,101,114,10,0,0,0,114,10,0,0,0, - 114,11,0,0,0,218,12,95,109,111,100,117,108,101,95,114, - 101,112,114,255,0,0,0,115,46,0,0,0,0,2,12,1, - 10,4,2,1,10,1,14,1,6,1,2,1,10,1,14,1, - 6,2,8,1,8,4,2,1,10,1,14,1,10,1,2,1, - 10,1,14,1,8,1,10,2,18,2,114,95,0,0,0,99, - 0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, - 64,0,0,0,115,36,0,0,0,101,0,90,1,100,0,90, - 2,100,1,100,2,132,0,90,3,100,3,100,4,132,0,90, - 4,100,5,100,6,132,0,90,5,100,7,83,0,41,8,218, - 17,95,105,110,115,116,97,108,108,101,100,95,115,97,102,101, - 108,121,99,2,0,0,0,0,0,0,0,2,0,0,0,2, - 0,0,0,67,0,0,0,115,18,0,0,0,124,1,124,0, - 95,0,124,1,106,1,124,0,95,2,100,0,83,0,41,1, - 78,41,3,218,7,95,109,111,100,117,108,101,114,89,0,0, - 0,218,5,95,115,112,101,99,41,2,114,26,0,0,0,114, - 83,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11, - 0,0,0,114,27,0,0,0,37,1,0,0,115,4,0,0, - 0,0,1,6,1,122,26,95,105,110,115,116,97,108,108,101, - 100,95,115,97,102,101,108,121,46,95,95,105,110,105,116,95, - 95,99,1,0,0,0,0,0,0,0,1,0,0,0,3,0, - 0,0,67,0,0,0,115,28,0,0,0,100,1,124,0,106, - 0,95,1,124,0,106,2,116,3,106,4,124,0,106,0,106, - 5,60,0,100,0,83,0,41,2,78,84,41,6,114,98,0, - 0,0,218,13,95,105,110,105,116,105,97,108,105,122,105,110, - 103,114,97,0,0,0,114,14,0,0,0,114,79,0,0,0, - 114,15,0,0,0,41,1,114,26,0,0,0,114,10,0,0, - 0,114,10,0,0,0,114,11,0,0,0,114,48,0,0,0, - 41,1,0,0,115,4,0,0,0,0,4,8,1,122,27,95, - 105,110,115,116,97,108,108,101,100,95,115,97,102,101,108,121, - 46,95,95,101,110,116,101,114,95,95,99,1,0,0,0,0, - 0,0,0,3,0,0,0,17,0,0,0,71,0,0,0,115, - 98,0,0,0,122,82,124,0,106,0,125,2,116,1,100,1, - 100,2,132,0,124,1,68,0,131,1,131,1,114,64,121,14, - 116,2,106,3,124,2,106,4,61,0,87,0,113,80,4,0, - 116,5,107,10,114,60,1,0,1,0,1,0,89,0,113,80, - 88,0,110,16,116,6,100,3,124,2,106,4,124,2,106,7, - 131,3,1,0,87,0,100,0,100,4,124,0,106,0,95,8, - 88,0,100,0,83,0,41,5,78,99,1,0,0,0,0,0, - 0,0,2,0,0,0,3,0,0,0,115,0,0,0,115,22, - 0,0,0,124,0,93,14,125,1,124,1,100,0,107,9,86, - 0,1,0,113,2,100,0,83,0,41,1,78,114,10,0,0, - 0,41,2,90,2,46,48,90,3,97,114,103,114,10,0,0, - 0,114,10,0,0,0,114,11,0,0,0,250,9,60,103,101, - 110,101,120,112,114,62,51,1,0,0,115,2,0,0,0,4, - 0,122,45,95,105,110,115,116,97,108,108,101,100,95,115,97, - 102,101,108,121,46,95,95,101,120,105,116,95,95,46,60,108, - 111,99,97,108,115,62,46,60,103,101,110,101,120,112,114,62, - 122,18,105,109,112,111,114,116,32,123,33,114,125,32,35,32, - 123,33,114,125,70,41,9,114,98,0,0,0,218,3,97,110, - 121,114,14,0,0,0,114,79,0,0,0,114,15,0,0,0, - 114,54,0,0,0,114,68,0,0,0,114,93,0,0,0,114, - 99,0,0,0,41,3,114,26,0,0,0,114,49,0,0,0, - 114,82,0,0,0,114,10,0,0,0,114,10,0,0,0,114, - 11,0,0,0,114,50,0,0,0,48,1,0,0,115,18,0, - 0,0,0,1,2,1,6,1,18,1,2,1,14,1,14,1, - 8,2,20,2,122,26,95,105,110,115,116,97,108,108,101,100, - 95,115,97,102,101,108,121,46,95,95,101,120,105,116,95,95, - 78,41,6,114,1,0,0,0,114,0,0,0,0,114,2,0, - 0,0,114,27,0,0,0,114,48,0,0,0,114,50,0,0, - 0,114,10,0,0,0,114,10,0,0,0,114,10,0,0,0, - 114,11,0,0,0,114,96,0,0,0,35,1,0,0,115,6, - 0,0,0,8,2,8,4,8,7,114,96,0,0,0,99,0, - 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,64, - 0,0,0,115,114,0,0,0,101,0,90,1,100,0,90,2, - 100,1,90,3,100,2,100,2,100,2,100,3,156,3,100,4, - 100,5,132,2,90,4,100,6,100,7,132,0,90,5,100,8, - 100,9,132,0,90,6,101,7,100,10,100,11,132,0,131,1, - 90,8,101,8,106,9,100,12,100,11,132,0,131,1,90,8, - 101,7,100,13,100,14,132,0,131,1,90,10,101,7,100,15, - 100,16,132,0,131,1,90,11,101,11,106,9,100,17,100,16, - 132,0,131,1,90,11,100,2,83,0,41,18,218,10,77,111, - 100,117,108,101,83,112,101,99,97,208,5,0,0,84,104,101, - 32,115,112,101,99,105,102,105,99,97,116,105,111,110,32,102, - 111,114,32,97,32,109,111,100,117,108,101,44,32,117,115,101, - 100,32,102,111,114,32,108,111,97,100,105,110,103,46,10,10, - 32,32,32,32,65,32,109,111,100,117,108,101,39,115,32,115, - 112,101,99,32,105,115,32,116,104,101,32,115,111,117,114,99, - 101,32,102,111,114,32,105,110,102,111,114,109,97,116,105,111, - 110,32,97,98,111,117,116,32,116,104,101,32,109,111,100,117, - 108,101,46,32,32,70,111,114,10,32,32,32,32,100,97,116, - 97,32,97,115,115,111,99,105,97,116,101,100,32,119,105,116, - 104,32,116,104,101,32,109,111,100,117,108,101,44,32,105,110, - 99,108,117,100,105,110,103,32,115,111,117,114,99,101,44,32, - 117,115,101,32,116,104,101,32,115,112,101,99,39,115,10,32, - 32,32,32,108,111,97,100,101,114,46,10,10,32,32,32,32, - 96,110,97,109,101,96,32,105,115,32,116,104,101,32,97,98, - 115,111,108,117,116,101,32,110,97,109,101,32,111,102,32,116, - 104,101,32,109,111,100,117,108,101,46,32,32,96,108,111,97, - 100,101,114,96,32,105,115,32,116,104,101,32,108,111,97,100, - 101,114,10,32,32,32,32,116,111,32,117,115,101,32,119,104, - 101,110,32,108,111,97,100,105,110,103,32,116,104,101,32,109, - 111,100,117,108,101,46,32,32,96,112,97,114,101,110,116,96, - 32,105,115,32,116,104,101,32,110,97,109,101,32,111,102,32, - 116,104,101,10,32,32,32,32,112,97,99,107,97,103,101,32, - 116,104,101,32,109,111,100,117,108,101,32,105,115,32,105,110, - 46,32,32,84,104,101,32,112,97,114,101,110,116,32,105,115, - 32,100,101,114,105,118,101,100,32,102,114,111,109,32,116,104, - 101,32,110,97,109,101,46,10,10,32,32,32,32,96,105,115, - 95,112,97,99,107,97,103,101,96,32,100,101,116,101,114,109, - 105,110,101,115,32,105,102,32,116,104,101,32,109,111,100,117, - 108,101,32,105,115,32,99,111,110,115,105,100,101,114,101,100, - 32,97,32,112,97,99,107,97,103,101,32,111,114,10,32,32, - 32,32,110,111,116,46,32,32,79,110,32,109,111,100,117,108, - 101,115,32,116,104,105,115,32,105,115,32,114,101,102,108,101, - 99,116,101,100,32,98,121,32,116,104,101,32,96,95,95,112, - 97,116,104,95,95,96,32,97,116,116,114,105,98,117,116,101, - 46,10,10,32,32,32,32,96,111,114,105,103,105,110,96,32, - 105,115,32,116,104,101,32,115,112,101,99,105,102,105,99,32, - 108,111,99,97,116,105,111,110,32,117,115,101,100,32,98,121, - 32,116,104,101,32,108,111,97,100,101,114,32,102,114,111,109, - 32,119,104,105,99,104,32,116,111,10,32,32,32,32,108,111, - 97,100,32,116,104,101,32,109,111,100,117,108,101,44,32,105, - 102,32,116,104,97,116,32,105,110,102,111,114,109,97,116,105, - 111,110,32,105,115,32,97,118,97,105,108,97,98,108,101,46, - 32,32,87,104,101,110,32,102,105,108,101,110,97,109,101,32, - 105,115,10,32,32,32,32,115,101,116,44,32,111,114,105,103, - 105,110,32,119,105,108,108,32,109,97,116,99,104,46,10,10, - 32,32,32,32,96,104,97,115,95,108,111,99,97,116,105,111, - 110,96,32,105,110,100,105,99,97,116,101,115,32,116,104,97, - 116,32,97,32,115,112,101,99,39,115,32,34,111,114,105,103, - 105,110,34,32,114,101,102,108,101,99,116,115,32,97,32,108, - 111,99,97,116,105,111,110,46,10,32,32,32,32,87,104,101, - 110,32,116,104,105,115,32,105,115,32,84,114,117,101,44,32, - 96,95,95,102,105,108,101,95,95,96,32,97,116,116,114,105, - 98,117,116,101,32,111,102,32,116,104,101,32,109,111,100,117, - 108,101,32,105,115,32,115,101,116,46,10,10,32,32,32,32, - 96,99,97,99,104,101,100,96,32,105,115,32,116,104,101,32, - 108,111,99,97,116,105,111,110,32,111,102,32,116,104,101,32, - 99,97,99,104,101,100,32,98,121,116,101,99,111,100,101,32, - 102,105,108,101,44,32,105,102,32,97,110,121,46,32,32,73, - 116,10,32,32,32,32,99,111,114,114,101,115,112,111,110,100, - 115,32,116,111,32,116,104,101,32,96,95,95,99,97,99,104, - 101,100,95,95,96,32,97,116,116,114,105,98,117,116,101,46, - 10,10,32,32,32,32,96,115,117,98,109,111,100,117,108,101, - 95,115,101,97,114,99,104,95,108,111,99,97,116,105,111,110, - 115,96,32,105,115,32,116,104,101,32,115,101,113,117,101,110, - 99,101,32,111,102,32,112,97,116,104,32,101,110,116,114,105, - 101,115,32,116,111,10,32,32,32,32,115,101,97,114,99,104, - 32,119,104,101,110,32,105,109,112,111,114,116,105,110,103,32, - 115,117,98,109,111,100,117,108,101,115,46,32,32,73,102,32, - 115,101,116,44,32,105,115,95,112,97,99,107,97,103,101,32, - 115,104,111,117,108,100,32,98,101,10,32,32,32,32,84,114, - 117,101,45,45,97,110,100,32,70,97,108,115,101,32,111,116, - 104,101,114,119,105,115,101,46,10,10,32,32,32,32,80,97, - 99,107,97,103,101,115,32,97,114,101,32,115,105,109,112,108, - 121,32,109,111,100,117,108,101,115,32,116,104,97,116,32,40, - 109,97,121,41,32,104,97,118,101,32,115,117,98,109,111,100, - 117,108,101,115,46,32,32,73,102,32,97,32,115,112,101,99, - 10,32,32,32,32,104,97,115,32,97,32,110,111,110,45,78, - 111,110,101,32,118,97,108,117,101,32,105,110,32,96,115,117, - 98,109,111,100,117,108,101,95,115,101,97,114,99,104,95,108, - 111,99,97,116,105,111,110,115,96,44,32,116,104,101,32,105, - 109,112,111,114,116,10,32,32,32,32,115,121,115,116,101,109, - 32,119,105,108,108,32,99,111,110,115,105,100,101,114,32,109, - 111,100,117,108,101,115,32,108,111,97,100,101,100,32,102,114, - 111,109,32,116,104,101,32,115,112,101,99,32,97,115,32,112, - 97,99,107,97,103,101,115,46,10,10,32,32,32,32,79,110, - 108,121,32,102,105,110,100,101,114,115,32,40,115,101,101,32, - 105,109,112,111,114,116,108,105,98,46,97,98,99,46,77,101, - 116,97,80,97,116,104,70,105,110,100,101,114,32,97,110,100, - 10,32,32,32,32,105,109,112,111,114,116,108,105,98,46,97, - 98,99,46,80,97,116,104,69,110,116,114,121,70,105,110,100, - 101,114,41,32,115,104,111,117,108,100,32,109,111,100,105,102, - 121,32,77,111,100,117,108,101,83,112,101,99,32,105,110,115, - 116,97,110,99,101,115,46,10,10,32,32,32,32,78,41,3, - 218,6,111,114,105,103,105,110,218,12,108,111,97,100,101,114, - 95,115,116,97,116,101,218,10,105,115,95,112,97,99,107,97, - 103,101,99,3,0,0,0,3,0,0,0,6,0,0,0,2, - 0,0,0,67,0,0,0,115,54,0,0,0,124,1,124,0, - 95,0,124,2,124,0,95,1,124,3,124,0,95,2,124,4, - 124,0,95,3,124,5,114,32,103,0,110,2,100,0,124,0, - 95,4,100,1,124,0,95,5,100,0,124,0,95,6,100,0, - 83,0,41,2,78,70,41,7,114,15,0,0,0,114,93,0, - 0,0,114,103,0,0,0,114,104,0,0,0,218,26,115,117, - 98,109,111,100,117,108,101,95,115,101,97,114,99,104,95,108, - 111,99,97,116,105,111,110,115,218,13,95,115,101,116,95,102, - 105,108,101,97,116,116,114,218,7,95,99,97,99,104,101,100, - 41,6,114,26,0,0,0,114,15,0,0,0,114,93,0,0, - 0,114,103,0,0,0,114,104,0,0,0,114,105,0,0,0, - 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114, - 27,0,0,0,99,1,0,0,115,14,0,0,0,0,2,6, - 1,6,1,6,1,6,1,14,3,6,1,122,19,77,111,100, - 117,108,101,83,112,101,99,46,95,95,105,110,105,116,95,95, - 99,1,0,0,0,0,0,0,0,2,0,0,0,6,0,0, - 0,67,0,0,0,115,102,0,0,0,100,1,160,0,124,0, - 106,1,161,1,100,2,160,0,124,0,106,2,161,1,103,2, - 125,1,124,0,106,3,100,0,107,9,114,52,124,1,160,4, - 100,3,160,0,124,0,106,3,161,1,161,1,1,0,124,0, - 106,5,100,0,107,9,114,80,124,1,160,4,100,4,160,0, - 124,0,106,5,161,1,161,1,1,0,100,5,160,0,124,0, - 106,6,106,7,100,6,160,8,124,1,161,1,161,2,83,0, - 41,7,78,122,9,110,97,109,101,61,123,33,114,125,122,11, - 108,111,97,100,101,114,61,123,33,114,125,122,11,111,114,105, - 103,105,110,61,123,33,114,125,122,29,115,117,98,109,111,100, - 117,108,101,95,115,101,97,114,99,104,95,108,111,99,97,116, - 105,111,110,115,61,123,125,122,6,123,125,40,123,125,41,122, - 2,44,32,41,9,114,38,0,0,0,114,15,0,0,0,114, - 93,0,0,0,114,103,0,0,0,218,6,97,112,112,101,110, - 100,114,106,0,0,0,218,9,95,95,99,108,97,115,115,95, - 95,114,1,0,0,0,218,4,106,111,105,110,41,2,114,26, - 0,0,0,114,49,0,0,0,114,10,0,0,0,114,10,0, - 0,0,114,11,0,0,0,114,40,0,0,0,111,1,0,0, - 115,16,0,0,0,0,1,10,1,14,1,10,1,18,1,10, - 1,8,1,10,1,122,19,77,111,100,117,108,101,83,112,101, - 99,46,95,95,114,101,112,114,95,95,99,2,0,0,0,0, - 0,0,0,3,0,0,0,11,0,0,0,67,0,0,0,115, - 102,0,0,0,124,0,106,0,125,2,121,70,124,0,106,1, - 124,1,106,1,107,2,111,76,124,0,106,2,124,1,106,2, - 107,2,111,76,124,0,106,3,124,1,106,3,107,2,111,76, - 124,2,124,1,106,0,107,2,111,76,124,0,106,4,124,1, - 106,4,107,2,111,76,124,0,106,5,124,1,106,5,107,2, - 83,0,4,0,116,6,107,10,114,96,1,0,1,0,1,0, - 100,1,83,0,88,0,100,0,83,0,41,2,78,70,41,7, - 114,106,0,0,0,114,15,0,0,0,114,93,0,0,0,114, - 103,0,0,0,218,6,99,97,99,104,101,100,218,12,104,97, - 115,95,108,111,99,97,116,105,111,110,114,90,0,0,0,41, - 3,114,26,0,0,0,90,5,111,116,104,101,114,90,4,115, - 109,115,108,114,10,0,0,0,114,10,0,0,0,114,11,0, - 0,0,218,6,95,95,101,113,95,95,121,1,0,0,115,20, - 0,0,0,0,1,6,1,2,1,12,1,12,1,12,1,10, - 1,12,1,12,1,14,1,122,17,77,111,100,117,108,101,83, - 112,101,99,46,95,95,101,113,95,95,99,1,0,0,0,0, - 0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,115, - 58,0,0,0,124,0,106,0,100,0,107,8,114,52,124,0, - 106,1,100,0,107,9,114,52,124,0,106,2,114,52,116,3, - 100,0,107,8,114,38,116,4,130,1,116,3,160,5,124,0, - 106,1,161,1,124,0,95,0,124,0,106,0,83,0,41,1, - 78,41,6,114,108,0,0,0,114,103,0,0,0,114,107,0, - 0,0,218,19,95,98,111,111,116,115,116,114,97,112,95,101, - 120,116,101,114,110,97,108,218,19,78,111,116,73,109,112,108, - 101,109,101,110,116,101,100,69,114,114,111,114,90,11,95,103, - 101,116,95,99,97,99,104,101,100,41,1,114,26,0,0,0, - 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114, - 112,0,0,0,133,1,0,0,115,12,0,0,0,0,2,10, - 1,16,1,8,1,4,1,14,1,122,17,77,111,100,117,108, - 101,83,112,101,99,46,99,97,99,104,101,100,99,2,0,0, - 0,0,0,0,0,2,0,0,0,2,0,0,0,67,0,0, - 0,115,10,0,0,0,124,1,124,0,95,0,100,0,83,0, - 41,1,78,41,1,114,108,0,0,0,41,2,114,26,0,0, - 0,114,112,0,0,0,114,10,0,0,0,114,10,0,0,0, - 114,11,0,0,0,114,112,0,0,0,142,1,0,0,115,2, - 0,0,0,0,2,99,1,0,0,0,0,0,0,0,1,0, - 0,0,3,0,0,0,67,0,0,0,115,36,0,0,0,124, - 0,106,0,100,1,107,8,114,26,124,0,106,1,160,2,100, - 2,161,1,100,3,25,0,83,0,124,0,106,1,83,0,100, - 1,83,0,41,4,122,32,84,104,101,32,110,97,109,101,32, - 111,102,32,116,104,101,32,109,111,100,117,108,101,39,115,32, - 112,97,114,101,110,116,46,78,218,1,46,114,19,0,0,0, - 41,3,114,106,0,0,0,114,15,0,0,0,218,10,114,112, - 97,114,116,105,116,105,111,110,41,1,114,26,0,0,0,114, - 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,6, - 112,97,114,101,110,116,146,1,0,0,115,6,0,0,0,0, - 3,10,1,16,2,122,17,77,111,100,117,108,101,83,112,101, - 99,46,112,97,114,101,110,116,99,1,0,0,0,0,0,0, - 0,1,0,0,0,1,0,0,0,67,0,0,0,115,6,0, - 0,0,124,0,106,0,83,0,41,1,78,41,1,114,107,0, - 0,0,41,1,114,26,0,0,0,114,10,0,0,0,114,10, - 0,0,0,114,11,0,0,0,114,113,0,0,0,154,1,0, - 0,115,2,0,0,0,0,2,122,23,77,111,100,117,108,101, - 83,112,101,99,46,104,97,115,95,108,111,99,97,116,105,111, - 110,99,2,0,0,0,0,0,0,0,2,0,0,0,2,0, - 0,0,67,0,0,0,115,14,0,0,0,116,0,124,1,131, - 1,124,0,95,1,100,0,83,0,41,1,78,41,2,218,4, - 98,111,111,108,114,107,0,0,0,41,2,114,26,0,0,0, - 218,5,118,97,108,117,101,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,114,113,0,0,0,158,1,0,0,115, - 2,0,0,0,0,2,41,12,114,1,0,0,0,114,0,0, - 0,0,114,2,0,0,0,114,3,0,0,0,114,27,0,0, - 0,114,40,0,0,0,114,114,0,0,0,218,8,112,114,111, - 112,101,114,116,121,114,112,0,0,0,218,6,115,101,116,116, - 101,114,114,119,0,0,0,114,113,0,0,0,114,10,0,0, - 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, - 114,102,0,0,0,62,1,0,0,115,20,0,0,0,8,35, - 4,2,4,1,14,11,8,10,8,12,12,9,14,4,12,8, - 12,4,114,102,0,0,0,41,2,114,103,0,0,0,114,105, - 0,0,0,99,2,0,0,0,2,0,0,0,6,0,0,0, - 14,0,0,0,67,0,0,0,115,154,0,0,0,116,0,124, - 1,100,1,131,2,114,74,116,1,100,2,107,8,114,22,116, - 2,130,1,116,1,106,3,125,4,124,3,100,2,107,8,114, - 48,124,4,124,0,124,1,100,3,141,2,83,0,124,3,114, - 56,103,0,110,2,100,2,125,5,124,4,124,0,124,1,124, - 5,100,4,141,3,83,0,124,3,100,2,107,8,114,138,116, - 0,124,1,100,5,131,2,114,134,121,14,124,1,160,4,124, - 0,161,1,125,3,87,0,113,138,4,0,116,5,107,10,114, - 130,1,0,1,0,1,0,100,2,125,3,89,0,113,138,88, - 0,110,4,100,6,125,3,116,6,124,0,124,1,124,2,124, - 3,100,7,141,4,83,0,41,8,122,53,82,101,116,117,114, - 110,32,97,32,109,111,100,117,108,101,32,115,112,101,99,32, - 98,97,115,101,100,32,111,110,32,118,97,114,105,111,117,115, - 32,108,111,97,100,101,114,32,109,101,116,104,111,100,115,46, - 90,12,103,101,116,95,102,105,108,101,110,97,109,101,78,41, - 1,114,93,0,0,0,41,2,114,93,0,0,0,114,106,0, - 0,0,114,105,0,0,0,70,41,2,114,103,0,0,0,114, - 105,0,0,0,41,7,114,4,0,0,0,114,115,0,0,0, - 114,116,0,0,0,218,23,115,112,101,99,95,102,114,111,109, - 95,102,105,108,101,95,108,111,99,97,116,105,111,110,114,105, - 0,0,0,114,70,0,0,0,114,102,0,0,0,41,6,114, - 15,0,0,0,114,93,0,0,0,114,103,0,0,0,114,105, - 0,0,0,114,124,0,0,0,90,6,115,101,97,114,99,104, - 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114, - 78,0,0,0,163,1,0,0,115,34,0,0,0,0,2,10, - 1,8,1,4,1,6,2,8,1,12,1,12,1,6,1,8, - 2,8,1,10,1,2,1,14,1,14,1,12,3,4,2,114, - 78,0,0,0,99,3,0,0,0,0,0,0,0,8,0,0, - 0,53,0,0,0,67,0,0,0,115,56,1,0,0,121,10, - 124,0,106,0,125,3,87,0,110,20,4,0,116,1,107,10, - 114,30,1,0,1,0,1,0,89,0,110,14,88,0,124,3, - 100,0,107,9,114,44,124,3,83,0,124,0,106,2,125,4, - 124,1,100,0,107,8,114,90,121,10,124,0,106,3,125,1, - 87,0,110,20,4,0,116,1,107,10,114,88,1,0,1,0, - 1,0,89,0,110,2,88,0,121,10,124,0,106,4,125,5, - 87,0,110,24,4,0,116,1,107,10,114,124,1,0,1,0, - 1,0,100,0,125,5,89,0,110,2,88,0,124,2,100,0, - 107,8,114,184,124,5,100,0,107,8,114,180,121,10,124,1, - 106,5,125,2,87,0,113,184,4,0,116,1,107,10,114,176, - 1,0,1,0,1,0,100,0,125,2,89,0,113,184,88,0, - 110,4,124,5,125,2,121,10,124,0,106,6,125,6,87,0, - 110,24,4,0,116,1,107,10,114,218,1,0,1,0,1,0, - 100,0,125,6,89,0,110,2,88,0,121,14,116,7,124,0, - 106,8,131,1,125,7,87,0,110,26,4,0,116,1,107,10, - 144,1,114,4,1,0,1,0,1,0,100,0,125,7,89,0, - 110,2,88,0,116,9,124,4,124,1,124,2,100,1,141,3, - 125,3,124,5,100,0,107,8,144,1,114,34,100,2,110,2, - 100,3,124,3,95,10,124,6,124,3,95,11,124,7,124,3, - 95,12,124,3,83,0,41,4,78,41,1,114,103,0,0,0, - 70,84,41,13,114,89,0,0,0,114,90,0,0,0,114,1, - 0,0,0,114,85,0,0,0,114,92,0,0,0,90,7,95, - 79,82,73,71,73,78,218,10,95,95,99,97,99,104,101,100, - 95,95,218,4,108,105,115,116,218,8,95,95,112,97,116,104, - 95,95,114,102,0,0,0,114,107,0,0,0,114,112,0,0, - 0,114,106,0,0,0,41,8,114,83,0,0,0,114,93,0, - 0,0,114,103,0,0,0,114,82,0,0,0,114,15,0,0, - 0,90,8,108,111,99,97,116,105,111,110,114,112,0,0,0, - 114,106,0,0,0,114,10,0,0,0,114,10,0,0,0,114, - 11,0,0,0,218,17,95,115,112,101,99,95,102,114,111,109, - 95,109,111,100,117,108,101,192,1,0,0,115,72,0,0,0, - 0,2,2,1,10,1,14,1,6,2,8,1,4,2,6,1, - 8,1,2,1,10,1,14,2,6,1,2,1,10,1,14,1, - 10,1,8,1,8,1,2,1,10,1,14,1,12,2,4,1, - 2,1,10,1,14,1,10,1,2,1,14,1,16,1,10,2, - 14,1,20,1,6,1,6,1,114,128,0,0,0,70,41,1, - 218,8,111,118,101,114,114,105,100,101,99,2,0,0,0,1, - 0,0,0,5,0,0,0,59,0,0,0,67,0,0,0,115, - 212,1,0,0,124,2,115,20,116,0,124,1,100,1,100,0, - 131,3,100,0,107,8,114,54,121,12,124,0,106,1,124,1, - 95,2,87,0,110,20,4,0,116,3,107,10,114,52,1,0, - 1,0,1,0,89,0,110,2,88,0,124,2,115,74,116,0, - 124,1,100,2,100,0,131,3,100,0,107,8,114,166,124,0, - 106,4,125,3,124,3,100,0,107,8,114,134,124,0,106,5, - 100,0,107,9,114,134,116,6,100,0,107,8,114,110,116,7, - 130,1,116,6,106,8,125,4,124,4,160,9,124,4,161,1, - 125,3,124,0,106,5,124,3,95,10,121,10,124,3,124,1, - 95,11,87,0,110,20,4,0,116,3,107,10,114,164,1,0, - 1,0,1,0,89,0,110,2,88,0,124,2,115,186,116,0, - 124,1,100,3,100,0,131,3,100,0,107,8,114,220,121,12, - 124,0,106,12,124,1,95,13,87,0,110,20,4,0,116,3, - 107,10,114,218,1,0,1,0,1,0,89,0,110,2,88,0, - 121,10,124,0,124,1,95,14,87,0,110,20,4,0,116,3, - 107,10,114,250,1,0,1,0,1,0,89,0,110,2,88,0, - 124,2,144,1,115,20,116,0,124,1,100,4,100,0,131,3, - 100,0,107,8,144,1,114,68,124,0,106,5,100,0,107,9, - 144,1,114,68,121,12,124,0,106,5,124,1,95,15,87,0, - 110,22,4,0,116,3,107,10,144,1,114,66,1,0,1,0, - 1,0,89,0,110,2,88,0,124,0,106,16,144,1,114,208, - 124,2,144,1,115,100,116,0,124,1,100,5,100,0,131,3, - 100,0,107,8,144,1,114,136,121,12,124,0,106,17,124,1, - 95,18,87,0,110,22,4,0,116,3,107,10,144,1,114,134, - 1,0,1,0,1,0,89,0,110,2,88,0,124,2,144,1, - 115,160,116,0,124,1,100,6,100,0,131,3,100,0,107,8, - 144,1,114,208,124,0,106,19,100,0,107,9,144,1,114,208, - 121,12,124,0,106,19,124,1,95,20,87,0,110,22,4,0, - 116,3,107,10,144,1,114,206,1,0,1,0,1,0,89,0, - 110,2,88,0,124,1,83,0,41,7,78,114,1,0,0,0, - 114,85,0,0,0,218,11,95,95,112,97,99,107,97,103,101, - 95,95,114,127,0,0,0,114,92,0,0,0,114,125,0,0, - 0,41,21,114,6,0,0,0,114,15,0,0,0,114,1,0, - 0,0,114,90,0,0,0,114,93,0,0,0,114,106,0,0, - 0,114,115,0,0,0,114,116,0,0,0,218,16,95,78,97, - 109,101,115,112,97,99,101,76,111,97,100,101,114,218,7,95, - 95,110,101,119,95,95,90,5,95,112,97,116,104,114,85,0, - 0,0,114,119,0,0,0,114,130,0,0,0,114,89,0,0, - 0,114,127,0,0,0,114,113,0,0,0,114,103,0,0,0, - 114,92,0,0,0,114,112,0,0,0,114,125,0,0,0,41, - 5,114,82,0,0,0,114,83,0,0,0,114,129,0,0,0, - 114,93,0,0,0,114,131,0,0,0,114,10,0,0,0,114, - 10,0,0,0,114,11,0,0,0,218,18,95,105,110,105,116, - 95,109,111,100,117,108,101,95,97,116,116,114,115,237,1,0, - 0,115,92,0,0,0,0,4,20,1,2,1,12,1,14,1, - 6,2,20,1,6,1,8,2,10,1,8,1,4,1,6,2, - 10,1,8,1,2,1,10,1,14,1,6,2,20,1,2,1, - 12,1,14,1,6,2,2,1,10,1,14,1,6,2,24,1, - 12,1,2,1,12,1,16,1,6,2,8,1,24,1,2,1, - 12,1,16,1,6,2,24,1,12,1,2,1,12,1,16,1, - 6,1,114,133,0,0,0,99,1,0,0,0,0,0,0,0, - 2,0,0,0,3,0,0,0,67,0,0,0,115,82,0,0, - 0,100,1,125,1,116,0,124,0,106,1,100,2,131,2,114, - 30,124,0,106,1,160,2,124,0,161,1,125,1,110,20,116, - 0,124,0,106,1,100,3,131,2,114,50,116,3,100,4,131, - 1,130,1,124,1,100,1,107,8,114,68,116,4,124,0,106, - 5,131,1,125,1,116,6,124,0,124,1,131,2,1,0,124, - 1,83,0,41,5,122,43,67,114,101,97,116,101,32,97,32, - 109,111,100,117,108,101,32,98,97,115,101,100,32,111,110,32, - 116,104,101,32,112,114,111,118,105,100,101,100,32,115,112,101, - 99,46,78,218,13,99,114,101,97,116,101,95,109,111,100,117, - 108,101,218,11,101,120,101,99,95,109,111,100,117,108,101,122, - 66,108,111,97,100,101,114,115,32,116,104,97,116,32,100,101, - 102,105,110,101,32,101,120,101,99,95,109,111,100,117,108,101, - 40,41,32,109,117,115,116,32,97,108,115,111,32,100,101,102, - 105,110,101,32,99,114,101,97,116,101,95,109,111,100,117,108, - 101,40,41,41,7,114,4,0,0,0,114,93,0,0,0,114, - 134,0,0,0,114,70,0,0,0,114,16,0,0,0,114,15, - 0,0,0,114,133,0,0,0,41,2,114,82,0,0,0,114, - 83,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11, - 0,0,0,218,16,109,111,100,117,108,101,95,102,114,111,109, - 95,115,112,101,99,41,2,0,0,115,18,0,0,0,0,3, - 4,1,12,3,14,1,12,1,8,2,8,1,10,1,10,1, - 114,136,0,0,0,99,1,0,0,0,0,0,0,0,2,0, - 0,0,4,0,0,0,67,0,0,0,115,106,0,0,0,124, - 0,106,0,100,1,107,8,114,14,100,2,110,4,124,0,106, - 0,125,1,124,0,106,1,100,1,107,8,114,66,124,0,106, - 2,100,1,107,8,114,50,100,3,160,3,124,1,161,1,83, - 0,100,4,160,3,124,1,124,0,106,2,161,2,83,0,110, - 36,124,0,106,4,114,86,100,5,160,3,124,1,124,0,106, - 1,161,2,83,0,100,6,160,3,124,0,106,0,124,0,106, - 1,161,2,83,0,100,1,83,0,41,7,122,38,82,101,116, - 117,114,110,32,116,104,101,32,114,101,112,114,32,116,111,32, - 117,115,101,32,102,111,114,32,116,104,101,32,109,111,100,117, - 108,101,46,78,114,87,0,0,0,122,13,60,109,111,100,117, - 108,101,32,123,33,114,125,62,122,20,60,109,111,100,117,108, - 101,32,123,33,114,125,32,40,123,33,114,125,41,62,122,23, - 60,109,111,100,117,108,101,32,123,33,114,125,32,102,114,111, - 109,32,123,33,114,125,62,122,18,60,109,111,100,117,108,101, - 32,123,33,114,125,32,40,123,125,41,62,41,5,114,15,0, - 0,0,114,103,0,0,0,114,93,0,0,0,114,38,0,0, - 0,114,113,0,0,0,41,2,114,82,0,0,0,114,15,0, + 62,122,18,60,109,111,100,117,108,101,32,123,33,114,125,32, + 40,123,125,41,62,41,5,114,15,0,0,0,114,103,0,0, + 0,114,93,0,0,0,114,38,0,0,0,114,113,0,0,0, + 41,2,114,82,0,0,0,114,15,0,0,0,114,10,0,0, + 0,114,10,0,0,0,114,11,0,0,0,114,91,0,0,0, + 58,2,0,0,115,16,0,0,0,0,3,20,1,10,1,10, + 1,10,2,16,2,6,1,14,2,114,91,0,0,0,99,2, + 0,0,0,0,0,0,0,4,0,0,0,12,0,0,0,67, + 0,0,0,115,186,0,0,0,124,0,106,0,125,2,116,1, + 160,2,161,0,1,0,116,3,124,2,131,1,143,148,1,0, + 116,4,106,5,160,6,124,2,161,1,124,1,107,9,114,62, + 100,1,160,7,124,2,161,1,125,3,116,8,124,3,124,2, + 100,2,141,2,130,1,124,0,106,9,100,3,107,8,114,114, + 124,0,106,10,100,3,107,8,114,96,116,8,100,4,124,0, + 106,0,100,2,141,2,130,1,116,11,124,0,124,1,100,5, + 100,6,141,3,1,0,124,1,83,0,116,11,124,0,124,1, + 100,5,100,6,141,3,1,0,116,12,124,0,106,9,100,7, + 131,2,115,154,124,0,106,9,160,13,124,2,161,1,1,0, + 110,12,124,0,106,9,160,14,124,1,161,1,1,0,87,0, + 100,3,81,0,82,0,88,0,116,4,106,5,124,2,25,0, + 83,0,41,8,122,70,69,120,101,99,117,116,101,32,116,104, + 101,32,115,112,101,99,39,115,32,115,112,101,99,105,102,105, + 101,100,32,109,111,100,117,108,101,32,105,110,32,97,110,32, + 101,120,105,115,116,105,110,103,32,109,111,100,117,108,101,39, + 115,32,110,97,109,101,115,112,97,99,101,46,122,30,109,111, + 100,117,108,101,32,123,33,114,125,32,110,111,116,32,105,110, + 32,115,121,115,46,109,111,100,117,108,101,115,41,1,114,15, + 0,0,0,78,122,14,109,105,115,115,105,110,103,32,108,111, + 97,100,101,114,84,41,1,114,129,0,0,0,114,135,0,0, + 0,41,15,114,15,0,0,0,114,46,0,0,0,218,12,97, + 99,113,117,105,114,101,95,108,111,99,107,114,42,0,0,0, + 114,14,0,0,0,114,79,0,0,0,114,30,0,0,0,114, + 38,0,0,0,114,70,0,0,0,114,93,0,0,0,114,106, + 0,0,0,114,133,0,0,0,114,4,0,0,0,218,11,108, + 111,97,100,95,109,111,100,117,108,101,114,135,0,0,0,41, + 4,114,82,0,0,0,114,83,0,0,0,114,15,0,0,0, + 218,3,109,115,103,114,10,0,0,0,114,10,0,0,0,114, + 11,0,0,0,114,80,0,0,0,75,2,0,0,115,32,0, + 0,0,0,2,6,1,8,1,10,1,16,1,10,1,12,1, + 10,1,10,1,14,2,14,1,4,1,14,1,12,4,14,2, + 22,1,114,80,0,0,0,99,1,0,0,0,0,0,0,0, + 2,0,0,0,27,0,0,0,67,0,0,0,115,206,0,0, + 0,124,0,106,0,160,1,124,0,106,2,161,1,1,0,116, + 3,106,4,124,0,106,2,25,0,125,1,116,5,124,1,100, + 1,100,0,131,3,100,0,107,8,114,76,121,12,124,0,106, + 0,124,1,95,6,87,0,110,20,4,0,116,7,107,10,114, + 74,1,0,1,0,1,0,89,0,110,2,88,0,116,5,124, + 1,100,2,100,0,131,3,100,0,107,8,114,154,121,40,124, + 1,106,8,124,1,95,9,116,10,124,1,100,3,131,2,115, + 130,124,0,106,2,160,11,100,4,161,1,100,5,25,0,124, + 1,95,9,87,0,110,20,4,0,116,7,107,10,114,152,1, + 0,1,0,1,0,89,0,110,2,88,0,116,5,124,1,100, + 6,100,0,131,3,100,0,107,8,114,202,121,10,124,0,124, + 1,95,12,87,0,110,20,4,0,116,7,107,10,114,200,1, + 0,1,0,1,0,89,0,110,2,88,0,124,1,83,0,41, + 7,78,114,85,0,0,0,114,130,0,0,0,114,127,0,0, + 0,114,117,0,0,0,114,19,0,0,0,114,89,0,0,0, + 41,13,114,93,0,0,0,114,138,0,0,0,114,15,0,0, + 0,114,14,0,0,0,114,79,0,0,0,114,6,0,0,0, + 114,85,0,0,0,114,90,0,0,0,114,1,0,0,0,114, + 130,0,0,0,114,4,0,0,0,114,118,0,0,0,114,89, + 0,0,0,41,2,114,82,0,0,0,114,83,0,0,0,114, + 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,25, + 95,108,111,97,100,95,98,97,99,107,119,97,114,100,95,99, + 111,109,112,97,116,105,98,108,101,100,2,0,0,115,40,0, + 0,0,0,4,14,2,12,1,16,1,2,1,12,1,14,1, + 6,1,16,1,2,4,8,1,10,1,22,1,14,1,6,1, + 16,1,2,1,10,1,14,1,6,1,114,140,0,0,0,99, + 1,0,0,0,0,0,0,0,2,0,0,0,11,0,0,0, + 67,0,0,0,115,118,0,0,0,124,0,106,0,100,0,107, + 9,114,30,116,1,124,0,106,0,100,1,131,2,115,30,116, + 2,124,0,131,1,83,0,116,3,124,0,131,1,125,1,116, + 4,124,1,131,1,143,54,1,0,124,0,106,0,100,0,107, + 8,114,84,124,0,106,5,100,0,107,8,114,96,116,6,100, + 2,124,0,106,7,100,3,141,2,130,1,110,12,124,0,106, + 0,160,8,124,1,161,1,1,0,87,0,100,0,81,0,82, + 0,88,0,116,9,106,10,124,0,106,7,25,0,83,0,41, + 4,78,114,135,0,0,0,122,14,109,105,115,115,105,110,103, + 32,108,111,97,100,101,114,41,1,114,15,0,0,0,41,11, + 114,93,0,0,0,114,4,0,0,0,114,140,0,0,0,114, + 136,0,0,0,114,96,0,0,0,114,106,0,0,0,114,70, + 0,0,0,114,15,0,0,0,114,135,0,0,0,114,14,0, + 0,0,114,79,0,0,0,41,2,114,82,0,0,0,114,83, + 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0, + 0,0,218,14,95,108,111,97,100,95,117,110,108,111,99,107, + 101,100,129,2,0,0,115,20,0,0,0,0,2,10,2,12, + 1,8,2,8,1,10,1,10,1,10,1,16,3,22,5,114, + 141,0,0,0,99,1,0,0,0,0,0,0,0,1,0,0, + 0,9,0,0,0,67,0,0,0,115,38,0,0,0,116,0, + 160,1,161,0,1,0,116,2,124,0,106,3,131,1,143,10, + 1,0,116,4,124,0,131,1,83,0,81,0,82,0,88,0, + 100,1,83,0,41,2,122,191,82,101,116,117,114,110,32,97, + 32,110,101,119,32,109,111,100,117,108,101,32,111,98,106,101, + 99,116,44,32,108,111,97,100,101,100,32,98,121,32,116,104, + 101,32,115,112,101,99,39,115,32,108,111,97,100,101,114,46, + 10,10,32,32,32,32,84,104,101,32,109,111,100,117,108,101, + 32,105,115,32,110,111,116,32,97,100,100,101,100,32,116,111, + 32,105,116,115,32,112,97,114,101,110,116,46,10,10,32,32, + 32,32,73,102,32,97,32,109,111,100,117,108,101,32,105,115, + 32,97,108,114,101,97,100,121,32,105,110,32,115,121,115,46, + 109,111,100,117,108,101,115,44,32,116,104,97,116,32,101,120, + 105,115,116,105,110,103,32,109,111,100,117,108,101,32,103,101, + 116,115,10,32,32,32,32,99,108,111,98,98,101,114,101,100, + 46,10,10,32,32,32,32,78,41,5,114,46,0,0,0,114, + 137,0,0,0,114,42,0,0,0,114,15,0,0,0,114,141, + 0,0,0,41,1,114,82,0,0,0,114,10,0,0,0,114, + 10,0,0,0,114,11,0,0,0,114,81,0,0,0,152,2, + 0,0,115,6,0,0,0,0,9,8,1,12,1,114,81,0, + 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,4, + 0,0,0,64,0,0,0,115,136,0,0,0,101,0,90,1, + 100,0,90,2,100,1,90,3,101,4,100,2,100,3,132,0, + 131,1,90,5,101,6,100,19,100,5,100,6,132,1,131,1, + 90,7,101,6,100,20,100,7,100,8,132,1,131,1,90,8, + 101,6,100,9,100,10,132,0,131,1,90,9,101,6,100,11, + 100,12,132,0,131,1,90,10,101,6,101,11,100,13,100,14, + 132,0,131,1,131,1,90,12,101,6,101,11,100,15,100,16, + 132,0,131,1,131,1,90,13,101,6,101,11,100,17,100,18, + 132,0,131,1,131,1,90,14,101,6,101,15,131,1,90,16, + 100,4,83,0,41,21,218,15,66,117,105,108,116,105,110,73, + 109,112,111,114,116,101,114,122,144,77,101,116,97,32,112,97, + 116,104,32,105,109,112,111,114,116,32,102,111,114,32,98,117, + 105,108,116,45,105,110,32,109,111,100,117,108,101,115,46,10, + 10,32,32,32,32,65,108,108,32,109,101,116,104,111,100,115, + 32,97,114,101,32,101,105,116,104,101,114,32,99,108,97,115, + 115,32,111,114,32,115,116,97,116,105,99,32,109,101,116,104, + 111,100,115,32,116,111,32,97,118,111,105,100,32,116,104,101, + 32,110,101,101,100,32,116,111,10,32,32,32,32,105,110,115, + 116,97,110,116,105,97,116,101,32,116,104,101,32,99,108,97, + 115,115,46,10,10,32,32,32,32,99,1,0,0,0,0,0, + 0,0,1,0,0,0,3,0,0,0,67,0,0,0,115,12, + 0,0,0,100,1,160,0,124,0,106,1,161,1,83,0,41, + 2,122,115,82,101,116,117,114,110,32,114,101,112,114,32,102, + 111,114,32,116,104,101,32,109,111,100,117,108,101,46,10,10, + 32,32,32,32,32,32,32,32,84,104,101,32,109,101,116,104, + 111,100,32,105,115,32,100,101,112,114,101,99,97,116,101,100, + 46,32,32,84,104,101,32,105,109,112,111,114,116,32,109,97, + 99,104,105,110,101,114,121,32,100,111,101,115,32,116,104,101, + 32,106,111,98,32,105,116,115,101,108,102,46,10,10,32,32, + 32,32,32,32,32,32,122,24,60,109,111,100,117,108,101,32, + 123,33,114,125,32,40,98,117,105,108,116,45,105,110,41,62, + 41,2,114,38,0,0,0,114,1,0,0,0,41,1,114,83, + 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0, + 0,0,114,86,0,0,0,177,2,0,0,115,2,0,0,0, + 0,7,122,27,66,117,105,108,116,105,110,73,109,112,111,114, + 116,101,114,46,109,111,100,117,108,101,95,114,101,112,114,78, + 99,4,0,0,0,0,0,0,0,4,0,0,0,5,0,0, + 0,67,0,0,0,115,44,0,0,0,124,2,100,0,107,9, + 114,12,100,0,83,0,116,0,160,1,124,1,161,1,114,36, + 116,2,124,1,124,0,100,1,100,2,141,3,83,0,100,0, + 83,0,100,0,83,0,41,3,78,122,8,98,117,105,108,116, + 45,105,110,41,1,114,103,0,0,0,41,3,114,46,0,0, + 0,90,10,105,115,95,98,117,105,108,116,105,110,114,78,0, + 0,0,41,4,218,3,99,108,115,114,71,0,0,0,218,4, + 112,97,116,104,218,6,116,97,114,103,101,116,114,10,0,0, + 0,114,10,0,0,0,114,11,0,0,0,218,9,102,105,110, + 100,95,115,112,101,99,186,2,0,0,115,10,0,0,0,0, + 2,8,1,4,1,10,1,14,2,122,25,66,117,105,108,116, + 105,110,73,109,112,111,114,116,101,114,46,102,105,110,100,95, + 115,112,101,99,99,3,0,0,0,0,0,0,0,4,0,0, + 0,4,0,0,0,67,0,0,0,115,30,0,0,0,124,0, + 160,0,124,1,124,2,161,2,125,3,124,3,100,1,107,9, + 114,26,124,3,106,1,83,0,100,1,83,0,41,2,122,175, + 70,105,110,100,32,116,104,101,32,98,117,105,108,116,45,105, + 110,32,109,111,100,117,108,101,46,10,10,32,32,32,32,32, + 32,32,32,73,102,32,39,112,97,116,104,39,32,105,115,32, + 101,118,101,114,32,115,112,101,99,105,102,105,101,100,32,116, + 104,101,110,32,116,104,101,32,115,101,97,114,99,104,32,105, + 115,32,99,111,110,115,105,100,101,114,101,100,32,97,32,102, + 97,105,108,117,114,101,46,10,10,32,32,32,32,32,32,32, + 32,84,104,105,115,32,109,101,116,104,111,100,32,105,115,32, + 100,101,112,114,101,99,97,116,101,100,46,32,32,85,115,101, + 32,102,105,110,100,95,115,112,101,99,40,41,32,105,110,115, + 116,101,97,100,46,10,10,32,32,32,32,32,32,32,32,78, + 41,2,114,146,0,0,0,114,93,0,0,0,41,4,114,143, + 0,0,0,114,71,0,0,0,114,144,0,0,0,114,82,0, 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, - 0,114,91,0,0,0,58,2,0,0,115,16,0,0,0,0, - 3,20,1,10,1,10,1,10,2,16,2,6,1,14,2,114, - 91,0,0,0,99,2,0,0,0,0,0,0,0,4,0,0, - 0,12,0,0,0,67,0,0,0,115,186,0,0,0,124,0, - 106,0,125,2,116,1,160,2,161,0,1,0,116,3,124,2, - 131,1,143,148,1,0,116,4,106,5,160,6,124,2,161,1, - 124,1,107,9,114,62,100,1,160,7,124,2,161,1,125,3, - 116,8,124,3,124,2,100,2,141,2,130,1,124,0,106,9, - 100,3,107,8,114,114,124,0,106,10,100,3,107,8,114,96, - 116,8,100,4,124,0,106,0,100,2,141,2,130,1,116,11, - 124,0,124,1,100,5,100,6,141,3,1,0,124,1,83,0, - 116,11,124,0,124,1,100,5,100,6,141,3,1,0,116,12, - 124,0,106,9,100,7,131,2,115,154,124,0,106,9,160,13, - 124,2,161,1,1,0,110,12,124,0,106,9,160,14,124,1, - 161,1,1,0,87,0,100,3,81,0,82,0,88,0,116,4, - 106,5,124,2,25,0,83,0,41,8,122,70,69,120,101,99, - 117,116,101,32,116,104,101,32,115,112,101,99,39,115,32,115, - 112,101,99,105,102,105,101,100,32,109,111,100,117,108,101,32, - 105,110,32,97,110,32,101,120,105,115,116,105,110,103,32,109, - 111,100,117,108,101,39,115,32,110,97,109,101,115,112,97,99, - 101,46,122,30,109,111,100,117,108,101,32,123,33,114,125,32, - 110,111,116,32,105,110,32,115,121,115,46,109,111,100,117,108, - 101,115,41,1,114,15,0,0,0,78,122,14,109,105,115,115, - 105,110,103,32,108,111,97,100,101,114,84,41,1,114,129,0, - 0,0,114,135,0,0,0,41,15,114,15,0,0,0,114,46, - 0,0,0,218,12,97,99,113,117,105,114,101,95,108,111,99, - 107,114,42,0,0,0,114,14,0,0,0,114,79,0,0,0, - 114,30,0,0,0,114,38,0,0,0,114,70,0,0,0,114, - 93,0,0,0,114,106,0,0,0,114,133,0,0,0,114,4, - 0,0,0,218,11,108,111,97,100,95,109,111,100,117,108,101, - 114,135,0,0,0,41,4,114,82,0,0,0,114,83,0,0, - 0,114,15,0,0,0,218,3,109,115,103,114,10,0,0,0, - 114,10,0,0,0,114,11,0,0,0,114,80,0,0,0,75, - 2,0,0,115,32,0,0,0,0,2,6,1,8,1,10,1, - 16,1,10,1,12,1,10,1,10,1,14,2,14,1,4,1, - 14,1,12,4,14,2,22,1,114,80,0,0,0,99,1,0, - 0,0,0,0,0,0,2,0,0,0,27,0,0,0,67,0, - 0,0,115,206,0,0,0,124,0,106,0,160,1,124,0,106, - 2,161,1,1,0,116,3,106,4,124,0,106,2,25,0,125, - 1,116,5,124,1,100,1,100,0,131,3,100,0,107,8,114, - 76,121,12,124,0,106,0,124,1,95,6,87,0,110,20,4, - 0,116,7,107,10,114,74,1,0,1,0,1,0,89,0,110, - 2,88,0,116,5,124,1,100,2,100,0,131,3,100,0,107, - 8,114,154,121,40,124,1,106,8,124,1,95,9,116,10,124, - 1,100,3,131,2,115,130,124,0,106,2,160,11,100,4,161, - 1,100,5,25,0,124,1,95,9,87,0,110,20,4,0,116, - 7,107,10,114,152,1,0,1,0,1,0,89,0,110,2,88, - 0,116,5,124,1,100,6,100,0,131,3,100,0,107,8,114, - 202,121,10,124,0,124,1,95,12,87,0,110,20,4,0,116, - 7,107,10,114,200,1,0,1,0,1,0,89,0,110,2,88, - 0,124,1,83,0,41,7,78,114,85,0,0,0,114,130,0, - 0,0,114,127,0,0,0,114,117,0,0,0,114,19,0,0, - 0,114,89,0,0,0,41,13,114,93,0,0,0,114,138,0, - 0,0,114,15,0,0,0,114,14,0,0,0,114,79,0,0, - 0,114,6,0,0,0,114,85,0,0,0,114,90,0,0,0, - 114,1,0,0,0,114,130,0,0,0,114,4,0,0,0,114, - 118,0,0,0,114,89,0,0,0,41,2,114,82,0,0,0, - 114,83,0,0,0,114,10,0,0,0,114,10,0,0,0,114, - 11,0,0,0,218,25,95,108,111,97,100,95,98,97,99,107, - 119,97,114,100,95,99,111,109,112,97,116,105,98,108,101,100, - 2,0,0,115,40,0,0,0,0,4,14,2,12,1,16,1, - 2,1,12,1,14,1,6,1,16,1,2,4,8,1,10,1, - 22,1,14,1,6,1,16,1,2,1,10,1,14,1,6,1, - 114,140,0,0,0,99,1,0,0,0,0,0,0,0,2,0, - 0,0,11,0,0,0,67,0,0,0,115,118,0,0,0,124, - 0,106,0,100,0,107,9,114,30,116,1,124,0,106,0,100, - 1,131,2,115,30,116,2,124,0,131,1,83,0,116,3,124, - 0,131,1,125,1,116,4,124,1,131,1,143,54,1,0,124, - 0,106,0,100,0,107,8,114,84,124,0,106,5,100,0,107, - 8,114,96,116,6,100,2,124,0,106,7,100,3,141,2,130, - 1,110,12,124,0,106,0,160,8,124,1,161,1,1,0,87, - 0,100,0,81,0,82,0,88,0,116,9,106,10,124,0,106, - 7,25,0,83,0,41,4,78,114,135,0,0,0,122,14,109, - 105,115,115,105,110,103,32,108,111,97,100,101,114,41,1,114, - 15,0,0,0,41,11,114,93,0,0,0,114,4,0,0,0, - 114,140,0,0,0,114,136,0,0,0,114,96,0,0,0,114, - 106,0,0,0,114,70,0,0,0,114,15,0,0,0,114,135, - 0,0,0,114,14,0,0,0,114,79,0,0,0,41,2,114, - 82,0,0,0,114,83,0,0,0,114,10,0,0,0,114,10, - 0,0,0,114,11,0,0,0,218,14,95,108,111,97,100,95, - 117,110,108,111,99,107,101,100,129,2,0,0,115,20,0,0, - 0,0,2,10,2,12,1,8,2,8,1,10,1,10,1,10, - 1,16,3,22,5,114,141,0,0,0,99,1,0,0,0,0, - 0,0,0,1,0,0,0,9,0,0,0,67,0,0,0,115, - 38,0,0,0,116,0,160,1,161,0,1,0,116,2,124,0, - 106,3,131,1,143,10,1,0,116,4,124,0,131,1,83,0, - 81,0,82,0,88,0,100,1,83,0,41,2,122,191,82,101, - 116,117,114,110,32,97,32,110,101,119,32,109,111,100,117,108, - 101,32,111,98,106,101,99,116,44,32,108,111,97,100,101,100, - 32,98,121,32,116,104,101,32,115,112,101,99,39,115,32,108, - 111,97,100,101,114,46,10,10,32,32,32,32,84,104,101,32, - 109,111,100,117,108,101,32,105,115,32,110,111,116,32,97,100, - 100,101,100,32,116,111,32,105,116,115,32,112,97,114,101,110, - 116,46,10,10,32,32,32,32,73,102,32,97,32,109,111,100, - 117,108,101,32,105,115,32,97,108,114,101,97,100,121,32,105, - 110,32,115,121,115,46,109,111,100,117,108,101,115,44,32,116, - 104,97,116,32,101,120,105,115,116,105,110,103,32,109,111,100, - 117,108,101,32,103,101,116,115,10,32,32,32,32,99,108,111, - 98,98,101,114,101,100,46,10,10,32,32,32,32,78,41,5, - 114,46,0,0,0,114,137,0,0,0,114,42,0,0,0,114, - 15,0,0,0,114,141,0,0,0,41,1,114,82,0,0,0, - 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114, - 81,0,0,0,152,2,0,0,115,6,0,0,0,0,9,8, - 1,12,1,114,81,0,0,0,99,0,0,0,0,0,0,0, - 0,0,0,0,0,4,0,0,0,64,0,0,0,115,136,0, - 0,0,101,0,90,1,100,0,90,2,100,1,90,3,101,4, - 100,2,100,3,132,0,131,1,90,5,101,6,100,19,100,5, - 100,6,132,1,131,1,90,7,101,6,100,20,100,7,100,8, - 132,1,131,1,90,8,101,6,100,9,100,10,132,0,131,1, - 90,9,101,6,100,11,100,12,132,0,131,1,90,10,101,6, - 101,11,100,13,100,14,132,0,131,1,131,1,90,12,101,6, - 101,11,100,15,100,16,132,0,131,1,131,1,90,13,101,6, - 101,11,100,17,100,18,132,0,131,1,131,1,90,14,101,6, - 101,15,131,1,90,16,100,4,83,0,41,21,218,15,66,117, - 105,108,116,105,110,73,109,112,111,114,116,101,114,122,144,77, - 101,116,97,32,112,97,116,104,32,105,109,112,111,114,116,32, - 102,111,114,32,98,117,105,108,116,45,105,110,32,109,111,100, - 117,108,101,115,46,10,10,32,32,32,32,65,108,108,32,109, - 101,116,104,111,100,115,32,97,114,101,32,101,105,116,104,101, - 114,32,99,108,97,115,115,32,111,114,32,115,116,97,116,105, - 99,32,109,101,116,104,111,100,115,32,116,111,32,97,118,111, - 105,100,32,116,104,101,32,110,101,101,100,32,116,111,10,32, - 32,32,32,105,110,115,116,97,110,116,105,97,116,101,32,116, - 104,101,32,99,108,97,115,115,46,10,10,32,32,32,32,99, - 1,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0, - 67,0,0,0,115,12,0,0,0,100,1,160,0,124,0,106, - 1,161,1,83,0,41,2,122,115,82,101,116,117,114,110,32, - 114,101,112,114,32,102,111,114,32,116,104,101,32,109,111,100, - 117,108,101,46,10,10,32,32,32,32,32,32,32,32,84,104, - 101,32,109,101,116,104,111,100,32,105,115,32,100,101,112,114, - 101,99,97,116,101,100,46,32,32,84,104,101,32,105,109,112, - 111,114,116,32,109,97,99,104,105,110,101,114,121,32,100,111, - 101,115,32,116,104,101,32,106,111,98,32,105,116,115,101,108, - 102,46,10,10,32,32,32,32,32,32,32,32,122,24,60,109, - 111,100,117,108,101,32,123,33,114,125,32,40,98,117,105,108, - 116,45,105,110,41,62,41,2,114,38,0,0,0,114,1,0, - 0,0,41,1,114,83,0,0,0,114,10,0,0,0,114,10, - 0,0,0,114,11,0,0,0,114,86,0,0,0,177,2,0, - 0,115,2,0,0,0,0,7,122,27,66,117,105,108,116,105, + 0,218,11,102,105,110,100,95,109,111,100,117,108,101,195,2, + 0,0,115,4,0,0,0,0,9,12,1,122,27,66,117,105, + 108,116,105,110,73,109,112,111,114,116,101,114,46,102,105,110, + 100,95,109,111,100,117,108,101,99,2,0,0,0,0,0,0, + 0,2,0,0,0,4,0,0,0,67,0,0,0,115,46,0, + 0,0,124,1,106,0,116,1,106,2,107,7,114,34,116,3, + 100,1,160,4,124,1,106,0,161,1,124,1,106,0,100,2, + 141,2,130,1,116,5,116,6,106,7,124,1,131,2,83,0, + 41,3,122,24,67,114,101,97,116,101,32,97,32,98,117,105, + 108,116,45,105,110,32,109,111,100,117,108,101,122,29,123,33, + 114,125,32,105,115,32,110,111,116,32,97,32,98,117,105,108, + 116,45,105,110,32,109,111,100,117,108,101,41,1,114,15,0, + 0,0,41,8,114,15,0,0,0,114,14,0,0,0,114,69, + 0,0,0,114,70,0,0,0,114,38,0,0,0,114,58,0, + 0,0,114,46,0,0,0,90,14,99,114,101,97,116,101,95, + 98,117,105,108,116,105,110,41,2,114,26,0,0,0,114,82, + 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0, + 0,0,114,134,0,0,0,207,2,0,0,115,8,0,0,0, + 0,3,12,1,12,1,10,1,122,29,66,117,105,108,116,105, + 110,73,109,112,111,114,116,101,114,46,99,114,101,97,116,101, + 95,109,111,100,117,108,101,99,2,0,0,0,0,0,0,0, + 2,0,0,0,3,0,0,0,67,0,0,0,115,16,0,0, + 0,116,0,116,1,106,2,124,1,131,2,1,0,100,1,83, + 0,41,2,122,22,69,120,101,99,32,97,32,98,117,105,108, + 116,45,105,110,32,109,111,100,117,108,101,78,41,3,114,58, + 0,0,0,114,46,0,0,0,90,12,101,120,101,99,95,98, + 117,105,108,116,105,110,41,2,114,26,0,0,0,114,83,0, + 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, + 0,114,135,0,0,0,215,2,0,0,115,2,0,0,0,0, + 3,122,27,66,117,105,108,116,105,110,73,109,112,111,114,116, + 101,114,46,101,120,101,99,95,109,111,100,117,108,101,99,2, + 0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,67, + 0,0,0,115,4,0,0,0,100,1,83,0,41,2,122,57, + 82,101,116,117,114,110,32,78,111,110,101,32,97,115,32,98, + 117,105,108,116,45,105,110,32,109,111,100,117,108,101,115,32, + 100,111,32,110,111,116,32,104,97,118,101,32,99,111,100,101, + 32,111,98,106,101,99,116,115,46,78,114,10,0,0,0,41, + 2,114,143,0,0,0,114,71,0,0,0,114,10,0,0,0, + 114,10,0,0,0,114,11,0,0,0,218,8,103,101,116,95, + 99,111,100,101,220,2,0,0,115,2,0,0,0,0,4,122, + 24,66,117,105,108,116,105,110,73,109,112,111,114,116,101,114, + 46,103,101,116,95,99,111,100,101,99,2,0,0,0,0,0, + 0,0,2,0,0,0,1,0,0,0,67,0,0,0,115,4, + 0,0,0,100,1,83,0,41,2,122,56,82,101,116,117,114, + 110,32,78,111,110,101,32,97,115,32,98,117,105,108,116,45, + 105,110,32,109,111,100,117,108,101,115,32,100,111,32,110,111, + 116,32,104,97,118,101,32,115,111,117,114,99,101,32,99,111, + 100,101,46,78,114,10,0,0,0,41,2,114,143,0,0,0, + 114,71,0,0,0,114,10,0,0,0,114,10,0,0,0,114, + 11,0,0,0,218,10,103,101,116,95,115,111,117,114,99,101, + 226,2,0,0,115,2,0,0,0,0,4,122,26,66,117,105, + 108,116,105,110,73,109,112,111,114,116,101,114,46,103,101,116, + 95,115,111,117,114,99,101,99,2,0,0,0,0,0,0,0, + 2,0,0,0,1,0,0,0,67,0,0,0,115,4,0,0, + 0,100,1,83,0,41,2,122,52,82,101,116,117,114,110,32, + 70,97,108,115,101,32,97,115,32,98,117,105,108,116,45,105, + 110,32,109,111,100,117,108,101,115,32,97,114,101,32,110,101, + 118,101,114,32,112,97,99,107,97,103,101,115,46,70,114,10, + 0,0,0,41,2,114,143,0,0,0,114,71,0,0,0,114, + 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,105, + 0,0,0,232,2,0,0,115,2,0,0,0,0,4,122,26, + 66,117,105,108,116,105,110,73,109,112,111,114,116,101,114,46, + 105,115,95,112,97,99,107,97,103,101,41,2,78,78,41,1, + 78,41,17,114,1,0,0,0,114,0,0,0,0,114,2,0, + 0,0,114,3,0,0,0,218,12,115,116,97,116,105,99,109, + 101,116,104,111,100,114,86,0,0,0,218,11,99,108,97,115, + 115,109,101,116,104,111,100,114,146,0,0,0,114,147,0,0, + 0,114,134,0,0,0,114,135,0,0,0,114,74,0,0,0, + 114,148,0,0,0,114,149,0,0,0,114,105,0,0,0,114, + 84,0,0,0,114,138,0,0,0,114,10,0,0,0,114,10, + 0,0,0,114,10,0,0,0,114,11,0,0,0,114,142,0, + 0,0,168,2,0,0,115,28,0,0,0,12,9,12,9,2, + 1,12,8,2,1,12,11,12,8,12,5,2,1,14,5,2, + 1,14,5,2,1,14,5,114,142,0,0,0,99,0,0,0, + 0,0,0,0,0,0,0,0,0,4,0,0,0,64,0,0, + 0,115,140,0,0,0,101,0,90,1,100,0,90,2,100,1, + 90,3,101,4,100,2,100,3,132,0,131,1,90,5,101,6, + 100,21,100,5,100,6,132,1,131,1,90,7,101,6,100,22, + 100,7,100,8,132,1,131,1,90,8,101,6,100,9,100,10, + 132,0,131,1,90,9,101,4,100,11,100,12,132,0,131,1, + 90,10,101,6,100,13,100,14,132,0,131,1,90,11,101,6, + 101,12,100,15,100,16,132,0,131,1,131,1,90,13,101,6, + 101,12,100,17,100,18,132,0,131,1,131,1,90,14,101,6, + 101,12,100,19,100,20,132,0,131,1,131,1,90,15,100,4, + 83,0,41,23,218,14,70,114,111,122,101,110,73,109,112,111, + 114,116,101,114,122,142,77,101,116,97,32,112,97,116,104,32, + 105,109,112,111,114,116,32,102,111,114,32,102,114,111,122,101, + 110,32,109,111,100,117,108,101,115,46,10,10,32,32,32,32, + 65,108,108,32,109,101,116,104,111,100,115,32,97,114,101,32, + 101,105,116,104,101,114,32,99,108,97,115,115,32,111,114,32, + 115,116,97,116,105,99,32,109,101,116,104,111,100,115,32,116, + 111,32,97,118,111,105,100,32,116,104,101,32,110,101,101,100, + 32,116,111,10,32,32,32,32,105,110,115,116,97,110,116,105, + 97,116,101,32,116,104,101,32,99,108,97,115,115,46,10,10, + 32,32,32,32,99,1,0,0,0,0,0,0,0,1,0,0, + 0,3,0,0,0,67,0,0,0,115,12,0,0,0,100,1, + 160,0,124,0,106,1,161,1,83,0,41,2,122,115,82,101, + 116,117,114,110,32,114,101,112,114,32,102,111,114,32,116,104, + 101,32,109,111,100,117,108,101,46,10,10,32,32,32,32,32, + 32,32,32,84,104,101,32,109,101,116,104,111,100,32,105,115, + 32,100,101,112,114,101,99,97,116,101,100,46,32,32,84,104, + 101,32,105,109,112,111,114,116,32,109,97,99,104,105,110,101, + 114,121,32,100,111,101,115,32,116,104,101,32,106,111,98,32, + 105,116,115,101,108,102,46,10,10,32,32,32,32,32,32,32, + 32,122,22,60,109,111,100,117,108,101,32,123,33,114,125,32, + 40,102,114,111,122,101,110,41,62,41,2,114,38,0,0,0, + 114,1,0,0,0,41,1,218,1,109,114,10,0,0,0,114, + 10,0,0,0,114,11,0,0,0,114,86,0,0,0,250,2, + 0,0,115,2,0,0,0,0,7,122,26,70,114,111,122,101, 110,73,109,112,111,114,116,101,114,46,109,111,100,117,108,101, 95,114,101,112,114,78,99,4,0,0,0,0,0,0,0,4, - 0,0,0,5,0,0,0,67,0,0,0,115,44,0,0,0, - 124,2,100,0,107,9,114,12,100,0,83,0,116,0,160,1, - 124,1,161,1,114,36,116,2,124,1,124,0,100,1,100,2, - 141,3,83,0,100,0,83,0,100,0,83,0,41,3,78,122, - 8,98,117,105,108,116,45,105,110,41,1,114,103,0,0,0, - 41,3,114,46,0,0,0,90,10,105,115,95,98,117,105,108, - 116,105,110,114,78,0,0,0,41,4,218,3,99,108,115,114, - 71,0,0,0,218,4,112,97,116,104,218,6,116,97,114,103, - 101,116,114,10,0,0,0,114,10,0,0,0,114,11,0,0, - 0,218,9,102,105,110,100,95,115,112,101,99,186,2,0,0, - 115,10,0,0,0,0,2,8,1,4,1,10,1,14,2,122, - 25,66,117,105,108,116,105,110,73,109,112,111,114,116,101,114, - 46,102,105,110,100,95,115,112,101,99,99,3,0,0,0,0, - 0,0,0,4,0,0,0,4,0,0,0,67,0,0,0,115, - 30,0,0,0,124,0,160,0,124,1,124,2,161,2,125,3, - 124,3,100,1,107,9,114,26,124,3,106,1,83,0,100,1, - 83,0,41,2,122,175,70,105,110,100,32,116,104,101,32,98, - 117,105,108,116,45,105,110,32,109,111,100,117,108,101,46,10, - 10,32,32,32,32,32,32,32,32,73,102,32,39,112,97,116, - 104,39,32,105,115,32,101,118,101,114,32,115,112,101,99,105, - 102,105,101,100,32,116,104,101,110,32,116,104,101,32,115,101, - 97,114,99,104,32,105,115,32,99,111,110,115,105,100,101,114, - 101,100,32,97,32,102,97,105,108,117,114,101,46,10,10,32, + 0,0,0,5,0,0,0,67,0,0,0,115,32,0,0,0, + 116,0,160,1,124,1,161,1,114,24,116,2,124,1,124,0, + 100,1,100,2,141,3,83,0,100,0,83,0,100,0,83,0, + 41,3,78,90,6,102,114,111,122,101,110,41,1,114,103,0, + 0,0,41,3,114,46,0,0,0,114,75,0,0,0,114,78, + 0,0,0,41,4,114,143,0,0,0,114,71,0,0,0,114, + 144,0,0,0,114,145,0,0,0,114,10,0,0,0,114,10, + 0,0,0,114,11,0,0,0,114,146,0,0,0,3,3,0, + 0,115,6,0,0,0,0,2,10,1,14,2,122,24,70,114, + 111,122,101,110,73,109,112,111,114,116,101,114,46,102,105,110, + 100,95,115,112,101,99,99,3,0,0,0,0,0,0,0,3, + 0,0,0,3,0,0,0,67,0,0,0,115,18,0,0,0, + 116,0,160,1,124,1,161,1,114,14,124,0,83,0,100,1, + 83,0,41,2,122,93,70,105,110,100,32,97,32,102,114,111, + 122,101,110,32,109,111,100,117,108,101,46,10,10,32,32,32, + 32,32,32,32,32,84,104,105,115,32,109,101,116,104,111,100, + 32,105,115,32,100,101,112,114,101,99,97,116,101,100,46,32, + 32,85,115,101,32,102,105,110,100,95,115,112,101,99,40,41, + 32,105,110,115,116,101,97,100,46,10,10,32,32,32,32,32, + 32,32,32,78,41,2,114,46,0,0,0,114,75,0,0,0, + 41,3,114,143,0,0,0,114,71,0,0,0,114,144,0,0, + 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, + 114,147,0,0,0,10,3,0,0,115,2,0,0,0,0,7, + 122,26,70,114,111,122,101,110,73,109,112,111,114,116,101,114, + 46,102,105,110,100,95,109,111,100,117,108,101,99,2,0,0, + 0,0,0,0,0,2,0,0,0,1,0,0,0,67,0,0, + 0,115,4,0,0,0,100,1,83,0,41,2,122,42,85,115, + 101,32,100,101,102,97,117,108,116,32,115,101,109,97,110,116, + 105,99,115,32,102,111,114,32,109,111,100,117,108,101,32,99, + 114,101,97,116,105,111,110,46,78,114,10,0,0,0,41,2, + 114,143,0,0,0,114,82,0,0,0,114,10,0,0,0,114, + 10,0,0,0,114,11,0,0,0,114,134,0,0,0,19,3, + 0,0,115,0,0,0,0,122,28,70,114,111,122,101,110,73, + 109,112,111,114,116,101,114,46,99,114,101,97,116,101,95,109, + 111,100,117,108,101,99,1,0,0,0,0,0,0,0,3,0, + 0,0,4,0,0,0,67,0,0,0,115,64,0,0,0,124, + 0,106,0,106,1,125,1,116,2,160,3,124,1,161,1,115, + 36,116,4,100,1,160,5,124,1,161,1,124,1,100,2,141, + 2,130,1,116,6,116,2,106,7,124,1,131,2,125,2,116, + 8,124,2,124,0,106,9,131,2,1,0,100,0,83,0,41, + 3,78,122,27,123,33,114,125,32,105,115,32,110,111,116,32, + 97,32,102,114,111,122,101,110,32,109,111,100,117,108,101,41, + 1,114,15,0,0,0,41,10,114,89,0,0,0,114,15,0, + 0,0,114,46,0,0,0,114,75,0,0,0,114,70,0,0, + 0,114,38,0,0,0,114,58,0,0,0,218,17,103,101,116, + 95,102,114,111,122,101,110,95,111,98,106,101,99,116,218,4, + 101,120,101,99,114,7,0,0,0,41,3,114,83,0,0,0, + 114,15,0,0,0,218,4,99,111,100,101,114,10,0,0,0, + 114,10,0,0,0,114,11,0,0,0,114,135,0,0,0,23, + 3,0,0,115,12,0,0,0,0,2,8,1,10,1,10,1, + 8,1,12,1,122,26,70,114,111,122,101,110,73,109,112,111, + 114,116,101,114,46,101,120,101,99,95,109,111,100,117,108,101, + 99,2,0,0,0,0,0,0,0,2,0,0,0,3,0,0, + 0,67,0,0,0,115,10,0,0,0,116,0,124,0,124,1, + 131,2,83,0,41,1,122,95,76,111,97,100,32,97,32,102, + 114,111,122,101,110,32,109,111,100,117,108,101,46,10,10,32, 32,32,32,32,32,32,32,84,104,105,115,32,109,101,116,104, 111,100,32,105,115,32,100,101,112,114,101,99,97,116,101,100, - 46,32,32,85,115,101,32,102,105,110,100,95,115,112,101,99, - 40,41,32,105,110,115,116,101,97,100,46,10,10,32,32,32, - 32,32,32,32,32,78,41,2,114,146,0,0,0,114,93,0, - 0,0,41,4,114,143,0,0,0,114,71,0,0,0,114,144, - 0,0,0,114,82,0,0,0,114,10,0,0,0,114,10,0, - 0,0,114,11,0,0,0,218,11,102,105,110,100,95,109,111, - 100,117,108,101,195,2,0,0,115,4,0,0,0,0,9,12, - 1,122,27,66,117,105,108,116,105,110,73,109,112,111,114,116, - 101,114,46,102,105,110,100,95,109,111,100,117,108,101,99,2, - 0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,67, - 0,0,0,115,46,0,0,0,124,1,106,0,116,1,106,2, - 107,7,114,34,116,3,100,1,160,4,124,1,106,0,161,1, - 124,1,106,0,100,2,141,2,130,1,116,5,116,6,106,7, - 124,1,131,2,83,0,41,3,122,24,67,114,101,97,116,101, - 32,97,32,98,117,105,108,116,45,105,110,32,109,111,100,117, - 108,101,122,29,123,33,114,125,32,105,115,32,110,111,116,32, - 97,32,98,117,105,108,116,45,105,110,32,109,111,100,117,108, - 101,41,1,114,15,0,0,0,41,8,114,15,0,0,0,114, - 14,0,0,0,114,69,0,0,0,114,70,0,0,0,114,38, - 0,0,0,114,58,0,0,0,114,46,0,0,0,90,14,99, - 114,101,97,116,101,95,98,117,105,108,116,105,110,41,2,114, - 26,0,0,0,114,82,0,0,0,114,10,0,0,0,114,10, - 0,0,0,114,11,0,0,0,114,134,0,0,0,207,2,0, - 0,115,8,0,0,0,0,3,12,1,12,1,10,1,122,29, - 66,117,105,108,116,105,110,73,109,112,111,114,116,101,114,46, - 99,114,101,97,116,101,95,109,111,100,117,108,101,99,2,0, - 0,0,0,0,0,0,2,0,0,0,3,0,0,0,67,0, - 0,0,115,16,0,0,0,116,0,116,1,106,2,124,1,131, - 2,1,0,100,1,83,0,41,2,122,22,69,120,101,99,32, - 97,32,98,117,105,108,116,45,105,110,32,109,111,100,117,108, - 101,78,41,3,114,58,0,0,0,114,46,0,0,0,90,12, - 101,120,101,99,95,98,117,105,108,116,105,110,41,2,114,26, - 0,0,0,114,83,0,0,0,114,10,0,0,0,114,10,0, - 0,0,114,11,0,0,0,114,135,0,0,0,215,2,0,0, - 115,2,0,0,0,0,3,122,27,66,117,105,108,116,105,110, - 73,109,112,111,114,116,101,114,46,101,120,101,99,95,109,111, - 100,117,108,101,99,2,0,0,0,0,0,0,0,2,0,0, - 0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,1, - 83,0,41,2,122,57,82,101,116,117,114,110,32,78,111,110, - 101,32,97,115,32,98,117,105,108,116,45,105,110,32,109,111, - 100,117,108,101,115,32,100,111,32,110,111,116,32,104,97,118, - 101,32,99,111,100,101,32,111,98,106,101,99,116,115,46,78, - 114,10,0,0,0,41,2,114,143,0,0,0,114,71,0,0, - 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, - 218,8,103,101,116,95,99,111,100,101,220,2,0,0,115,2, - 0,0,0,0,4,122,24,66,117,105,108,116,105,110,73,109, - 112,111,114,116,101,114,46,103,101,116,95,99,111,100,101,99, - 2,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0, - 67,0,0,0,115,4,0,0,0,100,1,83,0,41,2,122, - 56,82,101,116,117,114,110,32,78,111,110,101,32,97,115,32, - 98,117,105,108,116,45,105,110,32,109,111,100,117,108,101,115, - 32,100,111,32,110,111,116,32,104,97,118,101,32,115,111,117, - 114,99,101,32,99,111,100,101,46,78,114,10,0,0,0,41, - 2,114,143,0,0,0,114,71,0,0,0,114,10,0,0,0, - 114,10,0,0,0,114,11,0,0,0,218,10,103,101,116,95, - 115,111,117,114,99,101,226,2,0,0,115,2,0,0,0,0, - 4,122,26,66,117,105,108,116,105,110,73,109,112,111,114,116, - 101,114,46,103,101,116,95,115,111,117,114,99,101,99,2,0, - 0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,0, - 0,0,115,4,0,0,0,100,1,83,0,41,2,122,52,82, - 101,116,117,114,110,32,70,97,108,115,101,32,97,115,32,98, - 117,105,108,116,45,105,110,32,109,111,100,117,108,101,115,32, - 97,114,101,32,110,101,118,101,114,32,112,97,99,107,97,103, - 101,115,46,70,114,10,0,0,0,41,2,114,143,0,0,0, - 114,71,0,0,0,114,10,0,0,0,114,10,0,0,0,114, - 11,0,0,0,114,105,0,0,0,232,2,0,0,115,2,0, - 0,0,0,4,122,26,66,117,105,108,116,105,110,73,109,112, - 111,114,116,101,114,46,105,115,95,112,97,99,107,97,103,101, - 41,2,78,78,41,1,78,41,17,114,1,0,0,0,114,0, - 0,0,0,114,2,0,0,0,114,3,0,0,0,218,12,115, - 116,97,116,105,99,109,101,116,104,111,100,114,86,0,0,0, - 218,11,99,108,97,115,115,109,101,116,104,111,100,114,146,0, - 0,0,114,147,0,0,0,114,134,0,0,0,114,135,0,0, - 0,114,74,0,0,0,114,148,0,0,0,114,149,0,0,0, - 114,105,0,0,0,114,84,0,0,0,114,138,0,0,0,114, - 10,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11, - 0,0,0,114,142,0,0,0,168,2,0,0,115,30,0,0, - 0,8,7,4,2,12,9,2,1,12,8,2,1,12,11,12, - 8,12,5,2,1,14,5,2,1,14,5,2,1,14,5,114, - 142,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0, - 0,4,0,0,0,64,0,0,0,115,140,0,0,0,101,0, - 90,1,100,0,90,2,100,1,90,3,101,4,100,2,100,3, - 132,0,131,1,90,5,101,6,100,21,100,5,100,6,132,1, - 131,1,90,7,101,6,100,22,100,7,100,8,132,1,131,1, - 90,8,101,6,100,9,100,10,132,0,131,1,90,9,101,4, - 100,11,100,12,132,0,131,1,90,10,101,6,100,13,100,14, - 132,0,131,1,90,11,101,6,101,12,100,15,100,16,132,0, - 131,1,131,1,90,13,101,6,101,12,100,17,100,18,132,0, - 131,1,131,1,90,14,101,6,101,12,100,19,100,20,132,0, - 131,1,131,1,90,15,100,4,83,0,41,23,218,14,70,114, - 111,122,101,110,73,109,112,111,114,116,101,114,122,142,77,101, - 116,97,32,112,97,116,104,32,105,109,112,111,114,116,32,102, - 111,114,32,102,114,111,122,101,110,32,109,111,100,117,108,101, - 115,46,10,10,32,32,32,32,65,108,108,32,109,101,116,104, - 111,100,115,32,97,114,101,32,101,105,116,104,101,114,32,99, - 108,97,115,115,32,111,114,32,115,116,97,116,105,99,32,109, - 101,116,104,111,100,115,32,116,111,32,97,118,111,105,100,32, - 116,104,101,32,110,101,101,100,32,116,111,10,32,32,32,32, - 105,110,115,116,97,110,116,105,97,116,101,32,116,104,101,32, - 99,108,97,115,115,46,10,10,32,32,32,32,99,1,0,0, - 0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,0, - 0,115,12,0,0,0,100,1,160,0,124,0,106,1,161,1, - 83,0,41,2,122,115,82,101,116,117,114,110,32,114,101,112, - 114,32,102,111,114,32,116,104,101,32,109,111,100,117,108,101, - 46,10,10,32,32,32,32,32,32,32,32,84,104,101,32,109, - 101,116,104,111,100,32,105,115,32,100,101,112,114,101,99,97, - 116,101,100,46,32,32,84,104,101,32,105,109,112,111,114,116, - 32,109,97,99,104,105,110,101,114,121,32,100,111,101,115,32, - 116,104,101,32,106,111,98,32,105,116,115,101,108,102,46,10, - 10,32,32,32,32,32,32,32,32,122,22,60,109,111,100,117, - 108,101,32,123,33,114,125,32,40,102,114,111,122,101,110,41, - 62,41,2,114,38,0,0,0,114,1,0,0,0,41,1,218, - 1,109,114,10,0,0,0,114,10,0,0,0,114,11,0,0, - 0,114,86,0,0,0,250,2,0,0,115,2,0,0,0,0, - 7,122,26,70,114,111,122,101,110,73,109,112,111,114,116,101, - 114,46,109,111,100,117,108,101,95,114,101,112,114,78,99,4, - 0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,67, - 0,0,0,115,32,0,0,0,116,0,160,1,124,1,161,1, - 114,24,116,2,124,1,124,0,100,1,100,2,141,3,83,0, - 100,0,83,0,100,0,83,0,41,3,78,90,6,102,114,111, - 122,101,110,41,1,114,103,0,0,0,41,3,114,46,0,0, - 0,114,75,0,0,0,114,78,0,0,0,41,4,114,143,0, - 0,0,114,71,0,0,0,114,144,0,0,0,114,145,0,0, - 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, - 114,146,0,0,0,3,3,0,0,115,6,0,0,0,0,2, - 10,1,14,2,122,24,70,114,111,122,101,110,73,109,112,111, - 114,116,101,114,46,102,105,110,100,95,115,112,101,99,99,3, - 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,67, - 0,0,0,115,18,0,0,0,116,0,160,1,124,1,161,1, - 114,14,124,0,83,0,100,1,83,0,41,2,122,93,70,105, - 110,100,32,97,32,102,114,111,122,101,110,32,109,111,100,117, - 108,101,46,10,10,32,32,32,32,32,32,32,32,84,104,105, - 115,32,109,101,116,104,111,100,32,105,115,32,100,101,112,114, - 101,99,97,116,101,100,46,32,32,85,115,101,32,102,105,110, - 100,95,115,112,101,99,40,41,32,105,110,115,116,101,97,100, - 46,10,10,32,32,32,32,32,32,32,32,78,41,2,114,46, - 0,0,0,114,75,0,0,0,41,3,114,143,0,0,0,114, - 71,0,0,0,114,144,0,0,0,114,10,0,0,0,114,10, - 0,0,0,114,11,0,0,0,114,147,0,0,0,10,3,0, - 0,115,2,0,0,0,0,7,122,26,70,114,111,122,101,110, - 73,109,112,111,114,116,101,114,46,102,105,110,100,95,109,111, - 100,117,108,101,99,2,0,0,0,0,0,0,0,2,0,0, - 0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,1, - 83,0,41,2,122,42,85,115,101,32,100,101,102,97,117,108, - 116,32,115,101,109,97,110,116,105,99,115,32,102,111,114,32, - 109,111,100,117,108,101,32,99,114,101,97,116,105,111,110,46, - 78,114,10,0,0,0,41,2,114,143,0,0,0,114,82,0, - 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, - 0,114,134,0,0,0,19,3,0,0,115,0,0,0,0,122, - 28,70,114,111,122,101,110,73,109,112,111,114,116,101,114,46, - 99,114,101,97,116,101,95,109,111,100,117,108,101,99,1,0, - 0,0,0,0,0,0,3,0,0,0,4,0,0,0,67,0, - 0,0,115,64,0,0,0,124,0,106,0,106,1,125,1,116, - 2,160,3,124,1,161,1,115,36,116,4,100,1,160,5,124, - 1,161,1,124,1,100,2,141,2,130,1,116,6,116,2,106, - 7,124,1,131,2,125,2,116,8,124,2,124,0,106,9,131, - 2,1,0,100,0,83,0,41,3,78,122,27,123,33,114,125, - 32,105,115,32,110,111,116,32,97,32,102,114,111,122,101,110, - 32,109,111,100,117,108,101,41,1,114,15,0,0,0,41,10, - 114,89,0,0,0,114,15,0,0,0,114,46,0,0,0,114, - 75,0,0,0,114,70,0,0,0,114,38,0,0,0,114,58, - 0,0,0,218,17,103,101,116,95,102,114,111,122,101,110,95, - 111,98,106,101,99,116,218,4,101,120,101,99,114,7,0,0, - 0,41,3,114,83,0,0,0,114,15,0,0,0,218,4,99, - 111,100,101,114,10,0,0,0,114,10,0,0,0,114,11,0, - 0,0,114,135,0,0,0,23,3,0,0,115,12,0,0,0, - 0,2,8,1,10,1,10,1,8,1,12,1,122,26,70,114, - 111,122,101,110,73,109,112,111,114,116,101,114,46,101,120,101, - 99,95,109,111,100,117,108,101,99,2,0,0,0,0,0,0, - 0,2,0,0,0,3,0,0,0,67,0,0,0,115,10,0, - 0,0,116,0,124,0,124,1,131,2,83,0,41,1,122,95, - 76,111,97,100,32,97,32,102,114,111,122,101,110,32,109,111, - 100,117,108,101,46,10,10,32,32,32,32,32,32,32,32,84, - 104,105,115,32,109,101,116,104,111,100,32,105,115,32,100,101, - 112,114,101,99,97,116,101,100,46,32,32,85,115,101,32,101, - 120,101,99,95,109,111,100,117,108,101,40,41,32,105,110,115, - 116,101,97,100,46,10,10,32,32,32,32,32,32,32,32,41, - 1,114,84,0,0,0,41,2,114,143,0,0,0,114,71,0, - 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, - 0,114,138,0,0,0,32,3,0,0,115,2,0,0,0,0, - 7,122,26,70,114,111,122,101,110,73,109,112,111,114,116,101, - 114,46,108,111,97,100,95,109,111,100,117,108,101,99,2,0, - 0,0,0,0,0,0,2,0,0,0,3,0,0,0,67,0, - 0,0,115,10,0,0,0,116,0,160,1,124,1,161,1,83, - 0,41,1,122,45,82,101,116,117,114,110,32,116,104,101,32, - 99,111,100,101,32,111,98,106,101,99,116,32,102,111,114,32, - 116,104,101,32,102,114,111,122,101,110,32,109,111,100,117,108, - 101,46,41,2,114,46,0,0,0,114,154,0,0,0,41,2, + 46,32,32,85,115,101,32,101,120,101,99,95,109,111,100,117, + 108,101,40,41,32,105,110,115,116,101,97,100,46,10,10,32, + 32,32,32,32,32,32,32,41,1,114,84,0,0,0,41,2, 114,143,0,0,0,114,71,0,0,0,114,10,0,0,0,114, - 10,0,0,0,114,11,0,0,0,114,148,0,0,0,41,3, - 0,0,115,2,0,0,0,0,4,122,23,70,114,111,122,101, - 110,73,109,112,111,114,116,101,114,46,103,101,116,95,99,111, - 100,101,99,2,0,0,0,0,0,0,0,2,0,0,0,1, - 0,0,0,67,0,0,0,115,4,0,0,0,100,1,83,0, - 41,2,122,54,82,101,116,117,114,110,32,78,111,110,101,32, - 97,115,32,102,114,111,122,101,110,32,109,111,100,117,108,101, - 115,32,100,111,32,110,111,116,32,104,97,118,101,32,115,111, - 117,114,99,101,32,99,111,100,101,46,78,114,10,0,0,0, - 41,2,114,143,0,0,0,114,71,0,0,0,114,10,0,0, - 0,114,10,0,0,0,114,11,0,0,0,114,149,0,0,0, - 47,3,0,0,115,2,0,0,0,0,4,122,25,70,114,111, - 122,101,110,73,109,112,111,114,116,101,114,46,103,101,116,95, - 115,111,117,114,99,101,99,2,0,0,0,0,0,0,0,2, - 0,0,0,3,0,0,0,67,0,0,0,115,10,0,0,0, - 116,0,160,1,124,1,161,1,83,0,41,1,122,46,82,101, - 116,117,114,110,32,84,114,117,101,32,105,102,32,116,104,101, - 32,102,114,111,122,101,110,32,109,111,100,117,108,101,32,105, - 115,32,97,32,112,97,99,107,97,103,101,46,41,2,114,46, - 0,0,0,90,17,105,115,95,102,114,111,122,101,110,95,112, - 97,99,107,97,103,101,41,2,114,143,0,0,0,114,71,0, - 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, - 0,114,105,0,0,0,53,3,0,0,115,2,0,0,0,0, - 4,122,25,70,114,111,122,101,110,73,109,112,111,114,116,101, - 114,46,105,115,95,112,97,99,107,97,103,101,41,2,78,78, - 41,1,78,41,16,114,1,0,0,0,114,0,0,0,0,114, - 2,0,0,0,114,3,0,0,0,114,150,0,0,0,114,86, - 0,0,0,114,151,0,0,0,114,146,0,0,0,114,147,0, - 0,0,114,134,0,0,0,114,135,0,0,0,114,138,0,0, - 0,114,77,0,0,0,114,148,0,0,0,114,149,0,0,0, - 114,105,0,0,0,114,10,0,0,0,114,10,0,0,0,114, - 10,0,0,0,114,11,0,0,0,114,152,0,0,0,241,2, - 0,0,115,30,0,0,0,8,7,4,2,12,9,2,1,12, - 6,2,1,12,8,12,4,12,9,12,9,2,1,14,5,2, - 1,14,5,2,1,114,152,0,0,0,99,0,0,0,0,0, - 0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,115, - 32,0,0,0,101,0,90,1,100,0,90,2,100,1,90,3, - 100,2,100,3,132,0,90,4,100,4,100,5,132,0,90,5, - 100,6,83,0,41,7,218,18,95,73,109,112,111,114,116,76, - 111,99,107,67,111,110,116,101,120,116,122,36,67,111,110,116, - 101,120,116,32,109,97,110,97,103,101,114,32,102,111,114,32, - 116,104,101,32,105,109,112,111,114,116,32,108,111,99,107,46, - 99,1,0,0,0,0,0,0,0,1,0,0,0,2,0,0, - 0,67,0,0,0,115,12,0,0,0,116,0,160,1,161,0, - 1,0,100,1,83,0,41,2,122,24,65,99,113,117,105,114, - 101,32,116,104,101,32,105,109,112,111,114,116,32,108,111,99, - 107,46,78,41,2,114,46,0,0,0,114,137,0,0,0,41, - 1,114,26,0,0,0,114,10,0,0,0,114,10,0,0,0, - 114,11,0,0,0,114,48,0,0,0,66,3,0,0,115,2, - 0,0,0,0,2,122,28,95,73,109,112,111,114,116,76,111, - 99,107,67,111,110,116,101,120,116,46,95,95,101,110,116,101, - 114,95,95,99,4,0,0,0,0,0,0,0,4,0,0,0, - 2,0,0,0,67,0,0,0,115,12,0,0,0,116,0,160, - 1,161,0,1,0,100,1,83,0,41,2,122,60,82,101,108, - 101,97,115,101,32,116,104,101,32,105,109,112,111,114,116,32, - 108,111,99,107,32,114,101,103,97,114,100,108,101,115,115,32, - 111,102,32,97,110,121,32,114,97,105,115,101,100,32,101,120, - 99,101,112,116,105,111,110,115,46,78,41,2,114,46,0,0, - 0,114,47,0,0,0,41,4,114,26,0,0,0,90,8,101, - 120,99,95,116,121,112,101,90,9,101,120,99,95,118,97,108, - 117,101,90,13,101,120,99,95,116,114,97,99,101,98,97,99, - 107,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, - 114,50,0,0,0,70,3,0,0,115,2,0,0,0,0,2, - 122,27,95,73,109,112,111,114,116,76,111,99,107,67,111,110, - 116,101,120,116,46,95,95,101,120,105,116,95,95,78,41,6, - 114,1,0,0,0,114,0,0,0,0,114,2,0,0,0,114, - 3,0,0,0,114,48,0,0,0,114,50,0,0,0,114,10, - 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0, - 0,0,114,157,0,0,0,62,3,0,0,115,6,0,0,0, - 8,2,4,2,8,4,114,157,0,0,0,99,3,0,0,0, - 0,0,0,0,5,0,0,0,5,0,0,0,67,0,0,0, - 115,64,0,0,0,124,1,160,0,100,1,124,2,100,2,24, - 0,161,2,125,3,116,1,124,3,131,1,124,2,107,0,114, - 36,116,2,100,3,131,1,130,1,124,3,100,4,25,0,125, - 4,124,0,114,60,100,5,160,3,124,4,124,0,161,2,83, - 0,124,4,83,0,41,6,122,50,82,101,115,111,108,118,101, - 32,97,32,114,101,108,97,116,105,118,101,32,109,111,100,117, - 108,101,32,110,97,109,101,32,116,111,32,97,110,32,97,98, - 115,111,108,117,116,101,32,111,110,101,46,114,117,0,0,0, - 114,33,0,0,0,122,50,97,116,116,101,109,112,116,101,100, - 32,114,101,108,97,116,105,118,101,32,105,109,112,111,114,116, - 32,98,101,121,111,110,100,32,116,111,112,45,108,101,118,101, - 108,32,112,97,99,107,97,103,101,114,19,0,0,0,122,5, - 123,125,46,123,125,41,4,218,6,114,115,112,108,105,116,218, - 3,108,101,110,218,10,86,97,108,117,101,69,114,114,111,114, - 114,38,0,0,0,41,5,114,15,0,0,0,218,7,112,97, - 99,107,97,103,101,218,5,108,101,118,101,108,90,4,98,105, - 116,115,90,4,98,97,115,101,114,10,0,0,0,114,10,0, - 0,0,114,11,0,0,0,218,13,95,114,101,115,111,108,118, - 101,95,110,97,109,101,75,3,0,0,115,10,0,0,0,0, - 2,16,1,12,1,8,1,8,1,114,163,0,0,0,99,3, - 0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,67, - 0,0,0,115,34,0,0,0,124,0,160,0,124,1,124,2, - 161,2,125,3,124,3,100,0,107,8,114,24,100,0,83,0, - 116,1,124,1,124,3,131,2,83,0,41,1,78,41,2,114, - 147,0,0,0,114,78,0,0,0,41,4,218,6,102,105,110, - 100,101,114,114,15,0,0,0,114,144,0,0,0,114,93,0, + 10,0,0,0,114,11,0,0,0,114,138,0,0,0,32,3, + 0,0,115,2,0,0,0,0,7,122,26,70,114,111,122,101, + 110,73,109,112,111,114,116,101,114,46,108,111,97,100,95,109, + 111,100,117,108,101,99,2,0,0,0,0,0,0,0,2,0, + 0,0,3,0,0,0,67,0,0,0,115,10,0,0,0,116, + 0,160,1,124,1,161,1,83,0,41,1,122,45,82,101,116, + 117,114,110,32,116,104,101,32,99,111,100,101,32,111,98,106, + 101,99,116,32,102,111,114,32,116,104,101,32,102,114,111,122, + 101,110,32,109,111,100,117,108,101,46,41,2,114,46,0,0, + 0,114,154,0,0,0,41,2,114,143,0,0,0,114,71,0, 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, - 0,218,17,95,102,105,110,100,95,115,112,101,99,95,108,101, - 103,97,99,121,84,3,0,0,115,8,0,0,0,0,3,12, - 1,8,1,4,1,114,165,0,0,0,99,3,0,0,0,0, - 0,0,0,10,0,0,0,27,0,0,0,67,0,0,0,115, - 242,0,0,0,116,0,106,1,125,3,124,3,100,1,107,8, - 114,22,116,2,100,2,131,1,130,1,124,3,115,38,116,3, - 160,4,100,3,116,5,161,2,1,0,124,0,116,0,106,6, - 107,6,125,4,120,188,124,3,68,0,93,176,125,5,116,7, - 131,0,143,72,1,0,121,10,124,5,106,8,125,6,87,0, - 110,42,4,0,116,9,107,10,114,118,1,0,1,0,1,0, - 116,10,124,5,124,0,124,1,131,3,125,7,124,7,100,1, - 107,8,114,114,119,54,89,0,110,14,88,0,124,6,124,0, - 124,1,124,2,131,3,125,7,87,0,100,1,81,0,82,0, - 88,0,124,7,100,1,107,9,114,54,124,4,12,0,114,226, - 124,0,116,0,106,6,107,6,114,226,116,0,106,6,124,0, - 25,0,125,8,121,10,124,8,106,11,125,9,87,0,110,20, - 4,0,116,9,107,10,114,206,1,0,1,0,1,0,124,7, - 83,0,88,0,124,9,100,1,107,8,114,220,124,7,83,0, - 124,9,83,0,113,54,124,7,83,0,113,54,87,0,100,1, - 83,0,100,1,83,0,41,4,122,21,70,105,110,100,32,97, - 32,109,111,100,117,108,101,39,115,32,115,112,101,99,46,78, - 122,53,115,121,115,46,109,101,116,97,95,112,97,116,104,32, - 105,115,32,78,111,110,101,44,32,80,121,116,104,111,110,32, - 105,115,32,108,105,107,101,108,121,32,115,104,117,116,116,105, - 110,103,32,100,111,119,110,122,22,115,121,115,46,109,101,116, - 97,95,112,97,116,104,32,105,115,32,101,109,112,116,121,41, - 12,114,14,0,0,0,218,9,109,101,116,97,95,112,97,116, - 104,114,70,0,0,0,218,9,95,119,97,114,110,105,110,103, - 115,218,4,119,97,114,110,218,13,73,109,112,111,114,116,87, - 97,114,110,105,110,103,114,79,0,0,0,114,157,0,0,0, - 114,146,0,0,0,114,90,0,0,0,114,165,0,0,0,114, - 89,0,0,0,41,10,114,15,0,0,0,114,144,0,0,0, - 114,145,0,0,0,114,166,0,0,0,90,9,105,115,95,114, - 101,108,111,97,100,114,164,0,0,0,114,146,0,0,0,114, - 82,0,0,0,114,83,0,0,0,114,89,0,0,0,114,10, - 0,0,0,114,10,0,0,0,114,11,0,0,0,218,10,95, - 102,105,110,100,95,115,112,101,99,93,3,0,0,115,54,0, - 0,0,0,2,6,1,8,2,8,3,4,1,12,5,10,1, - 10,1,8,1,2,1,10,1,14,1,12,1,8,1,8,2, - 22,1,8,2,16,1,10,1,2,1,10,1,14,4,6,2, - 8,1,4,2,6,2,8,2,114,170,0,0,0,99,3,0, - 0,0,0,0,0,0,4,0,0,0,5,0,0,0,67,0, - 0,0,115,140,0,0,0,116,0,124,0,116,1,131,2,115, - 28,116,2,100,1,160,3,116,4,124,0,131,1,161,1,131, - 1,130,1,124,2,100,2,107,0,114,44,116,5,100,3,131, - 1,130,1,124,2,100,2,107,4,114,114,116,0,124,1,116, - 1,131,2,115,72,116,2,100,4,131,1,130,1,110,42,124, - 1,115,86,116,6,100,5,131,1,130,1,110,28,124,1,116, - 7,106,8,107,7,114,114,100,6,125,3,116,9,124,3,160, - 3,124,1,161,1,131,1,130,1,124,0,12,0,114,136,124, - 2,100,2,107,2,114,136,116,5,100,7,131,1,130,1,100, - 8,83,0,41,9,122,28,86,101,114,105,102,121,32,97,114, - 103,117,109,101,110,116,115,32,97,114,101,32,34,115,97,110, - 101,34,46,122,31,109,111,100,117,108,101,32,110,97,109,101, - 32,109,117,115,116,32,98,101,32,115,116,114,44,32,110,111, - 116,32,123,125,114,19,0,0,0,122,18,108,101,118,101,108, - 32,109,117,115,116,32,98,101,32,62,61,32,48,122,31,95, - 95,112,97,99,107,97,103,101,95,95,32,110,111,116,32,115, - 101,116,32,116,111,32,97,32,115,116,114,105,110,103,122,54, - 97,116,116,101,109,112,116,101,100,32,114,101,108,97,116,105, - 118,101,32,105,109,112,111,114,116,32,119,105,116,104,32,110, - 111,32,107,110,111,119,110,32,112,97,114,101,110,116,32,112, - 97,99,107,97,103,101,122,61,80,97,114,101,110,116,32,109, - 111,100,117,108,101,32,123,33,114,125,32,110,111,116,32,108, - 111,97,100,101,100,44,32,99,97,110,110,111,116,32,112,101, - 114,102,111,114,109,32,114,101,108,97,116,105,118,101,32,105, - 109,112,111,114,116,122,17,69,109,112,116,121,32,109,111,100, - 117,108,101,32,110,97,109,101,78,41,10,218,10,105,115,105, - 110,115,116,97,110,99,101,218,3,115,116,114,218,9,84,121, - 112,101,69,114,114,111,114,114,38,0,0,0,114,13,0,0, - 0,114,160,0,0,0,114,70,0,0,0,114,14,0,0,0, - 114,79,0,0,0,218,11,83,121,115,116,101,109,69,114,114, - 111,114,41,4,114,15,0,0,0,114,161,0,0,0,114,162, - 0,0,0,114,139,0,0,0,114,10,0,0,0,114,10,0, - 0,0,114,11,0,0,0,218,13,95,115,97,110,105,116,121, - 95,99,104,101,99,107,140,3,0,0,115,28,0,0,0,0, - 2,10,1,18,1,8,1,8,1,8,1,10,1,10,1,4, - 1,10,2,10,1,4,2,14,1,14,1,114,175,0,0,0, - 122,16,78,111,32,109,111,100,117,108,101,32,110,97,109,101, - 100,32,122,4,123,33,114,125,99,2,0,0,0,0,0,0, - 0,8,0,0,0,13,0,0,0,67,0,0,0,115,220,0, - 0,0,100,0,125,2,124,0,160,0,100,1,161,1,100,2, - 25,0,125,3,124,3,114,134,124,3,116,1,106,2,107,7, - 114,42,116,3,124,1,124,3,131,2,1,0,124,0,116,1, - 106,2,107,6,114,62,116,1,106,2,124,0,25,0,83,0, - 116,1,106,2,124,3,25,0,125,4,121,10,124,4,106,4, - 125,2,87,0,110,50,4,0,116,5,107,10,114,132,1,0, - 1,0,1,0,116,6,100,3,23,0,160,7,124,0,124,3, - 161,2,125,5,116,8,124,5,124,0,100,4,141,2,100,0, - 130,2,89,0,110,2,88,0,116,9,124,0,124,2,131,2, - 125,6,124,6,100,0,107,8,114,172,116,8,116,6,160,7, - 124,0,161,1,124,0,100,4,141,2,130,1,110,8,116,10, - 124,6,131,1,125,7,124,3,114,216,116,1,106,2,124,3, - 25,0,125,4,116,11,124,4,124,0,160,0,100,1,161,1, - 100,5,25,0,124,7,131,3,1,0,124,7,83,0,41,6, - 78,114,117,0,0,0,114,19,0,0,0,122,23,59,32,123, - 33,114,125,32,105,115,32,110,111,116,32,97,32,112,97,99, - 107,97,103,101,41,1,114,15,0,0,0,233,2,0,0,0, - 41,12,114,118,0,0,0,114,14,0,0,0,114,79,0,0, - 0,114,58,0,0,0,114,127,0,0,0,114,90,0,0,0, - 218,8,95,69,82,82,95,77,83,71,114,38,0,0,0,218, - 19,77,111,100,117,108,101,78,111,116,70,111,117,110,100,69, - 114,114,111,114,114,170,0,0,0,114,141,0,0,0,114,5, - 0,0,0,41,8,114,15,0,0,0,218,7,105,109,112,111, - 114,116,95,114,144,0,0,0,114,119,0,0,0,90,13,112, - 97,114,101,110,116,95,109,111,100,117,108,101,114,139,0,0, - 0,114,82,0,0,0,114,83,0,0,0,114,10,0,0,0, - 114,10,0,0,0,114,11,0,0,0,218,23,95,102,105,110, - 100,95,97,110,100,95,108,111,97,100,95,117,110,108,111,99, - 107,101,100,163,3,0,0,115,42,0,0,0,0,1,4,1, - 14,1,4,1,10,1,10,2,10,1,10,1,10,1,2,1, - 10,1,14,1,16,1,20,1,10,1,8,1,20,2,8,1, - 4,2,10,1,22,1,114,180,0,0,0,99,2,0,0,0, - 0,0,0,0,2,0,0,0,10,0,0,0,67,0,0,0, - 115,30,0,0,0,116,0,124,0,131,1,143,12,1,0,116, - 1,124,0,124,1,131,2,83,0,81,0,82,0,88,0,100, - 1,83,0,41,2,122,54,70,105,110,100,32,97,110,100,32, - 108,111,97,100,32,116,104,101,32,109,111,100,117,108,101,44, - 32,97,110,100,32,114,101,108,101,97,115,101,32,116,104,101, - 32,105,109,112,111,114,116,32,108,111,99,107,46,78,41,2, - 114,42,0,0,0,114,180,0,0,0,41,2,114,15,0,0, - 0,114,179,0,0,0,114,10,0,0,0,114,10,0,0,0, - 114,11,0,0,0,218,14,95,102,105,110,100,95,97,110,100, - 95,108,111,97,100,190,3,0,0,115,4,0,0,0,0,2, - 10,1,114,181,0,0,0,114,19,0,0,0,99,3,0,0, - 0,0,0,0,0,5,0,0,0,4,0,0,0,67,0,0, - 0,115,120,0,0,0,116,0,124,0,124,1,124,2,131,3, - 1,0,124,2,100,1,107,4,114,32,116,1,124,0,124,1, - 124,2,131,3,125,0,116,2,160,3,161,0,1,0,124,0, - 116,4,106,5,107,7,114,60,116,6,124,0,116,7,131,2, - 83,0,116,4,106,5,124,0,25,0,125,3,124,3,100,2, - 107,8,114,108,116,2,160,8,161,0,1,0,100,3,160,9, - 124,0,161,1,125,4,116,10,124,4,124,0,100,4,141,2, - 130,1,116,11,124,0,131,1,1,0,124,3,83,0,41,5, - 97,50,1,0,0,73,109,112,111,114,116,32,97,110,100,32, - 114,101,116,117,114,110,32,116,104,101,32,109,111,100,117,108, - 101,32,98,97,115,101,100,32,111,110,32,105,116,115,32,110, - 97,109,101,44,32,116,104,101,32,112,97,99,107,97,103,101, - 32,116,104,101,32,99,97,108,108,32,105,115,10,32,32,32, - 32,98,101,105,110,103,32,109,97,100,101,32,102,114,111,109, - 44,32,97,110,100,32,116,104,101,32,108,101,118,101,108,32, - 97,100,106,117,115,116,109,101,110,116,46,10,10,32,32,32, - 32,84,104,105,115,32,102,117,110,99,116,105,111,110,32,114, - 101,112,114,101,115,101,110,116,115,32,116,104,101,32,103,114, - 101,97,116,101,115,116,32,99,111,109,109,111,110,32,100,101, - 110,111,109,105,110,97,116,111,114,32,111,102,32,102,117,110, - 99,116,105,111,110,97,108,105,116,121,10,32,32,32,32,98, - 101,116,119,101,101,110,32,105,109,112,111,114,116,95,109,111, - 100,117,108,101,32,97,110,100,32,95,95,105,109,112,111,114, - 116,95,95,46,32,84,104,105,115,32,105,110,99,108,117,100, - 101,115,32,115,101,116,116,105,110,103,32,95,95,112,97,99, - 107,97,103,101,95,95,32,105,102,10,32,32,32,32,116,104, - 101,32,108,111,97,100,101,114,32,100,105,100,32,110,111,116, - 46,10,10,32,32,32,32,114,19,0,0,0,78,122,40,105, - 109,112,111,114,116,32,111,102,32,123,125,32,104,97,108,116, - 101,100,59,32,78,111,110,101,32,105,110,32,115,121,115,46, - 109,111,100,117,108,101,115,41,1,114,15,0,0,0,41,12, - 114,175,0,0,0,114,163,0,0,0,114,46,0,0,0,114, - 137,0,0,0,114,14,0,0,0,114,79,0,0,0,114,181, - 0,0,0,218,11,95,103,99,100,95,105,109,112,111,114,116, - 114,47,0,0,0,114,38,0,0,0,114,178,0,0,0,114, - 56,0,0,0,41,5,114,15,0,0,0,114,161,0,0,0, - 114,162,0,0,0,114,83,0,0,0,114,67,0,0,0,114, - 10,0,0,0,114,10,0,0,0,114,11,0,0,0,114,182, - 0,0,0,196,3,0,0,115,28,0,0,0,0,9,12,1, - 8,1,12,1,8,1,10,1,10,1,10,1,8,1,8,1, - 4,1,6,1,12,1,8,1,114,182,0,0,0,99,3,0, - 0,0,0,0,0,0,6,0,0,0,17,0,0,0,67,0, - 0,0,115,164,0,0,0,116,0,124,0,100,1,131,2,114, - 160,100,2,124,1,107,6,114,58,116,1,124,1,131,1,125, - 1,124,1,160,2,100,2,161,1,1,0,116,0,124,0,100, - 3,131,2,114,58,124,1,160,3,124,0,106,4,161,1,1, - 0,120,100,124,1,68,0,93,92,125,3,116,0,124,0,124, - 3,131,2,115,64,100,4,160,5,124,0,106,6,124,3,161, - 2,125,4,121,14,116,7,124,2,124,4,131,2,1,0,87, - 0,113,64,4,0,116,8,107,10,114,154,1,0,125,5,1, - 0,122,20,124,5,106,9,124,4,107,2,114,136,119,64,130, - 0,87,0,89,0,100,5,100,5,125,5,126,5,88,0,113, - 64,88,0,113,64,87,0,124,0,83,0,41,6,122,238,70, - 105,103,117,114,101,32,111,117,116,32,119,104,97,116,32,95, - 95,105,109,112,111,114,116,95,95,32,115,104,111,117,108,100, - 32,114,101,116,117,114,110,46,10,10,32,32,32,32,84,104, - 101,32,105,109,112,111,114,116,95,32,112,97,114,97,109,101, - 116,101,114,32,105,115,32,97,32,99,97,108,108,97,98,108, - 101,32,119,104,105,99,104,32,116,97,107,101,115,32,116,104, - 101,32,110,97,109,101,32,111,102,32,109,111,100,117,108,101, - 32,116,111,10,32,32,32,32,105,109,112,111,114,116,46,32, - 73,116,32,105,115,32,114,101,113,117,105,114,101,100,32,116, - 111,32,100,101,99,111,117,112,108,101,32,116,104,101,32,102, - 117,110,99,116,105,111,110,32,102,114,111,109,32,97,115,115, - 117,109,105,110,103,32,105,109,112,111,114,116,108,105,98,39, - 115,10,32,32,32,32,105,109,112,111,114,116,32,105,109,112, - 108,101,109,101,110,116,97,116,105,111,110,32,105,115,32,100, - 101,115,105,114,101,100,46,10,10,32,32,32,32,114,127,0, - 0,0,250,1,42,218,7,95,95,97,108,108,95,95,122,5, - 123,125,46,123,125,78,41,10,114,4,0,0,0,114,126,0, - 0,0,218,6,114,101,109,111,118,101,218,6,101,120,116,101, - 110,100,114,184,0,0,0,114,38,0,0,0,114,1,0,0, - 0,114,58,0,0,0,114,178,0,0,0,114,15,0,0,0, - 41,6,114,83,0,0,0,218,8,102,114,111,109,108,105,115, - 116,114,179,0,0,0,218,1,120,90,9,102,114,111,109,95, - 110,97,109,101,90,3,101,120,99,114,10,0,0,0,114,10, - 0,0,0,114,11,0,0,0,218,16,95,104,97,110,100,108, - 101,95,102,114,111,109,108,105,115,116,221,3,0,0,115,32, - 0,0,0,0,10,10,1,8,1,8,1,10,1,10,1,12, - 1,10,1,10,1,14,1,2,1,14,1,16,4,10,1,2, - 1,24,1,114,189,0,0,0,99,1,0,0,0,0,0,0, - 0,3,0,0,0,6,0,0,0,67,0,0,0,115,146,0, - 0,0,124,0,160,0,100,1,161,1,125,1,124,0,160,0, - 100,2,161,1,125,2,124,1,100,3,107,9,114,82,124,2, - 100,3,107,9,114,78,124,1,124,2,106,1,107,3,114,78, - 116,2,106,3,100,4,124,1,155,2,100,5,124,2,106,1, - 155,2,100,6,157,5,116,4,100,7,100,8,141,3,1,0, - 124,1,83,0,124,2,100,3,107,9,114,96,124,2,106,1, - 83,0,116,2,106,3,100,9,116,4,100,7,100,8,141,3, - 1,0,124,0,100,10,25,0,125,1,100,11,124,0,107,7, - 114,142,124,1,160,5,100,12,161,1,100,13,25,0,125,1, - 124,1,83,0,41,14,122,167,67,97,108,99,117,108,97,116, - 101,32,119,104,97,116,32,95,95,112,97,99,107,97,103,101, - 95,95,32,115,104,111,117,108,100,32,98,101,46,10,10,32, - 32,32,32,95,95,112,97,99,107,97,103,101,95,95,32,105, - 115,32,110,111,116,32,103,117,97,114,97,110,116,101,101,100, - 32,116,111,32,98,101,32,100,101,102,105,110,101,100,32,111, - 114,32,99,111,117,108,100,32,98,101,32,115,101,116,32,116, - 111,32,78,111,110,101,10,32,32,32,32,116,111,32,114,101, - 112,114,101,115,101,110,116,32,116,104,97,116,32,105,116,115, - 32,112,114,111,112,101,114,32,118,97,108,117,101,32,105,115, - 32,117,110,107,110,111,119,110,46,10,10,32,32,32,32,114, - 130,0,0,0,114,89,0,0,0,78,122,32,95,95,112,97, - 99,107,97,103,101,95,95,32,33,61,32,95,95,115,112,101, - 99,95,95,46,112,97,114,101,110,116,32,40,122,4,32,33, - 61,32,250,1,41,233,3,0,0,0,41,1,90,10,115,116, - 97,99,107,108,101,118,101,108,122,89,99,97,110,39,116,32, - 114,101,115,111,108,118,101,32,112,97,99,107,97,103,101,32, - 102,114,111,109,32,95,95,115,112,101,99,95,95,32,111,114, - 32,95,95,112,97,99,107,97,103,101,95,95,44,32,102,97, - 108,108,105,110,103,32,98,97,99,107,32,111,110,32,95,95, - 110,97,109,101,95,95,32,97,110,100,32,95,95,112,97,116, - 104,95,95,114,1,0,0,0,114,127,0,0,0,114,117,0, - 0,0,114,19,0,0,0,41,6,114,30,0,0,0,114,119, - 0,0,0,114,167,0,0,0,114,168,0,0,0,114,169,0, - 0,0,114,118,0,0,0,41,3,218,7,103,108,111,98,97, - 108,115,114,161,0,0,0,114,82,0,0,0,114,10,0,0, - 0,114,10,0,0,0,114,11,0,0,0,218,17,95,99,97, - 108,99,95,95,95,112,97,99,107,97,103,101,95,95,252,3, - 0,0,115,30,0,0,0,0,7,10,1,10,1,8,1,18, - 1,22,2,10,1,4,1,8,1,6,2,6,2,10,1,8, - 1,8,1,14,1,114,193,0,0,0,99,5,0,0,0,0, - 0,0,0,9,0,0,0,5,0,0,0,67,0,0,0,115, - 166,0,0,0,124,4,100,1,107,2,114,18,116,0,124,0, - 131,1,125,5,110,36,124,1,100,2,107,9,114,30,124,1, - 110,2,105,0,125,6,116,1,124,6,131,1,125,7,116,0, - 124,0,124,7,124,4,131,3,125,5,124,3,115,150,124,4, - 100,1,107,2,114,84,116,0,124,0,160,2,100,3,161,1, - 100,1,25,0,131,1,83,0,124,0,115,92,124,5,83,0, - 116,3,124,0,131,1,116,3,124,0,160,2,100,3,161,1, - 100,1,25,0,131,1,24,0,125,8,116,4,106,5,124,5, - 106,6,100,2,116,3,124,5,106,6,131,1,124,8,24,0, - 133,2,25,0,25,0,83,0,110,12,116,7,124,5,124,3, - 116,0,131,3,83,0,100,2,83,0,41,4,97,215,1,0, - 0,73,109,112,111,114,116,32,97,32,109,111,100,117,108,101, - 46,10,10,32,32,32,32,84,104,101,32,39,103,108,111,98, - 97,108,115,39,32,97,114,103,117,109,101,110,116,32,105,115, - 32,117,115,101,100,32,116,111,32,105,110,102,101,114,32,119, - 104,101,114,101,32,116,104,101,32,105,109,112,111,114,116,32, - 105,115,32,111,99,99,117,114,114,105,110,103,32,102,114,111, - 109,10,32,32,32,32,116,111,32,104,97,110,100,108,101,32, - 114,101,108,97,116,105,118,101,32,105,109,112,111,114,116,115, - 46,32,84,104,101,32,39,108,111,99,97,108,115,39,32,97, - 114,103,117,109,101,110,116,32,105,115,32,105,103,110,111,114, - 101,100,46,32,84,104,101,10,32,32,32,32,39,102,114,111, - 109,108,105,115,116,39,32,97,114,103,117,109,101,110,116,32, - 115,112,101,99,105,102,105,101,115,32,119,104,97,116,32,115, - 104,111,117,108,100,32,101,120,105,115,116,32,97,115,32,97, - 116,116,114,105,98,117,116,101,115,32,111,110,32,116,104,101, - 32,109,111,100,117,108,101,10,32,32,32,32,98,101,105,110, - 103,32,105,109,112,111,114,116,101,100,32,40,101,46,103,46, - 32,96,96,102,114,111,109,32,109,111,100,117,108,101,32,105, - 109,112,111,114,116,32,60,102,114,111,109,108,105,115,116,62, - 96,96,41,46,32,32,84,104,101,32,39,108,101,118,101,108, - 39,10,32,32,32,32,97,114,103,117,109,101,110,116,32,114, - 101,112,114,101,115,101,110,116,115,32,116,104,101,32,112,97, - 99,107,97,103,101,32,108,111,99,97,116,105,111,110,32,116, - 111,32,105,109,112,111,114,116,32,102,114,111,109,32,105,110, - 32,97,32,114,101,108,97,116,105,118,101,10,32,32,32,32, - 105,109,112,111,114,116,32,40,101,46,103,46,32,96,96,102, - 114,111,109,32,46,46,112,107,103,32,105,109,112,111,114,116, - 32,109,111,100,96,96,32,119,111,117,108,100,32,104,97,118, - 101,32,97,32,39,108,101,118,101,108,39,32,111,102,32,50, - 41,46,10,10,32,32,32,32,114,19,0,0,0,78,114,117, - 0,0,0,41,8,114,182,0,0,0,114,193,0,0,0,218, - 9,112,97,114,116,105,116,105,111,110,114,159,0,0,0,114, - 14,0,0,0,114,79,0,0,0,114,1,0,0,0,114,189, - 0,0,0,41,9,114,15,0,0,0,114,192,0,0,0,218, - 6,108,111,99,97,108,115,114,187,0,0,0,114,162,0,0, - 0,114,83,0,0,0,90,8,103,108,111,98,97,108,115,95, - 114,161,0,0,0,90,7,99,117,116,95,111,102,102,114,10, - 0,0,0,114,10,0,0,0,114,11,0,0,0,218,10,95, - 95,105,109,112,111,114,116,95,95,23,4,0,0,115,26,0, - 0,0,0,11,8,1,10,2,16,1,8,1,12,1,4,3, - 8,1,18,1,4,1,4,4,26,3,32,2,114,196,0,0, - 0,99,1,0,0,0,0,0,0,0,2,0,0,0,3,0, - 0,0,67,0,0,0,115,38,0,0,0,116,0,160,1,124, - 0,161,1,125,1,124,1,100,0,107,8,114,30,116,2,100, - 1,124,0,23,0,131,1,130,1,116,3,124,1,131,1,83, - 0,41,2,78,122,25,110,111,32,98,117,105,108,116,45,105, - 110,32,109,111,100,117,108,101,32,110,97,109,101,100,32,41, - 4,114,142,0,0,0,114,146,0,0,0,114,70,0,0,0, - 114,141,0,0,0,41,2,114,15,0,0,0,114,82,0,0, - 0,114,10,0,0,0,114,10,0,0,0,114,11,0,0,0, - 218,18,95,98,117,105,108,116,105,110,95,102,114,111,109,95, - 110,97,109,101,58,4,0,0,115,8,0,0,0,0,1,10, - 1,8,1,12,1,114,197,0,0,0,99,2,0,0,0,0, - 0,0,0,12,0,0,0,12,0,0,0,67,0,0,0,115, - 244,0,0,0,124,1,97,0,124,0,97,1,116,2,116,1, - 131,1,125,2,120,86,116,1,106,3,160,4,161,0,68,0, - 93,72,92,2,125,3,125,4,116,5,124,4,124,2,131,2, - 114,28,124,3,116,1,106,6,107,6,114,62,116,7,125,5, - 110,18,116,0,160,8,124,3,161,1,114,28,116,9,125,5, - 110,2,113,28,116,10,124,4,124,5,131,2,125,6,116,11, - 124,6,124,4,131,2,1,0,113,28,87,0,116,1,106,3, - 116,12,25,0,125,7,120,54,100,5,68,0,93,46,125,8, - 124,8,116,1,106,3,107,7,114,144,116,13,124,8,131,1, - 125,9,110,10,116,1,106,3,124,8,25,0,125,9,116,14, - 124,7,124,8,124,9,131,3,1,0,113,120,87,0,121,12, - 116,13,100,2,131,1,125,10,87,0,110,24,4,0,116,15, - 107,10,114,206,1,0,1,0,1,0,100,3,125,10,89,0, - 110,2,88,0,116,14,124,7,100,2,124,10,131,3,1,0, - 116,13,100,4,131,1,125,11,116,14,124,7,100,4,124,11, - 131,3,1,0,100,3,83,0,41,6,122,250,83,101,116,117, - 112,32,105,109,112,111,114,116,108,105,98,32,98,121,32,105, - 109,112,111,114,116,105,110,103,32,110,101,101,100,101,100,32, - 98,117,105,108,116,45,105,110,32,109,111,100,117,108,101,115, - 32,97,110,100,32,105,110,106,101,99,116,105,110,103,32,116, - 104,101,109,10,32,32,32,32,105,110,116,111,32,116,104,101, - 32,103,108,111,98,97,108,32,110,97,109,101,115,112,97,99, - 101,46,10,10,32,32,32,32,65,115,32,115,121,115,32,105, - 115,32,110,101,101,100,101,100,32,102,111,114,32,115,121,115, - 46,109,111,100,117,108,101,115,32,97,99,99,101,115,115,32, - 97,110,100,32,95,105,109,112,32,105,115,32,110,101,101,100, - 101,100,32,116,111,32,108,111,97,100,32,98,117,105,108,116, - 45,105,110,10,32,32,32,32,109,111,100,117,108,101,115,44, - 32,116,104,111,115,101,32,116,119,111,32,109,111,100,117,108, - 101,115,32,109,117,115,116,32,98,101,32,101,120,112,108,105, - 99,105,116,108,121,32,112,97,115,115,101,100,32,105,110,46, - 10,10,32,32,32,32,114,167,0,0,0,114,20,0,0,0, - 78,114,55,0,0,0,41,1,114,167,0,0,0,41,16,114, - 46,0,0,0,114,14,0,0,0,114,13,0,0,0,114,79, - 0,0,0,218,5,105,116,101,109,115,114,171,0,0,0,114, - 69,0,0,0,114,142,0,0,0,114,75,0,0,0,114,152, - 0,0,0,114,128,0,0,0,114,133,0,0,0,114,1,0, - 0,0,114,197,0,0,0,114,5,0,0,0,114,70,0,0, - 0,41,12,218,10,115,121,115,95,109,111,100,117,108,101,218, - 11,95,105,109,112,95,109,111,100,117,108,101,90,11,109,111, - 100,117,108,101,95,116,121,112,101,114,15,0,0,0,114,83, - 0,0,0,114,93,0,0,0,114,82,0,0,0,90,11,115, - 101,108,102,95,109,111,100,117,108,101,90,12,98,117,105,108, - 116,105,110,95,110,97,109,101,90,14,98,117,105,108,116,105, - 110,95,109,111,100,117,108,101,90,13,116,104,114,101,97,100, - 95,109,111,100,117,108,101,90,14,119,101,97,107,114,101,102, - 95,109,111,100,117,108,101,114,10,0,0,0,114,10,0,0, - 0,114,11,0,0,0,218,6,95,115,101,116,117,112,65,4, - 0,0,115,50,0,0,0,0,9,4,1,4,3,8,1,20, - 1,10,1,10,1,6,1,10,1,6,2,2,1,10,1,14, - 3,10,1,10,1,10,1,10,2,10,1,16,3,2,1,12, - 1,14,2,10,1,12,3,8,1,114,201,0,0,0,99,2, - 0,0,0,0,0,0,0,3,0,0,0,4,0,0,0,67, - 0,0,0,115,66,0,0,0,116,0,124,0,124,1,131,2, - 1,0,116,1,106,2,160,3,116,4,161,1,1,0,116,1, - 106,2,160,3,116,5,161,1,1,0,100,1,100,2,108,6, - 125,2,124,2,97,7,124,2,160,8,116,1,106,9,116,10, - 25,0,161,1,1,0,100,2,83,0,41,3,122,50,73,110, - 115,116,97,108,108,32,105,109,112,111,114,116,108,105,98,32, - 97,115,32,116,104,101,32,105,109,112,108,101,109,101,110,116, - 97,116,105,111,110,32,111,102,32,105,109,112,111,114,116,46, - 114,19,0,0,0,78,41,11,114,201,0,0,0,114,14,0, - 0,0,114,166,0,0,0,114,109,0,0,0,114,142,0,0, - 0,114,152,0,0,0,218,26,95,102,114,111,122,101,110,95, - 105,109,112,111,114,116,108,105,98,95,101,120,116,101,114,110, - 97,108,114,115,0,0,0,218,8,95,105,110,115,116,97,108, - 108,114,79,0,0,0,114,1,0,0,0,41,3,114,199,0, - 0,0,114,200,0,0,0,114,202,0,0,0,114,10,0,0, - 0,114,10,0,0,0,114,11,0,0,0,114,203,0,0,0, - 112,4,0,0,115,12,0,0,0,0,2,10,2,12,1,12, - 3,8,1,4,1,114,203,0,0,0,41,2,78,78,41,1, - 78,41,2,78,114,19,0,0,0,41,50,114,3,0,0,0, - 114,115,0,0,0,114,12,0,0,0,114,16,0,0,0,114, - 51,0,0,0,114,29,0,0,0,114,36,0,0,0,114,17, - 0,0,0,114,18,0,0,0,114,41,0,0,0,114,42,0, - 0,0,114,45,0,0,0,114,56,0,0,0,114,58,0,0, - 0,114,68,0,0,0,114,74,0,0,0,114,77,0,0,0, - 114,84,0,0,0,114,95,0,0,0,114,96,0,0,0,114, - 102,0,0,0,114,78,0,0,0,218,6,111,98,106,101,99, - 116,90,9,95,80,79,80,85,76,65,84,69,114,128,0,0, - 0,114,133,0,0,0,114,136,0,0,0,114,91,0,0,0, - 114,80,0,0,0,114,140,0,0,0,114,141,0,0,0,114, - 81,0,0,0,114,142,0,0,0,114,152,0,0,0,114,157, - 0,0,0,114,163,0,0,0,114,165,0,0,0,114,170,0, - 0,0,114,175,0,0,0,90,15,95,69,82,82,95,77,83, - 71,95,80,82,69,70,73,88,114,177,0,0,0,114,180,0, - 0,0,114,181,0,0,0,114,182,0,0,0,114,189,0,0, - 0,114,193,0,0,0,114,196,0,0,0,114,197,0,0,0, - 114,201,0,0,0,114,203,0,0,0,114,10,0,0,0,114, - 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,8, - 60,109,111,100,117,108,101,62,8,0,0,0,115,94,0,0, - 0,4,17,4,2,8,8,8,7,4,2,4,3,16,4,14, - 68,14,21,14,19,8,19,8,19,8,11,14,8,8,11,8, - 12,8,16,8,36,14,27,14,101,16,26,6,3,10,45,14, - 60,8,17,8,17,8,25,8,29,8,23,8,16,14,73,14, - 77,14,13,8,9,8,9,10,47,8,20,4,1,8,2,8, - 27,8,6,10,25,8,31,8,27,18,35,8,7,8,47, + 0,114,148,0,0,0,41,3,0,0,115,2,0,0,0,0, + 4,122,23,70,114,111,122,101,110,73,109,112,111,114,116,101, + 114,46,103,101,116,95,99,111,100,101,99,2,0,0,0,0, + 0,0,0,2,0,0,0,1,0,0,0,67,0,0,0,115, + 4,0,0,0,100,1,83,0,41,2,122,54,82,101,116,117, + 114,110,32,78,111,110,101,32,97,115,32,102,114,111,122,101, + 110,32,109,111,100,117,108,101,115,32,100,111,32,110,111,116, + 32,104,97,118,101,32,115,111,117,114,99,101,32,99,111,100, + 101,46,78,114,10,0,0,0,41,2,114,143,0,0,0,114, + 71,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11, + 0,0,0,114,149,0,0,0,47,3,0,0,115,2,0,0, + 0,0,4,122,25,70,114,111,122,101,110,73,109,112,111,114, + 116,101,114,46,103,101,116,95,115,111,117,114,99,101,99,2, + 0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,67, + 0,0,0,115,10,0,0,0,116,0,160,1,124,1,161,1, + 83,0,41,1,122,46,82,101,116,117,114,110,32,84,114,117, + 101,32,105,102,32,116,104,101,32,102,114,111,122,101,110,32, + 109,111,100,117,108,101,32,105,115,32,97,32,112,97,99,107, + 97,103,101,46,41,2,114,46,0,0,0,90,17,105,115,95, + 102,114,111,122,101,110,95,112,97,99,107,97,103,101,41,2, + 114,143,0,0,0,114,71,0,0,0,114,10,0,0,0,114, + 10,0,0,0,114,11,0,0,0,114,105,0,0,0,53,3, + 0,0,115,2,0,0,0,0,4,122,25,70,114,111,122,101, + 110,73,109,112,111,114,116,101,114,46,105,115,95,112,97,99, + 107,97,103,101,41,2,78,78,41,1,78,41,16,114,1,0, + 0,0,114,0,0,0,0,114,2,0,0,0,114,3,0,0, + 0,114,150,0,0,0,114,86,0,0,0,114,151,0,0,0, + 114,146,0,0,0,114,147,0,0,0,114,134,0,0,0,114, + 135,0,0,0,114,138,0,0,0,114,77,0,0,0,114,148, + 0,0,0,114,149,0,0,0,114,105,0,0,0,114,10,0, + 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, + 0,114,152,0,0,0,241,2,0,0,115,28,0,0,0,12, + 9,12,9,2,1,12,6,2,1,12,8,12,4,12,9,12, + 9,2,1,14,5,2,1,14,5,2,1,114,152,0,0,0, + 99,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0, + 0,64,0,0,0,115,32,0,0,0,101,0,90,1,100,0, + 90,2,100,1,90,3,100,2,100,3,132,0,90,4,100,4, + 100,5,132,0,90,5,100,6,83,0,41,7,218,18,95,73, + 109,112,111,114,116,76,111,99,107,67,111,110,116,101,120,116, + 122,36,67,111,110,116,101,120,116,32,109,97,110,97,103,101, + 114,32,102,111,114,32,116,104,101,32,105,109,112,111,114,116, + 32,108,111,99,107,46,99,1,0,0,0,0,0,0,0,1, + 0,0,0,2,0,0,0,67,0,0,0,115,12,0,0,0, + 116,0,160,1,161,0,1,0,100,1,83,0,41,2,122,24, + 65,99,113,117,105,114,101,32,116,104,101,32,105,109,112,111, + 114,116,32,108,111,99,107,46,78,41,2,114,46,0,0,0, + 114,137,0,0,0,41,1,114,26,0,0,0,114,10,0,0, + 0,114,10,0,0,0,114,11,0,0,0,114,48,0,0,0, + 66,3,0,0,115,2,0,0,0,0,2,122,28,95,73,109, + 112,111,114,116,76,111,99,107,67,111,110,116,101,120,116,46, + 95,95,101,110,116,101,114,95,95,99,4,0,0,0,0,0, + 0,0,4,0,0,0,2,0,0,0,67,0,0,0,115,12, + 0,0,0,116,0,160,1,161,0,1,0,100,1,83,0,41, + 2,122,60,82,101,108,101,97,115,101,32,116,104,101,32,105, + 109,112,111,114,116,32,108,111,99,107,32,114,101,103,97,114, + 100,108,101,115,115,32,111,102,32,97,110,121,32,114,97,105, + 115,101,100,32,101,120,99,101,112,116,105,111,110,115,46,78, + 41,2,114,46,0,0,0,114,47,0,0,0,41,4,114,26, + 0,0,0,90,8,101,120,99,95,116,121,112,101,90,9,101, + 120,99,95,118,97,108,117,101,90,13,101,120,99,95,116,114, + 97,99,101,98,97,99,107,114,10,0,0,0,114,10,0,0, + 0,114,11,0,0,0,114,50,0,0,0,70,3,0,0,115, + 2,0,0,0,0,2,122,27,95,73,109,112,111,114,116,76, + 111,99,107,67,111,110,116,101,120,116,46,95,95,101,120,105, + 116,95,95,78,41,6,114,1,0,0,0,114,0,0,0,0, + 114,2,0,0,0,114,3,0,0,0,114,48,0,0,0,114, + 50,0,0,0,114,10,0,0,0,114,10,0,0,0,114,10, + 0,0,0,114,11,0,0,0,114,157,0,0,0,62,3,0, + 0,115,4,0,0,0,12,4,8,4,114,157,0,0,0,99, + 3,0,0,0,0,0,0,0,5,0,0,0,5,0,0,0, + 67,0,0,0,115,64,0,0,0,124,1,160,0,100,1,124, + 2,100,2,24,0,161,2,125,3,116,1,124,3,131,1,124, + 2,107,0,114,36,116,2,100,3,131,1,130,1,124,3,100, + 4,25,0,125,4,124,0,114,60,100,5,160,3,124,4,124, + 0,161,2,83,0,124,4,83,0,41,6,122,50,82,101,115, + 111,108,118,101,32,97,32,114,101,108,97,116,105,118,101,32, + 109,111,100,117,108,101,32,110,97,109,101,32,116,111,32,97, + 110,32,97,98,115,111,108,117,116,101,32,111,110,101,46,114, + 117,0,0,0,114,33,0,0,0,122,50,97,116,116,101,109, + 112,116,101,100,32,114,101,108,97,116,105,118,101,32,105,109, + 112,111,114,116,32,98,101,121,111,110,100,32,116,111,112,45, + 108,101,118,101,108,32,112,97,99,107,97,103,101,114,19,0, + 0,0,122,5,123,125,46,123,125,41,4,218,6,114,115,112, + 108,105,116,218,3,108,101,110,218,10,86,97,108,117,101,69, + 114,114,111,114,114,38,0,0,0,41,5,114,15,0,0,0, + 218,7,112,97,99,107,97,103,101,218,5,108,101,118,101,108, + 90,4,98,105,116,115,90,4,98,97,115,101,114,10,0,0, + 0,114,10,0,0,0,114,11,0,0,0,218,13,95,114,101, + 115,111,108,118,101,95,110,97,109,101,75,3,0,0,115,10, + 0,0,0,0,2,16,1,12,1,8,1,8,1,114,163,0, + 0,0,99,3,0,0,0,0,0,0,0,4,0,0,0,4, + 0,0,0,67,0,0,0,115,34,0,0,0,124,0,160,0, + 124,1,124,2,161,2,125,3,124,3,100,0,107,8,114,24, + 100,0,83,0,116,1,124,1,124,3,131,2,83,0,41,1, + 78,41,2,114,147,0,0,0,114,78,0,0,0,41,4,218, + 6,102,105,110,100,101,114,114,15,0,0,0,114,144,0,0, + 0,114,93,0,0,0,114,10,0,0,0,114,10,0,0,0, + 114,11,0,0,0,218,17,95,102,105,110,100,95,115,112,101, + 99,95,108,101,103,97,99,121,84,3,0,0,115,8,0,0, + 0,0,3,12,1,8,1,4,1,114,165,0,0,0,99,3, + 0,0,0,0,0,0,0,10,0,0,0,27,0,0,0,67, + 0,0,0,115,242,0,0,0,116,0,106,1,125,3,124,3, + 100,1,107,8,114,22,116,2,100,2,131,1,130,1,124,3, + 115,38,116,3,160,4,100,3,116,5,161,2,1,0,124,0, + 116,0,106,6,107,6,125,4,120,188,124,3,68,0,93,176, + 125,5,116,7,131,0,143,72,1,0,121,10,124,5,106,8, + 125,6,87,0,110,42,4,0,116,9,107,10,114,118,1,0, + 1,0,1,0,116,10,124,5,124,0,124,1,131,3,125,7, + 124,7,100,1,107,8,114,114,119,54,89,0,110,14,88,0, + 124,6,124,0,124,1,124,2,131,3,125,7,87,0,100,1, + 81,0,82,0,88,0,124,7,100,1,107,9,114,54,124,4, + 12,0,114,226,124,0,116,0,106,6,107,6,114,226,116,0, + 106,6,124,0,25,0,125,8,121,10,124,8,106,11,125,9, + 87,0,110,20,4,0,116,9,107,10,114,206,1,0,1,0, + 1,0,124,7,83,0,88,0,124,9,100,1,107,8,114,220, + 124,7,83,0,124,9,83,0,113,54,124,7,83,0,113,54, + 87,0,100,1,83,0,100,1,83,0,41,4,122,21,70,105, + 110,100,32,97,32,109,111,100,117,108,101,39,115,32,115,112, + 101,99,46,78,122,53,115,121,115,46,109,101,116,97,95,112, + 97,116,104,32,105,115,32,78,111,110,101,44,32,80,121,116, + 104,111,110,32,105,115,32,108,105,107,101,108,121,32,115,104, + 117,116,116,105,110,103,32,100,111,119,110,122,22,115,121,115, + 46,109,101,116,97,95,112,97,116,104,32,105,115,32,101,109, + 112,116,121,41,12,114,14,0,0,0,218,9,109,101,116,97, + 95,112,97,116,104,114,70,0,0,0,218,9,95,119,97,114, + 110,105,110,103,115,218,4,119,97,114,110,218,13,73,109,112, + 111,114,116,87,97,114,110,105,110,103,114,79,0,0,0,114, + 157,0,0,0,114,146,0,0,0,114,90,0,0,0,114,165, + 0,0,0,114,89,0,0,0,41,10,114,15,0,0,0,114, + 144,0,0,0,114,145,0,0,0,114,166,0,0,0,90,9, + 105,115,95,114,101,108,111,97,100,114,164,0,0,0,114,146, + 0,0,0,114,82,0,0,0,114,83,0,0,0,114,89,0, + 0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,0, + 0,218,10,95,102,105,110,100,95,115,112,101,99,93,3,0, + 0,115,54,0,0,0,0,2,6,1,8,2,8,3,4,1, + 12,5,10,1,10,1,8,1,2,1,10,1,14,1,12,1, + 8,1,8,2,22,1,8,2,16,1,10,1,2,1,10,1, + 14,4,6,2,8,1,4,2,6,2,8,2,114,170,0,0, + 0,99,3,0,0,0,0,0,0,0,4,0,0,0,5,0, + 0,0,67,0,0,0,115,140,0,0,0,116,0,124,0,116, + 1,131,2,115,28,116,2,100,1,160,3,116,4,124,0,131, + 1,161,1,131,1,130,1,124,2,100,2,107,0,114,44,116, + 5,100,3,131,1,130,1,124,2,100,2,107,4,114,114,116, + 0,124,1,116,1,131,2,115,72,116,2,100,4,131,1,130, + 1,110,42,124,1,115,86,116,6,100,5,131,1,130,1,110, + 28,124,1,116,7,106,8,107,7,114,114,100,6,125,3,116, + 9,124,3,160,3,124,1,161,1,131,1,130,1,124,0,12, + 0,114,136,124,2,100,2,107,2,114,136,116,5,100,7,131, + 1,130,1,100,8,83,0,41,9,122,28,86,101,114,105,102, + 121,32,97,114,103,117,109,101,110,116,115,32,97,114,101,32, + 34,115,97,110,101,34,46,122,31,109,111,100,117,108,101,32, + 110,97,109,101,32,109,117,115,116,32,98,101,32,115,116,114, + 44,32,110,111,116,32,123,125,114,19,0,0,0,122,18,108, + 101,118,101,108,32,109,117,115,116,32,98,101,32,62,61,32, + 48,122,31,95,95,112,97,99,107,97,103,101,95,95,32,110, + 111,116,32,115,101,116,32,116,111,32,97,32,115,116,114,105, + 110,103,122,54,97,116,116,101,109,112,116,101,100,32,114,101, + 108,97,116,105,118,101,32,105,109,112,111,114,116,32,119,105, + 116,104,32,110,111,32,107,110,111,119,110,32,112,97,114,101, + 110,116,32,112,97,99,107,97,103,101,122,61,80,97,114,101, + 110,116,32,109,111,100,117,108,101,32,123,33,114,125,32,110, + 111,116,32,108,111,97,100,101,100,44,32,99,97,110,110,111, + 116,32,112,101,114,102,111,114,109,32,114,101,108,97,116,105, + 118,101,32,105,109,112,111,114,116,122,17,69,109,112,116,121, + 32,109,111,100,117,108,101,32,110,97,109,101,78,41,10,218, + 10,105,115,105,110,115,116,97,110,99,101,218,3,115,116,114, + 218,9,84,121,112,101,69,114,114,111,114,114,38,0,0,0, + 114,13,0,0,0,114,160,0,0,0,114,70,0,0,0,114, + 14,0,0,0,114,79,0,0,0,218,11,83,121,115,116,101, + 109,69,114,114,111,114,41,4,114,15,0,0,0,114,161,0, + 0,0,114,162,0,0,0,114,139,0,0,0,114,10,0,0, + 0,114,10,0,0,0,114,11,0,0,0,218,13,95,115,97, + 110,105,116,121,95,99,104,101,99,107,140,3,0,0,115,28, + 0,0,0,0,2,10,1,18,1,8,1,8,1,8,1,10, + 1,10,1,4,1,10,2,10,1,4,2,14,1,14,1,114, + 175,0,0,0,122,16,78,111,32,109,111,100,117,108,101,32, + 110,97,109,101,100,32,122,4,123,33,114,125,99,2,0,0, + 0,0,0,0,0,8,0,0,0,13,0,0,0,67,0,0, + 0,115,220,0,0,0,100,0,125,2,124,0,160,0,100,1, + 161,1,100,2,25,0,125,3,124,3,114,134,124,3,116,1, + 106,2,107,7,114,42,116,3,124,1,124,3,131,2,1,0, + 124,0,116,1,106,2,107,6,114,62,116,1,106,2,124,0, + 25,0,83,0,116,1,106,2,124,3,25,0,125,4,121,10, + 124,4,106,4,125,2,87,0,110,50,4,0,116,5,107,10, + 114,132,1,0,1,0,1,0,116,6,100,3,23,0,160,7, + 124,0,124,3,161,2,125,5,116,8,124,5,124,0,100,4, + 141,2,100,0,130,2,89,0,110,2,88,0,116,9,124,0, + 124,2,131,2,125,6,124,6,100,0,107,8,114,172,116,8, + 116,6,160,7,124,0,161,1,124,0,100,4,141,2,130,1, + 110,8,116,10,124,6,131,1,125,7,124,3,114,216,116,1, + 106,2,124,3,25,0,125,4,116,11,124,4,124,0,160,0, + 100,1,161,1,100,5,25,0,124,7,131,3,1,0,124,7, + 83,0,41,6,78,114,117,0,0,0,114,19,0,0,0,122, + 23,59,32,123,33,114,125,32,105,115,32,110,111,116,32,97, + 32,112,97,99,107,97,103,101,41,1,114,15,0,0,0,233, + 2,0,0,0,41,12,114,118,0,0,0,114,14,0,0,0, + 114,79,0,0,0,114,58,0,0,0,114,127,0,0,0,114, + 90,0,0,0,218,8,95,69,82,82,95,77,83,71,114,38, + 0,0,0,218,19,77,111,100,117,108,101,78,111,116,70,111, + 117,110,100,69,114,114,111,114,114,170,0,0,0,114,141,0, + 0,0,114,5,0,0,0,41,8,114,15,0,0,0,218,7, + 105,109,112,111,114,116,95,114,144,0,0,0,114,119,0,0, + 0,90,13,112,97,114,101,110,116,95,109,111,100,117,108,101, + 114,139,0,0,0,114,82,0,0,0,114,83,0,0,0,114, + 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,23, + 95,102,105,110,100,95,97,110,100,95,108,111,97,100,95,117, + 110,108,111,99,107,101,100,163,3,0,0,115,42,0,0,0, + 0,1,4,1,14,1,4,1,10,1,10,2,10,1,10,1, + 10,1,2,1,10,1,14,1,16,1,20,1,10,1,8,1, + 20,2,8,1,4,2,10,1,22,1,114,180,0,0,0,99, + 2,0,0,0,0,0,0,0,2,0,0,0,10,0,0,0, + 67,0,0,0,115,30,0,0,0,116,0,124,0,131,1,143, + 12,1,0,116,1,124,0,124,1,131,2,83,0,81,0,82, + 0,88,0,100,1,83,0,41,2,122,54,70,105,110,100,32, + 97,110,100,32,108,111,97,100,32,116,104,101,32,109,111,100, + 117,108,101,44,32,97,110,100,32,114,101,108,101,97,115,101, + 32,116,104,101,32,105,109,112,111,114,116,32,108,111,99,107, + 46,78,41,2,114,42,0,0,0,114,180,0,0,0,41,2, + 114,15,0,0,0,114,179,0,0,0,114,10,0,0,0,114, + 10,0,0,0,114,11,0,0,0,218,14,95,102,105,110,100, + 95,97,110,100,95,108,111,97,100,190,3,0,0,115,4,0, + 0,0,0,2,10,1,114,181,0,0,0,114,19,0,0,0, + 99,3,0,0,0,0,0,0,0,5,0,0,0,4,0,0, + 0,67,0,0,0,115,120,0,0,0,116,0,124,0,124,1, + 124,2,131,3,1,0,124,2,100,1,107,4,114,32,116,1, + 124,0,124,1,124,2,131,3,125,0,116,2,160,3,161,0, + 1,0,124,0,116,4,106,5,107,7,114,60,116,6,124,0, + 116,7,131,2,83,0,116,4,106,5,124,0,25,0,125,3, + 124,3,100,2,107,8,114,108,116,2,160,8,161,0,1,0, + 100,3,160,9,124,0,161,1,125,4,116,10,124,4,124,0, + 100,4,141,2,130,1,116,11,124,0,131,1,1,0,124,3, + 83,0,41,5,97,50,1,0,0,73,109,112,111,114,116,32, + 97,110,100,32,114,101,116,117,114,110,32,116,104,101,32,109, + 111,100,117,108,101,32,98,97,115,101,100,32,111,110,32,105, + 116,115,32,110,97,109,101,44,32,116,104,101,32,112,97,99, + 107,97,103,101,32,116,104,101,32,99,97,108,108,32,105,115, + 10,32,32,32,32,98,101,105,110,103,32,109,97,100,101,32, + 102,114,111,109,44,32,97,110,100,32,116,104,101,32,108,101, + 118,101,108,32,97,100,106,117,115,116,109,101,110,116,46,10, + 10,32,32,32,32,84,104,105,115,32,102,117,110,99,116,105, + 111,110,32,114,101,112,114,101,115,101,110,116,115,32,116,104, + 101,32,103,114,101,97,116,101,115,116,32,99,111,109,109,111, + 110,32,100,101,110,111,109,105,110,97,116,111,114,32,111,102, + 32,102,117,110,99,116,105,111,110,97,108,105,116,121,10,32, + 32,32,32,98,101,116,119,101,101,110,32,105,109,112,111,114, + 116,95,109,111,100,117,108,101,32,97,110,100,32,95,95,105, + 109,112,111,114,116,95,95,46,32,84,104,105,115,32,105,110, + 99,108,117,100,101,115,32,115,101,116,116,105,110,103,32,95, + 95,112,97,99,107,97,103,101,95,95,32,105,102,10,32,32, + 32,32,116,104,101,32,108,111,97,100,101,114,32,100,105,100, + 32,110,111,116,46,10,10,32,32,32,32,114,19,0,0,0, + 78,122,40,105,109,112,111,114,116,32,111,102,32,123,125,32, + 104,97,108,116,101,100,59,32,78,111,110,101,32,105,110,32, + 115,121,115,46,109,111,100,117,108,101,115,41,1,114,15,0, + 0,0,41,12,114,175,0,0,0,114,163,0,0,0,114,46, + 0,0,0,114,137,0,0,0,114,14,0,0,0,114,79,0, + 0,0,114,181,0,0,0,218,11,95,103,99,100,95,105,109, + 112,111,114,116,114,47,0,0,0,114,38,0,0,0,114,178, + 0,0,0,114,56,0,0,0,41,5,114,15,0,0,0,114, + 161,0,0,0,114,162,0,0,0,114,83,0,0,0,114,67, + 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0, + 0,0,114,182,0,0,0,196,3,0,0,115,28,0,0,0, + 0,9,12,1,8,1,12,1,8,1,10,1,10,1,10,1, + 8,1,8,1,4,1,6,1,12,1,8,1,114,182,0,0, + 0,99,3,0,0,0,0,0,0,0,6,0,0,0,17,0, + 0,0,67,0,0,0,115,164,0,0,0,116,0,124,0,100, + 1,131,2,114,160,100,2,124,1,107,6,114,58,116,1,124, + 1,131,1,125,1,124,1,160,2,100,2,161,1,1,0,116, + 0,124,0,100,3,131,2,114,58,124,1,160,3,124,0,106, + 4,161,1,1,0,120,100,124,1,68,0,93,92,125,3,116, + 0,124,0,124,3,131,2,115,64,100,4,160,5,124,0,106, + 6,124,3,161,2,125,4,121,14,116,7,124,2,124,4,131, + 2,1,0,87,0,113,64,4,0,116,8,107,10,114,154,1, + 0,125,5,1,0,122,20,124,5,106,9,124,4,107,2,114, + 136,119,64,130,0,87,0,89,0,100,5,100,5,125,5,126, + 5,88,0,113,64,88,0,113,64,87,0,124,0,83,0,41, + 6,122,238,70,105,103,117,114,101,32,111,117,116,32,119,104, + 97,116,32,95,95,105,109,112,111,114,116,95,95,32,115,104, + 111,117,108,100,32,114,101,116,117,114,110,46,10,10,32,32, + 32,32,84,104,101,32,105,109,112,111,114,116,95,32,112,97, + 114,97,109,101,116,101,114,32,105,115,32,97,32,99,97,108, + 108,97,98,108,101,32,119,104,105,99,104,32,116,97,107,101, + 115,32,116,104,101,32,110,97,109,101,32,111,102,32,109,111, + 100,117,108,101,32,116,111,10,32,32,32,32,105,109,112,111, + 114,116,46,32,73,116,32,105,115,32,114,101,113,117,105,114, + 101,100,32,116,111,32,100,101,99,111,117,112,108,101,32,116, + 104,101,32,102,117,110,99,116,105,111,110,32,102,114,111,109, + 32,97,115,115,117,109,105,110,103,32,105,109,112,111,114,116, + 108,105,98,39,115,10,32,32,32,32,105,109,112,111,114,116, + 32,105,109,112,108,101,109,101,110,116,97,116,105,111,110,32, + 105,115,32,100,101,115,105,114,101,100,46,10,10,32,32,32, + 32,114,127,0,0,0,250,1,42,218,7,95,95,97,108,108, + 95,95,122,5,123,125,46,123,125,78,41,10,114,4,0,0, + 0,114,126,0,0,0,218,6,114,101,109,111,118,101,218,6, + 101,120,116,101,110,100,114,184,0,0,0,114,38,0,0,0, + 114,1,0,0,0,114,58,0,0,0,114,178,0,0,0,114, + 15,0,0,0,41,6,114,83,0,0,0,218,8,102,114,111, + 109,108,105,115,116,114,179,0,0,0,218,1,120,90,9,102, + 114,111,109,95,110,97,109,101,90,3,101,120,99,114,10,0, + 0,0,114,10,0,0,0,114,11,0,0,0,218,16,95,104, + 97,110,100,108,101,95,102,114,111,109,108,105,115,116,221,3, + 0,0,115,32,0,0,0,0,10,10,1,8,1,8,1,10, + 1,10,1,12,1,10,1,10,1,14,1,2,1,14,1,16, + 4,10,1,2,1,24,1,114,189,0,0,0,99,1,0,0, + 0,0,0,0,0,3,0,0,0,6,0,0,0,67,0,0, + 0,115,146,0,0,0,124,0,160,0,100,1,161,1,125,1, + 124,0,160,0,100,2,161,1,125,2,124,1,100,3,107,9, + 114,82,124,2,100,3,107,9,114,78,124,1,124,2,106,1, + 107,3,114,78,116,2,106,3,100,4,124,1,155,2,100,5, + 124,2,106,1,155,2,100,6,157,5,116,4,100,7,100,8, + 141,3,1,0,124,1,83,0,124,2,100,3,107,9,114,96, + 124,2,106,1,83,0,116,2,106,3,100,9,116,4,100,7, + 100,8,141,3,1,0,124,0,100,10,25,0,125,1,100,11, + 124,0,107,7,114,142,124,1,160,5,100,12,161,1,100,13, + 25,0,125,1,124,1,83,0,41,14,122,167,67,97,108,99, + 117,108,97,116,101,32,119,104,97,116,32,95,95,112,97,99, + 107,97,103,101,95,95,32,115,104,111,117,108,100,32,98,101, + 46,10,10,32,32,32,32,95,95,112,97,99,107,97,103,101, + 95,95,32,105,115,32,110,111,116,32,103,117,97,114,97,110, + 116,101,101,100,32,116,111,32,98,101,32,100,101,102,105,110, + 101,100,32,111,114,32,99,111,117,108,100,32,98,101,32,115, + 101,116,32,116,111,32,78,111,110,101,10,32,32,32,32,116, + 111,32,114,101,112,114,101,115,101,110,116,32,116,104,97,116, + 32,105,116,115,32,112,114,111,112,101,114,32,118,97,108,117, + 101,32,105,115,32,117,110,107,110,111,119,110,46,10,10,32, + 32,32,32,114,130,0,0,0,114,89,0,0,0,78,122,32, + 95,95,112,97,99,107,97,103,101,95,95,32,33,61,32,95, + 95,115,112,101,99,95,95,46,112,97,114,101,110,116,32,40, + 122,4,32,33,61,32,250,1,41,233,3,0,0,0,41,1, + 90,10,115,116,97,99,107,108,101,118,101,108,122,89,99,97, + 110,39,116,32,114,101,115,111,108,118,101,32,112,97,99,107, + 97,103,101,32,102,114,111,109,32,95,95,115,112,101,99,95, + 95,32,111,114,32,95,95,112,97,99,107,97,103,101,95,95, + 44,32,102,97,108,108,105,110,103,32,98,97,99,107,32,111, + 110,32,95,95,110,97,109,101,95,95,32,97,110,100,32,95, + 95,112,97,116,104,95,95,114,1,0,0,0,114,127,0,0, + 0,114,117,0,0,0,114,19,0,0,0,41,6,114,30,0, + 0,0,114,119,0,0,0,114,167,0,0,0,114,168,0,0, + 0,114,169,0,0,0,114,118,0,0,0,41,3,218,7,103, + 108,111,98,97,108,115,114,161,0,0,0,114,82,0,0,0, + 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,218, + 17,95,99,97,108,99,95,95,95,112,97,99,107,97,103,101, + 95,95,252,3,0,0,115,30,0,0,0,0,7,10,1,10, + 1,8,1,18,1,22,2,10,1,4,1,8,1,6,2,6, + 2,10,1,8,1,8,1,14,1,114,193,0,0,0,99,5, + 0,0,0,0,0,0,0,9,0,0,0,5,0,0,0,67, + 0,0,0,115,166,0,0,0,124,4,100,1,107,2,114,18, + 116,0,124,0,131,1,125,5,110,36,124,1,100,2,107,9, + 114,30,124,1,110,2,105,0,125,6,116,1,124,6,131,1, + 125,7,116,0,124,0,124,7,124,4,131,3,125,5,124,3, + 115,150,124,4,100,1,107,2,114,84,116,0,124,0,160,2, + 100,3,161,1,100,1,25,0,131,1,83,0,124,0,115,92, + 124,5,83,0,116,3,124,0,131,1,116,3,124,0,160,2, + 100,3,161,1,100,1,25,0,131,1,24,0,125,8,116,4, + 106,5,124,5,106,6,100,2,116,3,124,5,106,6,131,1, + 124,8,24,0,133,2,25,0,25,0,83,0,110,12,116,7, + 124,5,124,3,116,0,131,3,83,0,100,2,83,0,41,4, + 97,215,1,0,0,73,109,112,111,114,116,32,97,32,109,111, + 100,117,108,101,46,10,10,32,32,32,32,84,104,101,32,39, + 103,108,111,98,97,108,115,39,32,97,114,103,117,109,101,110, + 116,32,105,115,32,117,115,101,100,32,116,111,32,105,110,102, + 101,114,32,119,104,101,114,101,32,116,104,101,32,105,109,112, + 111,114,116,32,105,115,32,111,99,99,117,114,114,105,110,103, + 32,102,114,111,109,10,32,32,32,32,116,111,32,104,97,110, + 100,108,101,32,114,101,108,97,116,105,118,101,32,105,109,112, + 111,114,116,115,46,32,84,104,101,32,39,108,111,99,97,108, + 115,39,32,97,114,103,117,109,101,110,116,32,105,115,32,105, + 103,110,111,114,101,100,46,32,84,104,101,10,32,32,32,32, + 39,102,114,111,109,108,105,115,116,39,32,97,114,103,117,109, + 101,110,116,32,115,112,101,99,105,102,105,101,115,32,119,104, + 97,116,32,115,104,111,117,108,100,32,101,120,105,115,116,32, + 97,115,32,97,116,116,114,105,98,117,116,101,115,32,111,110, + 32,116,104,101,32,109,111,100,117,108,101,10,32,32,32,32, + 98,101,105,110,103,32,105,109,112,111,114,116,101,100,32,40, + 101,46,103,46,32,96,96,102,114,111,109,32,109,111,100,117, + 108,101,32,105,109,112,111,114,116,32,60,102,114,111,109,108, + 105,115,116,62,96,96,41,46,32,32,84,104,101,32,39,108, + 101,118,101,108,39,10,32,32,32,32,97,114,103,117,109,101, + 110,116,32,114,101,112,114,101,115,101,110,116,115,32,116,104, + 101,32,112,97,99,107,97,103,101,32,108,111,99,97,116,105, + 111,110,32,116,111,32,105,109,112,111,114,116,32,102,114,111, + 109,32,105,110,32,97,32,114,101,108,97,116,105,118,101,10, + 32,32,32,32,105,109,112,111,114,116,32,40,101,46,103,46, + 32,96,96,102,114,111,109,32,46,46,112,107,103,32,105,109, + 112,111,114,116,32,109,111,100,96,96,32,119,111,117,108,100, + 32,104,97,118,101,32,97,32,39,108,101,118,101,108,39,32, + 111,102,32,50,41,46,10,10,32,32,32,32,114,19,0,0, + 0,78,114,117,0,0,0,41,8,114,182,0,0,0,114,193, + 0,0,0,218,9,112,97,114,116,105,116,105,111,110,114,159, + 0,0,0,114,14,0,0,0,114,79,0,0,0,114,1,0, + 0,0,114,189,0,0,0,41,9,114,15,0,0,0,114,192, + 0,0,0,218,6,108,111,99,97,108,115,114,187,0,0,0, + 114,162,0,0,0,114,83,0,0,0,90,8,103,108,111,98, + 97,108,115,95,114,161,0,0,0,90,7,99,117,116,95,111, + 102,102,114,10,0,0,0,114,10,0,0,0,114,11,0,0, + 0,218,10,95,95,105,109,112,111,114,116,95,95,23,4,0, + 0,115,26,0,0,0,0,11,8,1,10,2,16,1,8,1, + 12,1,4,3,8,1,18,1,4,1,4,4,26,3,32,2, + 114,196,0,0,0,99,1,0,0,0,0,0,0,0,2,0, + 0,0,3,0,0,0,67,0,0,0,115,38,0,0,0,116, + 0,160,1,124,0,161,1,125,1,124,1,100,0,107,8,114, + 30,116,2,100,1,124,0,23,0,131,1,130,1,116,3,124, + 1,131,1,83,0,41,2,78,122,25,110,111,32,98,117,105, + 108,116,45,105,110,32,109,111,100,117,108,101,32,110,97,109, + 101,100,32,41,4,114,142,0,0,0,114,146,0,0,0,114, + 70,0,0,0,114,141,0,0,0,41,2,114,15,0,0,0, + 114,82,0,0,0,114,10,0,0,0,114,10,0,0,0,114, + 11,0,0,0,218,18,95,98,117,105,108,116,105,110,95,102, + 114,111,109,95,110,97,109,101,58,4,0,0,115,8,0,0, + 0,0,1,10,1,8,1,12,1,114,197,0,0,0,99,2, + 0,0,0,0,0,0,0,12,0,0,0,12,0,0,0,67, + 0,0,0,115,244,0,0,0,124,1,97,0,124,0,97,1, + 116,2,116,1,131,1,125,2,120,86,116,1,106,3,160,4, + 161,0,68,0,93,72,92,2,125,3,125,4,116,5,124,4, + 124,2,131,2,114,28,124,3,116,1,106,6,107,6,114,62, + 116,7,125,5,110,18,116,0,160,8,124,3,161,1,114,28, + 116,9,125,5,110,2,113,28,116,10,124,4,124,5,131,2, + 125,6,116,11,124,6,124,4,131,2,1,0,113,28,87,0, + 116,1,106,3,116,12,25,0,125,7,120,54,100,5,68,0, + 93,46,125,8,124,8,116,1,106,3,107,7,114,144,116,13, + 124,8,131,1,125,9,110,10,116,1,106,3,124,8,25,0, + 125,9,116,14,124,7,124,8,124,9,131,3,1,0,113,120, + 87,0,121,12,116,13,100,2,131,1,125,10,87,0,110,24, + 4,0,116,15,107,10,114,206,1,0,1,0,1,0,100,3, + 125,10,89,0,110,2,88,0,116,14,124,7,100,2,124,10, + 131,3,1,0,116,13,100,4,131,1,125,11,116,14,124,7, + 100,4,124,11,131,3,1,0,100,3,83,0,41,6,122,250, + 83,101,116,117,112,32,105,109,112,111,114,116,108,105,98,32, + 98,121,32,105,109,112,111,114,116,105,110,103,32,110,101,101, + 100,101,100,32,98,117,105,108,116,45,105,110,32,109,111,100, + 117,108,101,115,32,97,110,100,32,105,110,106,101,99,116,105, + 110,103,32,116,104,101,109,10,32,32,32,32,105,110,116,111, + 32,116,104,101,32,103,108,111,98,97,108,32,110,97,109,101, + 115,112,97,99,101,46,10,10,32,32,32,32,65,115,32,115, + 121,115,32,105,115,32,110,101,101,100,101,100,32,102,111,114, + 32,115,121,115,46,109,111,100,117,108,101,115,32,97,99,99, + 101,115,115,32,97,110,100,32,95,105,109,112,32,105,115,32, + 110,101,101,100,101,100,32,116,111,32,108,111,97,100,32,98, + 117,105,108,116,45,105,110,10,32,32,32,32,109,111,100,117, + 108,101,115,44,32,116,104,111,115,101,32,116,119,111,32,109, + 111,100,117,108,101,115,32,109,117,115,116,32,98,101,32,101, + 120,112,108,105,99,105,116,108,121,32,112,97,115,115,101,100, + 32,105,110,46,10,10,32,32,32,32,114,167,0,0,0,114, + 20,0,0,0,78,114,55,0,0,0,41,1,114,167,0,0, + 0,41,16,114,46,0,0,0,114,14,0,0,0,114,13,0, + 0,0,114,79,0,0,0,218,5,105,116,101,109,115,114,171, + 0,0,0,114,69,0,0,0,114,142,0,0,0,114,75,0, + 0,0,114,152,0,0,0,114,128,0,0,0,114,133,0,0, + 0,114,1,0,0,0,114,197,0,0,0,114,5,0,0,0, + 114,70,0,0,0,41,12,218,10,115,121,115,95,109,111,100, + 117,108,101,218,11,95,105,109,112,95,109,111,100,117,108,101, + 90,11,109,111,100,117,108,101,95,116,121,112,101,114,15,0, + 0,0,114,83,0,0,0,114,93,0,0,0,114,82,0,0, + 0,90,11,115,101,108,102,95,109,111,100,117,108,101,90,12, + 98,117,105,108,116,105,110,95,110,97,109,101,90,14,98,117, + 105,108,116,105,110,95,109,111,100,117,108,101,90,13,116,104, + 114,101,97,100,95,109,111,100,117,108,101,90,14,119,101,97, + 107,114,101,102,95,109,111,100,117,108,101,114,10,0,0,0, + 114,10,0,0,0,114,11,0,0,0,218,6,95,115,101,116, + 117,112,65,4,0,0,115,50,0,0,0,0,9,4,1,4, + 3,8,1,20,1,10,1,10,1,6,1,10,1,6,2,2, + 1,10,1,14,3,10,1,10,1,10,1,10,2,10,1,16, + 3,2,1,12,1,14,2,10,1,12,3,8,1,114,201,0, + 0,0,99,2,0,0,0,0,0,0,0,3,0,0,0,4, + 0,0,0,67,0,0,0,115,66,0,0,0,116,0,124,0, + 124,1,131,2,1,0,116,1,106,2,160,3,116,4,161,1, + 1,0,116,1,106,2,160,3,116,5,161,1,1,0,100,1, + 100,2,108,6,125,2,124,2,97,7,124,2,160,8,116,1, + 106,9,116,10,25,0,161,1,1,0,100,2,83,0,41,3, + 122,50,73,110,115,116,97,108,108,32,105,109,112,111,114,116, + 108,105,98,32,97,115,32,116,104,101,32,105,109,112,108,101, + 109,101,110,116,97,116,105,111,110,32,111,102,32,105,109,112, + 111,114,116,46,114,19,0,0,0,78,41,11,114,201,0,0, + 0,114,14,0,0,0,114,166,0,0,0,114,109,0,0,0, + 114,142,0,0,0,114,152,0,0,0,218,26,95,102,114,111, + 122,101,110,95,105,109,112,111,114,116,108,105,98,95,101,120, + 116,101,114,110,97,108,114,115,0,0,0,218,8,95,105,110, + 115,116,97,108,108,114,79,0,0,0,114,1,0,0,0,41, + 3,114,199,0,0,0,114,200,0,0,0,114,202,0,0,0, + 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,114, + 203,0,0,0,112,4,0,0,115,12,0,0,0,0,2,10, + 2,12,1,12,3,8,1,4,1,114,203,0,0,0,41,2, + 78,78,41,1,78,41,2,78,114,19,0,0,0,41,50,114, + 3,0,0,0,114,115,0,0,0,114,12,0,0,0,114,16, + 0,0,0,114,51,0,0,0,114,29,0,0,0,114,36,0, + 0,0,114,17,0,0,0,114,18,0,0,0,114,41,0,0, + 0,114,42,0,0,0,114,45,0,0,0,114,56,0,0,0, + 114,58,0,0,0,114,68,0,0,0,114,74,0,0,0,114, + 77,0,0,0,114,84,0,0,0,114,95,0,0,0,114,96, + 0,0,0,114,102,0,0,0,114,78,0,0,0,218,6,111, + 98,106,101,99,116,90,9,95,80,79,80,85,76,65,84,69, + 114,128,0,0,0,114,133,0,0,0,114,136,0,0,0,114, + 91,0,0,0,114,80,0,0,0,114,140,0,0,0,114,141, + 0,0,0,114,81,0,0,0,114,142,0,0,0,114,152,0, + 0,0,114,157,0,0,0,114,163,0,0,0,114,165,0,0, + 0,114,170,0,0,0,114,175,0,0,0,90,15,95,69,82, + 82,95,77,83,71,95,80,82,69,70,73,88,114,177,0,0, + 0,114,180,0,0,0,114,181,0,0,0,114,182,0,0,0, + 114,189,0,0,0,114,193,0,0,0,114,196,0,0,0,114, + 197,0,0,0,114,201,0,0,0,114,203,0,0,0,114,10, + 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0, + 0,0,218,8,60,109,111,100,117,108,101,62,25,0,0,0, + 115,94,0,0,0,4,0,4,2,8,8,8,7,4,2,4, + 3,16,4,14,68,14,21,14,19,8,19,8,19,8,11,14, + 8,8,11,8,12,8,16,8,36,14,27,14,101,16,26,6, + 3,10,45,14,60,8,17,8,17,8,25,8,29,8,23,8, + 16,14,73,14,77,14,13,8,9,8,9,10,47,8,20,4, + 1,8,2,8,27,8,6,10,25,8,31,8,27,18,35,8, + 7,8,47, }; diff -r 09d4d47ad210 Python/importlib_external.h --- a/Python/importlib_external.h Tue Jan 31 13:53:39 2017 +0100 +++ b/Python/importlib_external.h Wed Feb 01 01:56:27 2017 +0900 @@ -903,1087 +903,1086 @@ 41,1,78,41,12,114,109,0,0,0,114,108,0,0,0,114, 110,0,0,0,114,111,0,0,0,114,172,0,0,0,114,171, 0,0,0,114,170,0,0,0,218,11,99,108,97,115,115,109, 101,116,104,111,100,114,169,0,0,0,114,175,0,0,0,114, 178,0,0,0,114,179,0,0,0,114,4,0,0,0,114,4, 0,0,0,114,4,0,0,0,114,6,0,0,0,114,166,0, - 0,0,81,2,0,0,115,20,0,0,0,8,2,4,3,4, - 3,4,2,4,2,12,7,12,15,2,1,12,15,2,1,114, - 166,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0, - 0,2,0,0,0,64,0,0,0,115,48,0,0,0,101,0, - 90,1,100,0,90,2,100,1,90,3,100,2,100,3,132,0, - 90,4,100,4,100,5,132,0,90,5,100,6,100,7,132,0, - 90,6,100,8,100,9,132,0,90,7,100,10,83,0,41,11, - 218,13,95,76,111,97,100,101,114,66,97,115,105,99,115,122, - 83,66,97,115,101,32,99,108,97,115,115,32,111,102,32,99, - 111,109,109,111,110,32,99,111,100,101,32,110,101,101,100,101, - 100,32,98,121,32,98,111,116,104,32,83,111,117,114,99,101, - 76,111,97,100,101,114,32,97,110,100,10,32,32,32,32,83, - 111,117,114,99,101,108,101,115,115,70,105,108,101,76,111,97, - 100,101,114,46,99,2,0,0,0,0,0,0,0,5,0,0, - 0,4,0,0,0,67,0,0,0,115,64,0,0,0,116,0, - 124,0,160,1,124,1,161,1,131,1,100,1,25,0,125,2, - 124,2,160,2,100,2,100,1,161,2,100,3,25,0,125,3, - 124,1,160,3,100,2,161,1,100,4,25,0,125,4,124,3, - 100,5,107,2,111,62,124,4,100,5,107,3,83,0,41,6, - 122,141,67,111,110,99,114,101,116,101,32,105,109,112,108,101, - 109,101,110,116,97,116,105,111,110,32,111,102,32,73,110,115, - 112,101,99,116,76,111,97,100,101,114,46,105,115,95,112,97, - 99,107,97,103,101,32,98,121,32,99,104,101,99,107,105,110, - 103,32,105,102,10,32,32,32,32,32,32,32,32,116,104,101, - 32,112,97,116,104,32,114,101,116,117,114,110,101,100,32,98, - 121,32,103,101,116,95,102,105,108,101,110,97,109,101,32,104, - 97,115,32,97,32,102,105,108,101,110,97,109,101,32,111,102, - 32,39,95,95,105,110,105,116,95,95,46,112,121,39,46,114, - 31,0,0,0,114,61,0,0,0,114,62,0,0,0,114,59, - 0,0,0,218,8,95,95,105,110,105,116,95,95,41,4,114, - 40,0,0,0,114,155,0,0,0,114,36,0,0,0,114,34, - 0,0,0,41,5,114,104,0,0,0,114,123,0,0,0,114, - 98,0,0,0,90,13,102,105,108,101,110,97,109,101,95,98, - 97,115,101,90,9,116,97,105,108,95,110,97,109,101,114,4, - 0,0,0,114,4,0,0,0,114,6,0,0,0,114,157,0, - 0,0,150,2,0,0,115,8,0,0,0,0,3,18,1,16, - 1,14,1,122,24,95,76,111,97,100,101,114,66,97,115,105, - 99,115,46,105,115,95,112,97,99,107,97,103,101,99,2,0, - 0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,0, - 0,0,115,4,0,0,0,100,1,83,0,41,2,122,42,85, - 115,101,32,100,101,102,97,117,108,116,32,115,101,109,97,110, - 116,105,99,115,32,102,111,114,32,109,111,100,117,108,101,32, - 99,114,101,97,116,105,111,110,46,78,114,4,0,0,0,41, - 2,114,104,0,0,0,114,162,0,0,0,114,4,0,0,0, - 114,4,0,0,0,114,6,0,0,0,218,13,99,114,101,97, - 116,101,95,109,111,100,117,108,101,158,2,0,0,115,0,0, - 0,0,122,27,95,76,111,97,100,101,114,66,97,115,105,99, - 115,46,99,114,101,97,116,101,95,109,111,100,117,108,101,99, - 2,0,0,0,0,0,0,0,3,0,0,0,5,0,0,0, - 67,0,0,0,115,56,0,0,0,124,0,160,0,124,1,106, - 1,161,1,125,2,124,2,100,1,107,8,114,36,116,2,100, - 2,160,3,124,1,106,1,161,1,131,1,130,1,116,4,160, - 5,116,6,124,2,124,1,106,7,161,3,1,0,100,1,83, - 0,41,3,122,19,69,120,101,99,117,116,101,32,116,104,101, - 32,109,111,100,117,108,101,46,78,122,52,99,97,110,110,111, - 116,32,108,111,97,100,32,109,111,100,117,108,101,32,123,33, - 114,125,32,119,104,101,110,32,103,101,116,95,99,111,100,101, - 40,41,32,114,101,116,117,114,110,115,32,78,111,110,101,41, - 8,218,8,103,101,116,95,99,111,100,101,114,109,0,0,0, - 114,103,0,0,0,114,50,0,0,0,114,118,0,0,0,218, - 25,95,99,97,108,108,95,119,105,116,104,95,102,114,97,109, - 101,115,95,114,101,109,111,118,101,100,218,4,101,120,101,99, - 114,115,0,0,0,41,3,114,104,0,0,0,218,6,109,111, - 100,117,108,101,114,144,0,0,0,114,4,0,0,0,114,4, - 0,0,0,114,6,0,0,0,218,11,101,120,101,99,95,109, - 111,100,117,108,101,161,2,0,0,115,10,0,0,0,0,2, - 12,1,8,1,6,1,10,1,122,25,95,76,111,97,100,101, - 114,66,97,115,105,99,115,46,101,120,101,99,95,109,111,100, - 117,108,101,99,2,0,0,0,0,0,0,0,2,0,0,0, - 4,0,0,0,67,0,0,0,115,12,0,0,0,116,0,160, - 1,124,0,124,1,161,2,83,0,41,1,122,26,84,104,105, - 115,32,109,111,100,117,108,101,32,105,115,32,100,101,112,114, - 101,99,97,116,101,100,46,41,2,114,118,0,0,0,218,17, - 95,108,111,97,100,95,109,111,100,117,108,101,95,115,104,105, - 109,41,2,114,104,0,0,0,114,123,0,0,0,114,4,0, - 0,0,114,4,0,0,0,114,6,0,0,0,218,11,108,111, - 97,100,95,109,111,100,117,108,101,169,2,0,0,115,2,0, - 0,0,0,2,122,25,95,76,111,97,100,101,114,66,97,115, - 105,99,115,46,108,111,97,100,95,109,111,100,117,108,101,78, - 41,8,114,109,0,0,0,114,108,0,0,0,114,110,0,0, - 0,114,111,0,0,0,114,157,0,0,0,114,183,0,0,0, - 114,188,0,0,0,114,190,0,0,0,114,4,0,0,0,114, - 4,0,0,0,114,4,0,0,0,114,6,0,0,0,114,181, - 0,0,0,145,2,0,0,115,10,0,0,0,8,3,4,2, - 8,8,8,3,8,8,114,181,0,0,0,99,0,0,0,0, - 0,0,0,0,0,0,0,0,3,0,0,0,64,0,0,0, - 115,74,0,0,0,101,0,90,1,100,0,90,2,100,1,100, - 2,132,0,90,3,100,3,100,4,132,0,90,4,100,5,100, - 6,132,0,90,5,100,7,100,8,132,0,90,6,100,9,100, - 10,132,0,90,7,100,18,100,12,156,1,100,13,100,14,132, - 2,90,8,100,15,100,16,132,0,90,9,100,17,83,0,41, - 19,218,12,83,111,117,114,99,101,76,111,97,100,101,114,99, - 2,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0, - 67,0,0,0,115,8,0,0,0,116,0,130,1,100,1,83, - 0,41,2,122,178,79,112,116,105,111,110,97,108,32,109,101, - 116,104,111,100,32,116,104,97,116,32,114,101,116,117,114,110, - 115,32,116,104,101,32,109,111,100,105,102,105,99,97,116,105, - 111,110,32,116,105,109,101,32,40,97,110,32,105,110,116,41, - 32,102,111,114,32,116,104,101,10,32,32,32,32,32,32,32, - 32,115,112,101,99,105,102,105,101,100,32,112,97,116,104,44, - 32,119,104,101,114,101,32,112,97,116,104,32,105,115,32,97, - 32,115,116,114,46,10,10,32,32,32,32,32,32,32,32,82, - 97,105,115,101,115,32,73,79,69,114,114,111,114,32,119,104, - 101,110,32,116,104,101,32,112,97,116,104,32,99,97,110,110, - 111,116,32,98,101,32,104,97,110,100,108,101,100,46,10,32, - 32,32,32,32,32,32,32,78,41,1,218,7,73,79,69,114, - 114,111,114,41,2,114,104,0,0,0,114,37,0,0,0,114, - 4,0,0,0,114,4,0,0,0,114,6,0,0,0,218,10, - 112,97,116,104,95,109,116,105,109,101,176,2,0,0,115,2, - 0,0,0,0,6,122,23,83,111,117,114,99,101,76,111,97, - 100,101,114,46,112,97,116,104,95,109,116,105,109,101,99,2, - 0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,67, - 0,0,0,115,14,0,0,0,100,1,124,0,160,0,124,1, - 161,1,105,1,83,0,41,2,97,170,1,0,0,79,112,116, - 105,111,110,97,108,32,109,101,116,104,111,100,32,114,101,116, - 117,114,110,105,110,103,32,97,32,109,101,116,97,100,97,116, - 97,32,100,105,99,116,32,102,111,114,32,116,104,101,32,115, - 112,101,99,105,102,105,101,100,32,112,97,116,104,10,32,32, - 32,32,32,32,32,32,116,111,32,98,121,32,116,104,101,32, - 112,97,116,104,32,40,115,116,114,41,46,10,32,32,32,32, - 32,32,32,32,80,111,115,115,105,98,108,101,32,107,101,121, - 115,58,10,32,32,32,32,32,32,32,32,45,32,39,109,116, - 105,109,101,39,32,40,109,97,110,100,97,116,111,114,121,41, - 32,105,115,32,116,104,101,32,110,117,109,101,114,105,99,32, - 116,105,109,101,115,116,97,109,112,32,111,102,32,108,97,115, - 116,32,115,111,117,114,99,101,10,32,32,32,32,32,32,32, - 32,32,32,99,111,100,101,32,109,111,100,105,102,105,99,97, - 116,105,111,110,59,10,32,32,32,32,32,32,32,32,45,32, - 39,115,105,122,101,39,32,40,111,112,116,105,111,110,97,108, - 41,32,105,115,32,116,104,101,32,115,105,122,101,32,105,110, - 32,98,121,116,101,115,32,111,102,32,116,104,101,32,115,111, - 117,114,99,101,32,99,111,100,101,46,10,10,32,32,32,32, - 32,32,32,32,73,109,112,108,101,109,101,110,116,105,110,103, - 32,116,104,105,115,32,109,101,116,104,111,100,32,97,108,108, - 111,119,115,32,116,104,101,32,108,111,97,100,101,114,32,116, - 111,32,114,101,97,100,32,98,121,116,101,99,111,100,101,32, - 102,105,108,101,115,46,10,32,32,32,32,32,32,32,32,82, - 97,105,115,101,115,32,73,79,69,114,114,111,114,32,119,104, - 101,110,32,116,104,101,32,112,97,116,104,32,99,97,110,110, - 111,116,32,98,101,32,104,97,110,100,108,101,100,46,10,32, - 32,32,32,32,32,32,32,114,130,0,0,0,41,1,114,193, - 0,0,0,41,2,114,104,0,0,0,114,37,0,0,0,114, - 4,0,0,0,114,4,0,0,0,114,6,0,0,0,218,10, - 112,97,116,104,95,115,116,97,116,115,184,2,0,0,115,2, - 0,0,0,0,11,122,23,83,111,117,114,99,101,76,111,97, - 100,101,114,46,112,97,116,104,95,115,116,97,116,115,99,4, - 0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,67, - 0,0,0,115,12,0,0,0,124,0,160,0,124,2,124,3, - 161,2,83,0,41,1,122,228,79,112,116,105,111,110,97,108, - 32,109,101,116,104,111,100,32,119,104,105,99,104,32,119,114, - 105,116,101,115,32,100,97,116,97,32,40,98,121,116,101,115, - 41,32,116,111,32,97,32,102,105,108,101,32,112,97,116,104, - 32,40,97,32,115,116,114,41,46,10,10,32,32,32,32,32, - 32,32,32,73,109,112,108,101,109,101,110,116,105,110,103,32, - 116,104,105,115,32,109,101,116,104,111,100,32,97,108,108,111, - 119,115,32,102,111,114,32,116,104,101,32,119,114,105,116,105, - 110,103,32,111,102,32,98,121,116,101,99,111,100,101,32,102, - 105,108,101,115,46,10,10,32,32,32,32,32,32,32,32,84, - 104,101,32,115,111,117,114,99,101,32,112,97,116,104,32,105, - 115,32,110,101,101,100,101,100,32,105,110,32,111,114,100,101, - 114,32,116,111,32,99,111,114,114,101,99,116,108,121,32,116, - 114,97,110,115,102,101,114,32,112,101,114,109,105,115,115,105, - 111,110,115,10,32,32,32,32,32,32,32,32,41,1,218,8, - 115,101,116,95,100,97,116,97,41,4,114,104,0,0,0,114, - 94,0,0,0,90,10,99,97,99,104,101,95,112,97,116,104, - 114,56,0,0,0,114,4,0,0,0,114,4,0,0,0,114, - 6,0,0,0,218,15,95,99,97,99,104,101,95,98,121,116, - 101,99,111,100,101,197,2,0,0,115,2,0,0,0,0,8, - 122,28,83,111,117,114,99,101,76,111,97,100,101,114,46,95, - 99,97,99,104,101,95,98,121,116,101,99,111,100,101,99,3, - 0,0,0,0,0,0,0,3,0,0,0,1,0,0,0,67, - 0,0,0,115,4,0,0,0,100,1,83,0,41,2,122,150, - 79,112,116,105,111,110,97,108,32,109,101,116,104,111,100,32, - 119,104,105,99,104,32,119,114,105,116,101,115,32,100,97,116, - 97,32,40,98,121,116,101,115,41,32,116,111,32,97,32,102, - 105,108,101,32,112,97,116,104,32,40,97,32,115,116,114,41, - 46,10,10,32,32,32,32,32,32,32,32,73,109,112,108,101, - 109,101,110,116,105,110,103,32,116,104,105,115,32,109,101,116, - 104,111,100,32,97,108,108,111,119,115,32,102,111,114,32,116, - 104,101,32,119,114,105,116,105,110,103,32,111,102,32,98,121, - 116,101,99,111,100,101,32,102,105,108,101,115,46,10,32,32, - 32,32,32,32,32,32,78,114,4,0,0,0,41,3,114,104, - 0,0,0,114,37,0,0,0,114,56,0,0,0,114,4,0, - 0,0,114,4,0,0,0,114,6,0,0,0,114,195,0,0, - 0,207,2,0,0,115,0,0,0,0,122,21,83,111,117,114, - 99,101,76,111,97,100,101,114,46,115,101,116,95,100,97,116, - 97,99,2,0,0,0,0,0,0,0,5,0,0,0,16,0, - 0,0,67,0,0,0,115,82,0,0,0,124,0,160,0,124, - 1,161,1,125,2,121,14,124,0,160,1,124,2,161,1,125, - 3,87,0,110,48,4,0,116,2,107,10,114,72,1,0,125, - 4,1,0,122,20,116,3,100,1,124,1,100,2,141,2,124, - 4,130,2,87,0,89,0,100,3,100,3,125,4,126,4,88, - 0,110,2,88,0,116,4,124,3,131,1,83,0,41,4,122, - 52,67,111,110,99,114,101,116,101,32,105,109,112,108,101,109, - 101,110,116,97,116,105,111,110,32,111,102,32,73,110,115,112, - 101,99,116,76,111,97,100,101,114,46,103,101,116,95,115,111, - 117,114,99,101,46,122,39,115,111,117,114,99,101,32,110,111, - 116,32,97,118,97,105,108,97,98,108,101,32,116,104,114,111, - 117,103,104,32,103,101,116,95,100,97,116,97,40,41,41,1, - 114,102,0,0,0,78,41,5,114,155,0,0,0,218,8,103, - 101,116,95,100,97,116,97,114,42,0,0,0,114,103,0,0, - 0,114,153,0,0,0,41,5,114,104,0,0,0,114,123,0, - 0,0,114,37,0,0,0,114,151,0,0,0,218,3,101,120, - 99,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0, - 218,10,103,101,116,95,115,111,117,114,99,101,214,2,0,0, - 115,14,0,0,0,0,2,10,1,2,1,14,1,16,1,4, - 1,28,1,122,23,83,111,117,114,99,101,76,111,97,100,101, - 114,46,103,101,116,95,115,111,117,114,99,101,114,31,0,0, - 0,41,1,218,9,95,111,112,116,105,109,105,122,101,99,3, - 0,0,0,1,0,0,0,4,0,0,0,8,0,0,0,67, - 0,0,0,115,22,0,0,0,116,0,106,1,116,2,124,1, - 124,2,100,1,100,2,124,3,100,3,141,6,83,0,41,4, - 122,130,82,101,116,117,114,110,32,116,104,101,32,99,111,100, - 101,32,111,98,106,101,99,116,32,99,111,109,112,105,108,101, - 100,32,102,114,111,109,32,115,111,117,114,99,101,46,10,10, - 32,32,32,32,32,32,32,32,84,104,101,32,39,100,97,116, - 97,39,32,97,114,103,117,109,101,110,116,32,99,97,110,32, - 98,101,32,97,110,121,32,111,98,106,101,99,116,32,116,121, - 112,101,32,116,104,97,116,32,99,111,109,112,105,108,101,40, - 41,32,115,117,112,112,111,114,116,115,46,10,32,32,32,32, - 32,32,32,32,114,186,0,0,0,84,41,2,218,12,100,111, - 110,116,95,105,110,104,101,114,105,116,114,72,0,0,0,41, - 3,114,118,0,0,0,114,185,0,0,0,218,7,99,111,109, - 112,105,108,101,41,4,114,104,0,0,0,114,56,0,0,0, - 114,37,0,0,0,114,200,0,0,0,114,4,0,0,0,114, - 4,0,0,0,114,6,0,0,0,218,14,115,111,117,114,99, - 101,95,116,111,95,99,111,100,101,224,2,0,0,115,4,0, - 0,0,0,5,12,1,122,27,83,111,117,114,99,101,76,111, - 97,100,101,114,46,115,111,117,114,99,101,95,116,111,95,99, - 111,100,101,99,2,0,0,0,0,0,0,0,10,0,0,0, - 43,0,0,0,67,0,0,0,115,94,1,0,0,124,0,160, - 0,124,1,161,1,125,2,100,1,125,3,121,12,116,1,124, - 2,131,1,125,4,87,0,110,24,4,0,116,2,107,10,114, - 50,1,0,1,0,1,0,100,1,125,4,89,0,110,162,88, - 0,121,14,124,0,160,3,124,2,161,1,125,5,87,0,110, - 20,4,0,116,4,107,10,114,86,1,0,1,0,1,0,89, - 0,110,126,88,0,116,5,124,5,100,2,25,0,131,1,125, - 3,121,14,124,0,160,6,124,4,161,1,125,6,87,0,110, - 20,4,0,116,7,107,10,114,134,1,0,1,0,1,0,89, - 0,110,78,88,0,121,20,116,8,124,6,124,5,124,1,124, - 4,100,3,141,4,125,7,87,0,110,24,4,0,116,9,116, - 10,102,2,107,10,114,180,1,0,1,0,1,0,89,0,110, - 32,88,0,116,11,160,12,100,4,124,4,124,2,161,3,1, - 0,116,13,124,7,124,1,124,4,124,2,100,5,141,4,83, - 0,124,0,160,6,124,2,161,1,125,8,124,0,160,14,124, - 8,124,2,161,2,125,9,116,11,160,12,100,6,124,2,161, - 2,1,0,116,15,106,16,12,0,144,1,114,90,124,4,100, - 1,107,9,144,1,114,90,124,3,100,1,107,9,144,1,114, - 90,116,17,124,9,124,3,116,18,124,8,131,1,131,3,125, - 6,121,30,124,0,160,19,124,2,124,4,124,6,161,3,1, - 0,116,11,160,12,100,7,124,4,161,2,1,0,87,0,110, - 22,4,0,116,2,107,10,144,1,114,88,1,0,1,0,1, - 0,89,0,110,2,88,0,124,9,83,0,41,8,122,190,67, - 111,110,99,114,101,116,101,32,105,109,112,108,101,109,101,110, - 116,97,116,105,111,110,32,111,102,32,73,110,115,112,101,99, - 116,76,111,97,100,101,114,46,103,101,116,95,99,111,100,101, - 46,10,10,32,32,32,32,32,32,32,32,82,101,97,100,105, - 110,103,32,111,102,32,98,121,116,101,99,111,100,101,32,114, - 101,113,117,105,114,101,115,32,112,97,116,104,95,115,116,97, - 116,115,32,116,111,32,98,101,32,105,109,112,108,101,109,101, - 110,116,101,100,46,32,84,111,32,119,114,105,116,101,10,32, - 32,32,32,32,32,32,32,98,121,116,101,99,111,100,101,44, - 32,115,101,116,95,100,97,116,97,32,109,117,115,116,32,97, - 108,115,111,32,98,101,32,105,109,112,108,101,109,101,110,116, - 101,100,46,10,10,32,32,32,32,32,32,32,32,78,114,130, - 0,0,0,41,3,114,136,0,0,0,114,102,0,0,0,114, - 37,0,0,0,122,13,123,125,32,109,97,116,99,104,101,115, - 32,123,125,41,3,114,102,0,0,0,114,93,0,0,0,114, - 94,0,0,0,122,19,99,111,100,101,32,111,98,106,101,99, - 116,32,102,114,111,109,32,123,125,122,10,119,114,111,116,101, - 32,123,33,114,125,41,20,114,155,0,0,0,114,83,0,0, - 0,114,70,0,0,0,114,194,0,0,0,114,192,0,0,0, - 114,16,0,0,0,114,197,0,0,0,114,42,0,0,0,114, - 139,0,0,0,114,103,0,0,0,114,134,0,0,0,114,118, - 0,0,0,114,133,0,0,0,114,145,0,0,0,114,203,0, - 0,0,114,8,0,0,0,218,19,100,111,110,116,95,119,114, - 105,116,101,95,98,121,116,101,99,111,100,101,114,148,0,0, - 0,114,33,0,0,0,114,196,0,0,0,41,10,114,104,0, - 0,0,114,123,0,0,0,114,94,0,0,0,114,137,0,0, - 0,114,93,0,0,0,218,2,115,116,114,56,0,0,0,218, - 10,98,121,116,101,115,95,100,97,116,97,114,151,0,0,0, - 90,11,99,111,100,101,95,111,98,106,101,99,116,114,4,0, - 0,0,114,4,0,0,0,114,6,0,0,0,114,184,0,0, - 0,232,2,0,0,115,78,0,0,0,0,7,10,1,4,1, - 2,1,12,1,14,1,10,2,2,1,14,1,14,1,6,2, - 12,1,2,1,14,1,14,1,6,2,2,1,4,1,4,1, - 12,1,18,1,6,2,8,1,6,1,6,1,2,1,8,1, - 10,1,12,1,12,1,20,1,10,1,6,1,10,1,2,1, - 14,1,16,1,16,1,6,1,122,21,83,111,117,114,99,101, - 76,111,97,100,101,114,46,103,101,116,95,99,111,100,101,78, - 114,91,0,0,0,41,10,114,109,0,0,0,114,108,0,0, - 0,114,110,0,0,0,114,193,0,0,0,114,194,0,0,0, - 114,196,0,0,0,114,195,0,0,0,114,199,0,0,0,114, - 203,0,0,0,114,184,0,0,0,114,4,0,0,0,114,4, - 0,0,0,114,4,0,0,0,114,6,0,0,0,114,191,0, - 0,0,174,2,0,0,115,14,0,0,0,8,2,8,8,8, - 13,8,10,8,7,8,10,14,8,114,191,0,0,0,99,0, - 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0, - 0,0,0,115,80,0,0,0,101,0,90,1,100,0,90,2, - 100,1,90,3,100,2,100,3,132,0,90,4,100,4,100,5, - 132,0,90,5,100,6,100,7,132,0,90,6,101,7,135,0, - 102,1,100,8,100,9,132,8,131,1,90,8,101,7,100,10, - 100,11,132,0,131,1,90,9,100,12,100,13,132,0,90,10, - 135,0,4,0,90,11,83,0,41,14,218,10,70,105,108,101, - 76,111,97,100,101,114,122,103,66,97,115,101,32,102,105,108, - 101,32,108,111,97,100,101,114,32,99,108,97,115,115,32,119, - 104,105,99,104,32,105,109,112,108,101,109,101,110,116,115,32, - 116,104,101,32,108,111,97,100,101,114,32,112,114,111,116,111, - 99,111,108,32,109,101,116,104,111,100,115,32,116,104,97,116, - 10,32,32,32,32,114,101,113,117,105,114,101,32,102,105,108, - 101,32,115,121,115,116,101,109,32,117,115,97,103,101,46,99, - 3,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0, - 67,0,0,0,115,16,0,0,0,124,1,124,0,95,0,124, - 2,124,0,95,1,100,1,83,0,41,2,122,75,67,97,99, - 104,101,32,116,104,101,32,109,111,100,117,108,101,32,110,97, - 109,101,32,97,110,100,32,116,104,101,32,112,97,116,104,32, - 116,111,32,116,104,101,32,102,105,108,101,32,102,111,117,110, - 100,32,98,121,32,116,104,101,10,32,32,32,32,32,32,32, - 32,102,105,110,100,101,114,46,78,41,2,114,102,0,0,0, - 114,37,0,0,0,41,3,114,104,0,0,0,114,123,0,0, - 0,114,37,0,0,0,114,4,0,0,0,114,4,0,0,0, - 114,6,0,0,0,114,182,0,0,0,33,3,0,0,115,4, - 0,0,0,0,3,6,1,122,19,70,105,108,101,76,111,97, + 0,0,81,2,0,0,115,18,0,0,0,12,5,4,3,4, + 2,4,2,12,7,12,15,2,1,12,15,2,1,114,166,0, + 0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,2, + 0,0,0,64,0,0,0,115,48,0,0,0,101,0,90,1, + 100,0,90,2,100,1,90,3,100,2,100,3,132,0,90,4, + 100,4,100,5,132,0,90,5,100,6,100,7,132,0,90,6, + 100,8,100,9,132,0,90,7,100,10,83,0,41,11,218,13, + 95,76,111,97,100,101,114,66,97,115,105,99,115,122,83,66, + 97,115,101,32,99,108,97,115,115,32,111,102,32,99,111,109, + 109,111,110,32,99,111,100,101,32,110,101,101,100,101,100,32, + 98,121,32,98,111,116,104,32,83,111,117,114,99,101,76,111, + 97,100,101,114,32,97,110,100,10,32,32,32,32,83,111,117, + 114,99,101,108,101,115,115,70,105,108,101,76,111,97,100,101, + 114,46,99,2,0,0,0,0,0,0,0,5,0,0,0,4, + 0,0,0,67,0,0,0,115,64,0,0,0,116,0,124,0, + 160,1,124,1,161,1,131,1,100,1,25,0,125,2,124,2, + 160,2,100,2,100,1,161,2,100,3,25,0,125,3,124,1, + 160,3,100,2,161,1,100,4,25,0,125,4,124,3,100,5, + 107,2,111,62,124,4,100,5,107,3,83,0,41,6,122,141, + 67,111,110,99,114,101,116,101,32,105,109,112,108,101,109,101, + 110,116,97,116,105,111,110,32,111,102,32,73,110,115,112,101, + 99,116,76,111,97,100,101,114,46,105,115,95,112,97,99,107, + 97,103,101,32,98,121,32,99,104,101,99,107,105,110,103,32, + 105,102,10,32,32,32,32,32,32,32,32,116,104,101,32,112, + 97,116,104,32,114,101,116,117,114,110,101,100,32,98,121,32, + 103,101,116,95,102,105,108,101,110,97,109,101,32,104,97,115, + 32,97,32,102,105,108,101,110,97,109,101,32,111,102,32,39, + 95,95,105,110,105,116,95,95,46,112,121,39,46,114,31,0, + 0,0,114,61,0,0,0,114,62,0,0,0,114,59,0,0, + 0,218,8,95,95,105,110,105,116,95,95,41,4,114,40,0, + 0,0,114,155,0,0,0,114,36,0,0,0,114,34,0,0, + 0,41,5,114,104,0,0,0,114,123,0,0,0,114,98,0, + 0,0,90,13,102,105,108,101,110,97,109,101,95,98,97,115, + 101,90,9,116,97,105,108,95,110,97,109,101,114,4,0,0, + 0,114,4,0,0,0,114,6,0,0,0,114,157,0,0,0, + 150,2,0,0,115,8,0,0,0,0,3,18,1,16,1,14, + 1,122,24,95,76,111,97,100,101,114,66,97,115,105,99,115, + 46,105,115,95,112,97,99,107,97,103,101,99,2,0,0,0, + 0,0,0,0,2,0,0,0,1,0,0,0,67,0,0,0, + 115,4,0,0,0,100,1,83,0,41,2,122,42,85,115,101, + 32,100,101,102,97,117,108,116,32,115,101,109,97,110,116,105, + 99,115,32,102,111,114,32,109,111,100,117,108,101,32,99,114, + 101,97,116,105,111,110,46,78,114,4,0,0,0,41,2,114, + 104,0,0,0,114,162,0,0,0,114,4,0,0,0,114,4, + 0,0,0,114,6,0,0,0,218,13,99,114,101,97,116,101, + 95,109,111,100,117,108,101,158,2,0,0,115,0,0,0,0, + 122,27,95,76,111,97,100,101,114,66,97,115,105,99,115,46, + 99,114,101,97,116,101,95,109,111,100,117,108,101,99,2,0, + 0,0,0,0,0,0,3,0,0,0,5,0,0,0,67,0, + 0,0,115,56,0,0,0,124,0,160,0,124,1,106,1,161, + 1,125,2,124,2,100,1,107,8,114,36,116,2,100,2,160, + 3,124,1,106,1,161,1,131,1,130,1,116,4,160,5,116, + 6,124,2,124,1,106,7,161,3,1,0,100,1,83,0,41, + 3,122,19,69,120,101,99,117,116,101,32,116,104,101,32,109, + 111,100,117,108,101,46,78,122,52,99,97,110,110,111,116,32, + 108,111,97,100,32,109,111,100,117,108,101,32,123,33,114,125, + 32,119,104,101,110,32,103,101,116,95,99,111,100,101,40,41, + 32,114,101,116,117,114,110,115,32,78,111,110,101,41,8,218, + 8,103,101,116,95,99,111,100,101,114,109,0,0,0,114,103, + 0,0,0,114,50,0,0,0,114,118,0,0,0,218,25,95, + 99,97,108,108,95,119,105,116,104,95,102,114,97,109,101,115, + 95,114,101,109,111,118,101,100,218,4,101,120,101,99,114,115, + 0,0,0,41,3,114,104,0,0,0,218,6,109,111,100,117, + 108,101,114,144,0,0,0,114,4,0,0,0,114,4,0,0, + 0,114,6,0,0,0,218,11,101,120,101,99,95,109,111,100, + 117,108,101,161,2,0,0,115,10,0,0,0,0,2,12,1, + 8,1,6,1,10,1,122,25,95,76,111,97,100,101,114,66, + 97,115,105,99,115,46,101,120,101,99,95,109,111,100,117,108, + 101,99,2,0,0,0,0,0,0,0,2,0,0,0,4,0, + 0,0,67,0,0,0,115,12,0,0,0,116,0,160,1,124, + 0,124,1,161,2,83,0,41,1,122,26,84,104,105,115,32, + 109,111,100,117,108,101,32,105,115,32,100,101,112,114,101,99, + 97,116,101,100,46,41,2,114,118,0,0,0,218,17,95,108, + 111,97,100,95,109,111,100,117,108,101,95,115,104,105,109,41, + 2,114,104,0,0,0,114,123,0,0,0,114,4,0,0,0, + 114,4,0,0,0,114,6,0,0,0,218,11,108,111,97,100, + 95,109,111,100,117,108,101,169,2,0,0,115,2,0,0,0, + 0,2,122,25,95,76,111,97,100,101,114,66,97,115,105,99, + 115,46,108,111,97,100,95,109,111,100,117,108,101,78,41,8, + 114,109,0,0,0,114,108,0,0,0,114,110,0,0,0,114, + 111,0,0,0,114,157,0,0,0,114,183,0,0,0,114,188, + 0,0,0,114,190,0,0,0,114,4,0,0,0,114,4,0, + 0,0,114,4,0,0,0,114,6,0,0,0,114,181,0,0, + 0,145,2,0,0,115,8,0,0,0,12,5,8,8,8,3, + 8,8,114,181,0,0,0,99,0,0,0,0,0,0,0,0, + 0,0,0,0,3,0,0,0,64,0,0,0,115,74,0,0, + 0,101,0,90,1,100,0,90,2,100,1,100,2,132,0,90, + 3,100,3,100,4,132,0,90,4,100,5,100,6,132,0,90, + 5,100,7,100,8,132,0,90,6,100,9,100,10,132,0,90, + 7,100,18,100,12,156,1,100,13,100,14,132,2,90,8,100, + 15,100,16,132,0,90,9,100,17,83,0,41,19,218,12,83, + 111,117,114,99,101,76,111,97,100,101,114,99,2,0,0,0, + 0,0,0,0,2,0,0,0,1,0,0,0,67,0,0,0, + 115,8,0,0,0,116,0,130,1,100,1,83,0,41,2,122, + 178,79,112,116,105,111,110,97,108,32,109,101,116,104,111,100, + 32,116,104,97,116,32,114,101,116,117,114,110,115,32,116,104, + 101,32,109,111,100,105,102,105,99,97,116,105,111,110,32,116, + 105,109,101,32,40,97,110,32,105,110,116,41,32,102,111,114, + 32,116,104,101,10,32,32,32,32,32,32,32,32,115,112,101, + 99,105,102,105,101,100,32,112,97,116,104,44,32,119,104,101, + 114,101,32,112,97,116,104,32,105,115,32,97,32,115,116,114, + 46,10,10,32,32,32,32,32,32,32,32,82,97,105,115,101, + 115,32,73,79,69,114,114,111,114,32,119,104,101,110,32,116, + 104,101,32,112,97,116,104,32,99,97,110,110,111,116,32,98, + 101,32,104,97,110,100,108,101,100,46,10,32,32,32,32,32, + 32,32,32,78,41,1,218,7,73,79,69,114,114,111,114,41, + 2,114,104,0,0,0,114,37,0,0,0,114,4,0,0,0, + 114,4,0,0,0,114,6,0,0,0,218,10,112,97,116,104, + 95,109,116,105,109,101,176,2,0,0,115,2,0,0,0,0, + 6,122,23,83,111,117,114,99,101,76,111,97,100,101,114,46, + 112,97,116,104,95,109,116,105,109,101,99,2,0,0,0,0, + 0,0,0,2,0,0,0,4,0,0,0,67,0,0,0,115, + 14,0,0,0,100,1,124,0,160,0,124,1,161,1,105,1, + 83,0,41,2,97,170,1,0,0,79,112,116,105,111,110,97, + 108,32,109,101,116,104,111,100,32,114,101,116,117,114,110,105, + 110,103,32,97,32,109,101,116,97,100,97,116,97,32,100,105, + 99,116,32,102,111,114,32,116,104,101,32,115,112,101,99,105, + 102,105,101,100,32,112,97,116,104,10,32,32,32,32,32,32, + 32,32,116,111,32,98,121,32,116,104,101,32,112,97,116,104, + 32,40,115,116,114,41,46,10,32,32,32,32,32,32,32,32, + 80,111,115,115,105,98,108,101,32,107,101,121,115,58,10,32, + 32,32,32,32,32,32,32,45,32,39,109,116,105,109,101,39, + 32,40,109,97,110,100,97,116,111,114,121,41,32,105,115,32, + 116,104,101,32,110,117,109,101,114,105,99,32,116,105,109,101, + 115,116,97,109,112,32,111,102,32,108,97,115,116,32,115,111, + 117,114,99,101,10,32,32,32,32,32,32,32,32,32,32,99, + 111,100,101,32,109,111,100,105,102,105,99,97,116,105,111,110, + 59,10,32,32,32,32,32,32,32,32,45,32,39,115,105,122, + 101,39,32,40,111,112,116,105,111,110,97,108,41,32,105,115, + 32,116,104,101,32,115,105,122,101,32,105,110,32,98,121,116, + 101,115,32,111,102,32,116,104,101,32,115,111,117,114,99,101, + 32,99,111,100,101,46,10,10,32,32,32,32,32,32,32,32, + 73,109,112,108,101,109,101,110,116,105,110,103,32,116,104,105, + 115,32,109,101,116,104,111,100,32,97,108,108,111,119,115,32, + 116,104,101,32,108,111,97,100,101,114,32,116,111,32,114,101, + 97,100,32,98,121,116,101,99,111,100,101,32,102,105,108,101, + 115,46,10,32,32,32,32,32,32,32,32,82,97,105,115,101, + 115,32,73,79,69,114,114,111,114,32,119,104,101,110,32,116, + 104,101,32,112,97,116,104,32,99,97,110,110,111,116,32,98, + 101,32,104,97,110,100,108,101,100,46,10,32,32,32,32,32, + 32,32,32,114,130,0,0,0,41,1,114,193,0,0,0,41, + 2,114,104,0,0,0,114,37,0,0,0,114,4,0,0,0, + 114,4,0,0,0,114,6,0,0,0,218,10,112,97,116,104, + 95,115,116,97,116,115,184,2,0,0,115,2,0,0,0,0, + 11,122,23,83,111,117,114,99,101,76,111,97,100,101,114,46, + 112,97,116,104,95,115,116,97,116,115,99,4,0,0,0,0, + 0,0,0,4,0,0,0,4,0,0,0,67,0,0,0,115, + 12,0,0,0,124,0,160,0,124,2,124,3,161,2,83,0, + 41,1,122,228,79,112,116,105,111,110,97,108,32,109,101,116, + 104,111,100,32,119,104,105,99,104,32,119,114,105,116,101,115, + 32,100,97,116,97,32,40,98,121,116,101,115,41,32,116,111, + 32,97,32,102,105,108,101,32,112,97,116,104,32,40,97,32, + 115,116,114,41,46,10,10,32,32,32,32,32,32,32,32,73, + 109,112,108,101,109,101,110,116,105,110,103,32,116,104,105,115, + 32,109,101,116,104,111,100,32,97,108,108,111,119,115,32,102, + 111,114,32,116,104,101,32,119,114,105,116,105,110,103,32,111, + 102,32,98,121,116,101,99,111,100,101,32,102,105,108,101,115, + 46,10,10,32,32,32,32,32,32,32,32,84,104,101,32,115, + 111,117,114,99,101,32,112,97,116,104,32,105,115,32,110,101, + 101,100,101,100,32,105,110,32,111,114,100,101,114,32,116,111, + 32,99,111,114,114,101,99,116,108,121,32,116,114,97,110,115, + 102,101,114,32,112,101,114,109,105,115,115,105,111,110,115,10, + 32,32,32,32,32,32,32,32,41,1,218,8,115,101,116,95, + 100,97,116,97,41,4,114,104,0,0,0,114,94,0,0,0, + 90,10,99,97,99,104,101,95,112,97,116,104,114,56,0,0, + 0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0, + 218,15,95,99,97,99,104,101,95,98,121,116,101,99,111,100, + 101,197,2,0,0,115,2,0,0,0,0,8,122,28,83,111, + 117,114,99,101,76,111,97,100,101,114,46,95,99,97,99,104, + 101,95,98,121,116,101,99,111,100,101,99,3,0,0,0,0, + 0,0,0,3,0,0,0,1,0,0,0,67,0,0,0,115, + 4,0,0,0,100,1,83,0,41,2,122,150,79,112,116,105, + 111,110,97,108,32,109,101,116,104,111,100,32,119,104,105,99, + 104,32,119,114,105,116,101,115,32,100,97,116,97,32,40,98, + 121,116,101,115,41,32,116,111,32,97,32,102,105,108,101,32, + 112,97,116,104,32,40,97,32,115,116,114,41,46,10,10,32, + 32,32,32,32,32,32,32,73,109,112,108,101,109,101,110,116, + 105,110,103,32,116,104,105,115,32,109,101,116,104,111,100,32, + 97,108,108,111,119,115,32,102,111,114,32,116,104,101,32,119, + 114,105,116,105,110,103,32,111,102,32,98,121,116,101,99,111, + 100,101,32,102,105,108,101,115,46,10,32,32,32,32,32,32, + 32,32,78,114,4,0,0,0,41,3,114,104,0,0,0,114, + 37,0,0,0,114,56,0,0,0,114,4,0,0,0,114,4, + 0,0,0,114,6,0,0,0,114,195,0,0,0,207,2,0, + 0,115,0,0,0,0,122,21,83,111,117,114,99,101,76,111, + 97,100,101,114,46,115,101,116,95,100,97,116,97,99,2,0, + 0,0,0,0,0,0,5,0,0,0,16,0,0,0,67,0, + 0,0,115,82,0,0,0,124,0,160,0,124,1,161,1,125, + 2,121,14,124,0,160,1,124,2,161,1,125,3,87,0,110, + 48,4,0,116,2,107,10,114,72,1,0,125,4,1,0,122, + 20,116,3,100,1,124,1,100,2,141,2,124,4,130,2,87, + 0,89,0,100,3,100,3,125,4,126,4,88,0,110,2,88, + 0,116,4,124,3,131,1,83,0,41,4,122,52,67,111,110, + 99,114,101,116,101,32,105,109,112,108,101,109,101,110,116,97, + 116,105,111,110,32,111,102,32,73,110,115,112,101,99,116,76, + 111,97,100,101,114,46,103,101,116,95,115,111,117,114,99,101, + 46,122,39,115,111,117,114,99,101,32,110,111,116,32,97,118, + 97,105,108,97,98,108,101,32,116,104,114,111,117,103,104,32, + 103,101,116,95,100,97,116,97,40,41,41,1,114,102,0,0, + 0,78,41,5,114,155,0,0,0,218,8,103,101,116,95,100, + 97,116,97,114,42,0,0,0,114,103,0,0,0,114,153,0, + 0,0,41,5,114,104,0,0,0,114,123,0,0,0,114,37, + 0,0,0,114,151,0,0,0,218,3,101,120,99,114,4,0, + 0,0,114,4,0,0,0,114,6,0,0,0,218,10,103,101, + 116,95,115,111,117,114,99,101,214,2,0,0,115,14,0,0, + 0,0,2,10,1,2,1,14,1,16,1,4,1,28,1,122, + 23,83,111,117,114,99,101,76,111,97,100,101,114,46,103,101, + 116,95,115,111,117,114,99,101,114,31,0,0,0,41,1,218, + 9,95,111,112,116,105,109,105,122,101,99,3,0,0,0,1, + 0,0,0,4,0,0,0,8,0,0,0,67,0,0,0,115, + 22,0,0,0,116,0,106,1,116,2,124,1,124,2,100,1, + 100,2,124,3,100,3,141,6,83,0,41,4,122,130,82,101, + 116,117,114,110,32,116,104,101,32,99,111,100,101,32,111,98, + 106,101,99,116,32,99,111,109,112,105,108,101,100,32,102,114, + 111,109,32,115,111,117,114,99,101,46,10,10,32,32,32,32, + 32,32,32,32,84,104,101,32,39,100,97,116,97,39,32,97, + 114,103,117,109,101,110,116,32,99,97,110,32,98,101,32,97, + 110,121,32,111,98,106,101,99,116,32,116,121,112,101,32,116, + 104,97,116,32,99,111,109,112,105,108,101,40,41,32,115,117, + 112,112,111,114,116,115,46,10,32,32,32,32,32,32,32,32, + 114,186,0,0,0,84,41,2,218,12,100,111,110,116,95,105, + 110,104,101,114,105,116,114,72,0,0,0,41,3,114,118,0, + 0,0,114,185,0,0,0,218,7,99,111,109,112,105,108,101, + 41,4,114,104,0,0,0,114,56,0,0,0,114,37,0,0, + 0,114,200,0,0,0,114,4,0,0,0,114,4,0,0,0, + 114,6,0,0,0,218,14,115,111,117,114,99,101,95,116,111, + 95,99,111,100,101,224,2,0,0,115,4,0,0,0,0,5, + 12,1,122,27,83,111,117,114,99,101,76,111,97,100,101,114, + 46,115,111,117,114,99,101,95,116,111,95,99,111,100,101,99, + 2,0,0,0,0,0,0,0,10,0,0,0,43,0,0,0, + 67,0,0,0,115,94,1,0,0,124,0,160,0,124,1,161, + 1,125,2,100,1,125,3,121,12,116,1,124,2,131,1,125, + 4,87,0,110,24,4,0,116,2,107,10,114,50,1,0,1, + 0,1,0,100,1,125,4,89,0,110,162,88,0,121,14,124, + 0,160,3,124,2,161,1,125,5,87,0,110,20,4,0,116, + 4,107,10,114,86,1,0,1,0,1,0,89,0,110,126,88, + 0,116,5,124,5,100,2,25,0,131,1,125,3,121,14,124, + 0,160,6,124,4,161,1,125,6,87,0,110,20,4,0,116, + 7,107,10,114,134,1,0,1,0,1,0,89,0,110,78,88, + 0,121,20,116,8,124,6,124,5,124,1,124,4,100,3,141, + 4,125,7,87,0,110,24,4,0,116,9,116,10,102,2,107, + 10,114,180,1,0,1,0,1,0,89,0,110,32,88,0,116, + 11,160,12,100,4,124,4,124,2,161,3,1,0,116,13,124, + 7,124,1,124,4,124,2,100,5,141,4,83,0,124,0,160, + 6,124,2,161,1,125,8,124,0,160,14,124,8,124,2,161, + 2,125,9,116,11,160,12,100,6,124,2,161,2,1,0,116, + 15,106,16,12,0,144,1,114,90,124,4,100,1,107,9,144, + 1,114,90,124,3,100,1,107,9,144,1,114,90,116,17,124, + 9,124,3,116,18,124,8,131,1,131,3,125,6,121,30,124, + 0,160,19,124,2,124,4,124,6,161,3,1,0,116,11,160, + 12,100,7,124,4,161,2,1,0,87,0,110,22,4,0,116, + 2,107,10,144,1,114,88,1,0,1,0,1,0,89,0,110, + 2,88,0,124,9,83,0,41,8,122,190,67,111,110,99,114, + 101,116,101,32,105,109,112,108,101,109,101,110,116,97,116,105, + 111,110,32,111,102,32,73,110,115,112,101,99,116,76,111,97, + 100,101,114,46,103,101,116,95,99,111,100,101,46,10,10,32, + 32,32,32,32,32,32,32,82,101,97,100,105,110,103,32,111, + 102,32,98,121,116,101,99,111,100,101,32,114,101,113,117,105, + 114,101,115,32,112,97,116,104,95,115,116,97,116,115,32,116, + 111,32,98,101,32,105,109,112,108,101,109,101,110,116,101,100, + 46,32,84,111,32,119,114,105,116,101,10,32,32,32,32,32, + 32,32,32,98,121,116,101,99,111,100,101,44,32,115,101,116, + 95,100,97,116,97,32,109,117,115,116,32,97,108,115,111,32, + 98,101,32,105,109,112,108,101,109,101,110,116,101,100,46,10, + 10,32,32,32,32,32,32,32,32,78,114,130,0,0,0,41, + 3,114,136,0,0,0,114,102,0,0,0,114,37,0,0,0, + 122,13,123,125,32,109,97,116,99,104,101,115,32,123,125,41, + 3,114,102,0,0,0,114,93,0,0,0,114,94,0,0,0, + 122,19,99,111,100,101,32,111,98,106,101,99,116,32,102,114, + 111,109,32,123,125,122,10,119,114,111,116,101,32,123,33,114, + 125,41,20,114,155,0,0,0,114,83,0,0,0,114,70,0, + 0,0,114,194,0,0,0,114,192,0,0,0,114,16,0,0, + 0,114,197,0,0,0,114,42,0,0,0,114,139,0,0,0, + 114,103,0,0,0,114,134,0,0,0,114,118,0,0,0,114, + 133,0,0,0,114,145,0,0,0,114,203,0,0,0,114,8, + 0,0,0,218,19,100,111,110,116,95,119,114,105,116,101,95, + 98,121,116,101,99,111,100,101,114,148,0,0,0,114,33,0, + 0,0,114,196,0,0,0,41,10,114,104,0,0,0,114,123, + 0,0,0,114,94,0,0,0,114,137,0,0,0,114,93,0, + 0,0,218,2,115,116,114,56,0,0,0,218,10,98,121,116, + 101,115,95,100,97,116,97,114,151,0,0,0,90,11,99,111, + 100,101,95,111,98,106,101,99,116,114,4,0,0,0,114,4, + 0,0,0,114,6,0,0,0,114,184,0,0,0,232,2,0, + 0,115,78,0,0,0,0,7,10,1,4,1,2,1,12,1, + 14,1,10,2,2,1,14,1,14,1,6,2,12,1,2,1, + 14,1,14,1,6,2,2,1,4,1,4,1,12,1,18,1, + 6,2,8,1,6,1,6,1,2,1,8,1,10,1,12,1, + 12,1,20,1,10,1,6,1,10,1,2,1,14,1,16,1, + 16,1,6,1,122,21,83,111,117,114,99,101,76,111,97,100, + 101,114,46,103,101,116,95,99,111,100,101,78,114,91,0,0, + 0,41,10,114,109,0,0,0,114,108,0,0,0,114,110,0, + 0,0,114,193,0,0,0,114,194,0,0,0,114,196,0,0, + 0,114,195,0,0,0,114,199,0,0,0,114,203,0,0,0, + 114,184,0,0,0,114,4,0,0,0,114,4,0,0,0,114, + 4,0,0,0,114,6,0,0,0,114,191,0,0,0,174,2, + 0,0,115,14,0,0,0,8,2,8,8,8,13,8,10,8, + 7,8,10,14,8,114,191,0,0,0,99,0,0,0,0,0, + 0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,115, + 80,0,0,0,101,0,90,1,100,0,90,2,100,1,90,3, + 100,2,100,3,132,0,90,4,100,4,100,5,132,0,90,5, + 100,6,100,7,132,0,90,6,101,7,135,0,102,1,100,8, + 100,9,132,8,131,1,90,8,101,7,100,10,100,11,132,0, + 131,1,90,9,100,12,100,13,132,0,90,10,135,0,4,0, + 90,11,83,0,41,14,218,10,70,105,108,101,76,111,97,100, + 101,114,122,103,66,97,115,101,32,102,105,108,101,32,108,111, + 97,100,101,114,32,99,108,97,115,115,32,119,104,105,99,104, + 32,105,109,112,108,101,109,101,110,116,115,32,116,104,101,32, + 108,111,97,100,101,114,32,112,114,111,116,111,99,111,108,32, + 109,101,116,104,111,100,115,32,116,104,97,116,10,32,32,32, + 32,114,101,113,117,105,114,101,32,102,105,108,101,32,115,121, + 115,116,101,109,32,117,115,97,103,101,46,99,3,0,0,0, + 0,0,0,0,3,0,0,0,2,0,0,0,67,0,0,0, + 115,16,0,0,0,124,1,124,0,95,0,124,2,124,0,95, + 1,100,1,83,0,41,2,122,75,67,97,99,104,101,32,116, + 104,101,32,109,111,100,117,108,101,32,110,97,109,101,32,97, + 110,100,32,116,104,101,32,112,97,116,104,32,116,111,32,116, + 104,101,32,102,105,108,101,32,102,111,117,110,100,32,98,121, + 32,116,104,101,10,32,32,32,32,32,32,32,32,102,105,110, + 100,101,114,46,78,41,2,114,102,0,0,0,114,37,0,0, + 0,41,3,114,104,0,0,0,114,123,0,0,0,114,37,0, + 0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0, + 0,114,182,0,0,0,33,3,0,0,115,4,0,0,0,0, + 3,6,1,122,19,70,105,108,101,76,111,97,100,101,114,46, + 95,95,105,110,105,116,95,95,99,2,0,0,0,0,0,0, + 0,2,0,0,0,2,0,0,0,67,0,0,0,115,24,0, + 0,0,124,0,106,0,124,1,106,0,107,2,111,22,124,0, + 106,1,124,1,106,1,107,2,83,0,41,1,78,41,2,218, + 9,95,95,99,108,97,115,115,95,95,114,115,0,0,0,41, + 2,114,104,0,0,0,218,5,111,116,104,101,114,114,4,0, + 0,0,114,4,0,0,0,114,6,0,0,0,218,6,95,95, + 101,113,95,95,39,3,0,0,115,4,0,0,0,0,1,12, + 1,122,17,70,105,108,101,76,111,97,100,101,114,46,95,95, + 101,113,95,95,99,1,0,0,0,0,0,0,0,1,0,0, + 0,3,0,0,0,67,0,0,0,115,20,0,0,0,116,0, + 124,0,106,1,131,1,116,0,124,0,106,2,131,1,65,0, + 83,0,41,1,78,41,3,218,4,104,97,115,104,114,102,0, + 0,0,114,37,0,0,0,41,1,114,104,0,0,0,114,4, + 0,0,0,114,4,0,0,0,114,6,0,0,0,218,8,95, + 95,104,97,115,104,95,95,43,3,0,0,115,2,0,0,0, + 0,1,122,19,70,105,108,101,76,111,97,100,101,114,46,95, + 95,104,97,115,104,95,95,99,2,0,0,0,0,0,0,0, + 2,0,0,0,3,0,0,0,3,0,0,0,115,16,0,0, + 0,116,0,116,1,124,0,131,2,160,2,124,1,161,1,83, + 0,41,1,122,100,76,111,97,100,32,97,32,109,111,100,117, + 108,101,32,102,114,111,109,32,97,32,102,105,108,101,46,10, + 10,32,32,32,32,32,32,32,32,84,104,105,115,32,109,101, + 116,104,111,100,32,105,115,32,100,101,112,114,101,99,97,116, + 101,100,46,32,32,85,115,101,32,101,120,101,99,95,109,111, + 100,117,108,101,40,41,32,105,110,115,116,101,97,100,46,10, + 10,32,32,32,32,32,32,32,32,41,3,218,5,115,117,112, + 101,114,114,207,0,0,0,114,190,0,0,0,41,2,114,104, + 0,0,0,114,123,0,0,0,41,1,114,208,0,0,0,114, + 4,0,0,0,114,6,0,0,0,114,190,0,0,0,46,3, + 0,0,115,2,0,0,0,0,10,122,22,70,105,108,101,76, + 111,97,100,101,114,46,108,111,97,100,95,109,111,100,117,108, + 101,99,2,0,0,0,0,0,0,0,2,0,0,0,1,0, + 0,0,67,0,0,0,115,6,0,0,0,124,0,106,0,83, + 0,41,1,122,58,82,101,116,117,114,110,32,116,104,101,32, + 112,97,116,104,32,116,111,32,116,104,101,32,115,111,117,114, + 99,101,32,102,105,108,101,32,97,115,32,102,111,117,110,100, + 32,98,121,32,116,104,101,32,102,105,110,100,101,114,46,41, + 1,114,37,0,0,0,41,2,114,104,0,0,0,114,123,0, + 0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0, + 0,114,155,0,0,0,58,3,0,0,115,2,0,0,0,0, + 3,122,23,70,105,108,101,76,111,97,100,101,114,46,103,101, + 116,95,102,105,108,101,110,97,109,101,99,2,0,0,0,0, + 0,0,0,3,0,0,0,9,0,0,0,67,0,0,0,115, + 32,0,0,0,116,0,160,1,124,1,100,1,161,2,143,10, + 125,2,124,2,160,2,161,0,83,0,81,0,82,0,88,0, + 100,2,83,0,41,3,122,39,82,101,116,117,114,110,32,116, + 104,101,32,100,97,116,97,32,102,114,111,109,32,112,97,116, + 104,32,97,115,32,114,97,119,32,98,121,116,101,115,46,218, + 1,114,78,41,3,114,52,0,0,0,114,53,0,0,0,90, + 4,114,101,97,100,41,3,114,104,0,0,0,114,37,0,0, + 0,114,57,0,0,0,114,4,0,0,0,114,4,0,0,0, + 114,6,0,0,0,114,197,0,0,0,63,3,0,0,115,4, + 0,0,0,0,2,14,1,122,19,70,105,108,101,76,111,97, + 100,101,114,46,103,101,116,95,100,97,116,97,41,12,114,109, + 0,0,0,114,108,0,0,0,114,110,0,0,0,114,111,0, + 0,0,114,182,0,0,0,114,210,0,0,0,114,212,0,0, + 0,114,120,0,0,0,114,190,0,0,0,114,155,0,0,0, + 114,197,0,0,0,90,13,95,95,99,108,97,115,115,99,101, + 108,108,95,95,114,4,0,0,0,114,4,0,0,0,41,1, + 114,208,0,0,0,114,6,0,0,0,114,207,0,0,0,28, + 3,0,0,115,12,0,0,0,12,5,8,6,8,4,8,3, + 16,12,12,5,114,207,0,0,0,99,0,0,0,0,0,0, + 0,0,0,0,0,0,3,0,0,0,64,0,0,0,115,46, + 0,0,0,101,0,90,1,100,0,90,2,100,1,90,3,100, + 2,100,3,132,0,90,4,100,4,100,5,132,0,90,5,100, + 6,100,7,156,1,100,8,100,9,132,2,90,6,100,10,83, + 0,41,11,218,16,83,111,117,114,99,101,70,105,108,101,76, + 111,97,100,101,114,122,62,67,111,110,99,114,101,116,101,32, + 105,109,112,108,101,109,101,110,116,97,116,105,111,110,32,111, + 102,32,83,111,117,114,99,101,76,111,97,100,101,114,32,117, + 115,105,110,103,32,116,104,101,32,102,105,108,101,32,115,121, + 115,116,101,109,46,99,2,0,0,0,0,0,0,0,3,0, + 0,0,3,0,0,0,67,0,0,0,115,22,0,0,0,116, + 0,124,1,131,1,125,2,124,2,106,1,124,2,106,2,100, + 1,156,2,83,0,41,2,122,33,82,101,116,117,114,110,32, + 116,104,101,32,109,101,116,97,100,97,116,97,32,102,111,114, + 32,116,104,101,32,112,97,116,104,46,41,2,114,130,0,0, + 0,114,131,0,0,0,41,3,114,41,0,0,0,218,8,115, + 116,95,109,116,105,109,101,90,7,115,116,95,115,105,122,101, + 41,3,114,104,0,0,0,114,37,0,0,0,114,205,0,0, + 0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0, + 114,194,0,0,0,73,3,0,0,115,4,0,0,0,0,2, + 8,1,122,27,83,111,117,114,99,101,70,105,108,101,76,111, + 97,100,101,114,46,112,97,116,104,95,115,116,97,116,115,99, + 4,0,0,0,0,0,0,0,5,0,0,0,5,0,0,0, + 67,0,0,0,115,24,0,0,0,116,0,124,1,131,1,125, + 4,124,0,106,1,124,2,124,3,124,4,100,1,141,3,83, + 0,41,2,78,41,1,218,5,95,109,111,100,101,41,2,114, + 101,0,0,0,114,195,0,0,0,41,5,114,104,0,0,0, + 114,94,0,0,0,114,93,0,0,0,114,56,0,0,0,114, + 44,0,0,0,114,4,0,0,0,114,4,0,0,0,114,6, + 0,0,0,114,196,0,0,0,78,3,0,0,115,4,0,0, + 0,0,2,8,1,122,32,83,111,117,114,99,101,70,105,108, + 101,76,111,97,100,101,114,46,95,99,97,99,104,101,95,98, + 121,116,101,99,111,100,101,105,182,1,0,0,41,1,114,217, + 0,0,0,99,3,0,0,0,1,0,0,0,9,0,0,0, + 18,0,0,0,67,0,0,0,115,250,0,0,0,116,0,124, + 1,131,1,92,2,125,4,125,5,103,0,125,6,120,40,124, + 4,114,56,116,1,124,4,131,1,12,0,114,56,116,0,124, + 4,131,1,92,2,125,4,125,7,124,6,160,2,124,7,161, + 1,1,0,113,18,87,0,120,108,116,3,124,6,131,1,68, + 0,93,96,125,7,116,4,124,4,124,7,131,2,125,4,121, + 14,116,5,160,6,124,4,161,1,1,0,87,0,113,68,4, + 0,116,7,107,10,114,118,1,0,1,0,1,0,119,68,89, + 0,113,68,4,0,116,8,107,10,114,162,1,0,125,8,1, + 0,122,18,116,9,160,10,100,1,124,4,124,8,161,3,1, + 0,100,2,83,0,100,2,125,8,126,8,88,0,113,68,88, + 0,113,68,87,0,121,28,116,11,124,1,124,2,124,3,131, + 3,1,0,116,9,160,10,100,3,124,1,161,2,1,0,87, + 0,110,48,4,0,116,8,107,10,114,244,1,0,125,8,1, + 0,122,20,116,9,160,10,100,1,124,1,124,8,161,3,1, + 0,87,0,89,0,100,2,100,2,125,8,126,8,88,0,110, + 2,88,0,100,2,83,0,41,4,122,27,87,114,105,116,101, + 32,98,121,116,101,115,32,100,97,116,97,32,116,111,32,97, + 32,102,105,108,101,46,122,27,99,111,117,108,100,32,110,111, + 116,32,99,114,101,97,116,101,32,123,33,114,125,58,32,123, + 33,114,125,78,122,12,99,114,101,97,116,101,100,32,123,33, + 114,125,41,12,114,40,0,0,0,114,48,0,0,0,114,161, + 0,0,0,114,35,0,0,0,114,30,0,0,0,114,3,0, + 0,0,90,5,109,107,100,105,114,218,15,70,105,108,101,69, + 120,105,115,116,115,69,114,114,111,114,114,42,0,0,0,114, + 118,0,0,0,114,133,0,0,0,114,58,0,0,0,41,9, + 114,104,0,0,0,114,37,0,0,0,114,56,0,0,0,114, + 217,0,0,0,218,6,112,97,114,101,110,116,114,98,0,0, + 0,114,29,0,0,0,114,25,0,0,0,114,198,0,0,0, + 114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,114, + 195,0,0,0,83,3,0,0,115,42,0,0,0,0,2,12, + 1,4,2,16,1,12,1,14,2,14,1,10,1,2,1,14, + 1,14,2,6,1,16,3,6,1,8,1,20,1,2,1,12, + 1,16,1,16,2,8,1,122,25,83,111,117,114,99,101,70, + 105,108,101,76,111,97,100,101,114,46,115,101,116,95,100,97, + 116,97,78,41,7,114,109,0,0,0,114,108,0,0,0,114, + 110,0,0,0,114,111,0,0,0,114,194,0,0,0,114,196, + 0,0,0,114,195,0,0,0,114,4,0,0,0,114,4,0, + 0,0,114,4,0,0,0,114,6,0,0,0,114,215,0,0, + 0,69,3,0,0,115,6,0,0,0,12,4,8,5,8,5, + 114,215,0,0,0,99,0,0,0,0,0,0,0,0,0,0, + 0,0,2,0,0,0,64,0,0,0,115,32,0,0,0,101, + 0,90,1,100,0,90,2,100,1,90,3,100,2,100,3,132, + 0,90,4,100,4,100,5,132,0,90,5,100,6,83,0,41, + 7,218,20,83,111,117,114,99,101,108,101,115,115,70,105,108, + 101,76,111,97,100,101,114,122,45,76,111,97,100,101,114,32, + 119,104,105,99,104,32,104,97,110,100,108,101,115,32,115,111, + 117,114,99,101,108,101,115,115,32,102,105,108,101,32,105,109, + 112,111,114,116,115,46,99,2,0,0,0,0,0,0,0,5, + 0,0,0,5,0,0,0,67,0,0,0,115,48,0,0,0, + 124,0,160,0,124,1,161,1,125,2,124,0,160,1,124,2, + 161,1,125,3,116,2,124,3,124,1,124,2,100,1,141,3, + 125,4,116,3,124,4,124,1,124,2,100,2,141,3,83,0, + 41,3,78,41,2,114,102,0,0,0,114,37,0,0,0,41, + 2,114,102,0,0,0,114,93,0,0,0,41,4,114,155,0, + 0,0,114,197,0,0,0,114,139,0,0,0,114,145,0,0, + 0,41,5,114,104,0,0,0,114,123,0,0,0,114,37,0, + 0,0,114,56,0,0,0,114,206,0,0,0,114,4,0,0, + 0,114,4,0,0,0,114,6,0,0,0,114,184,0,0,0, + 118,3,0,0,115,8,0,0,0,0,1,10,1,10,1,14, + 1,122,29,83,111,117,114,99,101,108,101,115,115,70,105,108, + 101,76,111,97,100,101,114,46,103,101,116,95,99,111,100,101, + 99,2,0,0,0,0,0,0,0,2,0,0,0,1,0,0, + 0,67,0,0,0,115,4,0,0,0,100,1,83,0,41,2, + 122,39,82,101,116,117,114,110,32,78,111,110,101,32,97,115, + 32,116,104,101,114,101,32,105,115,32,110,111,32,115,111,117, + 114,99,101,32,99,111,100,101,46,78,114,4,0,0,0,41, + 2,114,104,0,0,0,114,123,0,0,0,114,4,0,0,0, + 114,4,0,0,0,114,6,0,0,0,114,199,0,0,0,124, + 3,0,0,115,2,0,0,0,0,2,122,31,83,111,117,114, + 99,101,108,101,115,115,70,105,108,101,76,111,97,100,101,114, + 46,103,101,116,95,115,111,117,114,99,101,78,41,6,114,109, + 0,0,0,114,108,0,0,0,114,110,0,0,0,114,111,0, + 0,0,114,184,0,0,0,114,199,0,0,0,114,4,0,0, + 0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0, + 114,220,0,0,0,114,3,0,0,115,4,0,0,0,12,4, + 8,6,114,220,0,0,0,99,0,0,0,0,0,0,0,0, + 0,0,0,0,3,0,0,0,64,0,0,0,115,92,0,0, + 0,101,0,90,1,100,0,90,2,100,1,90,3,100,2,100, + 3,132,0,90,4,100,4,100,5,132,0,90,5,100,6,100, + 7,132,0,90,6,100,8,100,9,132,0,90,7,100,10,100, + 11,132,0,90,8,100,12,100,13,132,0,90,9,100,14,100, + 15,132,0,90,10,100,16,100,17,132,0,90,11,101,12,100, + 18,100,19,132,0,131,1,90,13,100,20,83,0,41,21,218, + 19,69,120,116,101,110,115,105,111,110,70,105,108,101,76,111, + 97,100,101,114,122,93,76,111,97,100,101,114,32,102,111,114, + 32,101,120,116,101,110,115,105,111,110,32,109,111,100,117,108, + 101,115,46,10,10,32,32,32,32,84,104,101,32,99,111,110, + 115,116,114,117,99,116,111,114,32,105,115,32,100,101,115,105, + 103,110,101,100,32,116,111,32,119,111,114,107,32,119,105,116, + 104,32,70,105,108,101,70,105,110,100,101,114,46,10,10,32, + 32,32,32,99,3,0,0,0,0,0,0,0,3,0,0,0, + 2,0,0,0,67,0,0,0,115,16,0,0,0,124,1,124, + 0,95,0,124,2,124,0,95,1,100,0,83,0,41,1,78, + 41,2,114,102,0,0,0,114,37,0,0,0,41,3,114,104, + 0,0,0,114,102,0,0,0,114,37,0,0,0,114,4,0, + 0,0,114,4,0,0,0,114,6,0,0,0,114,182,0,0, + 0,141,3,0,0,115,4,0,0,0,0,1,6,1,122,28, + 69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,97, 100,101,114,46,95,95,105,110,105,116,95,95,99,2,0,0, 0,0,0,0,0,2,0,0,0,2,0,0,0,67,0,0, 0,115,24,0,0,0,124,0,106,0,124,1,106,0,107,2, 111,22,124,0,106,1,124,1,106,1,107,2,83,0,41,1, - 78,41,2,218,9,95,95,99,108,97,115,115,95,95,114,115, - 0,0,0,41,2,114,104,0,0,0,218,5,111,116,104,101, - 114,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0, - 218,6,95,95,101,113,95,95,39,3,0,0,115,4,0,0, - 0,0,1,12,1,122,17,70,105,108,101,76,111,97,100,101, - 114,46,95,95,101,113,95,95,99,1,0,0,0,0,0,0, - 0,1,0,0,0,3,0,0,0,67,0,0,0,115,20,0, - 0,0,116,0,124,0,106,1,131,1,116,0,124,0,106,2, - 131,1,65,0,83,0,41,1,78,41,3,218,4,104,97,115, - 104,114,102,0,0,0,114,37,0,0,0,41,1,114,104,0, - 0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0, - 0,218,8,95,95,104,97,115,104,95,95,43,3,0,0,115, - 2,0,0,0,0,1,122,19,70,105,108,101,76,111,97,100, - 101,114,46,95,95,104,97,115,104,95,95,99,2,0,0,0, - 0,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0, - 115,16,0,0,0,116,0,116,1,124,0,131,2,160,2,124, - 1,161,1,83,0,41,1,122,100,76,111,97,100,32,97,32, - 109,111,100,117,108,101,32,102,114,111,109,32,97,32,102,105, - 108,101,46,10,10,32,32,32,32,32,32,32,32,84,104,105, - 115,32,109,101,116,104,111,100,32,105,115,32,100,101,112,114, - 101,99,97,116,101,100,46,32,32,85,115,101,32,101,120,101, - 99,95,109,111,100,117,108,101,40,41,32,105,110,115,116,101, - 97,100,46,10,10,32,32,32,32,32,32,32,32,41,3,218, - 5,115,117,112,101,114,114,207,0,0,0,114,190,0,0,0, - 41,2,114,104,0,0,0,114,123,0,0,0,41,1,114,208, - 0,0,0,114,4,0,0,0,114,6,0,0,0,114,190,0, - 0,0,46,3,0,0,115,2,0,0,0,0,10,122,22,70, - 105,108,101,76,111,97,100,101,114,46,108,111,97,100,95,109, - 111,100,117,108,101,99,2,0,0,0,0,0,0,0,2,0, - 0,0,1,0,0,0,67,0,0,0,115,6,0,0,0,124, - 0,106,0,83,0,41,1,122,58,82,101,116,117,114,110,32, - 116,104,101,32,112,97,116,104,32,116,111,32,116,104,101,32, - 115,111,117,114,99,101,32,102,105,108,101,32,97,115,32,102, - 111,117,110,100,32,98,121,32,116,104,101,32,102,105,110,100, - 101,114,46,41,1,114,37,0,0,0,41,2,114,104,0,0, - 0,114,123,0,0,0,114,4,0,0,0,114,4,0,0,0, - 114,6,0,0,0,114,155,0,0,0,58,3,0,0,115,2, - 0,0,0,0,3,122,23,70,105,108,101,76,111,97,100,101, - 114,46,103,101,116,95,102,105,108,101,110,97,109,101,99,2, - 0,0,0,0,0,0,0,3,0,0,0,9,0,0,0,67, - 0,0,0,115,32,0,0,0,116,0,160,1,124,1,100,1, - 161,2,143,10,125,2,124,2,160,2,161,0,83,0,81,0, - 82,0,88,0,100,2,83,0,41,3,122,39,82,101,116,117, - 114,110,32,116,104,101,32,100,97,116,97,32,102,114,111,109, - 32,112,97,116,104,32,97,115,32,114,97,119,32,98,121,116, - 101,115,46,218,1,114,78,41,3,114,52,0,0,0,114,53, - 0,0,0,90,4,114,101,97,100,41,3,114,104,0,0,0, - 114,37,0,0,0,114,57,0,0,0,114,4,0,0,0,114, - 4,0,0,0,114,6,0,0,0,114,197,0,0,0,63,3, - 0,0,115,4,0,0,0,0,2,14,1,122,19,70,105,108, - 101,76,111,97,100,101,114,46,103,101,116,95,100,97,116,97, - 41,12,114,109,0,0,0,114,108,0,0,0,114,110,0,0, - 0,114,111,0,0,0,114,182,0,0,0,114,210,0,0,0, - 114,212,0,0,0,114,120,0,0,0,114,190,0,0,0,114, - 155,0,0,0,114,197,0,0,0,90,13,95,95,99,108,97, - 115,115,99,101,108,108,95,95,114,4,0,0,0,114,4,0, - 0,0,41,1,114,208,0,0,0,114,6,0,0,0,114,207, - 0,0,0,28,3,0,0,115,14,0,0,0,8,3,4,2, - 8,6,8,4,8,3,16,12,12,5,114,207,0,0,0,99, - 0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, - 64,0,0,0,115,46,0,0,0,101,0,90,1,100,0,90, - 2,100,1,90,3,100,2,100,3,132,0,90,4,100,4,100, - 5,132,0,90,5,100,6,100,7,156,1,100,8,100,9,132, - 2,90,6,100,10,83,0,41,11,218,16,83,111,117,114,99, - 101,70,105,108,101,76,111,97,100,101,114,122,62,67,111,110, - 99,114,101,116,101,32,105,109,112,108,101,109,101,110,116,97, - 116,105,111,110,32,111,102,32,83,111,117,114,99,101,76,111, - 97,100,101,114,32,117,115,105,110,103,32,116,104,101,32,102, - 105,108,101,32,115,121,115,116,101,109,46,99,2,0,0,0, - 0,0,0,0,3,0,0,0,3,0,0,0,67,0,0,0, - 115,22,0,0,0,116,0,124,1,131,1,125,2,124,2,106, - 1,124,2,106,2,100,1,156,2,83,0,41,2,122,33,82, - 101,116,117,114,110,32,116,104,101,32,109,101,116,97,100,97, - 116,97,32,102,111,114,32,116,104,101,32,112,97,116,104,46, - 41,2,114,130,0,0,0,114,131,0,0,0,41,3,114,41, - 0,0,0,218,8,115,116,95,109,116,105,109,101,90,7,115, - 116,95,115,105,122,101,41,3,114,104,0,0,0,114,37,0, - 0,0,114,205,0,0,0,114,4,0,0,0,114,4,0,0, - 0,114,6,0,0,0,114,194,0,0,0,73,3,0,0,115, - 4,0,0,0,0,2,8,1,122,27,83,111,117,114,99,101, - 70,105,108,101,76,111,97,100,101,114,46,112,97,116,104,95, - 115,116,97,116,115,99,4,0,0,0,0,0,0,0,5,0, - 0,0,5,0,0,0,67,0,0,0,115,24,0,0,0,116, - 0,124,1,131,1,125,4,124,0,106,1,124,2,124,3,124, - 4,100,1,141,3,83,0,41,2,78,41,1,218,5,95,109, - 111,100,101,41,2,114,101,0,0,0,114,195,0,0,0,41, - 5,114,104,0,0,0,114,94,0,0,0,114,93,0,0,0, - 114,56,0,0,0,114,44,0,0,0,114,4,0,0,0,114, - 4,0,0,0,114,6,0,0,0,114,196,0,0,0,78,3, - 0,0,115,4,0,0,0,0,2,8,1,122,32,83,111,117, - 114,99,101,70,105,108,101,76,111,97,100,101,114,46,95,99, - 97,99,104,101,95,98,121,116,101,99,111,100,101,105,182,1, - 0,0,41,1,114,217,0,0,0,99,3,0,0,0,1,0, - 0,0,9,0,0,0,18,0,0,0,67,0,0,0,115,250, - 0,0,0,116,0,124,1,131,1,92,2,125,4,125,5,103, - 0,125,6,120,40,124,4,114,56,116,1,124,4,131,1,12, - 0,114,56,116,0,124,4,131,1,92,2,125,4,125,7,124, - 6,160,2,124,7,161,1,1,0,113,18,87,0,120,108,116, - 3,124,6,131,1,68,0,93,96,125,7,116,4,124,4,124, - 7,131,2,125,4,121,14,116,5,160,6,124,4,161,1,1, - 0,87,0,113,68,4,0,116,7,107,10,114,118,1,0,1, - 0,1,0,119,68,89,0,113,68,4,0,116,8,107,10,114, - 162,1,0,125,8,1,0,122,18,116,9,160,10,100,1,124, - 4,124,8,161,3,1,0,100,2,83,0,100,2,125,8,126, - 8,88,0,113,68,88,0,113,68,87,0,121,28,116,11,124, - 1,124,2,124,3,131,3,1,0,116,9,160,10,100,3,124, - 1,161,2,1,0,87,0,110,48,4,0,116,8,107,10,114, - 244,1,0,125,8,1,0,122,20,116,9,160,10,100,1,124, - 1,124,8,161,3,1,0,87,0,89,0,100,2,100,2,125, - 8,126,8,88,0,110,2,88,0,100,2,83,0,41,4,122, - 27,87,114,105,116,101,32,98,121,116,101,115,32,100,97,116, - 97,32,116,111,32,97,32,102,105,108,101,46,122,27,99,111, - 117,108,100,32,110,111,116,32,99,114,101,97,116,101,32,123, - 33,114,125,58,32,123,33,114,125,78,122,12,99,114,101,97, - 116,101,100,32,123,33,114,125,41,12,114,40,0,0,0,114, - 48,0,0,0,114,161,0,0,0,114,35,0,0,0,114,30, - 0,0,0,114,3,0,0,0,90,5,109,107,100,105,114,218, - 15,70,105,108,101,69,120,105,115,116,115,69,114,114,111,114, - 114,42,0,0,0,114,118,0,0,0,114,133,0,0,0,114, - 58,0,0,0,41,9,114,104,0,0,0,114,37,0,0,0, - 114,56,0,0,0,114,217,0,0,0,218,6,112,97,114,101, - 110,116,114,98,0,0,0,114,29,0,0,0,114,25,0,0, - 0,114,198,0,0,0,114,4,0,0,0,114,4,0,0,0, - 114,6,0,0,0,114,195,0,0,0,83,3,0,0,115,42, - 0,0,0,0,2,12,1,4,2,16,1,12,1,14,2,14, - 1,10,1,2,1,14,1,14,2,6,1,16,3,6,1,8, - 1,20,1,2,1,12,1,16,1,16,2,8,1,122,25,83, - 111,117,114,99,101,70,105,108,101,76,111,97,100,101,114,46, - 115,101,116,95,100,97,116,97,78,41,7,114,109,0,0,0, - 114,108,0,0,0,114,110,0,0,0,114,111,0,0,0,114, - 194,0,0,0,114,196,0,0,0,114,195,0,0,0,114,4, - 0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,0, - 0,0,114,215,0,0,0,69,3,0,0,115,8,0,0,0, - 8,2,4,2,8,5,8,5,114,215,0,0,0,99,0,0, - 0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,0, - 0,0,115,32,0,0,0,101,0,90,1,100,0,90,2,100, - 1,90,3,100,2,100,3,132,0,90,4,100,4,100,5,132, - 0,90,5,100,6,83,0,41,7,218,20,83,111,117,114,99, - 101,108,101,115,115,70,105,108,101,76,111,97,100,101,114,122, - 45,76,111,97,100,101,114,32,119,104,105,99,104,32,104,97, - 110,100,108,101,115,32,115,111,117,114,99,101,108,101,115,115, - 32,102,105,108,101,32,105,109,112,111,114,116,115,46,99,2, - 0,0,0,0,0,0,0,5,0,0,0,5,0,0,0,67, - 0,0,0,115,48,0,0,0,124,0,160,0,124,1,161,1, - 125,2,124,0,160,1,124,2,161,1,125,3,116,2,124,3, - 124,1,124,2,100,1,141,3,125,4,116,3,124,4,124,1, - 124,2,100,2,141,3,83,0,41,3,78,41,2,114,102,0, - 0,0,114,37,0,0,0,41,2,114,102,0,0,0,114,93, - 0,0,0,41,4,114,155,0,0,0,114,197,0,0,0,114, - 139,0,0,0,114,145,0,0,0,41,5,114,104,0,0,0, - 114,123,0,0,0,114,37,0,0,0,114,56,0,0,0,114, - 206,0,0,0,114,4,0,0,0,114,4,0,0,0,114,6, - 0,0,0,114,184,0,0,0,118,3,0,0,115,8,0,0, - 0,0,1,10,1,10,1,14,1,122,29,83,111,117,114,99, - 101,108,101,115,115,70,105,108,101,76,111,97,100,101,114,46, - 103,101,116,95,99,111,100,101,99,2,0,0,0,0,0,0, - 0,2,0,0,0,1,0,0,0,67,0,0,0,115,4,0, - 0,0,100,1,83,0,41,2,122,39,82,101,116,117,114,110, - 32,78,111,110,101,32,97,115,32,116,104,101,114,101,32,105, - 115,32,110,111,32,115,111,117,114,99,101,32,99,111,100,101, - 46,78,114,4,0,0,0,41,2,114,104,0,0,0,114,123, - 0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,0, - 0,0,114,199,0,0,0,124,3,0,0,115,2,0,0,0, - 0,2,122,31,83,111,117,114,99,101,108,101,115,115,70,105, - 108,101,76,111,97,100,101,114,46,103,101,116,95,115,111,117, - 114,99,101,78,41,6,114,109,0,0,0,114,108,0,0,0, - 114,110,0,0,0,114,111,0,0,0,114,184,0,0,0,114, - 199,0,0,0,114,4,0,0,0,114,4,0,0,0,114,4, - 0,0,0,114,6,0,0,0,114,220,0,0,0,114,3,0, - 0,115,6,0,0,0,8,2,4,2,8,6,114,220,0,0, - 0,99,0,0,0,0,0,0,0,0,0,0,0,0,3,0, - 0,0,64,0,0,0,115,92,0,0,0,101,0,90,1,100, - 0,90,2,100,1,90,3,100,2,100,3,132,0,90,4,100, - 4,100,5,132,0,90,5,100,6,100,7,132,0,90,6,100, - 8,100,9,132,0,90,7,100,10,100,11,132,0,90,8,100, - 12,100,13,132,0,90,9,100,14,100,15,132,0,90,10,100, - 16,100,17,132,0,90,11,101,12,100,18,100,19,132,0,131, - 1,90,13,100,20,83,0,41,21,218,19,69,120,116,101,110, - 115,105,111,110,70,105,108,101,76,111,97,100,101,114,122,93, - 76,111,97,100,101,114,32,102,111,114,32,101,120,116,101,110, - 115,105,111,110,32,109,111,100,117,108,101,115,46,10,10,32, - 32,32,32,84,104,101,32,99,111,110,115,116,114,117,99,116, - 111,114,32,105,115,32,100,101,115,105,103,110,101,100,32,116, - 111,32,119,111,114,107,32,119,105,116,104,32,70,105,108,101, - 70,105,110,100,101,114,46,10,10,32,32,32,32,99,3,0, - 0,0,0,0,0,0,3,0,0,0,2,0,0,0,67,0, - 0,0,115,16,0,0,0,124,1,124,0,95,0,124,2,124, - 0,95,1,100,0,83,0,41,1,78,41,2,114,102,0,0, - 0,114,37,0,0,0,41,3,114,104,0,0,0,114,102,0, - 0,0,114,37,0,0,0,114,4,0,0,0,114,4,0,0, - 0,114,6,0,0,0,114,182,0,0,0,141,3,0,0,115, - 4,0,0,0,0,1,6,1,122,28,69,120,116,101,110,115, - 105,111,110,70,105,108,101,76,111,97,100,101,114,46,95,95, - 105,110,105,116,95,95,99,2,0,0,0,0,0,0,0,2, - 0,0,0,2,0,0,0,67,0,0,0,115,24,0,0,0, - 124,0,106,0,124,1,106,0,107,2,111,22,124,0,106,1, - 124,1,106,1,107,2,83,0,41,1,78,41,2,114,208,0, - 0,0,114,115,0,0,0,41,2,114,104,0,0,0,114,209, - 0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,0, - 0,0,114,210,0,0,0,145,3,0,0,115,4,0,0,0, - 0,1,12,1,122,26,69,120,116,101,110,115,105,111,110,70, - 105,108,101,76,111,97,100,101,114,46,95,95,101,113,95,95, - 99,1,0,0,0,0,0,0,0,1,0,0,0,3,0,0, - 0,67,0,0,0,115,20,0,0,0,116,0,124,0,106,1, - 131,1,116,0,124,0,106,2,131,1,65,0,83,0,41,1, - 78,41,3,114,211,0,0,0,114,102,0,0,0,114,37,0, - 0,0,41,1,114,104,0,0,0,114,4,0,0,0,114,4, - 0,0,0,114,6,0,0,0,114,212,0,0,0,149,3,0, - 0,115,2,0,0,0,0,1,122,28,69,120,116,101,110,115, - 105,111,110,70,105,108,101,76,111,97,100,101,114,46,95,95, - 104,97,115,104,95,95,99,2,0,0,0,0,0,0,0,3, - 0,0,0,5,0,0,0,67,0,0,0,115,36,0,0,0, - 116,0,160,1,116,2,106,3,124,1,161,2,125,2,116,0, - 160,4,100,1,124,1,106,5,124,0,106,6,161,3,1,0, - 124,2,83,0,41,2,122,38,67,114,101,97,116,101,32,97, - 110,32,117,110,105,116,105,97,108,105,122,101,100,32,101,120, - 116,101,110,115,105,111,110,32,109,111,100,117,108,101,122,38, - 101,120,116,101,110,115,105,111,110,32,109,111,100,117,108,101, - 32,123,33,114,125,32,108,111,97,100,101,100,32,102,114,111, - 109,32,123,33,114,125,41,7,114,118,0,0,0,114,185,0, - 0,0,114,143,0,0,0,90,14,99,114,101,97,116,101,95, - 100,121,110,97,109,105,99,114,133,0,0,0,114,102,0,0, - 0,114,37,0,0,0,41,3,114,104,0,0,0,114,162,0, - 0,0,114,187,0,0,0,114,4,0,0,0,114,4,0,0, - 0,114,6,0,0,0,114,183,0,0,0,152,3,0,0,115, - 10,0,0,0,0,2,4,1,10,1,6,1,12,1,122,33, + 78,41,2,114,208,0,0,0,114,115,0,0,0,41,2,114, + 104,0,0,0,114,209,0,0,0,114,4,0,0,0,114,4, + 0,0,0,114,6,0,0,0,114,210,0,0,0,145,3,0, + 0,115,4,0,0,0,0,1,12,1,122,26,69,120,116,101, + 110,115,105,111,110,70,105,108,101,76,111,97,100,101,114,46, + 95,95,101,113,95,95,99,1,0,0,0,0,0,0,0,1, + 0,0,0,3,0,0,0,67,0,0,0,115,20,0,0,0, + 116,0,124,0,106,1,131,1,116,0,124,0,106,2,131,1, + 65,0,83,0,41,1,78,41,3,114,211,0,0,0,114,102, + 0,0,0,114,37,0,0,0,41,1,114,104,0,0,0,114, + 4,0,0,0,114,4,0,0,0,114,6,0,0,0,114,212, + 0,0,0,149,3,0,0,115,2,0,0,0,0,1,122,28, 69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,97, - 100,101,114,46,99,114,101,97,116,101,95,109,111,100,117,108, - 101,99,2,0,0,0,0,0,0,0,2,0,0,0,5,0, - 0,0,67,0,0,0,115,36,0,0,0,116,0,160,1,116, - 2,106,3,124,1,161,2,1,0,116,0,160,4,100,1,124, - 0,106,5,124,0,106,6,161,3,1,0,100,2,83,0,41, - 3,122,30,73,110,105,116,105,97,108,105,122,101,32,97,110, - 32,101,120,116,101,110,115,105,111,110,32,109,111,100,117,108, - 101,122,40,101,120,116,101,110,115,105,111,110,32,109,111,100, - 117,108,101,32,123,33,114,125,32,101,120,101,99,117,116,101, - 100,32,102,114,111,109,32,123,33,114,125,78,41,7,114,118, - 0,0,0,114,185,0,0,0,114,143,0,0,0,90,12,101, - 120,101,99,95,100,121,110,97,109,105,99,114,133,0,0,0, - 114,102,0,0,0,114,37,0,0,0,41,2,114,104,0,0, - 0,114,187,0,0,0,114,4,0,0,0,114,4,0,0,0, - 114,6,0,0,0,114,188,0,0,0,160,3,0,0,115,6, - 0,0,0,0,2,14,1,6,1,122,31,69,120,116,101,110, - 115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,101, - 120,101,99,95,109,111,100,117,108,101,99,2,0,0,0,0, - 0,0,0,2,0,0,0,4,0,0,0,3,0,0,0,115, - 36,0,0,0,116,0,124,0,106,1,131,1,100,1,25,0, - 137,0,116,2,135,0,102,1,100,2,100,3,132,8,116,3, - 68,0,131,1,131,1,83,0,41,4,122,49,82,101,116,117, - 114,110,32,84,114,117,101,32,105,102,32,116,104,101,32,101, - 120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,32, - 105,115,32,97,32,112,97,99,107,97,103,101,46,114,31,0, - 0,0,99,1,0,0,0,0,0,0,0,2,0,0,0,4, - 0,0,0,51,0,0,0,115,26,0,0,0,124,0,93,18, - 125,1,136,0,100,0,124,1,23,0,107,2,86,0,1,0, - 113,2,100,1,83,0,41,2,114,182,0,0,0,78,114,4, - 0,0,0,41,2,114,24,0,0,0,218,6,115,117,102,102, - 105,120,41,1,218,9,102,105,108,101,95,110,97,109,101,114, - 4,0,0,0,114,6,0,0,0,250,9,60,103,101,110,101, - 120,112,114,62,169,3,0,0,115,2,0,0,0,4,1,122, - 49,69,120,116,101,110,115,105,111,110,70,105,108,101,76,111, - 97,100,101,114,46,105,115,95,112,97,99,107,97,103,101,46, - 60,108,111,99,97,108,115,62,46,60,103,101,110,101,120,112, - 114,62,41,4,114,40,0,0,0,114,37,0,0,0,218,3, - 97,110,121,218,18,69,88,84,69,78,83,73,79,78,95,83, - 85,70,70,73,88,69,83,41,2,114,104,0,0,0,114,123, - 0,0,0,114,4,0,0,0,41,1,114,223,0,0,0,114, - 6,0,0,0,114,157,0,0,0,166,3,0,0,115,6,0, - 0,0,0,2,14,1,12,1,122,30,69,120,116,101,110,115, - 105,111,110,70,105,108,101,76,111,97,100,101,114,46,105,115, - 95,112,97,99,107,97,103,101,99,2,0,0,0,0,0,0, - 0,2,0,0,0,1,0,0,0,67,0,0,0,115,4,0, - 0,0,100,1,83,0,41,2,122,63,82,101,116,117,114,110, - 32,78,111,110,101,32,97,115,32,97,110,32,101,120,116,101, - 110,115,105,111,110,32,109,111,100,117,108,101,32,99,97,110, - 110,111,116,32,99,114,101,97,116,101,32,97,32,99,111,100, - 101,32,111,98,106,101,99,116,46,78,114,4,0,0,0,41, - 2,114,104,0,0,0,114,123,0,0,0,114,4,0,0,0, - 114,4,0,0,0,114,6,0,0,0,114,184,0,0,0,172, - 3,0,0,115,2,0,0,0,0,2,122,28,69,120,116,101, - 110,115,105,111,110,70,105,108,101,76,111,97,100,101,114,46, - 103,101,116,95,99,111,100,101,99,2,0,0,0,0,0,0, - 0,2,0,0,0,1,0,0,0,67,0,0,0,115,4,0, - 0,0,100,1,83,0,41,2,122,53,82,101,116,117,114,110, - 32,78,111,110,101,32,97,115,32,101,120,116,101,110,115,105, - 111,110,32,109,111,100,117,108,101,115,32,104,97,118,101,32, - 110,111,32,115,111,117,114,99,101,32,99,111,100,101,46,78, + 100,101,114,46,95,95,104,97,115,104,95,95,99,2,0,0, + 0,0,0,0,0,3,0,0,0,5,0,0,0,67,0,0, + 0,115,36,0,0,0,116,0,160,1,116,2,106,3,124,1, + 161,2,125,2,116,0,160,4,100,1,124,1,106,5,124,0, + 106,6,161,3,1,0,124,2,83,0,41,2,122,38,67,114, + 101,97,116,101,32,97,110,32,117,110,105,116,105,97,108,105, + 122,101,100,32,101,120,116,101,110,115,105,111,110,32,109,111, + 100,117,108,101,122,38,101,120,116,101,110,115,105,111,110,32, + 109,111,100,117,108,101,32,123,33,114,125,32,108,111,97,100, + 101,100,32,102,114,111,109,32,123,33,114,125,41,7,114,118, + 0,0,0,114,185,0,0,0,114,143,0,0,0,90,14,99, + 114,101,97,116,101,95,100,121,110,97,109,105,99,114,133,0, + 0,0,114,102,0,0,0,114,37,0,0,0,41,3,114,104, + 0,0,0,114,162,0,0,0,114,187,0,0,0,114,4,0, + 0,0,114,4,0,0,0,114,6,0,0,0,114,183,0,0, + 0,152,3,0,0,115,10,0,0,0,0,2,4,1,10,1, + 6,1,12,1,122,33,69,120,116,101,110,115,105,111,110,70, + 105,108,101,76,111,97,100,101,114,46,99,114,101,97,116,101, + 95,109,111,100,117,108,101,99,2,0,0,0,0,0,0,0, + 2,0,0,0,5,0,0,0,67,0,0,0,115,36,0,0, + 0,116,0,160,1,116,2,106,3,124,1,161,2,1,0,116, + 0,160,4,100,1,124,0,106,5,124,0,106,6,161,3,1, + 0,100,2,83,0,41,3,122,30,73,110,105,116,105,97,108, + 105,122,101,32,97,110,32,101,120,116,101,110,115,105,111,110, + 32,109,111,100,117,108,101,122,40,101,120,116,101,110,115,105, + 111,110,32,109,111,100,117,108,101,32,123,33,114,125,32,101, + 120,101,99,117,116,101,100,32,102,114,111,109,32,123,33,114, + 125,78,41,7,114,118,0,0,0,114,185,0,0,0,114,143, + 0,0,0,90,12,101,120,101,99,95,100,121,110,97,109,105, + 99,114,133,0,0,0,114,102,0,0,0,114,37,0,0,0, + 41,2,114,104,0,0,0,114,187,0,0,0,114,4,0,0, + 0,114,4,0,0,0,114,6,0,0,0,114,188,0,0,0, + 160,3,0,0,115,6,0,0,0,0,2,14,1,6,1,122, + 31,69,120,116,101,110,115,105,111,110,70,105,108,101,76,111, + 97,100,101,114,46,101,120,101,99,95,109,111,100,117,108,101, + 99,2,0,0,0,0,0,0,0,2,0,0,0,4,0,0, + 0,3,0,0,0,115,36,0,0,0,116,0,124,0,106,1, + 131,1,100,1,25,0,137,0,116,2,135,0,102,1,100,2, + 100,3,132,8,116,3,68,0,131,1,131,1,83,0,41,4, + 122,49,82,101,116,117,114,110,32,84,114,117,101,32,105,102, + 32,116,104,101,32,101,120,116,101,110,115,105,111,110,32,109, + 111,100,117,108,101,32,105,115,32,97,32,112,97,99,107,97, + 103,101,46,114,31,0,0,0,99,1,0,0,0,0,0,0, + 0,2,0,0,0,4,0,0,0,51,0,0,0,115,26,0, + 0,0,124,0,93,18,125,1,136,0,100,0,124,1,23,0, + 107,2,86,0,1,0,113,2,100,1,83,0,41,2,114,182, + 0,0,0,78,114,4,0,0,0,41,2,114,24,0,0,0, + 218,6,115,117,102,102,105,120,41,1,218,9,102,105,108,101, + 95,110,97,109,101,114,4,0,0,0,114,6,0,0,0,250, + 9,60,103,101,110,101,120,112,114,62,169,3,0,0,115,2, + 0,0,0,4,1,122,49,69,120,116,101,110,115,105,111,110, + 70,105,108,101,76,111,97,100,101,114,46,105,115,95,112,97, + 99,107,97,103,101,46,60,108,111,99,97,108,115,62,46,60, + 103,101,110,101,120,112,114,62,41,4,114,40,0,0,0,114, + 37,0,0,0,218,3,97,110,121,218,18,69,88,84,69,78, + 83,73,79,78,95,83,85,70,70,73,88,69,83,41,2,114, + 104,0,0,0,114,123,0,0,0,114,4,0,0,0,41,1, + 114,223,0,0,0,114,6,0,0,0,114,157,0,0,0,166, + 3,0,0,115,6,0,0,0,0,2,14,1,12,1,122,30, + 69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,97, + 100,101,114,46,105,115,95,112,97,99,107,97,103,101,99,2, + 0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,67, + 0,0,0,115,4,0,0,0,100,1,83,0,41,2,122,63, + 82,101,116,117,114,110,32,78,111,110,101,32,97,115,32,97, + 110,32,101,120,116,101,110,115,105,111,110,32,109,111,100,117, + 108,101,32,99,97,110,110,111,116,32,99,114,101,97,116,101, + 32,97,32,99,111,100,101,32,111,98,106,101,99,116,46,78, 114,4,0,0,0,41,2,114,104,0,0,0,114,123,0,0, 0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0, - 114,199,0,0,0,176,3,0,0,115,2,0,0,0,0,2, - 122,30,69,120,116,101,110,115,105,111,110,70,105,108,101,76, - 111,97,100,101,114,46,103,101,116,95,115,111,117,114,99,101, - 99,2,0,0,0,0,0,0,0,2,0,0,0,1,0,0, - 0,67,0,0,0,115,6,0,0,0,124,0,106,0,83,0, - 41,1,122,58,82,101,116,117,114,110,32,116,104,101,32,112, - 97,116,104,32,116,111,32,116,104,101,32,115,111,117,114,99, - 101,32,102,105,108,101,32,97,115,32,102,111,117,110,100,32, - 98,121,32,116,104,101,32,102,105,110,100,101,114,46,41,1, - 114,37,0,0,0,41,2,114,104,0,0,0,114,123,0,0, - 0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0, - 114,155,0,0,0,180,3,0,0,115,2,0,0,0,0,3, - 122,32,69,120,116,101,110,115,105,111,110,70,105,108,101,76, - 111,97,100,101,114,46,103,101,116,95,102,105,108,101,110,97, - 109,101,78,41,14,114,109,0,0,0,114,108,0,0,0,114, - 110,0,0,0,114,111,0,0,0,114,182,0,0,0,114,210, - 0,0,0,114,212,0,0,0,114,183,0,0,0,114,188,0, - 0,0,114,157,0,0,0,114,184,0,0,0,114,199,0,0, - 0,114,120,0,0,0,114,155,0,0,0,114,4,0,0,0, - 114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,114, - 221,0,0,0,133,3,0,0,115,20,0,0,0,8,6,4, - 2,8,4,8,4,8,3,8,8,8,6,8,6,8,4,8, - 4,114,221,0,0,0,99,0,0,0,0,0,0,0,0,0, - 0,0,0,2,0,0,0,64,0,0,0,115,96,0,0,0, - 101,0,90,1,100,0,90,2,100,1,90,3,100,2,100,3, - 132,0,90,4,100,4,100,5,132,0,90,5,100,6,100,7, - 132,0,90,6,100,8,100,9,132,0,90,7,100,10,100,11, - 132,0,90,8,100,12,100,13,132,0,90,9,100,14,100,15, - 132,0,90,10,100,16,100,17,132,0,90,11,100,18,100,19, - 132,0,90,12,100,20,100,21,132,0,90,13,100,22,83,0, - 41,23,218,14,95,78,97,109,101,115,112,97,99,101,80,97, - 116,104,97,38,1,0,0,82,101,112,114,101,115,101,110,116, - 115,32,97,32,110,97,109,101,115,112,97,99,101,32,112,97, - 99,107,97,103,101,39,115,32,112,97,116,104,46,32,32,73, - 116,32,117,115,101,115,32,116,104,101,32,109,111,100,117,108, - 101,32,110,97,109,101,10,32,32,32,32,116,111,32,102,105, - 110,100,32,105,116,115,32,112,97,114,101,110,116,32,109,111, - 100,117,108,101,44,32,97,110,100,32,102,114,111,109,32,116, - 104,101,114,101,32,105,116,32,108,111,111,107,115,32,117,112, - 32,116,104,101,32,112,97,114,101,110,116,39,115,10,32,32, - 32,32,95,95,112,97,116,104,95,95,46,32,32,87,104,101, - 110,32,116,104,105,115,32,99,104,97,110,103,101,115,44,32, - 116,104,101,32,109,111,100,117,108,101,39,115,32,111,119,110, - 32,112,97,116,104,32,105,115,32,114,101,99,111,109,112,117, - 116,101,100,44,10,32,32,32,32,117,115,105,110,103,32,112, - 97,116,104,95,102,105,110,100,101,114,46,32,32,70,111,114, - 32,116,111,112,45,108,101,118,101,108,32,109,111,100,117,108, - 101,115,44,32,116,104,101,32,112,97,114,101,110,116,32,109, - 111,100,117,108,101,39,115,32,112,97,116,104,10,32,32,32, - 32,105,115,32,115,121,115,46,112,97,116,104,46,99,4,0, - 0,0,0,0,0,0,4,0,0,0,3,0,0,0,67,0, - 0,0,115,36,0,0,0,124,1,124,0,95,0,124,2,124, - 0,95,1,116,2,124,0,160,3,161,0,131,1,124,0,95, - 4,124,3,124,0,95,5,100,0,83,0,41,1,78,41,6, - 218,5,95,110,97,109,101,218,5,95,112,97,116,104,114,97, - 0,0,0,218,16,95,103,101,116,95,112,97,114,101,110,116, - 95,112,97,116,104,218,17,95,108,97,115,116,95,112,97,114, - 101,110,116,95,112,97,116,104,218,12,95,112,97,116,104,95, - 102,105,110,100,101,114,41,4,114,104,0,0,0,114,102,0, - 0,0,114,37,0,0,0,218,11,112,97,116,104,95,102,105, - 110,100,101,114,114,4,0,0,0,114,4,0,0,0,114,6, - 0,0,0,114,182,0,0,0,193,3,0,0,115,8,0,0, - 0,0,1,6,1,6,1,14,1,122,23,95,78,97,109,101, - 115,112,97,99,101,80,97,116,104,46,95,95,105,110,105,116, - 95,95,99,1,0,0,0,0,0,0,0,4,0,0,0,3, - 0,0,0,67,0,0,0,115,38,0,0,0,124,0,106,0, - 160,1,100,1,161,1,92,3,125,1,125,2,125,3,124,2, - 100,2,107,2,114,30,100,6,83,0,124,1,100,5,102,2, - 83,0,41,7,122,62,82,101,116,117,114,110,115,32,97,32, - 116,117,112,108,101,32,111,102,32,40,112,97,114,101,110,116, - 45,109,111,100,117,108,101,45,110,97,109,101,44,32,112,97, - 114,101,110,116,45,112,97,116,104,45,97,116,116,114,45,110, - 97,109,101,41,114,61,0,0,0,114,32,0,0,0,114,8, - 0,0,0,114,37,0,0,0,90,8,95,95,112,97,116,104, - 95,95,41,2,114,8,0,0,0,114,37,0,0,0,41,2, - 114,228,0,0,0,114,34,0,0,0,41,4,114,104,0,0, - 0,114,219,0,0,0,218,3,100,111,116,90,2,109,101,114, - 4,0,0,0,114,4,0,0,0,114,6,0,0,0,218,23, - 95,102,105,110,100,95,112,97,114,101,110,116,95,112,97,116, - 104,95,110,97,109,101,115,199,3,0,0,115,8,0,0,0, - 0,2,18,1,8,2,4,3,122,38,95,78,97,109,101,115, - 112,97,99,101,80,97,116,104,46,95,102,105,110,100,95,112, - 97,114,101,110,116,95,112,97,116,104,95,110,97,109,101,115, - 99,1,0,0,0,0,0,0,0,3,0,0,0,3,0,0, - 0,67,0,0,0,115,28,0,0,0,124,0,160,0,161,0, - 92,2,125,1,125,2,116,1,116,2,106,3,124,1,25,0, - 124,2,131,2,83,0,41,1,78,41,4,114,235,0,0,0, - 114,114,0,0,0,114,8,0,0,0,218,7,109,111,100,117, - 108,101,115,41,3,114,104,0,0,0,90,18,112,97,114,101, - 110,116,95,109,111,100,117,108,101,95,110,97,109,101,90,14, - 112,97,116,104,95,97,116,116,114,95,110,97,109,101,114,4, - 0,0,0,114,4,0,0,0,114,6,0,0,0,114,230,0, - 0,0,209,3,0,0,115,4,0,0,0,0,1,12,1,122, - 31,95,78,97,109,101,115,112,97,99,101,80,97,116,104,46, - 95,103,101,116,95,112,97,114,101,110,116,95,112,97,116,104, - 99,1,0,0,0,0,0,0,0,3,0,0,0,4,0,0, - 0,67,0,0,0,115,80,0,0,0,116,0,124,0,160,1, - 161,0,131,1,125,1,124,1,124,0,106,2,107,3,114,74, - 124,0,160,3,124,0,106,4,124,1,161,2,125,2,124,2, - 100,0,107,9,114,68,124,2,106,5,100,0,107,8,114,68, - 124,2,106,6,114,68,124,2,106,6,124,0,95,7,124,1, - 124,0,95,2,124,0,106,7,83,0,41,1,78,41,8,114, - 97,0,0,0,114,230,0,0,0,114,231,0,0,0,114,232, - 0,0,0,114,228,0,0,0,114,124,0,0,0,114,154,0, - 0,0,114,229,0,0,0,41,3,114,104,0,0,0,90,11, - 112,97,114,101,110,116,95,112,97,116,104,114,162,0,0,0, - 114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,218, - 12,95,114,101,99,97,108,99,117,108,97,116,101,213,3,0, - 0,115,16,0,0,0,0,2,12,1,10,1,14,3,18,1, - 6,1,8,1,6,1,122,27,95,78,97,109,101,115,112,97, - 99,101,80,97,116,104,46,95,114,101,99,97,108,99,117,108, - 97,116,101,99,1,0,0,0,0,0,0,0,1,0,0,0, - 3,0,0,0,67,0,0,0,115,12,0,0,0,116,0,124, - 0,160,1,161,0,131,1,83,0,41,1,78,41,2,218,4, - 105,116,101,114,114,237,0,0,0,41,1,114,104,0,0,0, - 114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,218, - 8,95,95,105,116,101,114,95,95,226,3,0,0,115,2,0, - 0,0,0,1,122,23,95,78,97,109,101,115,112,97,99,101, - 80,97,116,104,46,95,95,105,116,101,114,95,95,99,3,0, - 0,0,0,0,0,0,3,0,0,0,3,0,0,0,67,0, - 0,0,115,14,0,0,0,124,2,124,0,106,0,124,1,60, - 0,100,0,83,0,41,1,78,41,1,114,229,0,0,0,41, - 3,114,104,0,0,0,218,5,105,110,100,101,120,114,37,0, - 0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0, - 0,218,11,95,95,115,101,116,105,116,101,109,95,95,229,3, - 0,0,115,2,0,0,0,0,1,122,26,95,78,97,109,101, - 115,112,97,99,101,80,97,116,104,46,95,95,115,101,116,105, - 116,101,109,95,95,99,1,0,0,0,0,0,0,0,1,0, - 0,0,3,0,0,0,67,0,0,0,115,12,0,0,0,116, - 0,124,0,160,1,161,0,131,1,83,0,41,1,78,41,2, - 114,33,0,0,0,114,237,0,0,0,41,1,114,104,0,0, - 0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0, - 218,7,95,95,108,101,110,95,95,232,3,0,0,115,2,0, - 0,0,0,1,122,22,95,78,97,109,101,115,112,97,99,101, - 80,97,116,104,46,95,95,108,101,110,95,95,99,1,0,0, - 0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,0, - 0,115,12,0,0,0,100,1,160,0,124,0,106,1,161,1, - 83,0,41,2,78,122,20,95,78,97,109,101,115,112,97,99, - 101,80,97,116,104,40,123,33,114,125,41,41,2,114,50,0, - 0,0,114,229,0,0,0,41,1,114,104,0,0,0,114,4, - 0,0,0,114,4,0,0,0,114,6,0,0,0,218,8,95, - 95,114,101,112,114,95,95,235,3,0,0,115,2,0,0,0, - 0,1,122,23,95,78,97,109,101,115,112,97,99,101,80,97, - 116,104,46,95,95,114,101,112,114,95,95,99,2,0,0,0, - 0,0,0,0,2,0,0,0,3,0,0,0,67,0,0,0, - 115,12,0,0,0,124,1,124,0,160,0,161,0,107,6,83, - 0,41,1,78,41,1,114,237,0,0,0,41,2,114,104,0, - 0,0,218,4,105,116,101,109,114,4,0,0,0,114,4,0, - 0,0,114,6,0,0,0,218,12,95,95,99,111,110,116,97, - 105,110,115,95,95,238,3,0,0,115,2,0,0,0,0,1, - 122,27,95,78,97,109,101,115,112,97,99,101,80,97,116,104, - 46,95,95,99,111,110,116,97,105,110,115,95,95,99,2,0, - 0,0,0,0,0,0,2,0,0,0,3,0,0,0,67,0, - 0,0,115,16,0,0,0,124,0,106,0,160,1,124,1,161, - 1,1,0,100,0,83,0,41,1,78,41,2,114,229,0,0, - 0,114,161,0,0,0,41,2,114,104,0,0,0,114,244,0, - 0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0, - 0,114,161,0,0,0,241,3,0,0,115,2,0,0,0,0, - 1,122,21,95,78,97,109,101,115,112,97,99,101,80,97,116, - 104,46,97,112,112,101,110,100,78,41,14,114,109,0,0,0, + 114,184,0,0,0,172,3,0,0,115,2,0,0,0,0,2, + 122,28,69,120,116,101,110,115,105,111,110,70,105,108,101,76, + 111,97,100,101,114,46,103,101,116,95,99,111,100,101,99,2, + 0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,67, + 0,0,0,115,4,0,0,0,100,1,83,0,41,2,122,53, + 82,101,116,117,114,110,32,78,111,110,101,32,97,115,32,101, + 120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,115, + 32,104,97,118,101,32,110,111,32,115,111,117,114,99,101,32, + 99,111,100,101,46,78,114,4,0,0,0,41,2,114,104,0, + 0,0,114,123,0,0,0,114,4,0,0,0,114,4,0,0, + 0,114,6,0,0,0,114,199,0,0,0,176,3,0,0,115, + 2,0,0,0,0,2,122,30,69,120,116,101,110,115,105,111, + 110,70,105,108,101,76,111,97,100,101,114,46,103,101,116,95, + 115,111,117,114,99,101,99,2,0,0,0,0,0,0,0,2, + 0,0,0,1,0,0,0,67,0,0,0,115,6,0,0,0, + 124,0,106,0,83,0,41,1,122,58,82,101,116,117,114,110, + 32,116,104,101,32,112,97,116,104,32,116,111,32,116,104,101, + 32,115,111,117,114,99,101,32,102,105,108,101,32,97,115,32, + 102,111,117,110,100,32,98,121,32,116,104,101,32,102,105,110, + 100,101,114,46,41,1,114,37,0,0,0,41,2,114,104,0, + 0,0,114,123,0,0,0,114,4,0,0,0,114,4,0,0, + 0,114,6,0,0,0,114,155,0,0,0,180,3,0,0,115, + 2,0,0,0,0,3,122,32,69,120,116,101,110,115,105,111, + 110,70,105,108,101,76,111,97,100,101,114,46,103,101,116,95, + 102,105,108,101,110,97,109,101,78,41,14,114,109,0,0,0, 114,108,0,0,0,114,110,0,0,0,114,111,0,0,0,114, - 182,0,0,0,114,235,0,0,0,114,230,0,0,0,114,237, - 0,0,0,114,239,0,0,0,114,241,0,0,0,114,242,0, - 0,0,114,243,0,0,0,114,245,0,0,0,114,161,0,0, + 182,0,0,0,114,210,0,0,0,114,212,0,0,0,114,183, + 0,0,0,114,188,0,0,0,114,157,0,0,0,114,184,0, + 0,0,114,199,0,0,0,114,120,0,0,0,114,155,0,0, 0,114,4,0,0,0,114,4,0,0,0,114,4,0,0,0, - 114,6,0,0,0,114,227,0,0,0,186,3,0,0,115,22, - 0,0,0,8,5,4,2,8,6,8,10,8,4,8,13,8, - 3,8,3,8,3,8,3,8,3,114,227,0,0,0,99,0, - 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,64, - 0,0,0,115,80,0,0,0,101,0,90,1,100,0,90,2, - 100,1,100,2,132,0,90,3,101,4,100,3,100,4,132,0, - 131,1,90,5,100,5,100,6,132,0,90,6,100,7,100,8, - 132,0,90,7,100,9,100,10,132,0,90,8,100,11,100,12, - 132,0,90,9,100,13,100,14,132,0,90,10,100,15,100,16, - 132,0,90,11,100,17,83,0,41,18,218,16,95,78,97,109, - 101,115,112,97,99,101,76,111,97,100,101,114,99,4,0,0, - 0,0,0,0,0,4,0,0,0,4,0,0,0,67,0,0, - 0,115,18,0,0,0,116,0,124,1,124,2,124,3,131,3, - 124,0,95,1,100,0,83,0,41,1,78,41,2,114,227,0, - 0,0,114,229,0,0,0,41,4,114,104,0,0,0,114,102, - 0,0,0,114,37,0,0,0,114,233,0,0,0,114,4,0, - 0,0,114,4,0,0,0,114,6,0,0,0,114,182,0,0, - 0,247,3,0,0,115,2,0,0,0,0,1,122,25,95,78, - 97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,95, - 95,105,110,105,116,95,95,99,2,0,0,0,0,0,0,0, - 2,0,0,0,3,0,0,0,67,0,0,0,115,12,0,0, - 0,100,1,160,0,124,1,106,1,161,1,83,0,41,2,122, - 115,82,101,116,117,114,110,32,114,101,112,114,32,102,111,114, - 32,116,104,101,32,109,111,100,117,108,101,46,10,10,32,32, - 32,32,32,32,32,32,84,104,101,32,109,101,116,104,111,100, - 32,105,115,32,100,101,112,114,101,99,97,116,101,100,46,32, - 32,84,104,101,32,105,109,112,111,114,116,32,109,97,99,104, - 105,110,101,114,121,32,100,111,101,115,32,116,104,101,32,106, - 111,98,32,105,116,115,101,108,102,46,10,10,32,32,32,32, - 32,32,32,32,122,25,60,109,111,100,117,108,101,32,123,33, - 114,125,32,40,110,97,109,101,115,112,97,99,101,41,62,41, - 2,114,50,0,0,0,114,109,0,0,0,41,2,114,168,0, - 0,0,114,187,0,0,0,114,4,0,0,0,114,4,0,0, - 0,114,6,0,0,0,218,11,109,111,100,117,108,101,95,114, - 101,112,114,250,3,0,0,115,2,0,0,0,0,7,122,28, - 95,78,97,109,101,115,112,97,99,101,76,111,97,100,101,114, - 46,109,111,100,117,108,101,95,114,101,112,114,99,2,0,0, - 0,0,0,0,0,2,0,0,0,1,0,0,0,67,0,0, - 0,115,4,0,0,0,100,1,83,0,41,2,78,84,114,4, - 0,0,0,41,2,114,104,0,0,0,114,123,0,0,0,114, - 4,0,0,0,114,4,0,0,0,114,6,0,0,0,114,157, - 0,0,0,3,4,0,0,115,2,0,0,0,0,1,122,27, - 95,78,97,109,101,115,112,97,99,101,76,111,97,100,101,114, - 46,105,115,95,112,97,99,107,97,103,101,99,2,0,0,0, - 0,0,0,0,2,0,0,0,1,0,0,0,67,0,0,0, - 115,4,0,0,0,100,1,83,0,41,2,78,114,32,0,0, - 0,114,4,0,0,0,41,2,114,104,0,0,0,114,123,0, + 114,6,0,0,0,114,221,0,0,0,133,3,0,0,115,18, + 0,0,0,12,8,8,4,8,4,8,3,8,8,8,6,8, + 6,8,4,8,4,114,221,0,0,0,99,0,0,0,0,0, + 0,0,0,0,0,0,0,2,0,0,0,64,0,0,0,115, + 96,0,0,0,101,0,90,1,100,0,90,2,100,1,90,3, + 100,2,100,3,132,0,90,4,100,4,100,5,132,0,90,5, + 100,6,100,7,132,0,90,6,100,8,100,9,132,0,90,7, + 100,10,100,11,132,0,90,8,100,12,100,13,132,0,90,9, + 100,14,100,15,132,0,90,10,100,16,100,17,132,0,90,11, + 100,18,100,19,132,0,90,12,100,20,100,21,132,0,90,13, + 100,22,83,0,41,23,218,14,95,78,97,109,101,115,112,97, + 99,101,80,97,116,104,97,38,1,0,0,82,101,112,114,101, + 115,101,110,116,115,32,97,32,110,97,109,101,115,112,97,99, + 101,32,112,97,99,107,97,103,101,39,115,32,112,97,116,104, + 46,32,32,73,116,32,117,115,101,115,32,116,104,101,32,109, + 111,100,117,108,101,32,110,97,109,101,10,32,32,32,32,116, + 111,32,102,105,110,100,32,105,116,115,32,112,97,114,101,110, + 116,32,109,111,100,117,108,101,44,32,97,110,100,32,102,114, + 111,109,32,116,104,101,114,101,32,105,116,32,108,111,111,107, + 115,32,117,112,32,116,104,101,32,112,97,114,101,110,116,39, + 115,10,32,32,32,32,95,95,112,97,116,104,95,95,46,32, + 32,87,104,101,110,32,116,104,105,115,32,99,104,97,110,103, + 101,115,44,32,116,104,101,32,109,111,100,117,108,101,39,115, + 32,111,119,110,32,112,97,116,104,32,105,115,32,114,101,99, + 111,109,112,117,116,101,100,44,10,32,32,32,32,117,115,105, + 110,103,32,112,97,116,104,95,102,105,110,100,101,114,46,32, + 32,70,111,114,32,116,111,112,45,108,101,118,101,108,32,109, + 111,100,117,108,101,115,44,32,116,104,101,32,112,97,114,101, + 110,116,32,109,111,100,117,108,101,39,115,32,112,97,116,104, + 10,32,32,32,32,105,115,32,115,121,115,46,112,97,116,104, + 46,99,4,0,0,0,0,0,0,0,4,0,0,0,3,0, + 0,0,67,0,0,0,115,36,0,0,0,124,1,124,0,95, + 0,124,2,124,0,95,1,116,2,124,0,160,3,161,0,131, + 1,124,0,95,4,124,3,124,0,95,5,100,0,83,0,41, + 1,78,41,6,218,5,95,110,97,109,101,218,5,95,112,97, + 116,104,114,97,0,0,0,218,16,95,103,101,116,95,112,97, + 114,101,110,116,95,112,97,116,104,218,17,95,108,97,115,116, + 95,112,97,114,101,110,116,95,112,97,116,104,218,12,95,112, + 97,116,104,95,102,105,110,100,101,114,41,4,114,104,0,0, + 0,114,102,0,0,0,114,37,0,0,0,218,11,112,97,116, + 104,95,102,105,110,100,101,114,114,4,0,0,0,114,4,0, + 0,0,114,6,0,0,0,114,182,0,0,0,193,3,0,0, + 115,8,0,0,0,0,1,6,1,6,1,14,1,122,23,95, + 78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,95, + 105,110,105,116,95,95,99,1,0,0,0,0,0,0,0,4, + 0,0,0,3,0,0,0,67,0,0,0,115,38,0,0,0, + 124,0,106,0,160,1,100,1,161,1,92,3,125,1,125,2, + 125,3,124,2,100,2,107,2,114,30,100,6,83,0,124,1, + 100,5,102,2,83,0,41,7,122,62,82,101,116,117,114,110, + 115,32,97,32,116,117,112,108,101,32,111,102,32,40,112,97, + 114,101,110,116,45,109,111,100,117,108,101,45,110,97,109,101, + 44,32,112,97,114,101,110,116,45,112,97,116,104,45,97,116, + 116,114,45,110,97,109,101,41,114,61,0,0,0,114,32,0, + 0,0,114,8,0,0,0,114,37,0,0,0,90,8,95,95, + 112,97,116,104,95,95,41,2,114,8,0,0,0,114,37,0, + 0,0,41,2,114,228,0,0,0,114,34,0,0,0,41,4, + 114,104,0,0,0,114,219,0,0,0,218,3,100,111,116,90, + 2,109,101,114,4,0,0,0,114,4,0,0,0,114,6,0, + 0,0,218,23,95,102,105,110,100,95,112,97,114,101,110,116, + 95,112,97,116,104,95,110,97,109,101,115,199,3,0,0,115, + 8,0,0,0,0,2,18,1,8,2,4,3,122,38,95,78, + 97,109,101,115,112,97,99,101,80,97,116,104,46,95,102,105, + 110,100,95,112,97,114,101,110,116,95,112,97,116,104,95,110, + 97,109,101,115,99,1,0,0,0,0,0,0,0,3,0,0, + 0,3,0,0,0,67,0,0,0,115,28,0,0,0,124,0, + 160,0,161,0,92,2,125,1,125,2,116,1,116,2,106,3, + 124,1,25,0,124,2,131,2,83,0,41,1,78,41,4,114, + 235,0,0,0,114,114,0,0,0,114,8,0,0,0,218,7, + 109,111,100,117,108,101,115,41,3,114,104,0,0,0,90,18, + 112,97,114,101,110,116,95,109,111,100,117,108,101,95,110,97, + 109,101,90,14,112,97,116,104,95,97,116,116,114,95,110,97, + 109,101,114,4,0,0,0,114,4,0,0,0,114,6,0,0, + 0,114,230,0,0,0,209,3,0,0,115,4,0,0,0,0, + 1,12,1,122,31,95,78,97,109,101,115,112,97,99,101,80, + 97,116,104,46,95,103,101,116,95,112,97,114,101,110,116,95, + 112,97,116,104,99,1,0,0,0,0,0,0,0,3,0,0, + 0,4,0,0,0,67,0,0,0,115,80,0,0,0,116,0, + 124,0,160,1,161,0,131,1,125,1,124,1,124,0,106,2, + 107,3,114,74,124,0,160,3,124,0,106,4,124,1,161,2, + 125,2,124,2,100,0,107,9,114,68,124,2,106,5,100,0, + 107,8,114,68,124,2,106,6,114,68,124,2,106,6,124,0, + 95,7,124,1,124,0,95,2,124,0,106,7,83,0,41,1, + 78,41,8,114,97,0,0,0,114,230,0,0,0,114,231,0, + 0,0,114,232,0,0,0,114,228,0,0,0,114,124,0,0, + 0,114,154,0,0,0,114,229,0,0,0,41,3,114,104,0, + 0,0,90,11,112,97,114,101,110,116,95,112,97,116,104,114, + 162,0,0,0,114,4,0,0,0,114,4,0,0,0,114,6, + 0,0,0,218,12,95,114,101,99,97,108,99,117,108,97,116, + 101,213,3,0,0,115,16,0,0,0,0,2,12,1,10,1, + 14,3,18,1,6,1,8,1,6,1,122,27,95,78,97,109, + 101,115,112,97,99,101,80,97,116,104,46,95,114,101,99,97, + 108,99,117,108,97,116,101,99,1,0,0,0,0,0,0,0, + 1,0,0,0,3,0,0,0,67,0,0,0,115,12,0,0, + 0,116,0,124,0,160,1,161,0,131,1,83,0,41,1,78, + 41,2,218,4,105,116,101,114,114,237,0,0,0,41,1,114, + 104,0,0,0,114,4,0,0,0,114,4,0,0,0,114,6, + 0,0,0,218,8,95,95,105,116,101,114,95,95,226,3,0, + 0,115,2,0,0,0,0,1,122,23,95,78,97,109,101,115, + 112,97,99,101,80,97,116,104,46,95,95,105,116,101,114,95, + 95,99,3,0,0,0,0,0,0,0,3,0,0,0,3,0, + 0,0,67,0,0,0,115,14,0,0,0,124,2,124,0,106, + 0,124,1,60,0,100,0,83,0,41,1,78,41,1,114,229, + 0,0,0,41,3,114,104,0,0,0,218,5,105,110,100,101, + 120,114,37,0,0,0,114,4,0,0,0,114,4,0,0,0, + 114,6,0,0,0,218,11,95,95,115,101,116,105,116,101,109, + 95,95,229,3,0,0,115,2,0,0,0,0,1,122,26,95, + 78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,95, + 115,101,116,105,116,101,109,95,95,99,1,0,0,0,0,0, + 0,0,1,0,0,0,3,0,0,0,67,0,0,0,115,12, + 0,0,0,116,0,124,0,160,1,161,0,131,1,83,0,41, + 1,78,41,2,114,33,0,0,0,114,237,0,0,0,41,1, + 114,104,0,0,0,114,4,0,0,0,114,4,0,0,0,114, + 6,0,0,0,218,7,95,95,108,101,110,95,95,232,3,0, + 0,115,2,0,0,0,0,1,122,22,95,78,97,109,101,115, + 112,97,99,101,80,97,116,104,46,95,95,108,101,110,95,95, + 99,1,0,0,0,0,0,0,0,1,0,0,0,3,0,0, + 0,67,0,0,0,115,12,0,0,0,100,1,160,0,124,0, + 106,1,161,1,83,0,41,2,78,122,20,95,78,97,109,101, + 115,112,97,99,101,80,97,116,104,40,123,33,114,125,41,41, + 2,114,50,0,0,0,114,229,0,0,0,41,1,114,104,0, 0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0, - 0,114,199,0,0,0,6,4,0,0,115,2,0,0,0,0, - 1,122,27,95,78,97,109,101,115,112,97,99,101,76,111,97, - 100,101,114,46,103,101,116,95,115,111,117,114,99,101,99,2, - 0,0,0,0,0,0,0,2,0,0,0,6,0,0,0,67, - 0,0,0,115,16,0,0,0,116,0,100,1,100,2,100,3, - 100,4,100,5,141,4,83,0,41,6,78,114,32,0,0,0, - 122,8,60,115,116,114,105,110,103,62,114,186,0,0,0,84, - 41,1,114,201,0,0,0,41,1,114,202,0,0,0,41,2, - 114,104,0,0,0,114,123,0,0,0,114,4,0,0,0,114, - 4,0,0,0,114,6,0,0,0,114,184,0,0,0,9,4, - 0,0,115,2,0,0,0,0,1,122,25,95,78,97,109,101, - 115,112,97,99,101,76,111,97,100,101,114,46,103,101,116,95, - 99,111,100,101,99,2,0,0,0,0,0,0,0,2,0,0, - 0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,1, - 83,0,41,2,122,42,85,115,101,32,100,101,102,97,117,108, - 116,32,115,101,109,97,110,116,105,99,115,32,102,111,114,32, - 109,111,100,117,108,101,32,99,114,101,97,116,105,111,110,46, - 78,114,4,0,0,0,41,2,114,104,0,0,0,114,162,0, - 0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0, - 0,114,183,0,0,0,12,4,0,0,115,0,0,0,0,122, - 30,95,78,97,109,101,115,112,97,99,101,76,111,97,100,101, - 114,46,99,114,101,97,116,101,95,109,111,100,117,108,101,99, - 2,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0, - 67,0,0,0,115,4,0,0,0,100,0,83,0,41,1,78, - 114,4,0,0,0,41,2,114,104,0,0,0,114,187,0,0, + 0,218,8,95,95,114,101,112,114,95,95,235,3,0,0,115, + 2,0,0,0,0,1,122,23,95,78,97,109,101,115,112,97, + 99,101,80,97,116,104,46,95,95,114,101,112,114,95,95,99, + 2,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0, + 67,0,0,0,115,12,0,0,0,124,1,124,0,160,0,161, + 0,107,6,83,0,41,1,78,41,1,114,237,0,0,0,41, + 2,114,104,0,0,0,218,4,105,116,101,109,114,4,0,0, + 0,114,4,0,0,0,114,6,0,0,0,218,12,95,95,99, + 111,110,116,97,105,110,115,95,95,238,3,0,0,115,2,0, + 0,0,0,1,122,27,95,78,97,109,101,115,112,97,99,101, + 80,97,116,104,46,95,95,99,111,110,116,97,105,110,115,95, + 95,99,2,0,0,0,0,0,0,0,2,0,0,0,3,0, + 0,0,67,0,0,0,115,16,0,0,0,124,0,106,0,160, + 1,124,1,161,1,1,0,100,0,83,0,41,1,78,41,2, + 114,229,0,0,0,114,161,0,0,0,41,2,114,104,0,0, + 0,114,244,0,0,0,114,4,0,0,0,114,4,0,0,0, + 114,6,0,0,0,114,161,0,0,0,241,3,0,0,115,2, + 0,0,0,0,1,122,21,95,78,97,109,101,115,112,97,99, + 101,80,97,116,104,46,97,112,112,101,110,100,78,41,14,114, + 109,0,0,0,114,108,0,0,0,114,110,0,0,0,114,111, + 0,0,0,114,182,0,0,0,114,235,0,0,0,114,230,0, + 0,0,114,237,0,0,0,114,239,0,0,0,114,241,0,0, + 0,114,242,0,0,0,114,243,0,0,0,114,245,0,0,0, + 114,161,0,0,0,114,4,0,0,0,114,4,0,0,0,114, + 4,0,0,0,114,6,0,0,0,114,227,0,0,0,186,3, + 0,0,115,20,0,0,0,12,7,8,6,8,10,8,4,8, + 13,8,3,8,3,8,3,8,3,8,3,114,227,0,0,0, + 99,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0, + 0,64,0,0,0,115,80,0,0,0,101,0,90,1,100,0, + 90,2,100,1,100,2,132,0,90,3,101,4,100,3,100,4, + 132,0,131,1,90,5,100,5,100,6,132,0,90,6,100,7, + 100,8,132,0,90,7,100,9,100,10,132,0,90,8,100,11, + 100,12,132,0,90,9,100,13,100,14,132,0,90,10,100,15, + 100,16,132,0,90,11,100,17,83,0,41,18,218,16,95,78, + 97,109,101,115,112,97,99,101,76,111,97,100,101,114,99,4, + 0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,67, + 0,0,0,115,18,0,0,0,116,0,124,1,124,2,124,3, + 131,3,124,0,95,1,100,0,83,0,41,1,78,41,2,114, + 227,0,0,0,114,229,0,0,0,41,4,114,104,0,0,0, + 114,102,0,0,0,114,37,0,0,0,114,233,0,0,0,114, + 4,0,0,0,114,4,0,0,0,114,6,0,0,0,114,182, + 0,0,0,247,3,0,0,115,2,0,0,0,0,1,122,25, + 95,78,97,109,101,115,112,97,99,101,76,111,97,100,101,114, + 46,95,95,105,110,105,116,95,95,99,2,0,0,0,0,0, + 0,0,2,0,0,0,3,0,0,0,67,0,0,0,115,12, + 0,0,0,100,1,160,0,124,1,106,1,161,1,83,0,41, + 2,122,115,82,101,116,117,114,110,32,114,101,112,114,32,102, + 111,114,32,116,104,101,32,109,111,100,117,108,101,46,10,10, + 32,32,32,32,32,32,32,32,84,104,101,32,109,101,116,104, + 111,100,32,105,115,32,100,101,112,114,101,99,97,116,101,100, + 46,32,32,84,104,101,32,105,109,112,111,114,116,32,109,97, + 99,104,105,110,101,114,121,32,100,111,101,115,32,116,104,101, + 32,106,111,98,32,105,116,115,101,108,102,46,10,10,32,32, + 32,32,32,32,32,32,122,25,60,109,111,100,117,108,101,32, + 123,33,114,125,32,40,110,97,109,101,115,112,97,99,101,41, + 62,41,2,114,50,0,0,0,114,109,0,0,0,41,2,114, + 168,0,0,0,114,187,0,0,0,114,4,0,0,0,114,4, + 0,0,0,114,6,0,0,0,218,11,109,111,100,117,108,101, + 95,114,101,112,114,250,3,0,0,115,2,0,0,0,0,7, + 122,28,95,78,97,109,101,115,112,97,99,101,76,111,97,100, + 101,114,46,109,111,100,117,108,101,95,114,101,112,114,99,2, + 0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,67, + 0,0,0,115,4,0,0,0,100,1,83,0,41,2,78,84, + 114,4,0,0,0,41,2,114,104,0,0,0,114,123,0,0, 0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0, - 114,188,0,0,0,15,4,0,0,115,2,0,0,0,0,1, - 122,28,95,78,97,109,101,115,112,97,99,101,76,111,97,100, - 101,114,46,101,120,101,99,95,109,111,100,117,108,101,99,2, - 0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,67, - 0,0,0,115,26,0,0,0,116,0,160,1,100,1,124,0, - 106,2,161,2,1,0,116,0,160,3,124,0,124,1,161,2, - 83,0,41,2,122,98,76,111,97,100,32,97,32,110,97,109, - 101,115,112,97,99,101,32,109,111,100,117,108,101,46,10,10, - 32,32,32,32,32,32,32,32,84,104,105,115,32,109,101,116, - 104,111,100,32,105,115,32,100,101,112,114,101,99,97,116,101, - 100,46,32,32,85,115,101,32,101,120,101,99,95,109,111,100, - 117,108,101,40,41,32,105,110,115,116,101,97,100,46,10,10, - 32,32,32,32,32,32,32,32,122,38,110,97,109,101,115,112, - 97,99,101,32,109,111,100,117,108,101,32,108,111,97,100,101, - 100,32,119,105,116,104,32,112,97,116,104,32,123,33,114,125, - 41,4,114,118,0,0,0,114,133,0,0,0,114,229,0,0, - 0,114,189,0,0,0,41,2,114,104,0,0,0,114,123,0, + 114,157,0,0,0,3,4,0,0,115,2,0,0,0,0,1, + 122,27,95,78,97,109,101,115,112,97,99,101,76,111,97,100, + 101,114,46,105,115,95,112,97,99,107,97,103,101,99,2,0, + 0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,0, + 0,0,115,4,0,0,0,100,1,83,0,41,2,78,114,32, + 0,0,0,114,4,0,0,0,41,2,114,104,0,0,0,114, + 123,0,0,0,114,4,0,0,0,114,4,0,0,0,114,6, + 0,0,0,114,199,0,0,0,6,4,0,0,115,2,0,0, + 0,0,1,122,27,95,78,97,109,101,115,112,97,99,101,76, + 111,97,100,101,114,46,103,101,116,95,115,111,117,114,99,101, + 99,2,0,0,0,0,0,0,0,2,0,0,0,6,0,0, + 0,67,0,0,0,115,16,0,0,0,116,0,100,1,100,2, + 100,3,100,4,100,5,141,4,83,0,41,6,78,114,32,0, + 0,0,122,8,60,115,116,114,105,110,103,62,114,186,0,0, + 0,84,41,1,114,201,0,0,0,41,1,114,202,0,0,0, + 41,2,114,104,0,0,0,114,123,0,0,0,114,4,0,0, + 0,114,4,0,0,0,114,6,0,0,0,114,184,0,0,0, + 9,4,0,0,115,2,0,0,0,0,1,122,25,95,78,97, + 109,101,115,112,97,99,101,76,111,97,100,101,114,46,103,101, + 116,95,99,111,100,101,99,2,0,0,0,0,0,0,0,2, + 0,0,0,1,0,0,0,67,0,0,0,115,4,0,0,0, + 100,1,83,0,41,2,122,42,85,115,101,32,100,101,102,97, + 117,108,116,32,115,101,109,97,110,116,105,99,115,32,102,111, + 114,32,109,111,100,117,108,101,32,99,114,101,97,116,105,111, + 110,46,78,114,4,0,0,0,41,2,114,104,0,0,0,114, + 162,0,0,0,114,4,0,0,0,114,4,0,0,0,114,6, + 0,0,0,114,183,0,0,0,12,4,0,0,115,0,0,0, + 0,122,30,95,78,97,109,101,115,112,97,99,101,76,111,97, + 100,101,114,46,99,114,101,97,116,101,95,109,111,100,117,108, + 101,99,2,0,0,0,0,0,0,0,2,0,0,0,1,0, + 0,0,67,0,0,0,115,4,0,0,0,100,0,83,0,41, + 1,78,114,4,0,0,0,41,2,114,104,0,0,0,114,187, + 0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,0, + 0,0,114,188,0,0,0,15,4,0,0,115,2,0,0,0, + 0,1,122,28,95,78,97,109,101,115,112,97,99,101,76,111, + 97,100,101,114,46,101,120,101,99,95,109,111,100,117,108,101, + 99,2,0,0,0,0,0,0,0,2,0,0,0,4,0,0, + 0,67,0,0,0,115,26,0,0,0,116,0,160,1,100,1, + 124,0,106,2,161,2,1,0,116,0,160,3,124,0,124,1, + 161,2,83,0,41,2,122,98,76,111,97,100,32,97,32,110, + 97,109,101,115,112,97,99,101,32,109,111,100,117,108,101,46, + 10,10,32,32,32,32,32,32,32,32,84,104,105,115,32,109, + 101,116,104,111,100,32,105,115,32,100,101,112,114,101,99,97, + 116,101,100,46,32,32,85,115,101,32,101,120,101,99,95,109, + 111,100,117,108,101,40,41,32,105,110,115,116,101,97,100,46, + 10,10,32,32,32,32,32,32,32,32,122,38,110,97,109,101, + 115,112,97,99,101,32,109,111,100,117,108,101,32,108,111,97, + 100,101,100,32,119,105,116,104,32,112,97,116,104,32,123,33, + 114,125,41,4,114,118,0,0,0,114,133,0,0,0,114,229, + 0,0,0,114,189,0,0,0,41,2,114,104,0,0,0,114, + 123,0,0,0,114,4,0,0,0,114,4,0,0,0,114,6, + 0,0,0,114,190,0,0,0,18,4,0,0,115,6,0,0, + 0,0,7,6,1,8,1,122,28,95,78,97,109,101,115,112, + 97,99,101,76,111,97,100,101,114,46,108,111,97,100,95,109, + 111,100,117,108,101,78,41,12,114,109,0,0,0,114,108,0, + 0,0,114,110,0,0,0,114,182,0,0,0,114,180,0,0, + 0,114,247,0,0,0,114,157,0,0,0,114,199,0,0,0, + 114,184,0,0,0,114,183,0,0,0,114,188,0,0,0,114, + 190,0,0,0,114,4,0,0,0,114,4,0,0,0,114,4, + 0,0,0,114,6,0,0,0,114,246,0,0,0,246,3,0, + 0,115,16,0,0,0,8,1,8,3,12,9,8,3,8,3, + 8,3,8,3,8,3,114,246,0,0,0,99,0,0,0,0, + 0,0,0,0,0,0,0,0,4,0,0,0,64,0,0,0, + 115,106,0,0,0,101,0,90,1,100,0,90,2,100,1,90, + 3,101,4,100,2,100,3,132,0,131,1,90,5,101,4,100, + 4,100,5,132,0,131,1,90,6,101,4,100,6,100,7,132, + 0,131,1,90,7,101,4,100,8,100,9,132,0,131,1,90, + 8,101,4,100,17,100,11,100,12,132,1,131,1,90,9,101, + 4,100,18,100,13,100,14,132,1,131,1,90,10,101,4,100, + 19,100,15,100,16,132,1,131,1,90,11,100,10,83,0,41, + 20,218,10,80,97,116,104,70,105,110,100,101,114,122,62,77, + 101,116,97,32,112,97,116,104,32,102,105,110,100,101,114,32, + 102,111,114,32,115,121,115,46,112,97,116,104,32,97,110,100, + 32,112,97,99,107,97,103,101,32,95,95,112,97,116,104,95, + 95,32,97,116,116,114,105,98,117,116,101,115,46,99,1,0, + 0,0,0,0,0,0,2,0,0,0,4,0,0,0,67,0, + 0,0,115,42,0,0,0,120,36,116,0,106,1,160,2,161, + 0,68,0,93,22,125,1,116,3,124,1,100,1,131,2,114, + 12,124,1,160,4,161,0,1,0,113,12,87,0,100,2,83, + 0,41,3,122,125,67,97,108,108,32,116,104,101,32,105,110, + 118,97,108,105,100,97,116,101,95,99,97,99,104,101,115,40, + 41,32,109,101,116,104,111,100,32,111,110,32,97,108,108,32, + 112,97,116,104,32,101,110,116,114,121,32,102,105,110,100,101, + 114,115,10,32,32,32,32,32,32,32,32,115,116,111,114,101, + 100,32,105,110,32,115,121,115,46,112,97,116,104,95,105,109, + 112,111,114,116,101,114,95,99,97,99,104,101,115,32,40,119, + 104,101,114,101,32,105,109,112,108,101,109,101,110,116,101,100, + 41,46,218,17,105,110,118,97,108,105,100,97,116,101,95,99, + 97,99,104,101,115,78,41,5,114,8,0,0,0,218,19,112, + 97,116,104,95,105,109,112,111,114,116,101,114,95,99,97,99, + 104,101,218,6,118,97,108,117,101,115,114,112,0,0,0,114, + 249,0,0,0,41,2,114,168,0,0,0,218,6,102,105,110, + 100,101,114,114,4,0,0,0,114,4,0,0,0,114,6,0, + 0,0,114,249,0,0,0,36,4,0,0,115,6,0,0,0, + 0,4,16,1,10,1,122,28,80,97,116,104,70,105,110,100, + 101,114,46,105,110,118,97,108,105,100,97,116,101,95,99,97, + 99,104,101,115,99,2,0,0,0,0,0,0,0,3,0,0, + 0,12,0,0,0,67,0,0,0,115,86,0,0,0,116,0, + 106,1,100,1,107,9,114,30,116,0,106,1,12,0,114,30, + 116,2,160,3,100,2,116,4,161,2,1,0,120,50,116,0, + 106,1,68,0,93,36,125,2,121,8,124,2,124,1,131,1, + 83,0,4,0,116,5,107,10,114,72,1,0,1,0,1,0, + 119,38,89,0,113,38,88,0,113,38,87,0,100,1,83,0, + 100,1,83,0,41,3,122,46,83,101,97,114,99,104,32,115, + 121,115,46,112,97,116,104,95,104,111,111,107,115,32,102,111, + 114,32,97,32,102,105,110,100,101,114,32,102,111,114,32,39, + 112,97,116,104,39,46,78,122,23,115,121,115,46,112,97,116, + 104,95,104,111,111,107,115,32,105,115,32,101,109,112,116,121, + 41,6,114,8,0,0,0,218,10,112,97,116,104,95,104,111, + 111,107,115,114,63,0,0,0,114,64,0,0,0,114,122,0, + 0,0,114,103,0,0,0,41,3,114,168,0,0,0,114,37, + 0,0,0,90,4,104,111,111,107,114,4,0,0,0,114,4, + 0,0,0,114,6,0,0,0,218,11,95,112,97,116,104,95, + 104,111,111,107,115,44,4,0,0,115,16,0,0,0,0,3, + 18,1,12,1,12,1,2,1,8,1,14,1,12,2,122,22, + 80,97,116,104,70,105,110,100,101,114,46,95,112,97,116,104, + 95,104,111,111,107,115,99,2,0,0,0,0,0,0,0,3, + 0,0,0,19,0,0,0,67,0,0,0,115,102,0,0,0, + 124,1,100,1,107,2,114,42,121,12,116,0,160,1,161,0, + 125,1,87,0,110,20,4,0,116,2,107,10,114,40,1,0, + 1,0,1,0,100,2,83,0,88,0,121,14,116,3,106,4, + 124,1,25,0,125,2,87,0,110,40,4,0,116,5,107,10, + 114,96,1,0,1,0,1,0,124,0,160,6,124,1,161,1, + 125,2,124,2,116,3,106,4,124,1,60,0,89,0,110,2, + 88,0,124,2,83,0,41,3,122,210,71,101,116,32,116,104, + 101,32,102,105,110,100,101,114,32,102,111,114,32,116,104,101, + 32,112,97,116,104,32,101,110,116,114,121,32,102,114,111,109, + 32,115,121,115,46,112,97,116,104,95,105,109,112,111,114,116, + 101,114,95,99,97,99,104,101,46,10,10,32,32,32,32,32, + 32,32,32,73,102,32,116,104,101,32,112,97,116,104,32,101, + 110,116,114,121,32,105,115,32,110,111,116,32,105,110,32,116, + 104,101,32,99,97,99,104,101,44,32,102,105,110,100,32,116, + 104,101,32,97,112,112,114,111,112,114,105,97,116,101,32,102, + 105,110,100,101,114,10,32,32,32,32,32,32,32,32,97,110, + 100,32,99,97,99,104,101,32,105,116,46,32,73,102,32,110, + 111,32,102,105,110,100,101,114,32,105,115,32,97,118,97,105, + 108,97,98,108,101,44,32,115,116,111,114,101,32,78,111,110, + 101,46,10,10,32,32,32,32,32,32,32,32,114,32,0,0, + 0,78,41,7,114,3,0,0,0,114,47,0,0,0,218,17, + 70,105,108,101,78,111,116,70,111,117,110,100,69,114,114,111, + 114,114,8,0,0,0,114,250,0,0,0,114,135,0,0,0, + 114,254,0,0,0,41,3,114,168,0,0,0,114,37,0,0, + 0,114,252,0,0,0,114,4,0,0,0,114,4,0,0,0, + 114,6,0,0,0,218,20,95,112,97,116,104,95,105,109,112, + 111,114,116,101,114,95,99,97,99,104,101,57,4,0,0,115, + 22,0,0,0,0,8,8,1,2,1,12,1,14,3,6,1, + 2,1,14,1,14,1,10,1,16,1,122,31,80,97,116,104, + 70,105,110,100,101,114,46,95,112,97,116,104,95,105,109,112, + 111,114,116,101,114,95,99,97,99,104,101,99,3,0,0,0, + 0,0,0,0,6,0,0,0,4,0,0,0,67,0,0,0, + 115,82,0,0,0,116,0,124,2,100,1,131,2,114,26,124, + 2,160,1,124,1,161,1,92,2,125,3,125,4,110,14,124, + 2,160,2,124,1,161,1,125,3,103,0,125,4,124,3,100, + 0,107,9,114,60,116,3,160,4,124,1,124,3,161,2,83, + 0,116,3,160,5,124,1,100,0,161,2,125,5,124,4,124, + 5,95,6,124,5,83,0,41,2,78,114,121,0,0,0,41, + 7,114,112,0,0,0,114,121,0,0,0,114,179,0,0,0, + 114,118,0,0,0,114,176,0,0,0,114,158,0,0,0,114, + 154,0,0,0,41,6,114,168,0,0,0,114,123,0,0,0, + 114,252,0,0,0,114,124,0,0,0,114,125,0,0,0,114, + 162,0,0,0,114,4,0,0,0,114,4,0,0,0,114,6, + 0,0,0,218,16,95,108,101,103,97,99,121,95,103,101,116, + 95,115,112,101,99,79,4,0,0,115,18,0,0,0,0,4, + 10,1,16,2,10,1,4,1,8,1,12,1,12,1,6,1, + 122,27,80,97,116,104,70,105,110,100,101,114,46,95,108,101, + 103,97,99,121,95,103,101,116,95,115,112,101,99,78,99,4, + 0,0,0,0,0,0,0,9,0,0,0,5,0,0,0,67, + 0,0,0,115,170,0,0,0,103,0,125,4,120,160,124,2, + 68,0,93,130,125,5,116,0,124,5,116,1,116,2,102,2, + 131,2,115,30,113,10,124,0,160,3,124,5,161,1,125,6, + 124,6,100,1,107,9,114,10,116,4,124,6,100,2,131,2, + 114,72,124,6,160,5,124,1,124,3,161,2,125,7,110,12, + 124,0,160,6,124,1,124,6,161,2,125,7,124,7,100,1, + 107,8,114,94,113,10,124,7,106,7,100,1,107,9,114,108, + 124,7,83,0,124,7,106,8,125,8,124,8,100,1,107,8, + 114,130,116,9,100,3,131,1,130,1,124,4,160,10,124,8, + 161,1,1,0,113,10,87,0,116,11,160,12,124,1,100,1, + 161,2,125,7,124,4,124,7,95,8,124,7,83,0,100,1, + 83,0,41,4,122,63,70,105,110,100,32,116,104,101,32,108, + 111,97,100,101,114,32,111,114,32,110,97,109,101,115,112,97, + 99,101,95,112,97,116,104,32,102,111,114,32,116,104,105,115, + 32,109,111,100,117,108,101,47,112,97,99,107,97,103,101,32, + 110,97,109,101,46,78,114,178,0,0,0,122,19,115,112,101, + 99,32,109,105,115,115,105,110,103,32,108,111,97,100,101,114, + 41,13,114,141,0,0,0,114,73,0,0,0,218,5,98,121, + 116,101,115,114,0,1,0,0,114,112,0,0,0,114,178,0, + 0,0,114,1,1,0,0,114,124,0,0,0,114,154,0,0, + 0,114,103,0,0,0,114,147,0,0,0,114,118,0,0,0, + 114,158,0,0,0,41,9,114,168,0,0,0,114,123,0,0, + 0,114,37,0,0,0,114,177,0,0,0,218,14,110,97,109, + 101,115,112,97,99,101,95,112,97,116,104,90,5,101,110,116, + 114,121,114,252,0,0,0,114,162,0,0,0,114,125,0,0, + 0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0, + 218,9,95,103,101,116,95,115,112,101,99,94,4,0,0,115, + 40,0,0,0,0,5,4,1,10,1,14,1,2,1,10,1, + 8,1,10,1,14,2,12,1,8,1,2,1,10,1,4,1, + 6,1,8,1,8,5,14,2,12,1,6,1,122,20,80,97, + 116,104,70,105,110,100,101,114,46,95,103,101,116,95,115,112, + 101,99,99,4,0,0,0,0,0,0,0,6,0,0,0,5, + 0,0,0,67,0,0,0,115,100,0,0,0,124,2,100,1, + 107,8,114,14,116,0,106,1,125,2,124,0,160,2,124,1, + 124,2,124,3,161,3,125,4,124,4,100,1,107,8,114,40, + 100,1,83,0,124,4,106,3,100,1,107,8,114,92,124,4, + 106,4,125,5,124,5,114,86,100,2,124,4,95,5,116,6, + 124,1,124,5,124,0,106,2,131,3,124,4,95,4,124,4, + 83,0,100,1,83,0,110,4,124,4,83,0,100,1,83,0, + 41,3,122,141,84,114,121,32,116,111,32,102,105,110,100,32, + 97,32,115,112,101,99,32,102,111,114,32,39,102,117,108,108, + 110,97,109,101,39,32,111,110,32,115,121,115,46,112,97,116, + 104,32,111,114,32,39,112,97,116,104,39,46,10,10,32,32, + 32,32,32,32,32,32,84,104,101,32,115,101,97,114,99,104, + 32,105,115,32,98,97,115,101,100,32,111,110,32,115,121,115, + 46,112,97,116,104,95,104,111,111,107,115,32,97,110,100,32, + 115,121,115,46,112,97,116,104,95,105,109,112,111,114,116,101, + 114,95,99,97,99,104,101,46,10,32,32,32,32,32,32,32, + 32,78,90,9,110,97,109,101,115,112,97,99,101,41,7,114, + 8,0,0,0,114,37,0,0,0,114,4,1,0,0,114,124, + 0,0,0,114,154,0,0,0,114,156,0,0,0,114,227,0, + 0,0,41,6,114,168,0,0,0,114,123,0,0,0,114,37, + 0,0,0,114,177,0,0,0,114,162,0,0,0,114,3,1, 0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0, - 0,114,190,0,0,0,18,4,0,0,115,6,0,0,0,0, - 7,6,1,8,1,122,28,95,78,97,109,101,115,112,97,99, - 101,76,111,97,100,101,114,46,108,111,97,100,95,109,111,100, - 117,108,101,78,41,12,114,109,0,0,0,114,108,0,0,0, - 114,110,0,0,0,114,182,0,0,0,114,180,0,0,0,114, - 247,0,0,0,114,157,0,0,0,114,199,0,0,0,114,184, - 0,0,0,114,183,0,0,0,114,188,0,0,0,114,190,0, - 0,0,114,4,0,0,0,114,4,0,0,0,114,4,0,0, - 0,114,6,0,0,0,114,246,0,0,0,246,3,0,0,115, - 16,0,0,0,8,1,8,3,12,9,8,3,8,3,8,3, - 8,3,8,3,114,246,0,0,0,99,0,0,0,0,0,0, - 0,0,0,0,0,0,4,0,0,0,64,0,0,0,115,106, - 0,0,0,101,0,90,1,100,0,90,2,100,1,90,3,101, - 4,100,2,100,3,132,0,131,1,90,5,101,4,100,4,100, - 5,132,0,131,1,90,6,101,4,100,6,100,7,132,0,131, - 1,90,7,101,4,100,8,100,9,132,0,131,1,90,8,101, - 4,100,17,100,11,100,12,132,1,131,1,90,9,101,4,100, - 18,100,13,100,14,132,1,131,1,90,10,101,4,100,19,100, - 15,100,16,132,1,131,1,90,11,100,10,83,0,41,20,218, - 10,80,97,116,104,70,105,110,100,101,114,122,62,77,101,116, - 97,32,112,97,116,104,32,102,105,110,100,101,114,32,102,111, - 114,32,115,121,115,46,112,97,116,104,32,97,110,100,32,112, - 97,99,107,97,103,101,32,95,95,112,97,116,104,95,95,32, - 97,116,116,114,105,98,117,116,101,115,46,99,1,0,0,0, - 0,0,0,0,2,0,0,0,4,0,0,0,67,0,0,0, - 115,42,0,0,0,120,36,116,0,106,1,160,2,161,0,68, - 0,93,22,125,1,116,3,124,1,100,1,131,2,114,12,124, - 1,160,4,161,0,1,0,113,12,87,0,100,2,83,0,41, - 3,122,125,67,97,108,108,32,116,104,101,32,105,110,118,97, - 108,105,100,97,116,101,95,99,97,99,104,101,115,40,41,32, - 109,101,116,104,111,100,32,111,110,32,97,108,108,32,112,97, - 116,104,32,101,110,116,114,121,32,102,105,110,100,101,114,115, - 10,32,32,32,32,32,32,32,32,115,116,111,114,101,100,32, - 105,110,32,115,121,115,46,112,97,116,104,95,105,109,112,111, - 114,116,101,114,95,99,97,99,104,101,115,32,40,119,104,101, - 114,101,32,105,109,112,108,101,109,101,110,116,101,100,41,46, - 218,17,105,110,118,97,108,105,100,97,116,101,95,99,97,99, - 104,101,115,78,41,5,114,8,0,0,0,218,19,112,97,116, - 104,95,105,109,112,111,114,116,101,114,95,99,97,99,104,101, - 218,6,118,97,108,117,101,115,114,112,0,0,0,114,249,0, - 0,0,41,2,114,168,0,0,0,218,6,102,105,110,100,101, - 114,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0, - 114,249,0,0,0,36,4,0,0,115,6,0,0,0,0,4, - 16,1,10,1,122,28,80,97,116,104,70,105,110,100,101,114, - 46,105,110,118,97,108,105,100,97,116,101,95,99,97,99,104, - 101,115,99,2,0,0,0,0,0,0,0,3,0,0,0,12, - 0,0,0,67,0,0,0,115,86,0,0,0,116,0,106,1, - 100,1,107,9,114,30,116,0,106,1,12,0,114,30,116,2, - 160,3,100,2,116,4,161,2,1,0,120,50,116,0,106,1, - 68,0,93,36,125,2,121,8,124,2,124,1,131,1,83,0, - 4,0,116,5,107,10,114,72,1,0,1,0,1,0,119,38, - 89,0,113,38,88,0,113,38,87,0,100,1,83,0,100,1, - 83,0,41,3,122,46,83,101,97,114,99,104,32,115,121,115, - 46,112,97,116,104,95,104,111,111,107,115,32,102,111,114,32, - 97,32,102,105,110,100,101,114,32,102,111,114,32,39,112,97, - 116,104,39,46,78,122,23,115,121,115,46,112,97,116,104,95, - 104,111,111,107,115,32,105,115,32,101,109,112,116,121,41,6, - 114,8,0,0,0,218,10,112,97,116,104,95,104,111,111,107, - 115,114,63,0,0,0,114,64,0,0,0,114,122,0,0,0, - 114,103,0,0,0,41,3,114,168,0,0,0,114,37,0,0, - 0,90,4,104,111,111,107,114,4,0,0,0,114,4,0,0, - 0,114,6,0,0,0,218,11,95,112,97,116,104,95,104,111, - 111,107,115,44,4,0,0,115,16,0,0,0,0,3,18,1, - 12,1,12,1,2,1,8,1,14,1,12,2,122,22,80,97, - 116,104,70,105,110,100,101,114,46,95,112,97,116,104,95,104, - 111,111,107,115,99,2,0,0,0,0,0,0,0,3,0,0, - 0,19,0,0,0,67,0,0,0,115,102,0,0,0,124,1, - 100,1,107,2,114,42,121,12,116,0,160,1,161,0,125,1, - 87,0,110,20,4,0,116,2,107,10,114,40,1,0,1,0, - 1,0,100,2,83,0,88,0,121,14,116,3,106,4,124,1, - 25,0,125,2,87,0,110,40,4,0,116,5,107,10,114,96, - 1,0,1,0,1,0,124,0,160,6,124,1,161,1,125,2, - 124,2,116,3,106,4,124,1,60,0,89,0,110,2,88,0, - 124,2,83,0,41,3,122,210,71,101,116,32,116,104,101,32, - 102,105,110,100,101,114,32,102,111,114,32,116,104,101,32,112, - 97,116,104,32,101,110,116,114,121,32,102,114,111,109,32,115, - 121,115,46,112,97,116,104,95,105,109,112,111,114,116,101,114, - 95,99,97,99,104,101,46,10,10,32,32,32,32,32,32,32, - 32,73,102,32,116,104,101,32,112,97,116,104,32,101,110,116, - 114,121,32,105,115,32,110,111,116,32,105,110,32,116,104,101, - 32,99,97,99,104,101,44,32,102,105,110,100,32,116,104,101, - 32,97,112,112,114,111,112,114,105,97,116,101,32,102,105,110, - 100,101,114,10,32,32,32,32,32,32,32,32,97,110,100,32, - 99,97,99,104,101,32,105,116,46,32,73,102,32,110,111,32, - 102,105,110,100,101,114,32,105,115,32,97,118,97,105,108,97, - 98,108,101,44,32,115,116,111,114,101,32,78,111,110,101,46, - 10,10,32,32,32,32,32,32,32,32,114,32,0,0,0,78, - 41,7,114,3,0,0,0,114,47,0,0,0,218,17,70,105, - 108,101,78,111,116,70,111,117,110,100,69,114,114,111,114,114, - 8,0,0,0,114,250,0,0,0,114,135,0,0,0,114,254, - 0,0,0,41,3,114,168,0,0,0,114,37,0,0,0,114, - 252,0,0,0,114,4,0,0,0,114,4,0,0,0,114,6, - 0,0,0,218,20,95,112,97,116,104,95,105,109,112,111,114, - 116,101,114,95,99,97,99,104,101,57,4,0,0,115,22,0, - 0,0,0,8,8,1,2,1,12,1,14,3,6,1,2,1, - 14,1,14,1,10,1,16,1,122,31,80,97,116,104,70,105, - 110,100,101,114,46,95,112,97,116,104,95,105,109,112,111,114, - 116,101,114,95,99,97,99,104,101,99,3,0,0,0,0,0, - 0,0,6,0,0,0,4,0,0,0,67,0,0,0,115,82, - 0,0,0,116,0,124,2,100,1,131,2,114,26,124,2,160, - 1,124,1,161,1,92,2,125,3,125,4,110,14,124,2,160, - 2,124,1,161,1,125,3,103,0,125,4,124,3,100,0,107, - 9,114,60,116,3,160,4,124,1,124,3,161,2,83,0,116, - 3,160,5,124,1,100,0,161,2,125,5,124,4,124,5,95, - 6,124,5,83,0,41,2,78,114,121,0,0,0,41,7,114, - 112,0,0,0,114,121,0,0,0,114,179,0,0,0,114,118, - 0,0,0,114,176,0,0,0,114,158,0,0,0,114,154,0, - 0,0,41,6,114,168,0,0,0,114,123,0,0,0,114,252, - 0,0,0,114,124,0,0,0,114,125,0,0,0,114,162,0, + 0,114,178,0,0,0,126,4,0,0,115,26,0,0,0,0, + 6,8,1,6,1,14,1,8,1,4,1,10,1,6,1,4, + 3,6,1,16,1,4,2,6,2,122,20,80,97,116,104,70, + 105,110,100,101,114,46,102,105,110,100,95,115,112,101,99,99, + 3,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0, + 67,0,0,0,115,30,0,0,0,124,0,160,0,124,1,124, + 2,161,2,125,3,124,3,100,1,107,8,114,24,100,1,83, + 0,124,3,106,1,83,0,41,2,122,170,102,105,110,100,32, + 116,104,101,32,109,111,100,117,108,101,32,111,110,32,115,121, + 115,46,112,97,116,104,32,111,114,32,39,112,97,116,104,39, + 32,98,97,115,101,100,32,111,110,32,115,121,115,46,112,97, + 116,104,95,104,111,111,107,115,32,97,110,100,10,32,32,32, + 32,32,32,32,32,115,121,115,46,112,97,116,104,95,105,109, + 112,111,114,116,101,114,95,99,97,99,104,101,46,10,10,32, + 32,32,32,32,32,32,32,84,104,105,115,32,109,101,116,104, + 111,100,32,105,115,32,100,101,112,114,101,99,97,116,101,100, + 46,32,32,85,115,101,32,102,105,110,100,95,115,112,101,99, + 40,41,32,105,110,115,116,101,97,100,46,10,10,32,32,32, + 32,32,32,32,32,78,41,2,114,178,0,0,0,114,124,0, + 0,0,41,4,114,168,0,0,0,114,123,0,0,0,114,37, + 0,0,0,114,162,0,0,0,114,4,0,0,0,114,4,0, + 0,0,114,6,0,0,0,114,179,0,0,0,150,4,0,0, + 115,8,0,0,0,0,8,12,1,8,1,4,1,122,22,80, + 97,116,104,70,105,110,100,101,114,46,102,105,110,100,95,109, + 111,100,117,108,101,41,1,78,41,2,78,78,41,1,78,41, + 12,114,109,0,0,0,114,108,0,0,0,114,110,0,0,0, + 114,111,0,0,0,114,180,0,0,0,114,249,0,0,0,114, + 254,0,0,0,114,0,1,0,0,114,1,1,0,0,114,4, + 1,0,0,114,178,0,0,0,114,179,0,0,0,114,4,0, 0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0, - 0,218,16,95,108,101,103,97,99,121,95,103,101,116,95,115, - 112,101,99,79,4,0,0,115,18,0,0,0,0,4,10,1, - 16,2,10,1,4,1,8,1,12,1,12,1,6,1,122,27, - 80,97,116,104,70,105,110,100,101,114,46,95,108,101,103,97, - 99,121,95,103,101,116,95,115,112,101,99,78,99,4,0,0, - 0,0,0,0,0,9,0,0,0,5,0,0,0,67,0,0, - 0,115,170,0,0,0,103,0,125,4,120,160,124,2,68,0, - 93,130,125,5,116,0,124,5,116,1,116,2,102,2,131,2, - 115,30,113,10,124,0,160,3,124,5,161,1,125,6,124,6, - 100,1,107,9,114,10,116,4,124,6,100,2,131,2,114,72, - 124,6,160,5,124,1,124,3,161,2,125,7,110,12,124,0, - 160,6,124,1,124,6,161,2,125,7,124,7,100,1,107,8, - 114,94,113,10,124,7,106,7,100,1,107,9,114,108,124,7, - 83,0,124,7,106,8,125,8,124,8,100,1,107,8,114,130, - 116,9,100,3,131,1,130,1,124,4,160,10,124,8,161,1, - 1,0,113,10,87,0,116,11,160,12,124,1,100,1,161,2, - 125,7,124,4,124,7,95,8,124,7,83,0,100,1,83,0, - 41,4,122,63,70,105,110,100,32,116,104,101,32,108,111,97, - 100,101,114,32,111,114,32,110,97,109,101,115,112,97,99,101, - 95,112,97,116,104,32,102,111,114,32,116,104,105,115,32,109, - 111,100,117,108,101,47,112,97,99,107,97,103,101,32,110,97, - 109,101,46,78,114,178,0,0,0,122,19,115,112,101,99,32, - 109,105,115,115,105,110,103,32,108,111,97,100,101,114,41,13, - 114,141,0,0,0,114,73,0,0,0,218,5,98,121,116,101, - 115,114,0,1,0,0,114,112,0,0,0,114,178,0,0,0, - 114,1,1,0,0,114,124,0,0,0,114,154,0,0,0,114, - 103,0,0,0,114,147,0,0,0,114,118,0,0,0,114,158, - 0,0,0,41,9,114,168,0,0,0,114,123,0,0,0,114, - 37,0,0,0,114,177,0,0,0,218,14,110,97,109,101,115, - 112,97,99,101,95,112,97,116,104,90,5,101,110,116,114,121, - 114,252,0,0,0,114,162,0,0,0,114,125,0,0,0,114, - 4,0,0,0,114,4,0,0,0,114,6,0,0,0,218,9, - 95,103,101,116,95,115,112,101,99,94,4,0,0,115,40,0, - 0,0,0,5,4,1,10,1,14,1,2,1,10,1,8,1, - 10,1,14,2,12,1,8,1,2,1,10,1,4,1,6,1, - 8,1,8,5,14,2,12,1,6,1,122,20,80,97,116,104, - 70,105,110,100,101,114,46,95,103,101,116,95,115,112,101,99, - 99,4,0,0,0,0,0,0,0,6,0,0,0,5,0,0, - 0,67,0,0,0,115,100,0,0,0,124,2,100,1,107,8, - 114,14,116,0,106,1,125,2,124,0,160,2,124,1,124,2, - 124,3,161,3,125,4,124,4,100,1,107,8,114,40,100,1, - 83,0,124,4,106,3,100,1,107,8,114,92,124,4,106,4, - 125,5,124,5,114,86,100,2,124,4,95,5,116,6,124,1, - 124,5,124,0,106,2,131,3,124,4,95,4,124,4,83,0, - 100,1,83,0,110,4,124,4,83,0,100,1,83,0,41,3, - 122,141,84,114,121,32,116,111,32,102,105,110,100,32,97,32, - 115,112,101,99,32,102,111,114,32,39,102,117,108,108,110,97, - 109,101,39,32,111,110,32,115,121,115,46,112,97,116,104,32, - 111,114,32,39,112,97,116,104,39,46,10,10,32,32,32,32, - 32,32,32,32,84,104,101,32,115,101,97,114,99,104,32,105, - 115,32,98,97,115,101,100,32,111,110,32,115,121,115,46,112, - 97,116,104,95,104,111,111,107,115,32,97,110,100,32,115,121, - 115,46,112,97,116,104,95,105,109,112,111,114,116,101,114,95, - 99,97,99,104,101,46,10,32,32,32,32,32,32,32,32,78, - 90,9,110,97,109,101,115,112,97,99,101,41,7,114,8,0, - 0,0,114,37,0,0,0,114,4,1,0,0,114,124,0,0, - 0,114,154,0,0,0,114,156,0,0,0,114,227,0,0,0, - 41,6,114,168,0,0,0,114,123,0,0,0,114,37,0,0, - 0,114,177,0,0,0,114,162,0,0,0,114,3,1,0,0, - 114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,114, - 178,0,0,0,126,4,0,0,115,26,0,0,0,0,6,8, - 1,6,1,14,1,8,1,4,1,10,1,6,1,4,3,6, - 1,16,1,4,2,6,2,122,20,80,97,116,104,70,105,110, - 100,101,114,46,102,105,110,100,95,115,112,101,99,99,3,0, - 0,0,0,0,0,0,4,0,0,0,4,0,0,0,67,0, - 0,0,115,30,0,0,0,124,0,160,0,124,1,124,2,161, - 2,125,3,124,3,100,1,107,8,114,24,100,1,83,0,124, - 3,106,1,83,0,41,2,122,170,102,105,110,100,32,116,104, - 101,32,109,111,100,117,108,101,32,111,110,32,115,121,115,46, - 112,97,116,104,32,111,114,32,39,112,97,116,104,39,32,98, - 97,115,101,100,32,111,110,32,115,121,115,46,112,97,116,104, - 95,104,111,111,107,115,32,97,110,100,10,32,32,32,32,32, - 32,32,32,115,121,115,46,112,97,116,104,95,105,109,112,111, - 114,116,101,114,95,99,97,99,104,101,46,10,10,32,32,32, - 32,32,32,32,32,84,104,105,115,32,109,101,116,104,111,100, - 32,105,115,32,100,101,112,114,101,99,97,116,101,100,46,32, - 32,85,115,101,32,102,105,110,100,95,115,112,101,99,40,41, - 32,105,110,115,116,101,97,100,46,10,10,32,32,32,32,32, - 32,32,32,78,41,2,114,178,0,0,0,114,124,0,0,0, - 41,4,114,168,0,0,0,114,123,0,0,0,114,37,0,0, - 0,114,162,0,0,0,114,4,0,0,0,114,4,0,0,0, - 114,6,0,0,0,114,179,0,0,0,150,4,0,0,115,8, - 0,0,0,0,8,12,1,8,1,4,1,122,22,80,97,116, - 104,70,105,110,100,101,114,46,102,105,110,100,95,109,111,100, - 117,108,101,41,1,78,41,2,78,78,41,1,78,41,12,114, - 109,0,0,0,114,108,0,0,0,114,110,0,0,0,114,111, - 0,0,0,114,180,0,0,0,114,249,0,0,0,114,254,0, - 0,0,114,0,1,0,0,114,1,1,0,0,114,4,1,0, - 0,114,178,0,0,0,114,179,0,0,0,114,4,0,0,0, - 114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,114, - 248,0,0,0,32,4,0,0,115,22,0,0,0,8,2,4, - 2,12,8,12,13,12,22,12,15,2,1,12,31,2,1,12, + 0,114,248,0,0,0,32,4,0,0,115,20,0,0,0,12, + 4,12,8,12,13,12,22,12,15,2,1,12,31,2,1,12, 23,2,1,114,248,0,0,0,99,0,0,0,0,0,0,0, 0,0,0,0,0,3,0,0,0,64,0,0,0,115,90,0, 0,0,101,0,90,1,100,0,90,2,100,1,90,3,100,2, 100,3,132,0,90,4,100,4,100,5,132,0,90,5,101,6, 90,7,100,6,100,7,132,0,90,8,100,8,100,9,132,0, 90,9,100,19,100,11,100,12,132,1,90,10,100,13,100,14, @@ -2243,191 +2242,191 @@ 0,114,110,0,0,0,114,111,0,0,0,114,182,0,0,0, 114,249,0,0,0,114,127,0,0,0,114,179,0,0,0,114, 121,0,0,0,114,4,1,0,0,114,178,0,0,0,114,12, 1,0,0,114,180,0,0,0,114,18,1,0,0,114,243,0, 0,0,114,4,0,0,0,114,4,0,0,0,114,4,0,0, 0,114,6,0,0,0,114,5,1,0,0,164,4,0,0,115, - 20,0,0,0,8,7,4,2,8,14,8,4,4,2,8,12, - 8,5,10,48,8,31,12,18,114,5,1,0,0,99,4,0, - 0,0,0,0,0,0,6,0,0,0,11,0,0,0,67,0, - 0,0,115,146,0,0,0,124,0,160,0,100,1,161,1,125, - 4,124,0,160,0,100,2,161,1,125,5,124,4,115,66,124, - 5,114,36,124,5,106,1,125,4,110,30,124,2,124,3,107, - 2,114,56,116,2,124,1,124,2,131,2,125,4,110,10,116, - 3,124,1,124,2,131,2,125,4,124,5,115,84,116,4,124, - 1,124,2,124,4,100,3,141,3,125,5,121,36,124,5,124, - 0,100,2,60,0,124,4,124,0,100,1,60,0,124,2,124, - 0,100,4,60,0,124,3,124,0,100,5,60,0,87,0,110, - 20,4,0,116,5,107,10,114,140,1,0,1,0,1,0,89, - 0,110,2,88,0,100,0,83,0,41,6,78,218,10,95,95, - 108,111,97,100,101,114,95,95,218,8,95,95,115,112,101,99, - 95,95,41,1,114,124,0,0,0,90,8,95,95,102,105,108, - 101,95,95,90,10,95,95,99,97,99,104,101,100,95,95,41, - 6,218,3,103,101,116,114,124,0,0,0,114,220,0,0,0, - 114,215,0,0,0,114,165,0,0,0,218,9,69,120,99,101, - 112,116,105,111,110,41,6,90,2,110,115,114,102,0,0,0, - 90,8,112,97,116,104,110,97,109,101,90,9,99,112,97,116, - 104,110,97,109,101,114,124,0,0,0,114,162,0,0,0,114, - 4,0,0,0,114,4,0,0,0,114,6,0,0,0,218,14, - 95,102,105,120,95,117,112,95,109,111,100,117,108,101,57,5, - 0,0,115,34,0,0,0,0,2,10,1,10,1,4,1,4, - 1,8,1,8,1,12,2,10,1,4,1,14,1,2,1,8, - 1,8,1,8,1,12,1,14,2,114,23,1,0,0,99,0, - 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,67, - 0,0,0,115,38,0,0,0,116,0,116,1,160,2,161,0, - 102,2,125,0,116,3,116,4,102,2,125,1,116,5,116,6, - 102,2,125,2,124,0,124,1,124,2,103,3,83,0,41,1, - 122,95,82,101,116,117,114,110,115,32,97,32,108,105,115,116, - 32,111,102,32,102,105,108,101,45,98,97,115,101,100,32,109, - 111,100,117,108,101,32,108,111,97,100,101,114,115,46,10,10, - 32,32,32,32,69,97,99,104,32,105,116,101,109,32,105,115, - 32,97,32,116,117,112,108,101,32,40,108,111,97,100,101,114, - 44,32,115,117,102,102,105,120,101,115,41,46,10,32,32,32, - 32,41,7,114,221,0,0,0,114,143,0,0,0,218,18,101, - 120,116,101,110,115,105,111,110,95,115,117,102,102,105,120,101, - 115,114,215,0,0,0,114,88,0,0,0,114,220,0,0,0, - 114,78,0,0,0,41,3,90,10,101,120,116,101,110,115,105, - 111,110,115,90,6,115,111,117,114,99,101,90,8,98,121,116, - 101,99,111,100,101,114,4,0,0,0,114,4,0,0,0,114, - 6,0,0,0,114,159,0,0,0,80,5,0,0,115,8,0, - 0,0,0,5,12,1,8,1,8,1,114,159,0,0,0,99, - 1,0,0,0,0,0,0,0,12,0,0,0,12,0,0,0, - 67,0,0,0,115,188,1,0,0,124,0,97,0,116,0,106, - 1,97,1,116,0,106,2,97,2,116,1,106,3,116,4,25, - 0,125,1,120,56,100,26,68,0,93,48,125,2,124,2,116, - 1,106,3,107,7,114,58,116,0,160,5,124,2,161,1,125, - 3,110,10,116,1,106,3,124,2,25,0,125,3,116,6,124, - 1,124,2,124,3,131,3,1,0,113,32,87,0,100,5,100, - 6,103,1,102,2,100,7,100,8,100,6,103,2,102,2,102, - 2,125,4,120,118,124,4,68,0,93,102,92,2,125,5,125, - 6,116,7,100,9,100,10,132,0,124,6,68,0,131,1,131, - 1,115,142,116,8,130,1,124,6,100,11,25,0,125,7,124, - 5,116,1,106,3,107,6,114,174,116,1,106,3,124,5,25, - 0,125,8,80,0,113,112,121,16,116,0,160,5,124,5,161, - 1,125,8,80,0,87,0,113,112,4,0,116,9,107,10,114, - 212,1,0,1,0,1,0,119,112,89,0,113,112,88,0,113, - 112,87,0,116,9,100,12,131,1,130,1,116,6,124,1,100, - 13,124,8,131,3,1,0,116,6,124,1,100,14,124,7,131, - 3,1,0,116,6,124,1,100,15,100,16,160,10,124,6,161, - 1,131,3,1,0,121,14,116,0,160,5,100,17,161,1,125, - 9,87,0,110,26,4,0,116,9,107,10,144,1,114,52,1, - 0,1,0,1,0,100,18,125,9,89,0,110,2,88,0,116, - 6,124,1,100,17,124,9,131,3,1,0,116,0,160,5,100, - 19,161,1,125,10,116,6,124,1,100,19,124,10,131,3,1, - 0,124,5,100,7,107,2,144,1,114,120,116,0,160,5,100, - 20,161,1,125,11,116,6,124,1,100,21,124,11,131,3,1, - 0,116,6,124,1,100,22,116,11,131,0,131,3,1,0,116, - 12,160,13,116,2,160,14,161,0,161,1,1,0,124,5,100, - 7,107,2,144,1,114,184,116,15,160,16,100,23,161,1,1, - 0,100,24,116,12,107,6,144,1,114,184,100,25,116,17,95, - 18,100,18,83,0,41,27,122,205,83,101,116,117,112,32,116, - 104,101,32,112,97,116,104,45,98,97,115,101,100,32,105,109, - 112,111,114,116,101,114,115,32,102,111,114,32,105,109,112,111, - 114,116,108,105,98,32,98,121,32,105,109,112,111,114,116,105, - 110,103,32,110,101,101,100,101,100,10,32,32,32,32,98,117, - 105,108,116,45,105,110,32,109,111,100,117,108,101,115,32,97, - 110,100,32,105,110,106,101,99,116,105,110,103,32,116,104,101, - 109,32,105,110,116,111,32,116,104,101,32,103,108,111,98,97, - 108,32,110,97,109,101,115,112,97,99,101,46,10,10,32,32, - 32,32,79,116,104,101,114,32,99,111,109,112,111,110,101,110, - 116,115,32,97,114,101,32,101,120,116,114,97,99,116,101,100, - 32,102,114,111,109,32,116,104,101,32,99,111,114,101,32,98, - 111,111,116,115,116,114,97,112,32,109,111,100,117,108,101,46, - 10,10,32,32,32,32,114,52,0,0,0,114,63,0,0,0, - 218,8,98,117,105,108,116,105,110,115,114,140,0,0,0,90, - 5,112,111,115,105,120,250,1,47,90,2,110,116,250,1,92, - 99,1,0,0,0,0,0,0,0,2,0,0,0,3,0,0, - 0,115,0,0,0,115,26,0,0,0,124,0,93,18,125,1, - 116,0,124,1,131,1,100,0,107,2,86,0,1,0,113,2, - 100,1,83,0,41,2,114,31,0,0,0,78,41,1,114,33, - 0,0,0,41,2,114,24,0,0,0,114,81,0,0,0,114, - 4,0,0,0,114,4,0,0,0,114,6,0,0,0,114,224, - 0,0,0,116,5,0,0,115,2,0,0,0,4,0,122,25, - 95,115,101,116,117,112,46,60,108,111,99,97,108,115,62,46, - 60,103,101,110,101,120,112,114,62,114,62,0,0,0,122,30, - 105,109,112,111,114,116,108,105,98,32,114,101,113,117,105,114, - 101,115,32,112,111,115,105,120,32,111,114,32,110,116,114,3, - 0,0,0,114,27,0,0,0,114,23,0,0,0,114,32,0, - 0,0,90,7,95,116,104,114,101,97,100,78,90,8,95,119, - 101,97,107,114,101,102,90,6,119,105,110,114,101,103,114,167, - 0,0,0,114,7,0,0,0,122,4,46,112,121,119,122,6, - 95,100,46,112,121,100,84,41,4,114,52,0,0,0,114,63, - 0,0,0,114,25,1,0,0,114,140,0,0,0,41,19,114, - 118,0,0,0,114,8,0,0,0,114,143,0,0,0,114,236, - 0,0,0,114,109,0,0,0,90,18,95,98,117,105,108,116, - 105,110,95,102,114,111,109,95,110,97,109,101,114,113,0,0, - 0,218,3,97,108,108,218,14,65,115,115,101,114,116,105,111, - 110,69,114,114,111,114,114,103,0,0,0,114,28,0,0,0, - 114,13,0,0,0,114,226,0,0,0,114,147,0,0,0,114, - 24,1,0,0,114,88,0,0,0,114,161,0,0,0,114,166, - 0,0,0,114,170,0,0,0,41,12,218,17,95,98,111,111, - 116,115,116,114,97,112,95,109,111,100,117,108,101,90,11,115, - 101,108,102,95,109,111,100,117,108,101,90,12,98,117,105,108, - 116,105,110,95,110,97,109,101,90,14,98,117,105,108,116,105, - 110,95,109,111,100,117,108,101,90,10,111,115,95,100,101,116, - 97,105,108,115,90,10,98,117,105,108,116,105,110,95,111,115, - 114,23,0,0,0,114,27,0,0,0,90,9,111,115,95,109, - 111,100,117,108,101,90,13,116,104,114,101,97,100,95,109,111, - 100,117,108,101,90,14,119,101,97,107,114,101,102,95,109,111, - 100,117,108,101,90,13,119,105,110,114,101,103,95,109,111,100, - 117,108,101,114,4,0,0,0,114,4,0,0,0,114,6,0, - 0,0,218,6,95,115,101,116,117,112,91,5,0,0,115,82, - 0,0,0,0,8,4,1,6,1,6,3,10,1,10,1,10, - 1,12,2,10,1,16,3,22,1,14,2,22,1,8,1,10, - 1,10,1,4,2,2,1,10,1,6,1,14,1,12,2,8, - 1,12,1,12,1,18,3,2,1,14,1,16,2,10,1,12, - 3,10,1,12,3,10,1,10,1,12,3,14,1,14,1,10, - 1,10,1,10,1,114,31,1,0,0,99,1,0,0,0,0, - 0,0,0,2,0,0,0,4,0,0,0,67,0,0,0,115, - 50,0,0,0,116,0,124,0,131,1,1,0,116,1,131,0, - 125,1,116,2,106,3,160,4,116,5,106,6,124,1,142,0, - 103,1,161,1,1,0,116,2,106,7,160,8,116,9,161,1, - 1,0,100,1,83,0,41,2,122,41,73,110,115,116,97,108, - 108,32,116,104,101,32,112,97,116,104,45,98,97,115,101,100, - 32,105,109,112,111,114,116,32,99,111,109,112,111,110,101,110, - 116,115,46,78,41,10,114,31,1,0,0,114,159,0,0,0, - 114,8,0,0,0,114,253,0,0,0,114,147,0,0,0,114, - 5,1,0,0,114,18,1,0,0,218,9,109,101,116,97,95, - 112,97,116,104,114,161,0,0,0,114,248,0,0,0,41,2, - 114,30,1,0,0,90,17,115,117,112,112,111,114,116,101,100, - 95,108,111,97,100,101,114,115,114,4,0,0,0,114,4,0, - 0,0,114,6,0,0,0,218,8,95,105,110,115,116,97,108, - 108,159,5,0,0,115,8,0,0,0,0,2,8,1,6,1, - 20,1,114,33,1,0,0,41,1,114,0,0,0,0,41,2, - 114,1,0,0,0,114,2,0,0,0,41,1,114,49,0,0, - 0,41,1,78,41,3,78,78,78,41,3,78,78,78,41,2, - 114,62,0,0,0,114,62,0,0,0,41,1,78,41,1,78, - 41,58,114,111,0,0,0,114,12,0,0,0,90,37,95,67, - 65,83,69,95,73,78,83,69,78,83,73,84,73,86,69,95, - 80,76,65,84,70,79,82,77,83,95,66,89,84,69,83,95, - 75,69,89,114,11,0,0,0,114,13,0,0,0,114,19,0, - 0,0,114,21,0,0,0,114,30,0,0,0,114,40,0,0, - 0,114,41,0,0,0,114,45,0,0,0,114,46,0,0,0, - 114,48,0,0,0,114,58,0,0,0,218,4,116,121,112,101, - 218,8,95,95,99,111,100,101,95,95,114,142,0,0,0,114, - 17,0,0,0,114,132,0,0,0,114,16,0,0,0,114,20, - 0,0,0,90,17,95,82,65,87,95,77,65,71,73,67,95, - 78,85,77,66,69,82,114,77,0,0,0,114,76,0,0,0, - 114,88,0,0,0,114,78,0,0,0,90,23,68,69,66,85, - 71,95,66,89,84,69,67,79,68,69,95,83,85,70,70,73, - 88,69,83,90,27,79,80,84,73,77,73,90,69,68,95,66, - 89,84,69,67,79,68,69,95,83,85,70,70,73,88,69,83, - 114,83,0,0,0,114,89,0,0,0,114,95,0,0,0,114, - 99,0,0,0,114,101,0,0,0,114,120,0,0,0,114,127, - 0,0,0,114,139,0,0,0,114,145,0,0,0,114,148,0, - 0,0,114,153,0,0,0,218,6,111,98,106,101,99,116,114, - 160,0,0,0,114,165,0,0,0,114,166,0,0,0,114,181, - 0,0,0,114,191,0,0,0,114,207,0,0,0,114,215,0, - 0,0,114,220,0,0,0,114,226,0,0,0,114,221,0,0, - 0,114,227,0,0,0,114,246,0,0,0,114,248,0,0,0, - 114,5,1,0,0,114,23,1,0,0,114,159,0,0,0,114, - 31,1,0,0,114,33,1,0,0,114,4,0,0,0,114,4, - 0,0,0,114,4,0,0,0,114,6,0,0,0,218,8,60, - 109,111,100,117,108,101,62,8,0,0,0,115,108,0,0,0, - 4,16,4,1,4,1,2,1,6,3,8,17,8,5,8,5, - 8,6,8,12,8,10,8,9,8,5,8,7,10,22,10,124, - 16,1,12,2,4,1,4,2,6,2,6,2,8,2,16,45, - 8,34,8,19,8,12,8,12,8,28,8,17,10,55,10,12, - 10,10,8,14,6,3,4,1,14,67,14,64,14,29,16,110, - 14,41,18,45,18,16,4,3,18,53,14,60,14,42,14,127, - 0,5,14,127,0,22,10,23,8,11,8,68, + 18,0,0,0,12,9,8,14,8,4,4,2,8,12,8,5, + 10,48,8,31,12,18,114,5,1,0,0,99,4,0,0,0, + 0,0,0,0,6,0,0,0,11,0,0,0,67,0,0,0, + 115,146,0,0,0,124,0,160,0,100,1,161,1,125,4,124, + 0,160,0,100,2,161,1,125,5,124,4,115,66,124,5,114, + 36,124,5,106,1,125,4,110,30,124,2,124,3,107,2,114, + 56,116,2,124,1,124,2,131,2,125,4,110,10,116,3,124, + 1,124,2,131,2,125,4,124,5,115,84,116,4,124,1,124, + 2,124,4,100,3,141,3,125,5,121,36,124,5,124,0,100, + 2,60,0,124,4,124,0,100,1,60,0,124,2,124,0,100, + 4,60,0,124,3,124,0,100,5,60,0,87,0,110,20,4, + 0,116,5,107,10,114,140,1,0,1,0,1,0,89,0,110, + 2,88,0,100,0,83,0,41,6,78,218,10,95,95,108,111, + 97,100,101,114,95,95,218,8,95,95,115,112,101,99,95,95, + 41,1,114,124,0,0,0,90,8,95,95,102,105,108,101,95, + 95,90,10,95,95,99,97,99,104,101,100,95,95,41,6,218, + 3,103,101,116,114,124,0,0,0,114,220,0,0,0,114,215, + 0,0,0,114,165,0,0,0,218,9,69,120,99,101,112,116, + 105,111,110,41,6,90,2,110,115,114,102,0,0,0,90,8, + 112,97,116,104,110,97,109,101,90,9,99,112,97,116,104,110, + 97,109,101,114,124,0,0,0,114,162,0,0,0,114,4,0, + 0,0,114,4,0,0,0,114,6,0,0,0,218,14,95,102, + 105,120,95,117,112,95,109,111,100,117,108,101,57,5,0,0, + 115,34,0,0,0,0,2,10,1,10,1,4,1,4,1,8, + 1,8,1,12,2,10,1,4,1,14,1,2,1,8,1,8, + 1,8,1,12,1,14,2,114,23,1,0,0,99,0,0,0, + 0,0,0,0,0,3,0,0,0,3,0,0,0,67,0,0, + 0,115,38,0,0,0,116,0,116,1,160,2,161,0,102,2, + 125,0,116,3,116,4,102,2,125,1,116,5,116,6,102,2, + 125,2,124,0,124,1,124,2,103,3,83,0,41,1,122,95, + 82,101,116,117,114,110,115,32,97,32,108,105,115,116,32,111, + 102,32,102,105,108,101,45,98,97,115,101,100,32,109,111,100, + 117,108,101,32,108,111,97,100,101,114,115,46,10,10,32,32, + 32,32,69,97,99,104,32,105,116,101,109,32,105,115,32,97, + 32,116,117,112,108,101,32,40,108,111,97,100,101,114,44,32, + 115,117,102,102,105,120,101,115,41,46,10,32,32,32,32,41, + 7,114,221,0,0,0,114,143,0,0,0,218,18,101,120,116, + 101,110,115,105,111,110,95,115,117,102,102,105,120,101,115,114, + 215,0,0,0,114,88,0,0,0,114,220,0,0,0,114,78, + 0,0,0,41,3,90,10,101,120,116,101,110,115,105,111,110, + 115,90,6,115,111,117,114,99,101,90,8,98,121,116,101,99, + 111,100,101,114,4,0,0,0,114,4,0,0,0,114,6,0, + 0,0,114,159,0,0,0,80,5,0,0,115,8,0,0,0, + 0,5,12,1,8,1,8,1,114,159,0,0,0,99,1,0, + 0,0,0,0,0,0,12,0,0,0,12,0,0,0,67,0, + 0,0,115,188,1,0,0,124,0,97,0,116,0,106,1,97, + 1,116,0,106,2,97,2,116,1,106,3,116,4,25,0,125, + 1,120,56,100,26,68,0,93,48,125,2,124,2,116,1,106, + 3,107,7,114,58,116,0,160,5,124,2,161,1,125,3,110, + 10,116,1,106,3,124,2,25,0,125,3,116,6,124,1,124, + 2,124,3,131,3,1,0,113,32,87,0,100,5,100,6,103, + 1,102,2,100,7,100,8,100,6,103,2,102,2,102,2,125, + 4,120,118,124,4,68,0,93,102,92,2,125,5,125,6,116, + 7,100,9,100,10,132,0,124,6,68,0,131,1,131,1,115, + 142,116,8,130,1,124,6,100,11,25,0,125,7,124,5,116, + 1,106,3,107,6,114,174,116,1,106,3,124,5,25,0,125, + 8,80,0,113,112,121,16,116,0,160,5,124,5,161,1,125, + 8,80,0,87,0,113,112,4,0,116,9,107,10,114,212,1, + 0,1,0,1,0,119,112,89,0,113,112,88,0,113,112,87, + 0,116,9,100,12,131,1,130,1,116,6,124,1,100,13,124, + 8,131,3,1,0,116,6,124,1,100,14,124,7,131,3,1, + 0,116,6,124,1,100,15,100,16,160,10,124,6,161,1,131, + 3,1,0,121,14,116,0,160,5,100,17,161,1,125,9,87, + 0,110,26,4,0,116,9,107,10,144,1,114,52,1,0,1, + 0,1,0,100,18,125,9,89,0,110,2,88,0,116,6,124, + 1,100,17,124,9,131,3,1,0,116,0,160,5,100,19,161, + 1,125,10,116,6,124,1,100,19,124,10,131,3,1,0,124, + 5,100,7,107,2,144,1,114,120,116,0,160,5,100,20,161, + 1,125,11,116,6,124,1,100,21,124,11,131,3,1,0,116, + 6,124,1,100,22,116,11,131,0,131,3,1,0,116,12,160, + 13,116,2,160,14,161,0,161,1,1,0,124,5,100,7,107, + 2,144,1,114,184,116,15,160,16,100,23,161,1,1,0,100, + 24,116,12,107,6,144,1,114,184,100,25,116,17,95,18,100, + 18,83,0,41,27,122,205,83,101,116,117,112,32,116,104,101, + 32,112,97,116,104,45,98,97,115,101,100,32,105,109,112,111, + 114,116,101,114,115,32,102,111,114,32,105,109,112,111,114,116, + 108,105,98,32,98,121,32,105,109,112,111,114,116,105,110,103, + 32,110,101,101,100,101,100,10,32,32,32,32,98,117,105,108, + 116,45,105,110,32,109,111,100,117,108,101,115,32,97,110,100, + 32,105,110,106,101,99,116,105,110,103,32,116,104,101,109,32, + 105,110,116,111,32,116,104,101,32,103,108,111,98,97,108,32, + 110,97,109,101,115,112,97,99,101,46,10,10,32,32,32,32, + 79,116,104,101,114,32,99,111,109,112,111,110,101,110,116,115, + 32,97,114,101,32,101,120,116,114,97,99,116,101,100,32,102, + 114,111,109,32,116,104,101,32,99,111,114,101,32,98,111,111, + 116,115,116,114,97,112,32,109,111,100,117,108,101,46,10,10, + 32,32,32,32,114,52,0,0,0,114,63,0,0,0,218,8, + 98,117,105,108,116,105,110,115,114,140,0,0,0,90,5,112, + 111,115,105,120,250,1,47,90,2,110,116,250,1,92,99,1, + 0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,115, + 0,0,0,115,26,0,0,0,124,0,93,18,125,1,116,0, + 124,1,131,1,100,0,107,2,86,0,1,0,113,2,100,1, + 83,0,41,2,114,31,0,0,0,78,41,1,114,33,0,0, + 0,41,2,114,24,0,0,0,114,81,0,0,0,114,4,0, + 0,0,114,4,0,0,0,114,6,0,0,0,114,224,0,0, + 0,116,5,0,0,115,2,0,0,0,4,0,122,25,95,115, + 101,116,117,112,46,60,108,111,99,97,108,115,62,46,60,103, + 101,110,101,120,112,114,62,114,62,0,0,0,122,30,105,109, + 112,111,114,116,108,105,98,32,114,101,113,117,105,114,101,115, + 32,112,111,115,105,120,32,111,114,32,110,116,114,3,0,0, + 0,114,27,0,0,0,114,23,0,0,0,114,32,0,0,0, + 90,7,95,116,104,114,101,97,100,78,90,8,95,119,101,97, + 107,114,101,102,90,6,119,105,110,114,101,103,114,167,0,0, + 0,114,7,0,0,0,122,4,46,112,121,119,122,6,95,100, + 46,112,121,100,84,41,4,114,52,0,0,0,114,63,0,0, + 0,114,25,1,0,0,114,140,0,0,0,41,19,114,118,0, + 0,0,114,8,0,0,0,114,143,0,0,0,114,236,0,0, + 0,114,109,0,0,0,90,18,95,98,117,105,108,116,105,110, + 95,102,114,111,109,95,110,97,109,101,114,113,0,0,0,218, + 3,97,108,108,218,14,65,115,115,101,114,116,105,111,110,69, + 114,114,111,114,114,103,0,0,0,114,28,0,0,0,114,13, + 0,0,0,114,226,0,0,0,114,147,0,0,0,114,24,1, + 0,0,114,88,0,0,0,114,161,0,0,0,114,166,0,0, + 0,114,170,0,0,0,41,12,218,17,95,98,111,111,116,115, + 116,114,97,112,95,109,111,100,117,108,101,90,11,115,101,108, + 102,95,109,111,100,117,108,101,90,12,98,117,105,108,116,105, + 110,95,110,97,109,101,90,14,98,117,105,108,116,105,110,95, + 109,111,100,117,108,101,90,10,111,115,95,100,101,116,97,105, + 108,115,90,10,98,117,105,108,116,105,110,95,111,115,114,23, + 0,0,0,114,27,0,0,0,90,9,111,115,95,109,111,100, + 117,108,101,90,13,116,104,114,101,97,100,95,109,111,100,117, + 108,101,90,14,119,101,97,107,114,101,102,95,109,111,100,117, + 108,101,90,13,119,105,110,114,101,103,95,109,111,100,117,108, + 101,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0, + 218,6,95,115,101,116,117,112,91,5,0,0,115,82,0,0, + 0,0,8,4,1,6,1,6,3,10,1,10,1,10,1,12, + 2,10,1,16,3,22,1,14,2,22,1,8,1,10,1,10, + 1,4,2,2,1,10,1,6,1,14,1,12,2,8,1,12, + 1,12,1,18,3,2,1,14,1,16,2,10,1,12,3,10, + 1,12,3,10,1,10,1,12,3,14,1,14,1,10,1,10, + 1,10,1,114,31,1,0,0,99,1,0,0,0,0,0,0, + 0,2,0,0,0,4,0,0,0,67,0,0,0,115,50,0, + 0,0,116,0,124,0,131,1,1,0,116,1,131,0,125,1, + 116,2,106,3,160,4,116,5,106,6,124,1,142,0,103,1, + 161,1,1,0,116,2,106,7,160,8,116,9,161,1,1,0, + 100,1,83,0,41,2,122,41,73,110,115,116,97,108,108,32, + 116,104,101,32,112,97,116,104,45,98,97,115,101,100,32,105, + 109,112,111,114,116,32,99,111,109,112,111,110,101,110,116,115, + 46,78,41,10,114,31,1,0,0,114,159,0,0,0,114,8, + 0,0,0,114,253,0,0,0,114,147,0,0,0,114,5,1, + 0,0,114,18,1,0,0,218,9,109,101,116,97,95,112,97, + 116,104,114,161,0,0,0,114,248,0,0,0,41,2,114,30, + 1,0,0,90,17,115,117,112,112,111,114,116,101,100,95,108, + 111,97,100,101,114,115,114,4,0,0,0,114,4,0,0,0, + 114,6,0,0,0,218,8,95,105,110,115,116,97,108,108,159, + 5,0,0,115,8,0,0,0,0,2,8,1,6,1,20,1, + 114,33,1,0,0,41,1,114,0,0,0,0,41,2,114,1, + 0,0,0,114,2,0,0,0,41,1,114,49,0,0,0,41, + 1,78,41,3,78,78,78,41,3,78,78,78,41,2,114,62, + 0,0,0,114,62,0,0,0,41,1,78,41,1,78,41,58, + 114,111,0,0,0,114,12,0,0,0,90,37,95,67,65,83, + 69,95,73,78,83,69,78,83,73,84,73,86,69,95,80,76, + 65,84,70,79,82,77,83,95,66,89,84,69,83,95,75,69, + 89,114,11,0,0,0,114,13,0,0,0,114,19,0,0,0, + 114,21,0,0,0,114,30,0,0,0,114,40,0,0,0,114, + 41,0,0,0,114,45,0,0,0,114,46,0,0,0,114,48, + 0,0,0,114,58,0,0,0,218,4,116,121,112,101,218,8, + 95,95,99,111,100,101,95,95,114,142,0,0,0,114,17,0, + 0,0,114,132,0,0,0,114,16,0,0,0,114,20,0,0, + 0,90,17,95,82,65,87,95,77,65,71,73,67,95,78,85, + 77,66,69,82,114,77,0,0,0,114,76,0,0,0,114,88, + 0,0,0,114,78,0,0,0,90,23,68,69,66,85,71,95, + 66,89,84,69,67,79,68,69,95,83,85,70,70,73,88,69, + 83,90,27,79,80,84,73,77,73,90,69,68,95,66,89,84, + 69,67,79,68,69,95,83,85,70,70,73,88,69,83,114,83, + 0,0,0,114,89,0,0,0,114,95,0,0,0,114,99,0, + 0,0,114,101,0,0,0,114,120,0,0,0,114,127,0,0, + 0,114,139,0,0,0,114,145,0,0,0,114,148,0,0,0, + 114,153,0,0,0,218,6,111,98,106,101,99,116,114,160,0, + 0,0,114,165,0,0,0,114,166,0,0,0,114,181,0,0, + 0,114,191,0,0,0,114,207,0,0,0,114,215,0,0,0, + 114,220,0,0,0,114,226,0,0,0,114,221,0,0,0,114, + 227,0,0,0,114,246,0,0,0,114,248,0,0,0,114,5, + 1,0,0,114,23,1,0,0,114,159,0,0,0,114,31,1, + 0,0,114,33,1,0,0,114,4,0,0,0,114,4,0,0, + 0,114,4,0,0,0,114,6,0,0,0,218,8,60,109,111, + 100,117,108,101,62,24,0,0,0,115,108,0,0,0,4,0, + 4,1,4,1,2,1,6,3,8,17,8,5,8,5,8,6, + 8,12,8,10,8,9,8,5,8,7,10,22,10,124,16,1, + 12,2,4,1,4,2,6,2,6,2,8,2,16,45,8,34, + 8,19,8,12,8,12,8,28,8,17,10,55,10,12,10,10, + 8,14,6,3,4,1,14,67,14,64,14,29,16,110,14,41, + 18,45,18,16,4,3,18,53,14,60,14,42,14,127,0,5, + 14,127,0,22,10,23,8,11,8,68, }; diff -r 09d4d47ad210 Python/symtable.c --- a/Python/symtable.c Tue Jan 31 13:53:39 2017 +0100 +++ b/Python/symtable.c Wed Feb 01 01:56:27 2017 +0900 @@ -1475,16 +1475,13 @@ VISIT(st, expr, e->v.FormattedValue.format_spec); break; case JoinedStr_kind: VISIT_SEQ(st, expr, e->v.JoinedStr.values); break; case Constant_kind: - case Num_kind: - case Str_kind: - case Bytes_kind: - case Ellipsis_kind: + case Lit_kind: case NameConstant_kind: /* Nothing to do here. */ break; /* The following exprs can be assignment targets. */ case Attribute_kind: VISIT(st, expr, e->v.Attribute.value); diff -r 09d4d47ad210 Tools/parser/unparse.py --- a/Tools/parser/unparse.py Tue Jan 31 13:53:39 2017 +0100 +++ b/Tools/parser/unparse.py Wed Feb 01 01:56:27 2017 +0900 @@ -232,12 +232,13 @@ if comma: self.write(", ") else: comma = True self.dispatch(e) self.write(")") self.enter() + self.write(repr(t.docstring)) self.dispatch(t.body) self.leave() def _FunctionDef(self, t): self.__FunctionDef_helper(t, "def") @@ -254,12 +255,13 @@ self.dispatch(t.args) self.write(")") if t.returns: self.write(" -> ") self.dispatch(t.returns) self.enter() + self.write(repr(t.docstring)) self.dispatch(t.body) self.leave() def _For(self, t): self.__For_helper("for ", t) @@ -326,17 +328,17 @@ interleave(lambda: self.write(", "), self.dispatch, t.items) self.enter() self.dispatch(t.body) self.leave() # expr - def _Bytes(self, t): - self.write(repr(t.s)) - - def _Str(self, tree): - self.write(repr(tree.s)) + def _Lit(self, t): + r = repr(t.v) + if isinstance(t.v, float): + r = r.replace('inf', INFSTR) + self.write(r) def _JoinedStr(self, t): self.write("f") string = io.StringIO() self._fstring_JoinedStr(t, string.write) self.write(repr(string.getvalue())) @@ -401,16 +403,12 @@ else: self._write_constant(t.value) def _NameConstant(self, t): self.write(repr(t.value)) - def _Num(self, t): - # Substitute overflowing decimal literal for AST infinities. - self.write(repr(t.n).replace("inf", INFSTR)) - def _List(self, t): self.write("[") interleave(lambda: self.write(", "), self.dispatch, t.elts) self.write("]") def _ListComp(self, t):