diff --git a/README.md b/README.md index c9d327f..25de6f9 100644 --- a/README.md +++ b/README.md @@ -367,6 +367,7 @@ ___ ### Generators - `text_image(text, font, size, [max_width], [weight], [rotation_angle], [line_spacing], [italic], [underline])` - renders text to an 2D tensor +- `coordinates(shape, dim, [dtype])` / `coords` - generates a tensor whose values are the coordinates of each element along the specified dimension. dtype is copied from tensor at that position. Default is float32. --- diff --git a/more_math/Parser/MathExpr.g4 b/more_math/Parser/MathExpr.g4 index e2e0ea1..ceb2584 100644 --- a/more_math/Parser/MathExpr.g4 +++ b/more_math/Parser/MathExpr.g4 @@ -707,7 +707,11 @@ func3: /** text_image(text, font, size, [max_width], [weight], [rotation_angle], [line_spacing], [italic], [underline]) - renders text to an 2D tensor */ - | TEXT_IMAGE LPAREN expr COMMA expr COMMA expr (COMMA expr)? (COMMA expr)? (COMMA expr)? (COMMA expr)? (COMMA expr)? (COMMA expr)? RPAREN # TextImageFunc; + | TEXT_IMAGE LPAREN expr COMMA expr COMMA expr (COMMA expr)? (COMMA expr)? (COMMA expr)? (COMMA expr)? (COMMA expr)? (COMMA expr)? RPAREN # TextImageFunc + /** + coords(shape, dim, [dtype]) - generates a tensor with the specified shape whose values are the coordinates of each element along the specified dimension. The dtype can be specified to control the data type of the output tensor. + */ + | COORDS LPAREN expr COMMA expr (COMMA expr)? RPAREN # CoordsFunc; func4: /** @@ -1035,6 +1039,7 @@ CORR: 'corr' | 'correlation'; ENTROPY: 'entropy'; CROP: 'crop'; NONE: 'none'|'None'|'null'|'NULL'; +COORDS: 'coords'|'coordinates'; NOISE: 'noise' | 'randn' | 'random_normal'; RAND: 'rand' | 'randu' | 'random_uniform'; diff --git a/more_math/Parser/UnifiedMathVisitor.py b/more_math/Parser/UnifiedMathVisitor.py index 126705e..42daf8a 100644 --- a/more_math/Parser/UnifiedMathVisitor.py +++ b/more_math/Parser/UnifiedMathVisitor.py @@ -4973,4 +4973,11 @@ class UnifiedMathVisitor(MathExprVisitor): diag_view = torch.diagonal(res, offset=offset, dim1=dim1, dim2=dim2) diag_view.copy_(x) - return res \ No newline at end of file + return res + + def visitCoordsFunc(self, ctx): + """coords(shape) - generate a grid of coordinates""" + shape = self._get_shape_from_ctx(ctx, 0) + dim = ctx.expr(1) + dtype = ctx.expr(2).dtype if len(ctx.expr()) > 2 else torch.float32 + return getIndexTensorAlongDim(torch.zeros(shape, dtype=dtype, device=self.device), dim) \ No newline at end of file diff --git a/more_math/Parser/grammer/MathExpr.interp b/more_math/Parser/grammer/MathExpr.interp index 3b46143..3a70863 100644 --- a/more_math/Parser/grammer/MathExpr.interp +++ b/more_math/Parser/grammer/MathExpr.interp @@ -191,6 +191,7 @@ null null null null +null '+' '-' '*' @@ -405,6 +406,7 @@ CORR ENTROPY CROP NONE +COORDS NOISE RAND CAUCHY @@ -499,4 +501,4 @@ funcNoise atn: -[4, 1, 230, 1876, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 1, 0, 1, 0, 1, 0, 5, 0, 66, 8, 0, 10, 0, 12, 0, 69, 9, 0, 1, 0, 1, 0, 3, 0, 73, 8, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 3, 1, 80, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 86, 8, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 2, 95, 8, 2, 10, 2, 12, 2, 98, 9, 2, 1, 2, 1, 2, 5, 2, 102, 8, 2, 10, 2, 12, 2, 105, 9, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 5, 3, 114, 8, 3, 10, 3, 12, 3, 117, 9, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 130, 8, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 3, 5, 139, 8, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 5, 8, 157, 8, 8, 10, 8, 12, 8, 160, 9, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 3, 11, 172, 8, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 3, 12, 179, 8, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 5, 14, 208, 8, 14, 10, 14, 12, 14, 211, 9, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 5, 15, 222, 8, 15, 10, 15, 12, 15, 225, 9, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 239, 8, 16, 10, 16, 12, 16, 242, 9, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 5, 17, 253, 8, 17, 10, 17, 12, 17, 256, 9, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 3, 18, 263, 8, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 3, 19, 270, 8, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 5, 20, 280, 8, 20, 10, 20, 12, 20, 283, 9, 20, 1, 20, 1, 20, 5, 20, 287, 8, 20, 10, 20, 12, 20, 290, 9, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 3, 21, 310, 8, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 5, 21, 328, 8, 21, 10, 21, 12, 21, 331, 9, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 3, 21, 338, 8, 21, 1, 21, 1, 21, 1, 21, 1, 21, 3, 21, 344, 8, 21, 1, 22, 1, 22, 1, 22, 5, 22, 349, 8, 22, 10, 22, 12, 22, 352, 9, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 523, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 562, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 581, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 597, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 633, 8, 24, 3, 24, 635, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 644, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 653, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 662, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 671, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 750, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 759, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 768, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 777, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 811, 8, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 846, 8, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 962, 8, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 1008, 8, 25, 3, 25, 1010, 8, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 1053, 8, 25, 3, 25, 1055, 8, 25, 3, 25, 1057, 8, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 1087, 8, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 1096, 8, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 1107, 8, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 1140, 8, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 1165, 8, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 1262, 8, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 1275, 8, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 1295, 8, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 1307, 8, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 1319, 8, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 1331, 8, 26, 1, 26, 1, 26, 3, 26, 1335, 8, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 1347, 8, 26, 1, 26, 1, 26, 3, 26, 1351, 8, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 1372, 8, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 1384, 8, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 1397, 8, 26, 1, 26, 1, 26, 3, 26, 1401, 8, 26, 1, 26, 1, 26, 3, 26, 1405, 8, 26, 1, 26, 1, 26, 3, 26, 1409, 8, 26, 1, 26, 1, 26, 3, 26, 1413, 8, 26, 1, 26, 1, 26, 3, 26, 1417, 8, 26, 1, 26, 1, 26, 3, 26, 1421, 8, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 3, 27, 1478, 8, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 1504, 8, 28, 3, 28, 1506, 8, 28, 3, 28, 1508, 8, 28, 1, 28, 1, 28, 3, 28, 1512, 8, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 5, 29, 1519, 8, 29, 10, 29, 12, 29, 1522, 9, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 5, 29, 1531, 8, 29, 10, 29, 12, 29, 1534, 9, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 4, 29, 1543, 8, 29, 11, 29, 12, 29, 1544, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 4, 29, 1554, 8, 29, 11, 29, 12, 29, 1555, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 4, 29, 1565, 8, 29, 11, 29, 12, 29, 1566, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 3, 29, 1583, 8, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 4, 29, 1599, 8, 29, 11, 29, 12, 29, 1600, 1, 29, 1, 29, 3, 29, 1605, 8, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1612, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1621, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1632, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1643, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1654, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1667, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1680, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1693, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1706, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1719, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1732, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1745, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1756, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1767, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1778, 8, 30, 1, 30, 1, 30, 3, 30, 1782, 8, 30, 1, 30, 1, 30, 3, 30, 1786, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1797, 8, 30, 1, 30, 1, 30, 3, 30, 1801, 8, 30, 1, 30, 1, 30, 3, 30, 1805, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1816, 8, 30, 1, 30, 1, 30, 3, 30, 1820, 8, 30, 1, 30, 1, 30, 3, 30, 1824, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1835, 8, 30, 1, 30, 1, 30, 3, 30, 1839, 8, 30, 1, 30, 1, 30, 3, 30, 1843, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1858, 8, 30, 1, 30, 1, 30, 3, 30, 1862, 8, 30, 1, 30, 1, 30, 3, 30, 1866, 8, 30, 1, 30, 1, 30, 3, 30, 1870, 8, 30, 1, 30, 1, 30, 3, 30, 1874, 8, 30, 1, 30, 0, 5, 28, 30, 32, 34, 40, 31, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 0, 1, 1, 0, 205, 210, 2164, 0, 67, 1, 0, 0, 0, 2, 76, 1, 0, 0, 0, 4, 89, 1, 0, 0, 0, 6, 110, 1, 0, 0, 0, 8, 129, 1, 0, 0, 0, 10, 131, 1, 0, 0, 0, 12, 140, 1, 0, 0, 0, 14, 146, 1, 0, 0, 0, 16, 154, 1, 0, 0, 0, 18, 163, 1, 0, 0, 0, 20, 166, 1, 0, 0, 0, 22, 169, 1, 0, 0, 0, 24, 178, 1, 0, 0, 0, 26, 180, 1, 0, 0, 0, 28, 186, 1, 0, 0, 0, 30, 212, 1, 0, 0, 0, 32, 226, 1, 0, 0, 0, 34, 243, 1, 0, 0, 0, 36, 262, 1, 0, 0, 0, 38, 269, 1, 0, 0, 0, 40, 271, 1, 0, 0, 0, 42, 343, 1, 0, 0, 0, 44, 345, 1, 0, 0, 0, 46, 353, 1, 0, 0, 0, 48, 810, 1, 0, 0, 0, 50, 1164, 1, 0, 0, 0, 52, 1420, 1, 0, 0, 0, 54, 1477, 1, 0, 0, 0, 56, 1511, 1, 0, 0, 0, 58, 1604, 1, 0, 0, 0, 60, 1873, 1, 0, 0, 0, 62, 66, 3, 2, 1, 0, 63, 66, 3, 4, 2, 0, 64, 66, 3, 8, 4, 0, 65, 62, 1, 0, 0, 0, 65, 63, 1, 0, 0, 0, 65, 64, 1, 0, 0, 0, 66, 69, 1, 0, 0, 0, 67, 65, 1, 0, 0, 0, 67, 68, 1, 0, 0, 0, 68, 70, 1, 0, 0, 0, 69, 67, 1, 0, 0, 0, 70, 72, 3, 24, 12, 0, 71, 73, 5, 216, 0, 0, 72, 71, 1, 0, 0, 0, 72, 73, 1, 0, 0, 0, 73, 74, 1, 0, 0, 0, 74, 75, 5, 0, 0, 1, 75, 1, 1, 0, 0, 0, 76, 77, 5, 227, 0, 0, 77, 79, 5, 213, 0, 0, 78, 80, 3, 6, 3, 0, 79, 78, 1, 0, 0, 0, 79, 80, 1, 0, 0, 0, 80, 81, 1, 0, 0, 0, 81, 82, 5, 214, 0, 0, 82, 85, 5, 217, 0, 0, 83, 86, 3, 16, 8, 0, 84, 86, 3, 24, 12, 0, 85, 83, 1, 0, 0, 0, 85, 84, 1, 0, 0, 0, 86, 87, 1, 0, 0, 0, 87, 88, 5, 216, 0, 0, 88, 3, 1, 0, 0, 0, 89, 103, 5, 227, 0, 0, 90, 91, 5, 218, 0, 0, 91, 96, 3, 24, 12, 0, 92, 93, 5, 215, 0, 0, 93, 95, 3, 24, 12, 0, 94, 92, 1, 0, 0, 0, 95, 98, 1, 0, 0, 0, 96, 94, 1, 0, 0, 0, 96, 97, 1, 0, 0, 0, 97, 99, 1, 0, 0, 0, 98, 96, 1, 0, 0, 0, 99, 100, 5, 219, 0, 0, 100, 102, 1, 0, 0, 0, 101, 90, 1, 0, 0, 0, 102, 105, 1, 0, 0, 0, 103, 101, 1, 0, 0, 0, 103, 104, 1, 0, 0, 0, 104, 106, 1, 0, 0, 0, 105, 103, 1, 0, 0, 0, 106, 107, 7, 0, 0, 0, 107, 108, 3, 24, 12, 0, 108, 109, 5, 216, 0, 0, 109, 5, 1, 0, 0, 0, 110, 115, 5, 227, 0, 0, 111, 112, 5, 215, 0, 0, 112, 114, 5, 227, 0, 0, 113, 111, 1, 0, 0, 0, 114, 117, 1, 0, 0, 0, 115, 113, 1, 0, 0, 0, 115, 116, 1, 0, 0, 0, 116, 7, 1, 0, 0, 0, 117, 115, 1, 0, 0, 0, 118, 130, 3, 10, 5, 0, 119, 130, 3, 12, 6, 0, 120, 130, 3, 16, 8, 0, 121, 130, 3, 18, 9, 0, 122, 130, 3, 20, 10, 0, 123, 130, 3, 22, 11, 0, 124, 130, 3, 4, 2, 0, 125, 130, 3, 14, 7, 0, 126, 127, 3, 24, 12, 0, 127, 128, 5, 216, 0, 0, 128, 130, 1, 0, 0, 0, 129, 118, 1, 0, 0, 0, 129, 119, 1, 0, 0, 0, 129, 120, 1, 0, 0, 0, 129, 121, 1, 0, 0, 0, 129, 122, 1, 0, 0, 0, 129, 123, 1, 0, 0, 0, 129, 124, 1, 0, 0, 0, 129, 125, 1, 0, 0, 0, 129, 126, 1, 0, 0, 0, 130, 9, 1, 0, 0, 0, 131, 132, 5, 146, 0, 0, 132, 133, 5, 213, 0, 0, 133, 134, 3, 24, 12, 0, 134, 135, 5, 214, 0, 0, 135, 138, 3, 8, 4, 0, 136, 137, 5, 147, 0, 0, 137, 139, 3, 8, 4, 0, 138, 136, 1, 0, 0, 0, 138, 139, 1, 0, 0, 0, 139, 11, 1, 0, 0, 0, 140, 141, 5, 148, 0, 0, 141, 142, 5, 213, 0, 0, 142, 143, 3, 24, 12, 0, 143, 144, 5, 214, 0, 0, 144, 145, 3, 8, 4, 0, 145, 13, 1, 0, 0, 0, 146, 147, 5, 149, 0, 0, 147, 148, 5, 213, 0, 0, 148, 149, 5, 227, 0, 0, 149, 150, 5, 150, 0, 0, 150, 151, 3, 24, 12, 0, 151, 152, 5, 214, 0, 0, 152, 153, 3, 8, 4, 0, 153, 15, 1, 0, 0, 0, 154, 158, 5, 222, 0, 0, 155, 157, 3, 8, 4, 0, 156, 155, 1, 0, 0, 0, 157, 160, 1, 0, 0, 0, 158, 156, 1, 0, 0, 0, 158, 159, 1, 0, 0, 0, 159, 161, 1, 0, 0, 0, 160, 158, 1, 0, 0, 0, 161, 162, 5, 223, 0, 0, 162, 17, 1, 0, 0, 0, 163, 164, 5, 151, 0, 0, 164, 165, 5, 216, 0, 0, 165, 19, 1, 0, 0, 0, 166, 167, 5, 152, 0, 0, 167, 168, 5, 216, 0, 0, 168, 21, 1, 0, 0, 0, 169, 171, 5, 153, 0, 0, 170, 172, 3, 24, 12, 0, 171, 170, 1, 0, 0, 0, 171, 172, 1, 0, 0, 0, 172, 173, 1, 0, 0, 0, 173, 174, 5, 216, 0, 0, 174, 23, 1, 0, 0, 0, 175, 179, 3, 26, 13, 0, 176, 179, 3, 42, 21, 0, 177, 179, 3, 28, 14, 0, 178, 175, 1, 0, 0, 0, 178, 176, 1, 0, 0, 0, 178, 177, 1, 0, 0, 0, 179, 25, 1, 0, 0, 0, 180, 181, 3, 28, 14, 0, 181, 182, 5, 220, 0, 0, 182, 183, 3, 24, 12, 0, 183, 184, 5, 221, 0, 0, 184, 185, 3, 24, 12, 0, 185, 27, 1, 0, 0, 0, 186, 187, 6, 14, -1, 0, 187, 188, 3, 30, 15, 0, 188, 209, 1, 0, 0, 0, 189, 190, 10, 7, 0, 0, 190, 191, 5, 201, 0, 0, 191, 208, 3, 30, 15, 0, 192, 193, 10, 6, 0, 0, 193, 194, 5, 200, 0, 0, 194, 208, 3, 30, 15, 0, 195, 196, 10, 5, 0, 0, 196, 197, 5, 203, 0, 0, 197, 208, 3, 30, 15, 0, 198, 199, 10, 4, 0, 0, 199, 200, 5, 202, 0, 0, 200, 208, 3, 30, 15, 0, 201, 202, 10, 3, 0, 0, 202, 203, 5, 204, 0, 0, 203, 208, 3, 30, 15, 0, 204, 205, 10, 2, 0, 0, 205, 206, 5, 211, 0, 0, 206, 208, 3, 30, 15, 0, 207, 189, 1, 0, 0, 0, 207, 192, 1, 0, 0, 0, 207, 195, 1, 0, 0, 0, 207, 198, 1, 0, 0, 0, 207, 201, 1, 0, 0, 0, 207, 204, 1, 0, 0, 0, 208, 211, 1, 0, 0, 0, 209, 207, 1, 0, 0, 0, 209, 210, 1, 0, 0, 0, 210, 29, 1, 0, 0, 0, 211, 209, 1, 0, 0, 0, 212, 213, 6, 15, -1, 0, 213, 214, 3, 32, 16, 0, 214, 223, 1, 0, 0, 0, 215, 216, 10, 3, 0, 0, 216, 217, 5, 192, 0, 0, 217, 222, 3, 32, 16, 0, 218, 219, 10, 2, 0, 0, 219, 220, 5, 193, 0, 0, 220, 222, 3, 32, 16, 0, 221, 215, 1, 0, 0, 0, 221, 218, 1, 0, 0, 0, 222, 225, 1, 0, 0, 0, 223, 221, 1, 0, 0, 0, 223, 224, 1, 0, 0, 0, 224, 31, 1, 0, 0, 0, 225, 223, 1, 0, 0, 0, 226, 227, 6, 16, -1, 0, 227, 228, 3, 34, 17, 0, 228, 240, 1, 0, 0, 0, 229, 230, 10, 4, 0, 0, 230, 231, 5, 194, 0, 0, 231, 239, 3, 34, 17, 0, 232, 233, 10, 3, 0, 0, 233, 234, 5, 195, 0, 0, 234, 239, 3, 34, 17, 0, 235, 236, 10, 2, 0, 0, 236, 237, 5, 196, 0, 0, 237, 239, 3, 34, 17, 0, 238, 229, 1, 0, 0, 0, 238, 232, 1, 0, 0, 0, 238, 235, 1, 0, 0, 0, 239, 242, 1, 0, 0, 0, 240, 238, 1, 0, 0, 0, 240, 241, 1, 0, 0, 0, 241, 33, 1, 0, 0, 0, 242, 240, 1, 0, 0, 0, 243, 244, 6, 17, -1, 0, 244, 245, 3, 36, 18, 0, 245, 254, 1, 0, 0, 0, 246, 247, 10, 3, 0, 0, 247, 248, 5, 198, 0, 0, 248, 253, 3, 36, 18, 0, 249, 250, 10, 2, 0, 0, 250, 251, 5, 199, 0, 0, 251, 253, 3, 36, 18, 0, 252, 246, 1, 0, 0, 0, 252, 249, 1, 0, 0, 0, 253, 256, 1, 0, 0, 0, 254, 252, 1, 0, 0, 0, 254, 255, 1, 0, 0, 0, 255, 35, 1, 0, 0, 0, 256, 254, 1, 0, 0, 0, 257, 258, 3, 38, 19, 0, 258, 259, 5, 197, 0, 0, 259, 260, 3, 36, 18, 0, 260, 263, 1, 0, 0, 0, 261, 263, 3, 38, 19, 0, 262, 257, 1, 0, 0, 0, 262, 261, 1, 0, 0, 0, 263, 37, 1, 0, 0, 0, 264, 265, 5, 192, 0, 0, 265, 270, 3, 38, 19, 0, 266, 267, 5, 193, 0, 0, 267, 270, 3, 38, 19, 0, 268, 270, 3, 40, 20, 0, 269, 264, 1, 0, 0, 0, 269, 266, 1, 0, 0, 0, 269, 268, 1, 0, 0, 0, 270, 39, 1, 0, 0, 0, 271, 272, 6, 20, -1, 0, 272, 273, 3, 42, 21, 0, 273, 288, 1, 0, 0, 0, 274, 275, 10, 2, 0, 0, 275, 276, 5, 218, 0, 0, 276, 281, 3, 24, 12, 0, 277, 278, 5, 215, 0, 0, 278, 280, 3, 24, 12, 0, 279, 277, 1, 0, 0, 0, 280, 283, 1, 0, 0, 0, 281, 279, 1, 0, 0, 0, 281, 282, 1, 0, 0, 0, 282, 284, 1, 0, 0, 0, 283, 281, 1, 0, 0, 0, 284, 285, 5, 219, 0, 0, 285, 287, 1, 0, 0, 0, 286, 274, 1, 0, 0, 0, 287, 290, 1, 0, 0, 0, 288, 286, 1, 0, 0, 0, 288, 289, 1, 0, 0, 0, 289, 41, 1, 0, 0, 0, 290, 288, 1, 0, 0, 0, 291, 344, 3, 46, 23, 0, 292, 344, 3, 48, 24, 0, 293, 344, 3, 50, 25, 0, 294, 344, 3, 52, 26, 0, 295, 344, 3, 54, 27, 0, 296, 344, 3, 56, 28, 0, 297, 344, 3, 58, 29, 0, 298, 344, 3, 60, 30, 0, 299, 344, 5, 227, 0, 0, 300, 344, 5, 224, 0, 0, 301, 344, 5, 225, 0, 0, 302, 344, 5, 226, 0, 0, 303, 304, 5, 213, 0, 0, 304, 305, 3, 6, 3, 0, 305, 306, 5, 214, 0, 0, 306, 309, 5, 217, 0, 0, 307, 310, 3, 16, 8, 0, 308, 310, 3, 24, 12, 0, 309, 307, 1, 0, 0, 0, 309, 308, 1, 0, 0, 0, 310, 344, 1, 0, 0, 0, 311, 312, 5, 213, 0, 0, 312, 313, 3, 24, 12, 0, 313, 314, 5, 214, 0, 0, 314, 344, 1, 0, 0, 0, 315, 316, 5, 213, 0, 0, 316, 317, 3, 24, 12, 0, 317, 318, 5, 214, 0, 0, 318, 344, 1, 0, 0, 0, 319, 320, 5, 212, 0, 0, 320, 321, 3, 24, 12, 0, 321, 322, 5, 212, 0, 0, 322, 344, 1, 0, 0, 0, 323, 324, 5, 218, 0, 0, 324, 329, 3, 24, 12, 0, 325, 326, 5, 215, 0, 0, 326, 328, 3, 24, 12, 0, 327, 325, 1, 0, 0, 0, 328, 331, 1, 0, 0, 0, 329, 327, 1, 0, 0, 0, 329, 330, 1, 0, 0, 0, 330, 332, 1, 0, 0, 0, 331, 329, 1, 0, 0, 0, 332, 333, 5, 219, 0, 0, 333, 344, 1, 0, 0, 0, 334, 335, 5, 227, 0, 0, 335, 337, 5, 213, 0, 0, 336, 338, 3, 44, 22, 0, 337, 336, 1, 0, 0, 0, 337, 338, 1, 0, 0, 0, 338, 339, 1, 0, 0, 0, 339, 344, 5, 214, 0, 0, 340, 344, 5, 172, 0, 0, 341, 344, 5, 151, 0, 0, 342, 344, 5, 152, 0, 0, 343, 291, 1, 0, 0, 0, 343, 292, 1, 0, 0, 0, 343, 293, 1, 0, 0, 0, 343, 294, 1, 0, 0, 0, 343, 295, 1, 0, 0, 0, 343, 296, 1, 0, 0, 0, 343, 297, 1, 0, 0, 0, 343, 298, 1, 0, 0, 0, 343, 299, 1, 0, 0, 0, 343, 300, 1, 0, 0, 0, 343, 301, 1, 0, 0, 0, 343, 302, 1, 0, 0, 0, 343, 303, 1, 0, 0, 0, 343, 311, 1, 0, 0, 0, 343, 315, 1, 0, 0, 0, 343, 319, 1, 0, 0, 0, 343, 323, 1, 0, 0, 0, 343, 334, 1, 0, 0, 0, 343, 340, 1, 0, 0, 0, 343, 341, 1, 0, 0, 0, 343, 342, 1, 0, 0, 0, 344, 43, 1, 0, 0, 0, 345, 350, 3, 24, 12, 0, 346, 347, 5, 215, 0, 0, 347, 349, 3, 24, 12, 0, 348, 346, 1, 0, 0, 0, 349, 352, 1, 0, 0, 0, 350, 348, 1, 0, 0, 0, 350, 351, 1, 0, 0, 0, 351, 45, 1, 0, 0, 0, 352, 350, 1, 0, 0, 0, 353, 354, 5, 154, 0, 0, 354, 355, 5, 213, 0, 0, 355, 356, 5, 214, 0, 0, 356, 47, 1, 0, 0, 0, 357, 358, 5, 1, 0, 0, 358, 359, 5, 213, 0, 0, 359, 360, 3, 24, 12, 0, 360, 361, 5, 214, 0, 0, 361, 811, 1, 0, 0, 0, 362, 363, 5, 2, 0, 0, 363, 364, 5, 213, 0, 0, 364, 365, 3, 24, 12, 0, 365, 366, 5, 214, 0, 0, 366, 811, 1, 0, 0, 0, 367, 368, 5, 3, 0, 0, 368, 369, 5, 213, 0, 0, 369, 370, 3, 24, 12, 0, 370, 371, 5, 214, 0, 0, 371, 811, 1, 0, 0, 0, 372, 373, 5, 4, 0, 0, 373, 374, 5, 213, 0, 0, 374, 375, 3, 24, 12, 0, 375, 376, 5, 214, 0, 0, 376, 811, 1, 0, 0, 0, 377, 378, 5, 5, 0, 0, 378, 379, 5, 213, 0, 0, 379, 380, 3, 24, 12, 0, 380, 381, 5, 214, 0, 0, 381, 811, 1, 0, 0, 0, 382, 383, 5, 6, 0, 0, 383, 384, 5, 213, 0, 0, 384, 385, 3, 24, 12, 0, 385, 386, 5, 214, 0, 0, 386, 811, 1, 0, 0, 0, 387, 388, 5, 8, 0, 0, 388, 389, 5, 213, 0, 0, 389, 390, 3, 24, 12, 0, 390, 391, 5, 214, 0, 0, 391, 811, 1, 0, 0, 0, 392, 393, 5, 9, 0, 0, 393, 394, 5, 213, 0, 0, 394, 395, 3, 24, 12, 0, 395, 396, 5, 214, 0, 0, 396, 811, 1, 0, 0, 0, 397, 398, 5, 10, 0, 0, 398, 399, 5, 213, 0, 0, 399, 400, 3, 24, 12, 0, 400, 401, 5, 214, 0, 0, 401, 811, 1, 0, 0, 0, 402, 403, 5, 11, 0, 0, 403, 404, 5, 213, 0, 0, 404, 405, 3, 24, 12, 0, 405, 406, 5, 214, 0, 0, 406, 811, 1, 0, 0, 0, 407, 408, 5, 12, 0, 0, 408, 409, 5, 213, 0, 0, 409, 410, 3, 24, 12, 0, 410, 411, 5, 214, 0, 0, 411, 811, 1, 0, 0, 0, 412, 413, 5, 13, 0, 0, 413, 414, 5, 213, 0, 0, 414, 415, 3, 24, 12, 0, 415, 416, 5, 214, 0, 0, 416, 811, 1, 0, 0, 0, 417, 418, 5, 14, 0, 0, 418, 419, 5, 213, 0, 0, 419, 420, 3, 24, 12, 0, 420, 421, 5, 214, 0, 0, 421, 811, 1, 0, 0, 0, 422, 423, 5, 15, 0, 0, 423, 424, 5, 213, 0, 0, 424, 425, 3, 24, 12, 0, 425, 426, 5, 214, 0, 0, 426, 811, 1, 0, 0, 0, 427, 428, 5, 16, 0, 0, 428, 429, 5, 213, 0, 0, 429, 430, 3, 24, 12, 0, 430, 431, 5, 214, 0, 0, 431, 811, 1, 0, 0, 0, 432, 433, 5, 17, 0, 0, 433, 434, 5, 213, 0, 0, 434, 435, 3, 24, 12, 0, 435, 436, 5, 214, 0, 0, 436, 811, 1, 0, 0, 0, 437, 438, 5, 18, 0, 0, 438, 439, 5, 213, 0, 0, 439, 440, 3, 24, 12, 0, 440, 441, 5, 214, 0, 0, 441, 811, 1, 0, 0, 0, 442, 443, 5, 23, 0, 0, 443, 444, 5, 213, 0, 0, 444, 445, 3, 24, 12, 0, 445, 446, 5, 214, 0, 0, 446, 811, 1, 0, 0, 0, 447, 448, 5, 25, 0, 0, 448, 449, 5, 213, 0, 0, 449, 450, 3, 24, 12, 0, 450, 451, 5, 214, 0, 0, 451, 811, 1, 0, 0, 0, 452, 453, 5, 26, 0, 0, 453, 454, 5, 213, 0, 0, 454, 455, 3, 24, 12, 0, 455, 456, 5, 214, 0, 0, 456, 811, 1, 0, 0, 0, 457, 458, 5, 27, 0, 0, 458, 459, 5, 213, 0, 0, 459, 460, 3, 24, 12, 0, 460, 461, 5, 214, 0, 0, 461, 811, 1, 0, 0, 0, 462, 463, 5, 28, 0, 0, 463, 464, 5, 213, 0, 0, 464, 465, 3, 24, 12, 0, 465, 466, 5, 214, 0, 0, 466, 811, 1, 0, 0, 0, 467, 468, 5, 30, 0, 0, 468, 469, 5, 213, 0, 0, 469, 470, 3, 24, 12, 0, 470, 471, 5, 214, 0, 0, 471, 811, 1, 0, 0, 0, 472, 473, 5, 34, 0, 0, 473, 474, 5, 213, 0, 0, 474, 475, 3, 24, 12, 0, 475, 476, 5, 214, 0, 0, 476, 811, 1, 0, 0, 0, 477, 478, 5, 35, 0, 0, 478, 479, 5, 213, 0, 0, 479, 480, 3, 24, 12, 0, 480, 481, 5, 214, 0, 0, 481, 811, 1, 0, 0, 0, 482, 483, 5, 41, 0, 0, 483, 484, 5, 213, 0, 0, 484, 485, 3, 24, 12, 0, 485, 486, 5, 214, 0, 0, 486, 811, 1, 0, 0, 0, 487, 488, 5, 42, 0, 0, 488, 489, 5, 213, 0, 0, 489, 490, 3, 24, 12, 0, 490, 491, 5, 214, 0, 0, 491, 811, 1, 0, 0, 0, 492, 493, 5, 43, 0, 0, 493, 494, 5, 213, 0, 0, 494, 495, 3, 24, 12, 0, 495, 496, 5, 214, 0, 0, 496, 811, 1, 0, 0, 0, 497, 498, 5, 44, 0, 0, 498, 499, 5, 213, 0, 0, 499, 500, 3, 24, 12, 0, 500, 501, 5, 214, 0, 0, 501, 811, 1, 0, 0, 0, 502, 503, 5, 45, 0, 0, 503, 504, 5, 213, 0, 0, 504, 505, 3, 24, 12, 0, 505, 506, 5, 214, 0, 0, 506, 811, 1, 0, 0, 0, 507, 508, 5, 36, 0, 0, 508, 509, 5, 213, 0, 0, 509, 510, 3, 24, 12, 0, 510, 511, 5, 214, 0, 0, 511, 811, 1, 0, 0, 0, 512, 513, 5, 57, 0, 0, 513, 514, 5, 213, 0, 0, 514, 515, 3, 24, 12, 0, 515, 516, 5, 214, 0, 0, 516, 811, 1, 0, 0, 0, 517, 518, 5, 58, 0, 0, 518, 519, 5, 213, 0, 0, 519, 522, 3, 24, 12, 0, 520, 521, 5, 215, 0, 0, 521, 523, 3, 24, 12, 0, 522, 520, 1, 0, 0, 0, 522, 523, 1, 0, 0, 0, 523, 524, 1, 0, 0, 0, 524, 525, 5, 214, 0, 0, 525, 811, 1, 0, 0, 0, 526, 527, 5, 59, 0, 0, 527, 528, 5, 213, 0, 0, 528, 529, 3, 24, 12, 0, 529, 530, 5, 214, 0, 0, 530, 811, 1, 0, 0, 0, 531, 532, 5, 60, 0, 0, 532, 533, 5, 213, 0, 0, 533, 534, 3, 24, 12, 0, 534, 535, 5, 214, 0, 0, 535, 811, 1, 0, 0, 0, 536, 537, 5, 61, 0, 0, 537, 538, 5, 213, 0, 0, 538, 539, 3, 24, 12, 0, 539, 540, 5, 214, 0, 0, 540, 811, 1, 0, 0, 0, 541, 542, 5, 155, 0, 0, 542, 543, 5, 213, 0, 0, 543, 544, 3, 24, 12, 0, 544, 545, 5, 214, 0, 0, 545, 811, 1, 0, 0, 0, 546, 547, 5, 69, 0, 0, 547, 548, 5, 213, 0, 0, 548, 549, 3, 24, 12, 0, 549, 550, 5, 214, 0, 0, 550, 811, 1, 0, 0, 0, 551, 552, 5, 70, 0, 0, 552, 553, 5, 213, 0, 0, 553, 554, 3, 24, 12, 0, 554, 555, 5, 214, 0, 0, 555, 811, 1, 0, 0, 0, 556, 557, 5, 71, 0, 0, 557, 558, 5, 213, 0, 0, 558, 561, 3, 24, 12, 0, 559, 560, 5, 215, 0, 0, 560, 562, 3, 24, 12, 0, 561, 559, 1, 0, 0, 0, 561, 562, 1, 0, 0, 0, 562, 563, 1, 0, 0, 0, 563, 564, 5, 214, 0, 0, 564, 811, 1, 0, 0, 0, 565, 566, 5, 73, 0, 0, 566, 567, 5, 213, 0, 0, 567, 568, 3, 24, 12, 0, 568, 569, 5, 214, 0, 0, 569, 811, 1, 0, 0, 0, 570, 571, 5, 74, 0, 0, 571, 572, 5, 213, 0, 0, 572, 573, 3, 24, 12, 0, 573, 574, 5, 214, 0, 0, 574, 811, 1, 0, 0, 0, 575, 576, 5, 75, 0, 0, 576, 577, 5, 213, 0, 0, 577, 580, 3, 24, 12, 0, 578, 579, 5, 215, 0, 0, 579, 581, 3, 24, 12, 0, 580, 578, 1, 0, 0, 0, 580, 581, 1, 0, 0, 0, 581, 582, 1, 0, 0, 0, 582, 583, 5, 214, 0, 0, 583, 811, 1, 0, 0, 0, 584, 585, 5, 86, 0, 0, 585, 586, 5, 213, 0, 0, 586, 587, 3, 24, 12, 0, 587, 588, 5, 214, 0, 0, 588, 811, 1, 0, 0, 0, 589, 590, 5, 87, 0, 0, 590, 591, 5, 213, 0, 0, 591, 592, 3, 24, 12, 0, 592, 593, 5, 215, 0, 0, 593, 596, 3, 24, 12, 0, 594, 595, 5, 215, 0, 0, 595, 597, 3, 24, 12, 0, 596, 594, 1, 0, 0, 0, 596, 597, 1, 0, 0, 0, 597, 598, 1, 0, 0, 0, 598, 599, 5, 214, 0, 0, 599, 811, 1, 0, 0, 0, 600, 601, 5, 76, 0, 0, 601, 602, 5, 213, 0, 0, 602, 603, 3, 24, 12, 0, 603, 604, 5, 214, 0, 0, 604, 811, 1, 0, 0, 0, 605, 606, 5, 112, 0, 0, 606, 607, 5, 213, 0, 0, 607, 608, 3, 24, 12, 0, 608, 609, 5, 214, 0, 0, 609, 811, 1, 0, 0, 0, 610, 611, 5, 113, 0, 0, 611, 612, 5, 213, 0, 0, 612, 613, 3, 24, 12, 0, 613, 614, 5, 214, 0, 0, 614, 811, 1, 0, 0, 0, 615, 616, 5, 114, 0, 0, 616, 617, 5, 213, 0, 0, 617, 618, 3, 24, 12, 0, 618, 619, 5, 214, 0, 0, 619, 811, 1, 0, 0, 0, 620, 621, 5, 115, 0, 0, 621, 622, 5, 213, 0, 0, 622, 623, 3, 24, 12, 0, 623, 624, 5, 214, 0, 0, 624, 811, 1, 0, 0, 0, 625, 626, 5, 156, 0, 0, 626, 627, 5, 213, 0, 0, 627, 634, 3, 24, 12, 0, 628, 629, 5, 215, 0, 0, 629, 632, 3, 24, 12, 0, 630, 631, 5, 215, 0, 0, 631, 633, 3, 24, 12, 0, 632, 630, 1, 0, 0, 0, 632, 633, 1, 0, 0, 0, 633, 635, 1, 0, 0, 0, 634, 628, 1, 0, 0, 0, 634, 635, 1, 0, 0, 0, 635, 636, 1, 0, 0, 0, 636, 637, 5, 214, 0, 0, 637, 811, 1, 0, 0, 0, 638, 639, 5, 157, 0, 0, 639, 640, 5, 213, 0, 0, 640, 643, 3, 24, 12, 0, 641, 642, 5, 215, 0, 0, 642, 644, 3, 24, 12, 0, 643, 641, 1, 0, 0, 0, 643, 644, 1, 0, 0, 0, 644, 645, 1, 0, 0, 0, 645, 646, 5, 214, 0, 0, 646, 811, 1, 0, 0, 0, 647, 648, 5, 158, 0, 0, 648, 649, 5, 213, 0, 0, 649, 652, 3, 24, 12, 0, 650, 651, 5, 215, 0, 0, 651, 653, 3, 24, 12, 0, 652, 650, 1, 0, 0, 0, 652, 653, 1, 0, 0, 0, 653, 654, 1, 0, 0, 0, 654, 655, 5, 214, 0, 0, 655, 811, 1, 0, 0, 0, 656, 657, 5, 159, 0, 0, 657, 658, 5, 213, 0, 0, 658, 661, 3, 24, 12, 0, 659, 660, 5, 215, 0, 0, 660, 662, 3, 24, 12, 0, 661, 659, 1, 0, 0, 0, 661, 662, 1, 0, 0, 0, 662, 663, 1, 0, 0, 0, 663, 664, 5, 214, 0, 0, 664, 811, 1, 0, 0, 0, 665, 666, 5, 160, 0, 0, 666, 667, 5, 213, 0, 0, 667, 670, 3, 24, 12, 0, 668, 669, 5, 215, 0, 0, 669, 671, 3, 24, 12, 0, 670, 668, 1, 0, 0, 0, 670, 671, 1, 0, 0, 0, 671, 672, 1, 0, 0, 0, 672, 673, 5, 214, 0, 0, 673, 811, 1, 0, 0, 0, 674, 675, 5, 67, 0, 0, 675, 676, 5, 213, 0, 0, 676, 677, 3, 24, 12, 0, 677, 678, 5, 214, 0, 0, 678, 811, 1, 0, 0, 0, 679, 680, 5, 68, 0, 0, 680, 681, 5, 213, 0, 0, 681, 682, 3, 24, 12, 0, 682, 683, 5, 214, 0, 0, 683, 811, 1, 0, 0, 0, 684, 685, 5, 161, 0, 0, 685, 686, 5, 213, 0, 0, 686, 687, 3, 24, 12, 0, 687, 688, 5, 214, 0, 0, 688, 811, 1, 0, 0, 0, 689, 690, 5, 88, 0, 0, 690, 691, 5, 213, 0, 0, 691, 692, 3, 24, 12, 0, 692, 693, 5, 214, 0, 0, 693, 811, 1, 0, 0, 0, 694, 695, 5, 93, 0, 0, 695, 696, 5, 213, 0, 0, 696, 697, 3, 24, 12, 0, 697, 698, 5, 214, 0, 0, 698, 811, 1, 0, 0, 0, 699, 700, 5, 94, 0, 0, 700, 701, 5, 213, 0, 0, 701, 702, 3, 24, 12, 0, 702, 703, 5, 214, 0, 0, 703, 811, 1, 0, 0, 0, 704, 705, 5, 104, 0, 0, 705, 706, 5, 213, 0, 0, 706, 707, 3, 24, 12, 0, 707, 708, 5, 214, 0, 0, 708, 811, 1, 0, 0, 0, 709, 710, 5, 105, 0, 0, 710, 711, 5, 213, 0, 0, 711, 712, 3, 24, 12, 0, 712, 713, 5, 214, 0, 0, 713, 811, 1, 0, 0, 0, 714, 715, 5, 106, 0, 0, 715, 716, 5, 213, 0, 0, 716, 717, 3, 24, 12, 0, 717, 718, 5, 214, 0, 0, 718, 811, 1, 0, 0, 0, 719, 720, 5, 119, 0, 0, 720, 721, 5, 213, 0, 0, 721, 722, 3, 24, 12, 0, 722, 723, 5, 214, 0, 0, 723, 811, 1, 0, 0, 0, 724, 725, 5, 120, 0, 0, 725, 726, 5, 213, 0, 0, 726, 727, 3, 24, 12, 0, 727, 728, 5, 214, 0, 0, 728, 811, 1, 0, 0, 0, 729, 730, 5, 121, 0, 0, 730, 731, 5, 213, 0, 0, 731, 732, 3, 24, 12, 0, 732, 733, 5, 214, 0, 0, 733, 811, 1, 0, 0, 0, 734, 735, 5, 170, 0, 0, 735, 736, 5, 213, 0, 0, 736, 737, 3, 24, 12, 0, 737, 738, 5, 214, 0, 0, 738, 811, 1, 0, 0, 0, 739, 740, 5, 32, 0, 0, 740, 741, 5, 213, 0, 0, 741, 742, 3, 24, 12, 0, 742, 743, 5, 214, 0, 0, 743, 811, 1, 0, 0, 0, 744, 745, 5, 127, 0, 0, 745, 746, 5, 213, 0, 0, 746, 749, 3, 24, 12, 0, 747, 748, 5, 215, 0, 0, 748, 750, 3, 24, 12, 0, 749, 747, 1, 0, 0, 0, 749, 750, 1, 0, 0, 0, 750, 751, 1, 0, 0, 0, 751, 752, 5, 214, 0, 0, 752, 811, 1, 0, 0, 0, 753, 754, 5, 128, 0, 0, 754, 755, 5, 213, 0, 0, 755, 758, 3, 24, 12, 0, 756, 757, 5, 215, 0, 0, 757, 759, 3, 24, 12, 0, 758, 756, 1, 0, 0, 0, 758, 759, 1, 0, 0, 0, 759, 760, 1, 0, 0, 0, 760, 761, 5, 214, 0, 0, 761, 811, 1, 0, 0, 0, 762, 763, 5, 129, 0, 0, 763, 764, 5, 213, 0, 0, 764, 767, 3, 24, 12, 0, 765, 766, 5, 215, 0, 0, 766, 768, 3, 24, 12, 0, 767, 765, 1, 0, 0, 0, 767, 768, 1, 0, 0, 0, 768, 769, 1, 0, 0, 0, 769, 770, 5, 214, 0, 0, 770, 811, 1, 0, 0, 0, 771, 772, 5, 130, 0, 0, 772, 773, 5, 213, 0, 0, 773, 776, 3, 24, 12, 0, 774, 775, 5, 215, 0, 0, 775, 777, 3, 24, 12, 0, 776, 774, 1, 0, 0, 0, 776, 777, 1, 0, 0, 0, 777, 778, 1, 0, 0, 0, 778, 779, 5, 214, 0, 0, 779, 811, 1, 0, 0, 0, 780, 781, 5, 117, 0, 0, 781, 782, 5, 213, 0, 0, 782, 783, 3, 24, 12, 0, 783, 784, 5, 214, 0, 0, 784, 811, 1, 0, 0, 0, 785, 786, 5, 118, 0, 0, 786, 787, 5, 213, 0, 0, 787, 788, 3, 24, 12, 0, 788, 789, 5, 214, 0, 0, 789, 811, 1, 0, 0, 0, 790, 791, 5, 95, 0, 0, 791, 792, 5, 213, 0, 0, 792, 793, 3, 24, 12, 0, 793, 794, 5, 214, 0, 0, 794, 811, 1, 0, 0, 0, 795, 796, 5, 96, 0, 0, 796, 797, 5, 213, 0, 0, 797, 798, 3, 24, 12, 0, 798, 799, 5, 214, 0, 0, 799, 811, 1, 0, 0, 0, 800, 801, 5, 143, 0, 0, 801, 802, 5, 213, 0, 0, 802, 803, 3, 24, 12, 0, 803, 804, 5, 214, 0, 0, 804, 811, 1, 0, 0, 0, 805, 806, 5, 144, 0, 0, 806, 807, 5, 213, 0, 0, 807, 808, 3, 24, 12, 0, 808, 809, 5, 214, 0, 0, 809, 811, 1, 0, 0, 0, 810, 357, 1, 0, 0, 0, 810, 362, 1, 0, 0, 0, 810, 367, 1, 0, 0, 0, 810, 372, 1, 0, 0, 0, 810, 377, 1, 0, 0, 0, 810, 382, 1, 0, 0, 0, 810, 387, 1, 0, 0, 0, 810, 392, 1, 0, 0, 0, 810, 397, 1, 0, 0, 0, 810, 402, 1, 0, 0, 0, 810, 407, 1, 0, 0, 0, 810, 412, 1, 0, 0, 0, 810, 417, 1, 0, 0, 0, 810, 422, 1, 0, 0, 0, 810, 427, 1, 0, 0, 0, 810, 432, 1, 0, 0, 0, 810, 437, 1, 0, 0, 0, 810, 442, 1, 0, 0, 0, 810, 447, 1, 0, 0, 0, 810, 452, 1, 0, 0, 0, 810, 457, 1, 0, 0, 0, 810, 462, 1, 0, 0, 0, 810, 467, 1, 0, 0, 0, 810, 472, 1, 0, 0, 0, 810, 477, 1, 0, 0, 0, 810, 482, 1, 0, 0, 0, 810, 487, 1, 0, 0, 0, 810, 492, 1, 0, 0, 0, 810, 497, 1, 0, 0, 0, 810, 502, 1, 0, 0, 0, 810, 507, 1, 0, 0, 0, 810, 512, 1, 0, 0, 0, 810, 517, 1, 0, 0, 0, 810, 526, 1, 0, 0, 0, 810, 531, 1, 0, 0, 0, 810, 536, 1, 0, 0, 0, 810, 541, 1, 0, 0, 0, 810, 546, 1, 0, 0, 0, 810, 551, 1, 0, 0, 0, 810, 556, 1, 0, 0, 0, 810, 565, 1, 0, 0, 0, 810, 570, 1, 0, 0, 0, 810, 575, 1, 0, 0, 0, 810, 584, 1, 0, 0, 0, 810, 589, 1, 0, 0, 0, 810, 600, 1, 0, 0, 0, 810, 605, 1, 0, 0, 0, 810, 610, 1, 0, 0, 0, 810, 615, 1, 0, 0, 0, 810, 620, 1, 0, 0, 0, 810, 625, 1, 0, 0, 0, 810, 638, 1, 0, 0, 0, 810, 647, 1, 0, 0, 0, 810, 656, 1, 0, 0, 0, 810, 665, 1, 0, 0, 0, 810, 674, 1, 0, 0, 0, 810, 679, 1, 0, 0, 0, 810, 684, 1, 0, 0, 0, 810, 689, 1, 0, 0, 0, 810, 694, 1, 0, 0, 0, 810, 699, 1, 0, 0, 0, 810, 704, 1, 0, 0, 0, 810, 709, 1, 0, 0, 0, 810, 714, 1, 0, 0, 0, 810, 719, 1, 0, 0, 0, 810, 724, 1, 0, 0, 0, 810, 729, 1, 0, 0, 0, 810, 734, 1, 0, 0, 0, 810, 739, 1, 0, 0, 0, 810, 744, 1, 0, 0, 0, 810, 753, 1, 0, 0, 0, 810, 762, 1, 0, 0, 0, 810, 771, 1, 0, 0, 0, 810, 780, 1, 0, 0, 0, 810, 785, 1, 0, 0, 0, 810, 790, 1, 0, 0, 0, 810, 795, 1, 0, 0, 0, 810, 800, 1, 0, 0, 0, 810, 805, 1, 0, 0, 0, 811, 49, 1, 0, 0, 0, 812, 813, 5, 29, 0, 0, 813, 814, 5, 213, 0, 0, 814, 815, 3, 24, 12, 0, 815, 816, 5, 215, 0, 0, 816, 817, 3, 24, 12, 0, 817, 818, 5, 214, 0, 0, 818, 1165, 1, 0, 0, 0, 819, 820, 5, 7, 0, 0, 820, 821, 5, 213, 0, 0, 821, 822, 3, 24, 12, 0, 822, 823, 5, 215, 0, 0, 823, 824, 3, 24, 12, 0, 824, 825, 5, 214, 0, 0, 825, 1165, 1, 0, 0, 0, 826, 827, 5, 21, 0, 0, 827, 828, 5, 213, 0, 0, 828, 829, 3, 24, 12, 0, 829, 830, 5, 215, 0, 0, 830, 831, 3, 24, 12, 0, 831, 832, 5, 214, 0, 0, 832, 1165, 1, 0, 0, 0, 833, 834, 5, 22, 0, 0, 834, 835, 5, 213, 0, 0, 835, 836, 3, 24, 12, 0, 836, 837, 5, 215, 0, 0, 837, 838, 3, 24, 12, 0, 838, 839, 5, 214, 0, 0, 839, 1165, 1, 0, 0, 0, 840, 841, 5, 24, 0, 0, 841, 842, 5, 213, 0, 0, 842, 845, 3, 24, 12, 0, 843, 844, 5, 215, 0, 0, 844, 846, 3, 24, 12, 0, 845, 843, 1, 0, 0, 0, 845, 846, 1, 0, 0, 0, 846, 847, 1, 0, 0, 0, 847, 848, 5, 214, 0, 0, 848, 1165, 1, 0, 0, 0, 849, 850, 5, 39, 0, 0, 850, 851, 5, 213, 0, 0, 851, 852, 3, 24, 12, 0, 852, 853, 5, 215, 0, 0, 853, 854, 3, 24, 12, 0, 854, 855, 5, 214, 0, 0, 855, 1165, 1, 0, 0, 0, 856, 857, 5, 55, 0, 0, 857, 858, 5, 213, 0, 0, 858, 859, 3, 24, 12, 0, 859, 860, 5, 215, 0, 0, 860, 861, 3, 24, 12, 0, 861, 862, 5, 214, 0, 0, 862, 1165, 1, 0, 0, 0, 863, 864, 5, 56, 0, 0, 864, 865, 5, 213, 0, 0, 865, 866, 3, 24, 12, 0, 866, 867, 5, 215, 0, 0, 867, 868, 3, 24, 12, 0, 868, 869, 5, 214, 0, 0, 869, 1165, 1, 0, 0, 0, 870, 871, 5, 62, 0, 0, 871, 872, 5, 213, 0, 0, 872, 873, 3, 24, 12, 0, 873, 874, 5, 215, 0, 0, 874, 875, 3, 24, 12, 0, 875, 876, 5, 214, 0, 0, 876, 1165, 1, 0, 0, 0, 877, 878, 5, 63, 0, 0, 878, 879, 5, 213, 0, 0, 879, 880, 3, 24, 12, 0, 880, 881, 5, 215, 0, 0, 881, 882, 3, 24, 12, 0, 882, 883, 5, 214, 0, 0, 883, 1165, 1, 0, 0, 0, 884, 885, 5, 64, 0, 0, 885, 886, 5, 213, 0, 0, 886, 887, 3, 24, 12, 0, 887, 888, 5, 215, 0, 0, 888, 889, 3, 24, 12, 0, 889, 890, 5, 214, 0, 0, 890, 1165, 1, 0, 0, 0, 891, 892, 5, 65, 0, 0, 892, 893, 5, 213, 0, 0, 893, 894, 3, 24, 12, 0, 894, 895, 5, 215, 0, 0, 895, 896, 3, 24, 12, 0, 896, 897, 5, 214, 0, 0, 897, 1165, 1, 0, 0, 0, 898, 899, 5, 85, 0, 0, 899, 900, 5, 213, 0, 0, 900, 901, 3, 24, 12, 0, 901, 902, 5, 215, 0, 0, 902, 903, 3, 24, 12, 0, 903, 904, 5, 214, 0, 0, 904, 1165, 1, 0, 0, 0, 905, 906, 5, 163, 0, 0, 906, 907, 5, 213, 0, 0, 907, 908, 3, 24, 12, 0, 908, 909, 5, 215, 0, 0, 909, 910, 3, 24, 12, 0, 910, 911, 5, 214, 0, 0, 911, 1165, 1, 0, 0, 0, 912, 913, 5, 164, 0, 0, 913, 914, 5, 213, 0, 0, 914, 915, 3, 24, 12, 0, 915, 916, 5, 215, 0, 0, 916, 917, 3, 24, 12, 0, 917, 918, 5, 214, 0, 0, 918, 1165, 1, 0, 0, 0, 919, 920, 5, 162, 0, 0, 920, 921, 5, 213, 0, 0, 921, 922, 3, 24, 12, 0, 922, 923, 5, 215, 0, 0, 923, 924, 3, 24, 12, 0, 924, 925, 5, 214, 0, 0, 925, 1165, 1, 0, 0, 0, 926, 927, 5, 168, 0, 0, 927, 928, 5, 213, 0, 0, 928, 929, 3, 24, 12, 0, 929, 930, 5, 215, 0, 0, 930, 931, 3, 24, 12, 0, 931, 932, 5, 214, 0, 0, 932, 1165, 1, 0, 0, 0, 933, 934, 5, 169, 0, 0, 934, 935, 5, 213, 0, 0, 935, 936, 3, 24, 12, 0, 936, 937, 5, 215, 0, 0, 937, 938, 3, 24, 12, 0, 938, 939, 5, 214, 0, 0, 939, 1165, 1, 0, 0, 0, 940, 941, 5, 89, 0, 0, 941, 942, 5, 213, 0, 0, 942, 943, 3, 24, 12, 0, 943, 944, 5, 215, 0, 0, 944, 945, 3, 24, 12, 0, 945, 946, 5, 214, 0, 0, 946, 1165, 1, 0, 0, 0, 947, 948, 5, 50, 0, 0, 948, 949, 5, 213, 0, 0, 949, 950, 3, 24, 12, 0, 950, 951, 5, 215, 0, 0, 951, 952, 3, 24, 12, 0, 952, 953, 5, 214, 0, 0, 953, 1165, 1, 0, 0, 0, 954, 955, 5, 72, 0, 0, 955, 956, 5, 213, 0, 0, 956, 957, 3, 24, 12, 0, 957, 958, 5, 215, 0, 0, 958, 961, 3, 24, 12, 0, 959, 960, 5, 215, 0, 0, 960, 962, 3, 24, 12, 0, 961, 959, 1, 0, 0, 0, 961, 962, 1, 0, 0, 0, 962, 963, 1, 0, 0, 0, 963, 964, 5, 214, 0, 0, 964, 1165, 1, 0, 0, 0, 965, 966, 5, 77, 0, 0, 966, 967, 5, 213, 0, 0, 967, 968, 3, 24, 12, 0, 968, 969, 5, 215, 0, 0, 969, 970, 3, 24, 12, 0, 970, 971, 5, 214, 0, 0, 971, 1165, 1, 0, 0, 0, 972, 973, 5, 78, 0, 0, 973, 974, 5, 213, 0, 0, 974, 975, 3, 24, 12, 0, 975, 976, 5, 215, 0, 0, 976, 977, 3, 24, 12, 0, 977, 978, 5, 214, 0, 0, 978, 1165, 1, 0, 0, 0, 979, 980, 5, 92, 0, 0, 980, 981, 5, 213, 0, 0, 981, 982, 3, 24, 12, 0, 982, 983, 5, 215, 0, 0, 983, 984, 3, 24, 12, 0, 984, 985, 5, 214, 0, 0, 985, 1165, 1, 0, 0, 0, 986, 987, 5, 111, 0, 0, 987, 988, 5, 213, 0, 0, 988, 989, 3, 24, 12, 0, 989, 990, 5, 215, 0, 0, 990, 991, 3, 24, 12, 0, 991, 992, 5, 214, 0, 0, 992, 1165, 1, 0, 0, 0, 993, 994, 5, 90, 0, 0, 994, 995, 5, 213, 0, 0, 995, 996, 3, 24, 12, 0, 996, 997, 5, 215, 0, 0, 997, 998, 3, 24, 12, 0, 998, 999, 5, 214, 0, 0, 999, 1165, 1, 0, 0, 0, 1000, 1001, 5, 110, 0, 0, 1001, 1002, 5, 213, 0, 0, 1002, 1009, 3, 40, 20, 0, 1003, 1004, 5, 215, 0, 0, 1004, 1007, 3, 24, 12, 0, 1005, 1006, 5, 215, 0, 0, 1006, 1008, 3, 24, 12, 0, 1007, 1005, 1, 0, 0, 0, 1007, 1008, 1, 0, 0, 0, 1008, 1010, 1, 0, 0, 0, 1009, 1003, 1, 0, 0, 0, 1009, 1010, 1, 0, 0, 0, 1010, 1011, 1, 0, 0, 0, 1011, 1012, 5, 214, 0, 0, 1012, 1165, 1, 0, 0, 0, 1013, 1014, 5, 100, 0, 0, 1014, 1015, 5, 213, 0, 0, 1015, 1016, 3, 24, 12, 0, 1016, 1017, 5, 215, 0, 0, 1017, 1018, 3, 24, 12, 0, 1018, 1019, 5, 214, 0, 0, 1019, 1165, 1, 0, 0, 0, 1020, 1021, 5, 101, 0, 0, 1021, 1022, 5, 213, 0, 0, 1022, 1023, 3, 24, 12, 0, 1023, 1024, 5, 215, 0, 0, 1024, 1025, 3, 24, 12, 0, 1025, 1026, 5, 214, 0, 0, 1026, 1165, 1, 0, 0, 0, 1027, 1028, 5, 102, 0, 0, 1028, 1029, 5, 213, 0, 0, 1029, 1030, 3, 24, 12, 0, 1030, 1031, 5, 215, 0, 0, 1031, 1032, 3, 24, 12, 0, 1032, 1033, 5, 214, 0, 0, 1033, 1165, 1, 0, 0, 0, 1034, 1035, 5, 91, 0, 0, 1035, 1036, 5, 213, 0, 0, 1036, 1037, 3, 24, 12, 0, 1037, 1038, 5, 215, 0, 0, 1038, 1039, 3, 24, 12, 0, 1039, 1040, 5, 214, 0, 0, 1040, 1165, 1, 0, 0, 0, 1041, 1042, 5, 103, 0, 0, 1042, 1043, 5, 213, 0, 0, 1043, 1044, 3, 24, 12, 0, 1044, 1045, 5, 215, 0, 0, 1045, 1056, 3, 24, 12, 0, 1046, 1047, 5, 215, 0, 0, 1047, 1054, 3, 24, 12, 0, 1048, 1049, 5, 215, 0, 0, 1049, 1052, 3, 24, 12, 0, 1050, 1051, 5, 215, 0, 0, 1051, 1053, 3, 24, 12, 0, 1052, 1050, 1, 0, 0, 0, 1052, 1053, 1, 0, 0, 0, 1053, 1055, 1, 0, 0, 0, 1054, 1048, 1, 0, 0, 0, 1054, 1055, 1, 0, 0, 0, 1055, 1057, 1, 0, 0, 0, 1056, 1046, 1, 0, 0, 0, 1056, 1057, 1, 0, 0, 0, 1057, 1058, 1, 0, 0, 0, 1058, 1059, 5, 214, 0, 0, 1059, 1165, 1, 0, 0, 0, 1060, 1061, 5, 107, 0, 0, 1061, 1062, 5, 213, 0, 0, 1062, 1063, 3, 24, 12, 0, 1063, 1064, 5, 215, 0, 0, 1064, 1065, 3, 24, 12, 0, 1065, 1066, 5, 214, 0, 0, 1066, 1165, 1, 0, 0, 0, 1067, 1068, 5, 108, 0, 0, 1068, 1069, 5, 213, 0, 0, 1069, 1070, 3, 24, 12, 0, 1070, 1071, 5, 215, 0, 0, 1071, 1072, 3, 24, 12, 0, 1072, 1073, 5, 214, 0, 0, 1073, 1165, 1, 0, 0, 0, 1074, 1075, 5, 109, 0, 0, 1075, 1076, 5, 213, 0, 0, 1076, 1077, 3, 24, 12, 0, 1077, 1078, 5, 215, 0, 0, 1078, 1079, 3, 24, 12, 0, 1079, 1080, 5, 214, 0, 0, 1080, 1165, 1, 0, 0, 0, 1081, 1082, 5, 122, 0, 0, 1082, 1083, 5, 213, 0, 0, 1083, 1086, 3, 24, 12, 0, 1084, 1085, 5, 215, 0, 0, 1085, 1087, 3, 24, 12, 0, 1086, 1084, 1, 0, 0, 0, 1086, 1087, 1, 0, 0, 0, 1087, 1088, 1, 0, 0, 0, 1088, 1089, 5, 214, 0, 0, 1089, 1165, 1, 0, 0, 0, 1090, 1091, 5, 123, 0, 0, 1091, 1092, 5, 213, 0, 0, 1092, 1095, 3, 24, 12, 0, 1093, 1094, 5, 215, 0, 0, 1094, 1096, 3, 24, 12, 0, 1095, 1093, 1, 0, 0, 0, 1095, 1096, 1, 0, 0, 0, 1096, 1097, 1, 0, 0, 0, 1097, 1098, 5, 214, 0, 0, 1098, 1165, 1, 0, 0, 0, 1099, 1100, 5, 124, 0, 0, 1100, 1101, 5, 213, 0, 0, 1101, 1102, 3, 24, 12, 0, 1102, 1103, 5, 215, 0, 0, 1103, 1106, 3, 24, 12, 0, 1104, 1105, 5, 215, 0, 0, 1105, 1107, 3, 24, 12, 0, 1106, 1104, 1, 0, 0, 0, 1106, 1107, 1, 0, 0, 0, 1107, 1108, 1, 0, 0, 0, 1108, 1109, 5, 214, 0, 0, 1109, 1165, 1, 0, 0, 0, 1110, 1111, 5, 125, 0, 0, 1111, 1112, 5, 213, 0, 0, 1112, 1113, 3, 24, 12, 0, 1113, 1114, 5, 215, 0, 0, 1114, 1115, 3, 24, 12, 0, 1115, 1116, 5, 214, 0, 0, 1116, 1165, 1, 0, 0, 0, 1117, 1118, 5, 126, 0, 0, 1118, 1119, 5, 213, 0, 0, 1119, 1120, 3, 24, 12, 0, 1120, 1121, 5, 215, 0, 0, 1121, 1122, 3, 24, 12, 0, 1122, 1123, 5, 215, 0, 0, 1123, 1124, 3, 24, 12, 0, 1124, 1125, 5, 214, 0, 0, 1125, 1165, 1, 0, 0, 0, 1126, 1127, 5, 137, 0, 0, 1127, 1128, 5, 213, 0, 0, 1128, 1129, 3, 24, 12, 0, 1129, 1130, 5, 214, 0, 0, 1130, 1165, 1, 0, 0, 0, 1131, 1132, 5, 138, 0, 0, 1132, 1133, 5, 213, 0, 0, 1133, 1139, 3, 24, 12, 0, 1134, 1135, 5, 215, 0, 0, 1135, 1136, 3, 24, 12, 0, 1136, 1137, 5, 215, 0, 0, 1137, 1138, 3, 24, 12, 0, 1138, 1140, 1, 0, 0, 0, 1139, 1134, 1, 0, 0, 0, 1139, 1140, 1, 0, 0, 0, 1140, 1141, 1, 0, 0, 0, 1141, 1142, 5, 214, 0, 0, 1142, 1165, 1, 0, 0, 0, 1143, 1144, 5, 139, 0, 0, 1144, 1145, 5, 213, 0, 0, 1145, 1146, 3, 24, 12, 0, 1146, 1147, 5, 215, 0, 0, 1147, 1148, 3, 24, 12, 0, 1148, 1149, 5, 214, 0, 0, 1149, 1165, 1, 0, 0, 0, 1150, 1151, 5, 140, 0, 0, 1151, 1152, 5, 213, 0, 0, 1152, 1153, 3, 24, 12, 0, 1153, 1154, 5, 215, 0, 0, 1154, 1155, 3, 24, 12, 0, 1155, 1156, 5, 214, 0, 0, 1156, 1165, 1, 0, 0, 0, 1157, 1158, 5, 141, 0, 0, 1158, 1159, 5, 213, 0, 0, 1159, 1160, 3, 24, 12, 0, 1160, 1161, 5, 215, 0, 0, 1161, 1162, 3, 24, 12, 0, 1162, 1163, 5, 214, 0, 0, 1163, 1165, 1, 0, 0, 0, 1164, 812, 1, 0, 0, 0, 1164, 819, 1, 0, 0, 0, 1164, 826, 1, 0, 0, 0, 1164, 833, 1, 0, 0, 0, 1164, 840, 1, 0, 0, 0, 1164, 849, 1, 0, 0, 0, 1164, 856, 1, 0, 0, 0, 1164, 863, 1, 0, 0, 0, 1164, 870, 1, 0, 0, 0, 1164, 877, 1, 0, 0, 0, 1164, 884, 1, 0, 0, 0, 1164, 891, 1, 0, 0, 0, 1164, 898, 1, 0, 0, 0, 1164, 905, 1, 0, 0, 0, 1164, 912, 1, 0, 0, 0, 1164, 919, 1, 0, 0, 0, 1164, 926, 1, 0, 0, 0, 1164, 933, 1, 0, 0, 0, 1164, 940, 1, 0, 0, 0, 1164, 947, 1, 0, 0, 0, 1164, 954, 1, 0, 0, 0, 1164, 965, 1, 0, 0, 0, 1164, 972, 1, 0, 0, 0, 1164, 979, 1, 0, 0, 0, 1164, 986, 1, 0, 0, 0, 1164, 993, 1, 0, 0, 0, 1164, 1000, 1, 0, 0, 0, 1164, 1013, 1, 0, 0, 0, 1164, 1020, 1, 0, 0, 0, 1164, 1027, 1, 0, 0, 0, 1164, 1034, 1, 0, 0, 0, 1164, 1041, 1, 0, 0, 0, 1164, 1060, 1, 0, 0, 0, 1164, 1067, 1, 0, 0, 0, 1164, 1074, 1, 0, 0, 0, 1164, 1081, 1, 0, 0, 0, 1164, 1090, 1, 0, 0, 0, 1164, 1099, 1, 0, 0, 0, 1164, 1110, 1, 0, 0, 0, 1164, 1117, 1, 0, 0, 0, 1164, 1126, 1, 0, 0, 0, 1164, 1131, 1, 0, 0, 0, 1164, 1143, 1, 0, 0, 0, 1164, 1150, 1, 0, 0, 0, 1164, 1157, 1, 0, 0, 0, 1165, 51, 1, 0, 0, 0, 1166, 1167, 5, 31, 0, 0, 1167, 1168, 5, 213, 0, 0, 1168, 1169, 3, 24, 12, 0, 1169, 1170, 5, 215, 0, 0, 1170, 1171, 3, 24, 12, 0, 1171, 1172, 5, 215, 0, 0, 1172, 1173, 3, 24, 12, 0, 1173, 1174, 5, 214, 0, 0, 1174, 1421, 1, 0, 0, 0, 1175, 1176, 5, 38, 0, 0, 1176, 1177, 5, 213, 0, 0, 1177, 1178, 3, 24, 12, 0, 1178, 1179, 5, 215, 0, 0, 1179, 1180, 3, 24, 12, 0, 1180, 1181, 5, 215, 0, 0, 1181, 1182, 3, 24, 12, 0, 1182, 1183, 5, 214, 0, 0, 1183, 1421, 1, 0, 0, 0, 1184, 1185, 5, 40, 0, 0, 1185, 1186, 5, 213, 0, 0, 1186, 1187, 3, 24, 12, 0, 1187, 1188, 5, 215, 0, 0, 1188, 1189, 3, 24, 12, 0, 1189, 1190, 5, 215, 0, 0, 1190, 1191, 3, 24, 12, 0, 1191, 1192, 5, 214, 0, 0, 1192, 1421, 1, 0, 0, 0, 1193, 1194, 5, 52, 0, 0, 1194, 1195, 5, 213, 0, 0, 1195, 1196, 3, 24, 12, 0, 1196, 1197, 5, 215, 0, 0, 1197, 1198, 3, 24, 12, 0, 1198, 1199, 5, 215, 0, 0, 1199, 1200, 3, 24, 12, 0, 1200, 1201, 5, 214, 0, 0, 1201, 1421, 1, 0, 0, 0, 1202, 1203, 5, 66, 0, 0, 1203, 1204, 5, 213, 0, 0, 1204, 1205, 3, 24, 12, 0, 1205, 1206, 5, 215, 0, 0, 1206, 1207, 3, 24, 12, 0, 1207, 1208, 5, 215, 0, 0, 1208, 1209, 3, 24, 12, 0, 1209, 1210, 5, 214, 0, 0, 1210, 1421, 1, 0, 0, 0, 1211, 1212, 5, 79, 0, 0, 1212, 1213, 5, 213, 0, 0, 1213, 1214, 3, 24, 12, 0, 1214, 1215, 5, 215, 0, 0, 1215, 1216, 3, 24, 12, 0, 1216, 1217, 5, 215, 0, 0, 1217, 1218, 3, 24, 12, 0, 1218, 1219, 5, 214, 0, 0, 1219, 1421, 1, 0, 0, 0, 1220, 1221, 5, 80, 0, 0, 1221, 1222, 5, 213, 0, 0, 1222, 1223, 3, 24, 12, 0, 1223, 1224, 5, 215, 0, 0, 1224, 1225, 3, 24, 12, 0, 1225, 1226, 5, 215, 0, 0, 1226, 1227, 3, 24, 12, 0, 1227, 1228, 5, 214, 0, 0, 1228, 1421, 1, 0, 0, 0, 1229, 1230, 5, 81, 0, 0, 1230, 1231, 5, 213, 0, 0, 1231, 1232, 3, 24, 12, 0, 1232, 1233, 5, 215, 0, 0, 1233, 1234, 3, 24, 12, 0, 1234, 1235, 5, 215, 0, 0, 1235, 1236, 3, 24, 12, 0, 1236, 1237, 5, 214, 0, 0, 1237, 1421, 1, 0, 0, 0, 1238, 1239, 5, 82, 0, 0, 1239, 1240, 5, 213, 0, 0, 1240, 1241, 3, 24, 12, 0, 1241, 1242, 5, 215, 0, 0, 1242, 1243, 3, 24, 12, 0, 1243, 1244, 5, 215, 0, 0, 1244, 1245, 3, 24, 12, 0, 1245, 1246, 5, 214, 0, 0, 1246, 1421, 1, 0, 0, 0, 1247, 1248, 5, 171, 0, 0, 1248, 1249, 5, 213, 0, 0, 1249, 1250, 3, 24, 12, 0, 1250, 1251, 5, 215, 0, 0, 1251, 1252, 3, 24, 12, 0, 1252, 1253, 5, 215, 0, 0, 1253, 1254, 3, 24, 12, 0, 1254, 1255, 5, 214, 0, 0, 1255, 1421, 1, 0, 0, 0, 1256, 1257, 5, 33, 0, 0, 1257, 1258, 5, 213, 0, 0, 1258, 1261, 3, 24, 12, 0, 1259, 1260, 5, 215, 0, 0, 1260, 1262, 3, 24, 12, 0, 1261, 1259, 1, 0, 0, 0, 1261, 1262, 1, 0, 0, 0, 1262, 1263, 1, 0, 0, 0, 1263, 1264, 5, 214, 0, 0, 1264, 1421, 1, 0, 0, 0, 1265, 1266, 5, 99, 0, 0, 1266, 1267, 5, 213, 0, 0, 1267, 1268, 3, 24, 12, 0, 1268, 1269, 5, 215, 0, 0, 1269, 1270, 3, 24, 12, 0, 1270, 1271, 5, 215, 0, 0, 1271, 1274, 3, 24, 12, 0, 1272, 1273, 5, 215, 0, 0, 1273, 1275, 3, 24, 12, 0, 1274, 1272, 1, 0, 0, 0, 1274, 1275, 1, 0, 0, 0, 1275, 1276, 1, 0, 0, 0, 1276, 1277, 5, 214, 0, 0, 1277, 1421, 1, 0, 0, 0, 1278, 1279, 5, 53, 0, 0, 1279, 1280, 5, 213, 0, 0, 1280, 1281, 3, 24, 12, 0, 1281, 1282, 5, 215, 0, 0, 1282, 1283, 3, 24, 12, 0, 1283, 1284, 5, 215, 0, 0, 1284, 1285, 3, 24, 12, 0, 1285, 1286, 5, 214, 0, 0, 1286, 1421, 1, 0, 0, 0, 1287, 1288, 5, 167, 0, 0, 1288, 1289, 5, 213, 0, 0, 1289, 1290, 3, 24, 12, 0, 1290, 1291, 5, 215, 0, 0, 1291, 1294, 3, 24, 12, 0, 1292, 1293, 5, 215, 0, 0, 1293, 1295, 3, 24, 12, 0, 1294, 1292, 1, 0, 0, 0, 1294, 1295, 1, 0, 0, 0, 1295, 1296, 1, 0, 0, 0, 1296, 1297, 5, 214, 0, 0, 1297, 1421, 1, 0, 0, 0, 1298, 1299, 5, 131, 0, 0, 1299, 1300, 5, 213, 0, 0, 1300, 1306, 3, 24, 12, 0, 1301, 1302, 5, 215, 0, 0, 1302, 1303, 3, 24, 12, 0, 1303, 1304, 5, 215, 0, 0, 1304, 1305, 3, 24, 12, 0, 1305, 1307, 1, 0, 0, 0, 1306, 1301, 1, 0, 0, 0, 1306, 1307, 1, 0, 0, 0, 1307, 1308, 1, 0, 0, 0, 1308, 1309, 5, 214, 0, 0, 1309, 1421, 1, 0, 0, 0, 1310, 1311, 5, 132, 0, 0, 1311, 1312, 5, 213, 0, 0, 1312, 1318, 3, 24, 12, 0, 1313, 1314, 5, 215, 0, 0, 1314, 1315, 3, 24, 12, 0, 1315, 1316, 5, 215, 0, 0, 1316, 1317, 3, 24, 12, 0, 1317, 1319, 1, 0, 0, 0, 1318, 1313, 1, 0, 0, 0, 1318, 1319, 1, 0, 0, 0, 1319, 1320, 1, 0, 0, 0, 1320, 1321, 5, 214, 0, 0, 1321, 1421, 1, 0, 0, 0, 1322, 1323, 5, 135, 0, 0, 1323, 1324, 5, 213, 0, 0, 1324, 1330, 3, 24, 12, 0, 1325, 1326, 5, 215, 0, 0, 1326, 1327, 3, 24, 12, 0, 1327, 1328, 5, 215, 0, 0, 1328, 1329, 3, 24, 12, 0, 1329, 1331, 1, 0, 0, 0, 1330, 1325, 1, 0, 0, 0, 1330, 1331, 1, 0, 0, 0, 1331, 1334, 1, 0, 0, 0, 1332, 1333, 5, 215, 0, 0, 1333, 1335, 3, 24, 12, 0, 1334, 1332, 1, 0, 0, 0, 1334, 1335, 1, 0, 0, 0, 1335, 1336, 1, 0, 0, 0, 1336, 1337, 5, 214, 0, 0, 1337, 1421, 1, 0, 0, 0, 1338, 1339, 5, 136, 0, 0, 1339, 1340, 5, 213, 0, 0, 1340, 1346, 3, 24, 12, 0, 1341, 1342, 5, 215, 0, 0, 1342, 1343, 3, 24, 12, 0, 1343, 1344, 5, 215, 0, 0, 1344, 1345, 3, 24, 12, 0, 1345, 1347, 1, 0, 0, 0, 1346, 1341, 1, 0, 0, 0, 1346, 1347, 1, 0, 0, 0, 1347, 1350, 1, 0, 0, 0, 1348, 1349, 5, 215, 0, 0, 1349, 1351, 3, 24, 12, 0, 1350, 1348, 1, 0, 0, 0, 1350, 1351, 1, 0, 0, 0, 1351, 1352, 1, 0, 0, 0, 1352, 1353, 5, 214, 0, 0, 1353, 1421, 1, 0, 0, 0, 1354, 1355, 5, 97, 0, 0, 1355, 1356, 5, 213, 0, 0, 1356, 1357, 3, 24, 12, 0, 1357, 1358, 5, 215, 0, 0, 1358, 1359, 3, 24, 12, 0, 1359, 1360, 5, 215, 0, 0, 1360, 1361, 3, 24, 12, 0, 1361, 1362, 5, 214, 0, 0, 1362, 1421, 1, 0, 0, 0, 1363, 1364, 5, 133, 0, 0, 1364, 1365, 5, 213, 0, 0, 1365, 1371, 3, 24, 12, 0, 1366, 1367, 5, 215, 0, 0, 1367, 1368, 3, 24, 12, 0, 1368, 1369, 5, 215, 0, 0, 1369, 1370, 3, 24, 12, 0, 1370, 1372, 1, 0, 0, 0, 1371, 1366, 1, 0, 0, 0, 1371, 1372, 1, 0, 0, 0, 1372, 1373, 1, 0, 0, 0, 1373, 1374, 5, 214, 0, 0, 1374, 1421, 1, 0, 0, 0, 1375, 1376, 5, 134, 0, 0, 1376, 1377, 5, 213, 0, 0, 1377, 1383, 3, 24, 12, 0, 1378, 1379, 5, 215, 0, 0, 1379, 1380, 3, 24, 12, 0, 1380, 1381, 5, 215, 0, 0, 1381, 1382, 3, 24, 12, 0, 1382, 1384, 1, 0, 0, 0, 1383, 1378, 1, 0, 0, 0, 1383, 1384, 1, 0, 0, 0, 1384, 1385, 1, 0, 0, 0, 1385, 1386, 5, 214, 0, 0, 1386, 1421, 1, 0, 0, 0, 1387, 1388, 5, 142, 0, 0, 1388, 1389, 5, 213, 0, 0, 1389, 1390, 3, 24, 12, 0, 1390, 1391, 5, 215, 0, 0, 1391, 1392, 3, 24, 12, 0, 1392, 1393, 5, 215, 0, 0, 1393, 1396, 3, 24, 12, 0, 1394, 1395, 5, 215, 0, 0, 1395, 1397, 3, 24, 12, 0, 1396, 1394, 1, 0, 0, 0, 1396, 1397, 1, 0, 0, 0, 1397, 1400, 1, 0, 0, 0, 1398, 1399, 5, 215, 0, 0, 1399, 1401, 3, 24, 12, 0, 1400, 1398, 1, 0, 0, 0, 1400, 1401, 1, 0, 0, 0, 1401, 1404, 1, 0, 0, 0, 1402, 1403, 5, 215, 0, 0, 1403, 1405, 3, 24, 12, 0, 1404, 1402, 1, 0, 0, 0, 1404, 1405, 1, 0, 0, 0, 1405, 1408, 1, 0, 0, 0, 1406, 1407, 5, 215, 0, 0, 1407, 1409, 3, 24, 12, 0, 1408, 1406, 1, 0, 0, 0, 1408, 1409, 1, 0, 0, 0, 1409, 1412, 1, 0, 0, 0, 1410, 1411, 5, 215, 0, 0, 1411, 1413, 3, 24, 12, 0, 1412, 1410, 1, 0, 0, 0, 1412, 1413, 1, 0, 0, 0, 1413, 1416, 1, 0, 0, 0, 1414, 1415, 5, 215, 0, 0, 1415, 1417, 3, 24, 12, 0, 1416, 1414, 1, 0, 0, 0, 1416, 1417, 1, 0, 0, 0, 1417, 1418, 1, 0, 0, 0, 1418, 1419, 5, 214, 0, 0, 1419, 1421, 1, 0, 0, 0, 1420, 1166, 1, 0, 0, 0, 1420, 1175, 1, 0, 0, 0, 1420, 1184, 1, 0, 0, 0, 1420, 1193, 1, 0, 0, 0, 1420, 1202, 1, 0, 0, 0, 1420, 1211, 1, 0, 0, 0, 1420, 1220, 1, 0, 0, 0, 1420, 1229, 1, 0, 0, 0, 1420, 1238, 1, 0, 0, 0, 1420, 1247, 1, 0, 0, 0, 1420, 1256, 1, 0, 0, 0, 1420, 1265, 1, 0, 0, 0, 1420, 1278, 1, 0, 0, 0, 1420, 1287, 1, 0, 0, 0, 1420, 1298, 1, 0, 0, 0, 1420, 1310, 1, 0, 0, 0, 1420, 1322, 1, 0, 0, 0, 1420, 1338, 1, 0, 0, 0, 1420, 1354, 1, 0, 0, 0, 1420, 1363, 1, 0, 0, 0, 1420, 1375, 1, 0, 0, 0, 1420, 1387, 1, 0, 0, 0, 1421, 53, 1, 0, 0, 0, 1422, 1423, 5, 49, 0, 0, 1423, 1424, 5, 213, 0, 0, 1424, 1425, 3, 24, 12, 0, 1425, 1426, 5, 215, 0, 0, 1426, 1427, 3, 24, 12, 0, 1427, 1428, 5, 215, 0, 0, 1428, 1429, 3, 24, 12, 0, 1429, 1430, 5, 215, 0, 0, 1430, 1431, 3, 24, 12, 0, 1431, 1432, 5, 214, 0, 0, 1432, 1478, 1, 0, 0, 0, 1433, 1434, 5, 37, 0, 0, 1434, 1435, 5, 213, 0, 0, 1435, 1436, 3, 24, 12, 0, 1436, 1437, 5, 215, 0, 0, 1437, 1438, 3, 24, 12, 0, 1438, 1439, 5, 215, 0, 0, 1439, 1440, 3, 24, 12, 0, 1440, 1441, 5, 215, 0, 0, 1441, 1442, 3, 24, 12, 0, 1442, 1443, 5, 214, 0, 0, 1443, 1478, 1, 0, 0, 0, 1444, 1445, 5, 54, 0, 0, 1445, 1446, 5, 213, 0, 0, 1446, 1447, 3, 24, 12, 0, 1447, 1448, 5, 215, 0, 0, 1448, 1449, 3, 24, 12, 0, 1449, 1450, 5, 215, 0, 0, 1450, 1451, 3, 24, 12, 0, 1451, 1452, 5, 215, 0, 0, 1452, 1453, 3, 24, 12, 0, 1453, 1454, 5, 214, 0, 0, 1454, 1478, 1, 0, 0, 0, 1455, 1456, 5, 83, 0, 0, 1456, 1457, 5, 213, 0, 0, 1457, 1458, 3, 24, 12, 0, 1458, 1459, 5, 215, 0, 0, 1459, 1460, 3, 24, 12, 0, 1460, 1461, 5, 215, 0, 0, 1461, 1462, 3, 24, 12, 0, 1462, 1463, 5, 215, 0, 0, 1463, 1464, 3, 24, 12, 0, 1464, 1465, 5, 214, 0, 0, 1465, 1478, 1, 0, 0, 0, 1466, 1467, 5, 98, 0, 0, 1467, 1468, 5, 213, 0, 0, 1468, 1469, 3, 24, 12, 0, 1469, 1470, 5, 215, 0, 0, 1470, 1471, 3, 24, 12, 0, 1471, 1472, 5, 215, 0, 0, 1472, 1473, 3, 24, 12, 0, 1473, 1474, 5, 215, 0, 0, 1474, 1475, 3, 24, 12, 0, 1475, 1476, 5, 214, 0, 0, 1476, 1478, 1, 0, 0, 0, 1477, 1422, 1, 0, 0, 0, 1477, 1433, 1, 0, 0, 0, 1477, 1444, 1, 0, 0, 0, 1477, 1455, 1, 0, 0, 0, 1477, 1466, 1, 0, 0, 0, 1478, 55, 1, 0, 0, 0, 1479, 1480, 5, 84, 0, 0, 1480, 1481, 5, 213, 0, 0, 1481, 1482, 3, 24, 12, 0, 1482, 1483, 5, 215, 0, 0, 1483, 1484, 3, 24, 12, 0, 1484, 1485, 5, 215, 0, 0, 1485, 1486, 3, 24, 12, 0, 1486, 1487, 5, 215, 0, 0, 1487, 1488, 3, 24, 12, 0, 1488, 1489, 5, 215, 0, 0, 1489, 1490, 3, 24, 12, 0, 1490, 1491, 5, 214, 0, 0, 1491, 1512, 1, 0, 0, 0, 1492, 1493, 5, 145, 0, 0, 1493, 1494, 5, 213, 0, 0, 1494, 1495, 3, 24, 12, 0, 1495, 1496, 5, 215, 0, 0, 1496, 1507, 3, 24, 12, 0, 1497, 1498, 5, 215, 0, 0, 1498, 1505, 3, 24, 12, 0, 1499, 1500, 5, 215, 0, 0, 1500, 1503, 3, 24, 12, 0, 1501, 1502, 5, 215, 0, 0, 1502, 1504, 3, 24, 12, 0, 1503, 1501, 1, 0, 0, 0, 1503, 1504, 1, 0, 0, 0, 1504, 1506, 1, 0, 0, 0, 1505, 1499, 1, 0, 0, 0, 1505, 1506, 1, 0, 0, 0, 1506, 1508, 1, 0, 0, 0, 1507, 1497, 1, 0, 0, 0, 1507, 1508, 1, 0, 0, 0, 1508, 1509, 1, 0, 0, 0, 1509, 1510, 5, 214, 0, 0, 1510, 1512, 1, 0, 0, 0, 1511, 1479, 1, 0, 0, 0, 1511, 1492, 1, 0, 0, 0, 1512, 57, 1, 0, 0, 0, 1513, 1514, 5, 19, 0, 0, 1514, 1515, 5, 213, 0, 0, 1515, 1520, 3, 24, 12, 0, 1516, 1517, 5, 215, 0, 0, 1517, 1519, 3, 24, 12, 0, 1518, 1516, 1, 0, 0, 0, 1519, 1522, 1, 0, 0, 0, 1520, 1518, 1, 0, 0, 0, 1520, 1521, 1, 0, 0, 0, 1521, 1523, 1, 0, 0, 0, 1522, 1520, 1, 0, 0, 0, 1523, 1524, 5, 214, 0, 0, 1524, 1605, 1, 0, 0, 0, 1525, 1526, 5, 20, 0, 0, 1526, 1527, 5, 213, 0, 0, 1527, 1532, 3, 24, 12, 0, 1528, 1529, 5, 215, 0, 0, 1529, 1531, 3, 24, 12, 0, 1530, 1528, 1, 0, 0, 0, 1531, 1534, 1, 0, 0, 0, 1532, 1530, 1, 0, 0, 0, 1532, 1533, 1, 0, 0, 0, 1533, 1535, 1, 0, 0, 0, 1534, 1532, 1, 0, 0, 0, 1535, 1536, 5, 214, 0, 0, 1536, 1605, 1, 0, 0, 0, 1537, 1538, 5, 46, 0, 0, 1538, 1539, 5, 213, 0, 0, 1539, 1542, 3, 24, 12, 0, 1540, 1541, 5, 215, 0, 0, 1541, 1543, 3, 24, 12, 0, 1542, 1540, 1, 0, 0, 0, 1543, 1544, 1, 0, 0, 0, 1544, 1542, 1, 0, 0, 0, 1544, 1545, 1, 0, 0, 0, 1545, 1546, 1, 0, 0, 0, 1546, 1547, 5, 214, 0, 0, 1547, 1605, 1, 0, 0, 0, 1548, 1549, 5, 47, 0, 0, 1549, 1550, 5, 213, 0, 0, 1550, 1553, 3, 24, 12, 0, 1551, 1552, 5, 215, 0, 0, 1552, 1554, 3, 24, 12, 0, 1553, 1551, 1, 0, 0, 0, 1554, 1555, 1, 0, 0, 0, 1555, 1553, 1, 0, 0, 0, 1555, 1556, 1, 0, 0, 0, 1556, 1557, 1, 0, 0, 0, 1557, 1558, 5, 214, 0, 0, 1558, 1605, 1, 0, 0, 0, 1559, 1560, 5, 48, 0, 0, 1560, 1561, 5, 213, 0, 0, 1561, 1564, 3, 24, 12, 0, 1562, 1563, 5, 215, 0, 0, 1563, 1565, 3, 24, 12, 0, 1564, 1562, 1, 0, 0, 0, 1565, 1566, 1, 0, 0, 0, 1566, 1564, 1, 0, 0, 0, 1566, 1567, 1, 0, 0, 0, 1567, 1568, 1, 0, 0, 0, 1568, 1569, 5, 214, 0, 0, 1569, 1605, 1, 0, 0, 0, 1570, 1571, 5, 51, 0, 0, 1571, 1572, 5, 213, 0, 0, 1572, 1573, 3, 24, 12, 0, 1573, 1574, 5, 215, 0, 0, 1574, 1575, 3, 24, 12, 0, 1575, 1576, 5, 214, 0, 0, 1576, 1605, 1, 0, 0, 0, 1577, 1578, 5, 165, 0, 0, 1578, 1579, 5, 213, 0, 0, 1579, 1582, 3, 24, 12, 0, 1580, 1581, 5, 215, 0, 0, 1581, 1583, 3, 24, 12, 0, 1582, 1580, 1, 0, 0, 0, 1582, 1583, 1, 0, 0, 0, 1583, 1584, 1, 0, 0, 0, 1584, 1585, 5, 214, 0, 0, 1585, 1605, 1, 0, 0, 0, 1586, 1587, 5, 166, 0, 0, 1587, 1588, 5, 213, 0, 0, 1588, 1589, 3, 24, 12, 0, 1589, 1590, 5, 215, 0, 0, 1590, 1591, 3, 24, 12, 0, 1591, 1592, 5, 214, 0, 0, 1592, 1605, 1, 0, 0, 0, 1593, 1594, 5, 116, 0, 0, 1594, 1595, 5, 213, 0, 0, 1595, 1598, 3, 24, 12, 0, 1596, 1597, 5, 215, 0, 0, 1597, 1599, 3, 24, 12, 0, 1598, 1596, 1, 0, 0, 0, 1599, 1600, 1, 0, 0, 0, 1600, 1598, 1, 0, 0, 0, 1600, 1601, 1, 0, 0, 0, 1601, 1602, 1, 0, 0, 0, 1602, 1603, 5, 214, 0, 0, 1603, 1605, 1, 0, 0, 0, 1604, 1513, 1, 0, 0, 0, 1604, 1525, 1, 0, 0, 0, 1604, 1537, 1, 0, 0, 0, 1604, 1548, 1, 0, 0, 0, 1604, 1559, 1, 0, 0, 0, 1604, 1570, 1, 0, 0, 0, 1604, 1577, 1, 0, 0, 0, 1604, 1586, 1, 0, 0, 0, 1604, 1593, 1, 0, 0, 0, 1605, 59, 1, 0, 0, 0, 1606, 1607, 5, 173, 0, 0, 1607, 1608, 5, 213, 0, 0, 1608, 1611, 3, 24, 12, 0, 1609, 1610, 5, 215, 0, 0, 1610, 1612, 3, 24, 12, 0, 1611, 1609, 1, 0, 0, 0, 1611, 1612, 1, 0, 0, 0, 1612, 1613, 1, 0, 0, 0, 1613, 1614, 5, 214, 0, 0, 1614, 1874, 1, 0, 0, 0, 1615, 1616, 5, 174, 0, 0, 1616, 1617, 5, 213, 0, 0, 1617, 1620, 3, 24, 12, 0, 1618, 1619, 5, 215, 0, 0, 1619, 1621, 3, 24, 12, 0, 1620, 1618, 1, 0, 0, 0, 1620, 1621, 1, 0, 0, 0, 1621, 1622, 1, 0, 0, 0, 1622, 1623, 5, 214, 0, 0, 1623, 1874, 1, 0, 0, 0, 1624, 1625, 5, 176, 0, 0, 1625, 1626, 5, 213, 0, 0, 1626, 1627, 3, 24, 12, 0, 1627, 1628, 5, 215, 0, 0, 1628, 1631, 3, 24, 12, 0, 1629, 1630, 5, 215, 0, 0, 1630, 1632, 3, 24, 12, 0, 1631, 1629, 1, 0, 0, 0, 1631, 1632, 1, 0, 0, 0, 1632, 1633, 1, 0, 0, 0, 1633, 1634, 5, 214, 0, 0, 1634, 1874, 1, 0, 0, 0, 1635, 1636, 5, 178, 0, 0, 1636, 1637, 5, 213, 0, 0, 1637, 1638, 3, 24, 12, 0, 1638, 1639, 5, 215, 0, 0, 1639, 1642, 3, 24, 12, 0, 1640, 1641, 5, 215, 0, 0, 1641, 1643, 3, 24, 12, 0, 1642, 1640, 1, 0, 0, 0, 1642, 1643, 1, 0, 0, 0, 1643, 1644, 1, 0, 0, 0, 1644, 1645, 5, 214, 0, 0, 1645, 1874, 1, 0, 0, 0, 1646, 1647, 5, 179, 0, 0, 1647, 1648, 5, 213, 0, 0, 1648, 1649, 3, 24, 12, 0, 1649, 1650, 5, 215, 0, 0, 1650, 1653, 3, 24, 12, 0, 1651, 1652, 5, 215, 0, 0, 1652, 1654, 3, 24, 12, 0, 1653, 1651, 1, 0, 0, 0, 1653, 1654, 1, 0, 0, 0, 1654, 1655, 1, 0, 0, 0, 1655, 1656, 5, 214, 0, 0, 1656, 1874, 1, 0, 0, 0, 1657, 1658, 5, 175, 0, 0, 1658, 1659, 5, 213, 0, 0, 1659, 1660, 3, 24, 12, 0, 1660, 1661, 5, 215, 0, 0, 1661, 1662, 3, 24, 12, 0, 1662, 1663, 5, 215, 0, 0, 1663, 1666, 3, 24, 12, 0, 1664, 1665, 5, 215, 0, 0, 1665, 1667, 3, 24, 12, 0, 1666, 1664, 1, 0, 0, 0, 1666, 1667, 1, 0, 0, 0, 1667, 1668, 1, 0, 0, 0, 1668, 1669, 5, 214, 0, 0, 1669, 1874, 1, 0, 0, 0, 1670, 1671, 5, 177, 0, 0, 1671, 1672, 5, 213, 0, 0, 1672, 1673, 3, 24, 12, 0, 1673, 1674, 5, 215, 0, 0, 1674, 1675, 3, 24, 12, 0, 1675, 1676, 5, 215, 0, 0, 1676, 1679, 3, 24, 12, 0, 1677, 1678, 5, 215, 0, 0, 1678, 1680, 3, 24, 12, 0, 1679, 1677, 1, 0, 0, 0, 1679, 1680, 1, 0, 0, 0, 1680, 1681, 1, 0, 0, 0, 1681, 1682, 5, 214, 0, 0, 1682, 1874, 1, 0, 0, 0, 1683, 1684, 5, 180, 0, 0, 1684, 1685, 5, 213, 0, 0, 1685, 1686, 3, 24, 12, 0, 1686, 1687, 5, 215, 0, 0, 1687, 1688, 3, 24, 12, 0, 1688, 1689, 5, 215, 0, 0, 1689, 1692, 3, 24, 12, 0, 1690, 1691, 5, 215, 0, 0, 1691, 1693, 3, 24, 12, 0, 1692, 1690, 1, 0, 0, 0, 1692, 1693, 1, 0, 0, 0, 1693, 1694, 1, 0, 0, 0, 1694, 1695, 5, 214, 0, 0, 1695, 1874, 1, 0, 0, 0, 1696, 1697, 5, 181, 0, 0, 1697, 1698, 5, 213, 0, 0, 1698, 1699, 3, 24, 12, 0, 1699, 1700, 5, 215, 0, 0, 1700, 1701, 3, 24, 12, 0, 1701, 1702, 5, 215, 0, 0, 1702, 1705, 3, 24, 12, 0, 1703, 1704, 5, 215, 0, 0, 1704, 1706, 3, 24, 12, 0, 1705, 1703, 1, 0, 0, 0, 1705, 1706, 1, 0, 0, 0, 1706, 1707, 1, 0, 0, 0, 1707, 1708, 5, 214, 0, 0, 1708, 1874, 1, 0, 0, 0, 1709, 1710, 5, 182, 0, 0, 1710, 1711, 5, 213, 0, 0, 1711, 1712, 3, 24, 12, 0, 1712, 1713, 5, 215, 0, 0, 1713, 1714, 3, 24, 12, 0, 1714, 1715, 5, 215, 0, 0, 1715, 1718, 3, 24, 12, 0, 1716, 1717, 5, 215, 0, 0, 1717, 1719, 3, 24, 12, 0, 1718, 1716, 1, 0, 0, 0, 1718, 1719, 1, 0, 0, 0, 1719, 1720, 1, 0, 0, 0, 1720, 1721, 5, 214, 0, 0, 1721, 1874, 1, 0, 0, 0, 1722, 1723, 5, 183, 0, 0, 1723, 1724, 5, 213, 0, 0, 1724, 1725, 3, 24, 12, 0, 1725, 1726, 5, 215, 0, 0, 1726, 1727, 3, 24, 12, 0, 1727, 1728, 5, 215, 0, 0, 1728, 1731, 3, 24, 12, 0, 1729, 1730, 5, 215, 0, 0, 1730, 1732, 3, 24, 12, 0, 1731, 1729, 1, 0, 0, 0, 1731, 1732, 1, 0, 0, 0, 1732, 1733, 1, 0, 0, 0, 1733, 1734, 5, 214, 0, 0, 1734, 1874, 1, 0, 0, 0, 1735, 1736, 5, 184, 0, 0, 1736, 1737, 5, 213, 0, 0, 1737, 1738, 3, 24, 12, 0, 1738, 1739, 5, 215, 0, 0, 1739, 1740, 3, 24, 12, 0, 1740, 1741, 5, 215, 0, 0, 1741, 1744, 3, 24, 12, 0, 1742, 1743, 5, 215, 0, 0, 1743, 1745, 3, 24, 12, 0, 1744, 1742, 1, 0, 0, 0, 1744, 1745, 1, 0, 0, 0, 1745, 1746, 1, 0, 0, 0, 1746, 1747, 5, 214, 0, 0, 1747, 1874, 1, 0, 0, 0, 1748, 1749, 5, 185, 0, 0, 1749, 1750, 5, 213, 0, 0, 1750, 1751, 3, 24, 12, 0, 1751, 1752, 5, 215, 0, 0, 1752, 1755, 3, 24, 12, 0, 1753, 1754, 5, 215, 0, 0, 1754, 1756, 3, 24, 12, 0, 1755, 1753, 1, 0, 0, 0, 1755, 1756, 1, 0, 0, 0, 1756, 1757, 1, 0, 0, 0, 1757, 1758, 5, 214, 0, 0, 1758, 1874, 1, 0, 0, 0, 1759, 1760, 5, 186, 0, 0, 1760, 1761, 5, 213, 0, 0, 1761, 1762, 3, 24, 12, 0, 1762, 1763, 5, 215, 0, 0, 1763, 1766, 3, 24, 12, 0, 1764, 1765, 5, 215, 0, 0, 1765, 1767, 3, 24, 12, 0, 1766, 1764, 1, 0, 0, 0, 1766, 1767, 1, 0, 0, 0, 1767, 1768, 1, 0, 0, 0, 1768, 1769, 5, 214, 0, 0, 1769, 1874, 1, 0, 0, 0, 1770, 1771, 5, 187, 0, 0, 1771, 1772, 5, 213, 0, 0, 1772, 1773, 3, 24, 12, 0, 1773, 1774, 5, 215, 0, 0, 1774, 1777, 3, 24, 12, 0, 1775, 1776, 5, 215, 0, 0, 1776, 1778, 3, 24, 12, 0, 1777, 1775, 1, 0, 0, 0, 1777, 1778, 1, 0, 0, 0, 1778, 1781, 1, 0, 0, 0, 1779, 1780, 5, 215, 0, 0, 1780, 1782, 3, 24, 12, 0, 1781, 1779, 1, 0, 0, 0, 1781, 1782, 1, 0, 0, 0, 1782, 1785, 1, 0, 0, 0, 1783, 1784, 5, 215, 0, 0, 1784, 1786, 3, 24, 12, 0, 1785, 1783, 1, 0, 0, 0, 1785, 1786, 1, 0, 0, 0, 1786, 1787, 1, 0, 0, 0, 1787, 1788, 5, 214, 0, 0, 1788, 1874, 1, 0, 0, 0, 1789, 1790, 5, 188, 0, 0, 1790, 1791, 5, 213, 0, 0, 1791, 1792, 3, 24, 12, 0, 1792, 1793, 5, 215, 0, 0, 1793, 1796, 3, 24, 12, 0, 1794, 1795, 5, 215, 0, 0, 1795, 1797, 3, 24, 12, 0, 1796, 1794, 1, 0, 0, 0, 1796, 1797, 1, 0, 0, 0, 1797, 1800, 1, 0, 0, 0, 1798, 1799, 5, 215, 0, 0, 1799, 1801, 3, 24, 12, 0, 1800, 1798, 1, 0, 0, 0, 1800, 1801, 1, 0, 0, 0, 1801, 1804, 1, 0, 0, 0, 1802, 1803, 5, 215, 0, 0, 1803, 1805, 3, 24, 12, 0, 1804, 1802, 1, 0, 0, 0, 1804, 1805, 1, 0, 0, 0, 1805, 1806, 1, 0, 0, 0, 1806, 1807, 5, 214, 0, 0, 1807, 1874, 1, 0, 0, 0, 1808, 1809, 5, 189, 0, 0, 1809, 1810, 5, 213, 0, 0, 1810, 1811, 3, 24, 12, 0, 1811, 1812, 5, 215, 0, 0, 1812, 1815, 3, 24, 12, 0, 1813, 1814, 5, 215, 0, 0, 1814, 1816, 3, 24, 12, 0, 1815, 1813, 1, 0, 0, 0, 1815, 1816, 1, 0, 0, 0, 1816, 1819, 1, 0, 0, 0, 1817, 1818, 5, 215, 0, 0, 1818, 1820, 3, 24, 12, 0, 1819, 1817, 1, 0, 0, 0, 1819, 1820, 1, 0, 0, 0, 1820, 1823, 1, 0, 0, 0, 1821, 1822, 5, 215, 0, 0, 1822, 1824, 3, 24, 12, 0, 1823, 1821, 1, 0, 0, 0, 1823, 1824, 1, 0, 0, 0, 1824, 1825, 1, 0, 0, 0, 1825, 1826, 5, 214, 0, 0, 1826, 1874, 1, 0, 0, 0, 1827, 1828, 5, 190, 0, 0, 1828, 1829, 5, 213, 0, 0, 1829, 1830, 3, 24, 12, 0, 1830, 1831, 5, 215, 0, 0, 1831, 1834, 3, 24, 12, 0, 1832, 1833, 5, 215, 0, 0, 1833, 1835, 3, 24, 12, 0, 1834, 1832, 1, 0, 0, 0, 1834, 1835, 1, 0, 0, 0, 1835, 1838, 1, 0, 0, 0, 1836, 1837, 5, 215, 0, 0, 1837, 1839, 3, 24, 12, 0, 1838, 1836, 1, 0, 0, 0, 1838, 1839, 1, 0, 0, 0, 1839, 1842, 1, 0, 0, 0, 1840, 1841, 5, 215, 0, 0, 1841, 1843, 3, 24, 12, 0, 1842, 1840, 1, 0, 0, 0, 1842, 1843, 1, 0, 0, 0, 1843, 1844, 1, 0, 0, 0, 1844, 1845, 5, 214, 0, 0, 1845, 1874, 1, 0, 0, 0, 1846, 1847, 5, 191, 0, 0, 1847, 1848, 5, 213, 0, 0, 1848, 1849, 3, 24, 12, 0, 1849, 1850, 5, 215, 0, 0, 1850, 1851, 3, 24, 12, 0, 1851, 1852, 5, 215, 0, 0, 1852, 1853, 3, 24, 12, 0, 1853, 1854, 5, 215, 0, 0, 1854, 1857, 3, 24, 12, 0, 1855, 1856, 5, 215, 0, 0, 1856, 1858, 3, 24, 12, 0, 1857, 1855, 1, 0, 0, 0, 1857, 1858, 1, 0, 0, 0, 1858, 1861, 1, 0, 0, 0, 1859, 1860, 5, 215, 0, 0, 1860, 1862, 3, 24, 12, 0, 1861, 1859, 1, 0, 0, 0, 1861, 1862, 1, 0, 0, 0, 1862, 1865, 1, 0, 0, 0, 1863, 1864, 5, 215, 0, 0, 1864, 1866, 3, 24, 12, 0, 1865, 1863, 1, 0, 0, 0, 1865, 1866, 1, 0, 0, 0, 1866, 1869, 1, 0, 0, 0, 1867, 1868, 5, 215, 0, 0, 1868, 1870, 3, 24, 12, 0, 1869, 1867, 1, 0, 0, 0, 1869, 1870, 1, 0, 0, 0, 1870, 1871, 1, 0, 0, 0, 1871, 1872, 5, 214, 0, 0, 1872, 1874, 1, 0, 0, 0, 1873, 1606, 1, 0, 0, 0, 1873, 1615, 1, 0, 0, 0, 1873, 1624, 1, 0, 0, 0, 1873, 1635, 1, 0, 0, 0, 1873, 1646, 1, 0, 0, 0, 1873, 1657, 1, 0, 0, 0, 1873, 1670, 1, 0, 0, 0, 1873, 1683, 1, 0, 0, 0, 1873, 1696, 1, 0, 0, 0, 1873, 1709, 1, 0, 0, 0, 1873, 1722, 1, 0, 0, 0, 1873, 1735, 1, 0, 0, 0, 1873, 1748, 1, 0, 0, 0, 1873, 1759, 1, 0, 0, 0, 1873, 1770, 1, 0, 0, 0, 1873, 1789, 1, 0, 0, 0, 1873, 1808, 1, 0, 0, 0, 1873, 1827, 1, 0, 0, 0, 1873, 1846, 1, 0, 0, 0, 1874, 61, 1, 0, 0, 0, 119, 65, 67, 72, 79, 85, 96, 103, 115, 129, 138, 158, 171, 178, 207, 209, 221, 223, 238, 240, 252, 254, 262, 269, 281, 288, 309, 329, 337, 343, 350, 522, 561, 580, 596, 632, 634, 643, 652, 661, 670, 749, 758, 767, 776, 810, 845, 961, 1007, 1009, 1052, 1054, 1056, 1086, 1095, 1106, 1139, 1164, 1261, 1274, 1294, 1306, 1318, 1330, 1334, 1346, 1350, 1371, 1383, 1396, 1400, 1404, 1408, 1412, 1416, 1420, 1477, 1503, 1505, 1507, 1511, 1520, 1532, 1544, 1555, 1566, 1582, 1600, 1604, 1611, 1620, 1631, 1642, 1653, 1666, 1679, 1692, 1705, 1718, 1731, 1744, 1755, 1766, 1777, 1781, 1785, 1796, 1800, 1804, 1815, 1819, 1823, 1834, 1838, 1842, 1857, 1861, 1865, 1869, 1873] \ No newline at end of file +[4, 1, 231, 1887, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 1, 0, 1, 0, 1, 0, 5, 0, 66, 8, 0, 10, 0, 12, 0, 69, 9, 0, 1, 0, 1, 0, 3, 0, 73, 8, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 3, 1, 80, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 86, 8, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 2, 95, 8, 2, 10, 2, 12, 2, 98, 9, 2, 1, 2, 1, 2, 5, 2, 102, 8, 2, 10, 2, 12, 2, 105, 9, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 5, 3, 114, 8, 3, 10, 3, 12, 3, 117, 9, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 130, 8, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 3, 5, 139, 8, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 5, 8, 157, 8, 8, 10, 8, 12, 8, 160, 9, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 3, 11, 172, 8, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 3, 12, 179, 8, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 5, 14, 208, 8, 14, 10, 14, 12, 14, 211, 9, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 5, 15, 222, 8, 15, 10, 15, 12, 15, 225, 9, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 239, 8, 16, 10, 16, 12, 16, 242, 9, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 5, 17, 253, 8, 17, 10, 17, 12, 17, 256, 9, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 3, 18, 263, 8, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 3, 19, 270, 8, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 5, 20, 280, 8, 20, 10, 20, 12, 20, 283, 9, 20, 1, 20, 1, 20, 5, 20, 287, 8, 20, 10, 20, 12, 20, 290, 9, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 3, 21, 310, 8, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 5, 21, 328, 8, 21, 10, 21, 12, 21, 331, 9, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 3, 21, 338, 8, 21, 1, 21, 1, 21, 1, 21, 1, 21, 3, 21, 344, 8, 21, 1, 22, 1, 22, 1, 22, 5, 22, 349, 8, 22, 10, 22, 12, 22, 352, 9, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 523, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 562, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 581, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 597, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 633, 8, 24, 3, 24, 635, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 644, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 653, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 662, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 671, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 750, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 759, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 768, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 777, 8, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 811, 8, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 846, 8, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 962, 8, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 1008, 8, 25, 3, 25, 1010, 8, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 1053, 8, 25, 3, 25, 1055, 8, 25, 3, 25, 1057, 8, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 1087, 8, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 1096, 8, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 1107, 8, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 1140, 8, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 1165, 8, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 1262, 8, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 1275, 8, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 1295, 8, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 1307, 8, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 1319, 8, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 1331, 8, 26, 1, 26, 1, 26, 3, 26, 1335, 8, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 1347, 8, 26, 1, 26, 1, 26, 3, 26, 1351, 8, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 1372, 8, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 1384, 8, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 1397, 8, 26, 1, 26, 1, 26, 3, 26, 1401, 8, 26, 1, 26, 1, 26, 3, 26, 1405, 8, 26, 1, 26, 1, 26, 3, 26, 1409, 8, 26, 1, 26, 1, 26, 3, 26, 1413, 8, 26, 1, 26, 1, 26, 3, 26, 1417, 8, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 3, 26, 1428, 8, 26, 1, 26, 1, 26, 3, 26, 1432, 8, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 3, 27, 1489, 8, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 1515, 8, 28, 3, 28, 1517, 8, 28, 3, 28, 1519, 8, 28, 1, 28, 1, 28, 3, 28, 1523, 8, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 5, 29, 1530, 8, 29, 10, 29, 12, 29, 1533, 9, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 5, 29, 1542, 8, 29, 10, 29, 12, 29, 1545, 9, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 4, 29, 1554, 8, 29, 11, 29, 12, 29, 1555, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 4, 29, 1565, 8, 29, 11, 29, 12, 29, 1566, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 4, 29, 1576, 8, 29, 11, 29, 12, 29, 1577, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 3, 29, 1594, 8, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 4, 29, 1610, 8, 29, 11, 29, 12, 29, 1611, 1, 29, 1, 29, 3, 29, 1616, 8, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1623, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1632, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1643, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1654, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1665, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1678, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1691, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1704, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1717, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1730, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1743, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1756, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1767, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1778, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1789, 8, 30, 1, 30, 1, 30, 3, 30, 1793, 8, 30, 1, 30, 1, 30, 3, 30, 1797, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1808, 8, 30, 1, 30, 1, 30, 3, 30, 1812, 8, 30, 1, 30, 1, 30, 3, 30, 1816, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1827, 8, 30, 1, 30, 1, 30, 3, 30, 1831, 8, 30, 1, 30, 1, 30, 3, 30, 1835, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1846, 8, 30, 1, 30, 1, 30, 3, 30, 1850, 8, 30, 1, 30, 1, 30, 3, 30, 1854, 8, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 3, 30, 1869, 8, 30, 1, 30, 1, 30, 3, 30, 1873, 8, 30, 1, 30, 1, 30, 3, 30, 1877, 8, 30, 1, 30, 1, 30, 3, 30, 1881, 8, 30, 1, 30, 1, 30, 3, 30, 1885, 8, 30, 1, 30, 0, 5, 28, 30, 32, 34, 40, 31, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 0, 1, 1, 0, 206, 211, 2177, 0, 67, 1, 0, 0, 0, 2, 76, 1, 0, 0, 0, 4, 89, 1, 0, 0, 0, 6, 110, 1, 0, 0, 0, 8, 129, 1, 0, 0, 0, 10, 131, 1, 0, 0, 0, 12, 140, 1, 0, 0, 0, 14, 146, 1, 0, 0, 0, 16, 154, 1, 0, 0, 0, 18, 163, 1, 0, 0, 0, 20, 166, 1, 0, 0, 0, 22, 169, 1, 0, 0, 0, 24, 178, 1, 0, 0, 0, 26, 180, 1, 0, 0, 0, 28, 186, 1, 0, 0, 0, 30, 212, 1, 0, 0, 0, 32, 226, 1, 0, 0, 0, 34, 243, 1, 0, 0, 0, 36, 262, 1, 0, 0, 0, 38, 269, 1, 0, 0, 0, 40, 271, 1, 0, 0, 0, 42, 343, 1, 0, 0, 0, 44, 345, 1, 0, 0, 0, 46, 353, 1, 0, 0, 0, 48, 810, 1, 0, 0, 0, 50, 1164, 1, 0, 0, 0, 52, 1431, 1, 0, 0, 0, 54, 1488, 1, 0, 0, 0, 56, 1522, 1, 0, 0, 0, 58, 1615, 1, 0, 0, 0, 60, 1884, 1, 0, 0, 0, 62, 66, 3, 2, 1, 0, 63, 66, 3, 4, 2, 0, 64, 66, 3, 8, 4, 0, 65, 62, 1, 0, 0, 0, 65, 63, 1, 0, 0, 0, 65, 64, 1, 0, 0, 0, 66, 69, 1, 0, 0, 0, 67, 65, 1, 0, 0, 0, 67, 68, 1, 0, 0, 0, 68, 70, 1, 0, 0, 0, 69, 67, 1, 0, 0, 0, 70, 72, 3, 24, 12, 0, 71, 73, 5, 217, 0, 0, 72, 71, 1, 0, 0, 0, 72, 73, 1, 0, 0, 0, 73, 74, 1, 0, 0, 0, 74, 75, 5, 0, 0, 1, 75, 1, 1, 0, 0, 0, 76, 77, 5, 228, 0, 0, 77, 79, 5, 214, 0, 0, 78, 80, 3, 6, 3, 0, 79, 78, 1, 0, 0, 0, 79, 80, 1, 0, 0, 0, 80, 81, 1, 0, 0, 0, 81, 82, 5, 215, 0, 0, 82, 85, 5, 218, 0, 0, 83, 86, 3, 16, 8, 0, 84, 86, 3, 24, 12, 0, 85, 83, 1, 0, 0, 0, 85, 84, 1, 0, 0, 0, 86, 87, 1, 0, 0, 0, 87, 88, 5, 217, 0, 0, 88, 3, 1, 0, 0, 0, 89, 103, 5, 228, 0, 0, 90, 91, 5, 219, 0, 0, 91, 96, 3, 24, 12, 0, 92, 93, 5, 216, 0, 0, 93, 95, 3, 24, 12, 0, 94, 92, 1, 0, 0, 0, 95, 98, 1, 0, 0, 0, 96, 94, 1, 0, 0, 0, 96, 97, 1, 0, 0, 0, 97, 99, 1, 0, 0, 0, 98, 96, 1, 0, 0, 0, 99, 100, 5, 220, 0, 0, 100, 102, 1, 0, 0, 0, 101, 90, 1, 0, 0, 0, 102, 105, 1, 0, 0, 0, 103, 101, 1, 0, 0, 0, 103, 104, 1, 0, 0, 0, 104, 106, 1, 0, 0, 0, 105, 103, 1, 0, 0, 0, 106, 107, 7, 0, 0, 0, 107, 108, 3, 24, 12, 0, 108, 109, 5, 217, 0, 0, 109, 5, 1, 0, 0, 0, 110, 115, 5, 228, 0, 0, 111, 112, 5, 216, 0, 0, 112, 114, 5, 228, 0, 0, 113, 111, 1, 0, 0, 0, 114, 117, 1, 0, 0, 0, 115, 113, 1, 0, 0, 0, 115, 116, 1, 0, 0, 0, 116, 7, 1, 0, 0, 0, 117, 115, 1, 0, 0, 0, 118, 130, 3, 10, 5, 0, 119, 130, 3, 12, 6, 0, 120, 130, 3, 16, 8, 0, 121, 130, 3, 18, 9, 0, 122, 130, 3, 20, 10, 0, 123, 130, 3, 22, 11, 0, 124, 130, 3, 4, 2, 0, 125, 130, 3, 14, 7, 0, 126, 127, 3, 24, 12, 0, 127, 128, 5, 217, 0, 0, 128, 130, 1, 0, 0, 0, 129, 118, 1, 0, 0, 0, 129, 119, 1, 0, 0, 0, 129, 120, 1, 0, 0, 0, 129, 121, 1, 0, 0, 0, 129, 122, 1, 0, 0, 0, 129, 123, 1, 0, 0, 0, 129, 124, 1, 0, 0, 0, 129, 125, 1, 0, 0, 0, 129, 126, 1, 0, 0, 0, 130, 9, 1, 0, 0, 0, 131, 132, 5, 146, 0, 0, 132, 133, 5, 214, 0, 0, 133, 134, 3, 24, 12, 0, 134, 135, 5, 215, 0, 0, 135, 138, 3, 8, 4, 0, 136, 137, 5, 147, 0, 0, 137, 139, 3, 8, 4, 0, 138, 136, 1, 0, 0, 0, 138, 139, 1, 0, 0, 0, 139, 11, 1, 0, 0, 0, 140, 141, 5, 148, 0, 0, 141, 142, 5, 214, 0, 0, 142, 143, 3, 24, 12, 0, 143, 144, 5, 215, 0, 0, 144, 145, 3, 8, 4, 0, 145, 13, 1, 0, 0, 0, 146, 147, 5, 149, 0, 0, 147, 148, 5, 214, 0, 0, 148, 149, 5, 228, 0, 0, 149, 150, 5, 150, 0, 0, 150, 151, 3, 24, 12, 0, 151, 152, 5, 215, 0, 0, 152, 153, 3, 8, 4, 0, 153, 15, 1, 0, 0, 0, 154, 158, 5, 223, 0, 0, 155, 157, 3, 8, 4, 0, 156, 155, 1, 0, 0, 0, 157, 160, 1, 0, 0, 0, 158, 156, 1, 0, 0, 0, 158, 159, 1, 0, 0, 0, 159, 161, 1, 0, 0, 0, 160, 158, 1, 0, 0, 0, 161, 162, 5, 224, 0, 0, 162, 17, 1, 0, 0, 0, 163, 164, 5, 151, 0, 0, 164, 165, 5, 217, 0, 0, 165, 19, 1, 0, 0, 0, 166, 167, 5, 152, 0, 0, 167, 168, 5, 217, 0, 0, 168, 21, 1, 0, 0, 0, 169, 171, 5, 153, 0, 0, 170, 172, 3, 24, 12, 0, 171, 170, 1, 0, 0, 0, 171, 172, 1, 0, 0, 0, 172, 173, 1, 0, 0, 0, 173, 174, 5, 217, 0, 0, 174, 23, 1, 0, 0, 0, 175, 179, 3, 26, 13, 0, 176, 179, 3, 42, 21, 0, 177, 179, 3, 28, 14, 0, 178, 175, 1, 0, 0, 0, 178, 176, 1, 0, 0, 0, 178, 177, 1, 0, 0, 0, 179, 25, 1, 0, 0, 0, 180, 181, 3, 28, 14, 0, 181, 182, 5, 221, 0, 0, 182, 183, 3, 24, 12, 0, 183, 184, 5, 222, 0, 0, 184, 185, 3, 24, 12, 0, 185, 27, 1, 0, 0, 0, 186, 187, 6, 14, -1, 0, 187, 188, 3, 30, 15, 0, 188, 209, 1, 0, 0, 0, 189, 190, 10, 7, 0, 0, 190, 191, 5, 202, 0, 0, 191, 208, 3, 30, 15, 0, 192, 193, 10, 6, 0, 0, 193, 194, 5, 201, 0, 0, 194, 208, 3, 30, 15, 0, 195, 196, 10, 5, 0, 0, 196, 197, 5, 204, 0, 0, 197, 208, 3, 30, 15, 0, 198, 199, 10, 4, 0, 0, 199, 200, 5, 203, 0, 0, 200, 208, 3, 30, 15, 0, 201, 202, 10, 3, 0, 0, 202, 203, 5, 205, 0, 0, 203, 208, 3, 30, 15, 0, 204, 205, 10, 2, 0, 0, 205, 206, 5, 212, 0, 0, 206, 208, 3, 30, 15, 0, 207, 189, 1, 0, 0, 0, 207, 192, 1, 0, 0, 0, 207, 195, 1, 0, 0, 0, 207, 198, 1, 0, 0, 0, 207, 201, 1, 0, 0, 0, 207, 204, 1, 0, 0, 0, 208, 211, 1, 0, 0, 0, 209, 207, 1, 0, 0, 0, 209, 210, 1, 0, 0, 0, 210, 29, 1, 0, 0, 0, 211, 209, 1, 0, 0, 0, 212, 213, 6, 15, -1, 0, 213, 214, 3, 32, 16, 0, 214, 223, 1, 0, 0, 0, 215, 216, 10, 3, 0, 0, 216, 217, 5, 193, 0, 0, 217, 222, 3, 32, 16, 0, 218, 219, 10, 2, 0, 0, 219, 220, 5, 194, 0, 0, 220, 222, 3, 32, 16, 0, 221, 215, 1, 0, 0, 0, 221, 218, 1, 0, 0, 0, 222, 225, 1, 0, 0, 0, 223, 221, 1, 0, 0, 0, 223, 224, 1, 0, 0, 0, 224, 31, 1, 0, 0, 0, 225, 223, 1, 0, 0, 0, 226, 227, 6, 16, -1, 0, 227, 228, 3, 34, 17, 0, 228, 240, 1, 0, 0, 0, 229, 230, 10, 4, 0, 0, 230, 231, 5, 195, 0, 0, 231, 239, 3, 34, 17, 0, 232, 233, 10, 3, 0, 0, 233, 234, 5, 196, 0, 0, 234, 239, 3, 34, 17, 0, 235, 236, 10, 2, 0, 0, 236, 237, 5, 197, 0, 0, 237, 239, 3, 34, 17, 0, 238, 229, 1, 0, 0, 0, 238, 232, 1, 0, 0, 0, 238, 235, 1, 0, 0, 0, 239, 242, 1, 0, 0, 0, 240, 238, 1, 0, 0, 0, 240, 241, 1, 0, 0, 0, 241, 33, 1, 0, 0, 0, 242, 240, 1, 0, 0, 0, 243, 244, 6, 17, -1, 0, 244, 245, 3, 36, 18, 0, 245, 254, 1, 0, 0, 0, 246, 247, 10, 3, 0, 0, 247, 248, 5, 199, 0, 0, 248, 253, 3, 36, 18, 0, 249, 250, 10, 2, 0, 0, 250, 251, 5, 200, 0, 0, 251, 253, 3, 36, 18, 0, 252, 246, 1, 0, 0, 0, 252, 249, 1, 0, 0, 0, 253, 256, 1, 0, 0, 0, 254, 252, 1, 0, 0, 0, 254, 255, 1, 0, 0, 0, 255, 35, 1, 0, 0, 0, 256, 254, 1, 0, 0, 0, 257, 258, 3, 38, 19, 0, 258, 259, 5, 198, 0, 0, 259, 260, 3, 36, 18, 0, 260, 263, 1, 0, 0, 0, 261, 263, 3, 38, 19, 0, 262, 257, 1, 0, 0, 0, 262, 261, 1, 0, 0, 0, 263, 37, 1, 0, 0, 0, 264, 265, 5, 193, 0, 0, 265, 270, 3, 38, 19, 0, 266, 267, 5, 194, 0, 0, 267, 270, 3, 38, 19, 0, 268, 270, 3, 40, 20, 0, 269, 264, 1, 0, 0, 0, 269, 266, 1, 0, 0, 0, 269, 268, 1, 0, 0, 0, 270, 39, 1, 0, 0, 0, 271, 272, 6, 20, -1, 0, 272, 273, 3, 42, 21, 0, 273, 288, 1, 0, 0, 0, 274, 275, 10, 2, 0, 0, 275, 276, 5, 219, 0, 0, 276, 281, 3, 24, 12, 0, 277, 278, 5, 216, 0, 0, 278, 280, 3, 24, 12, 0, 279, 277, 1, 0, 0, 0, 280, 283, 1, 0, 0, 0, 281, 279, 1, 0, 0, 0, 281, 282, 1, 0, 0, 0, 282, 284, 1, 0, 0, 0, 283, 281, 1, 0, 0, 0, 284, 285, 5, 220, 0, 0, 285, 287, 1, 0, 0, 0, 286, 274, 1, 0, 0, 0, 287, 290, 1, 0, 0, 0, 288, 286, 1, 0, 0, 0, 288, 289, 1, 0, 0, 0, 289, 41, 1, 0, 0, 0, 290, 288, 1, 0, 0, 0, 291, 344, 3, 46, 23, 0, 292, 344, 3, 48, 24, 0, 293, 344, 3, 50, 25, 0, 294, 344, 3, 52, 26, 0, 295, 344, 3, 54, 27, 0, 296, 344, 3, 56, 28, 0, 297, 344, 3, 58, 29, 0, 298, 344, 3, 60, 30, 0, 299, 344, 5, 228, 0, 0, 300, 344, 5, 225, 0, 0, 301, 344, 5, 226, 0, 0, 302, 344, 5, 227, 0, 0, 303, 304, 5, 214, 0, 0, 304, 305, 3, 6, 3, 0, 305, 306, 5, 215, 0, 0, 306, 309, 5, 218, 0, 0, 307, 310, 3, 16, 8, 0, 308, 310, 3, 24, 12, 0, 309, 307, 1, 0, 0, 0, 309, 308, 1, 0, 0, 0, 310, 344, 1, 0, 0, 0, 311, 312, 5, 214, 0, 0, 312, 313, 3, 24, 12, 0, 313, 314, 5, 215, 0, 0, 314, 344, 1, 0, 0, 0, 315, 316, 5, 214, 0, 0, 316, 317, 3, 24, 12, 0, 317, 318, 5, 215, 0, 0, 318, 344, 1, 0, 0, 0, 319, 320, 5, 213, 0, 0, 320, 321, 3, 24, 12, 0, 321, 322, 5, 213, 0, 0, 322, 344, 1, 0, 0, 0, 323, 324, 5, 219, 0, 0, 324, 329, 3, 24, 12, 0, 325, 326, 5, 216, 0, 0, 326, 328, 3, 24, 12, 0, 327, 325, 1, 0, 0, 0, 328, 331, 1, 0, 0, 0, 329, 327, 1, 0, 0, 0, 329, 330, 1, 0, 0, 0, 330, 332, 1, 0, 0, 0, 331, 329, 1, 0, 0, 0, 332, 333, 5, 220, 0, 0, 333, 344, 1, 0, 0, 0, 334, 335, 5, 228, 0, 0, 335, 337, 5, 214, 0, 0, 336, 338, 3, 44, 22, 0, 337, 336, 1, 0, 0, 0, 337, 338, 1, 0, 0, 0, 338, 339, 1, 0, 0, 0, 339, 344, 5, 215, 0, 0, 340, 344, 5, 172, 0, 0, 341, 344, 5, 151, 0, 0, 342, 344, 5, 152, 0, 0, 343, 291, 1, 0, 0, 0, 343, 292, 1, 0, 0, 0, 343, 293, 1, 0, 0, 0, 343, 294, 1, 0, 0, 0, 343, 295, 1, 0, 0, 0, 343, 296, 1, 0, 0, 0, 343, 297, 1, 0, 0, 0, 343, 298, 1, 0, 0, 0, 343, 299, 1, 0, 0, 0, 343, 300, 1, 0, 0, 0, 343, 301, 1, 0, 0, 0, 343, 302, 1, 0, 0, 0, 343, 303, 1, 0, 0, 0, 343, 311, 1, 0, 0, 0, 343, 315, 1, 0, 0, 0, 343, 319, 1, 0, 0, 0, 343, 323, 1, 0, 0, 0, 343, 334, 1, 0, 0, 0, 343, 340, 1, 0, 0, 0, 343, 341, 1, 0, 0, 0, 343, 342, 1, 0, 0, 0, 344, 43, 1, 0, 0, 0, 345, 350, 3, 24, 12, 0, 346, 347, 5, 216, 0, 0, 347, 349, 3, 24, 12, 0, 348, 346, 1, 0, 0, 0, 349, 352, 1, 0, 0, 0, 350, 348, 1, 0, 0, 0, 350, 351, 1, 0, 0, 0, 351, 45, 1, 0, 0, 0, 352, 350, 1, 0, 0, 0, 353, 354, 5, 154, 0, 0, 354, 355, 5, 214, 0, 0, 355, 356, 5, 215, 0, 0, 356, 47, 1, 0, 0, 0, 357, 358, 5, 1, 0, 0, 358, 359, 5, 214, 0, 0, 359, 360, 3, 24, 12, 0, 360, 361, 5, 215, 0, 0, 361, 811, 1, 0, 0, 0, 362, 363, 5, 2, 0, 0, 363, 364, 5, 214, 0, 0, 364, 365, 3, 24, 12, 0, 365, 366, 5, 215, 0, 0, 366, 811, 1, 0, 0, 0, 367, 368, 5, 3, 0, 0, 368, 369, 5, 214, 0, 0, 369, 370, 3, 24, 12, 0, 370, 371, 5, 215, 0, 0, 371, 811, 1, 0, 0, 0, 372, 373, 5, 4, 0, 0, 373, 374, 5, 214, 0, 0, 374, 375, 3, 24, 12, 0, 375, 376, 5, 215, 0, 0, 376, 811, 1, 0, 0, 0, 377, 378, 5, 5, 0, 0, 378, 379, 5, 214, 0, 0, 379, 380, 3, 24, 12, 0, 380, 381, 5, 215, 0, 0, 381, 811, 1, 0, 0, 0, 382, 383, 5, 6, 0, 0, 383, 384, 5, 214, 0, 0, 384, 385, 3, 24, 12, 0, 385, 386, 5, 215, 0, 0, 386, 811, 1, 0, 0, 0, 387, 388, 5, 8, 0, 0, 388, 389, 5, 214, 0, 0, 389, 390, 3, 24, 12, 0, 390, 391, 5, 215, 0, 0, 391, 811, 1, 0, 0, 0, 392, 393, 5, 9, 0, 0, 393, 394, 5, 214, 0, 0, 394, 395, 3, 24, 12, 0, 395, 396, 5, 215, 0, 0, 396, 811, 1, 0, 0, 0, 397, 398, 5, 10, 0, 0, 398, 399, 5, 214, 0, 0, 399, 400, 3, 24, 12, 0, 400, 401, 5, 215, 0, 0, 401, 811, 1, 0, 0, 0, 402, 403, 5, 11, 0, 0, 403, 404, 5, 214, 0, 0, 404, 405, 3, 24, 12, 0, 405, 406, 5, 215, 0, 0, 406, 811, 1, 0, 0, 0, 407, 408, 5, 12, 0, 0, 408, 409, 5, 214, 0, 0, 409, 410, 3, 24, 12, 0, 410, 411, 5, 215, 0, 0, 411, 811, 1, 0, 0, 0, 412, 413, 5, 13, 0, 0, 413, 414, 5, 214, 0, 0, 414, 415, 3, 24, 12, 0, 415, 416, 5, 215, 0, 0, 416, 811, 1, 0, 0, 0, 417, 418, 5, 14, 0, 0, 418, 419, 5, 214, 0, 0, 419, 420, 3, 24, 12, 0, 420, 421, 5, 215, 0, 0, 421, 811, 1, 0, 0, 0, 422, 423, 5, 15, 0, 0, 423, 424, 5, 214, 0, 0, 424, 425, 3, 24, 12, 0, 425, 426, 5, 215, 0, 0, 426, 811, 1, 0, 0, 0, 427, 428, 5, 16, 0, 0, 428, 429, 5, 214, 0, 0, 429, 430, 3, 24, 12, 0, 430, 431, 5, 215, 0, 0, 431, 811, 1, 0, 0, 0, 432, 433, 5, 17, 0, 0, 433, 434, 5, 214, 0, 0, 434, 435, 3, 24, 12, 0, 435, 436, 5, 215, 0, 0, 436, 811, 1, 0, 0, 0, 437, 438, 5, 18, 0, 0, 438, 439, 5, 214, 0, 0, 439, 440, 3, 24, 12, 0, 440, 441, 5, 215, 0, 0, 441, 811, 1, 0, 0, 0, 442, 443, 5, 23, 0, 0, 443, 444, 5, 214, 0, 0, 444, 445, 3, 24, 12, 0, 445, 446, 5, 215, 0, 0, 446, 811, 1, 0, 0, 0, 447, 448, 5, 25, 0, 0, 448, 449, 5, 214, 0, 0, 449, 450, 3, 24, 12, 0, 450, 451, 5, 215, 0, 0, 451, 811, 1, 0, 0, 0, 452, 453, 5, 26, 0, 0, 453, 454, 5, 214, 0, 0, 454, 455, 3, 24, 12, 0, 455, 456, 5, 215, 0, 0, 456, 811, 1, 0, 0, 0, 457, 458, 5, 27, 0, 0, 458, 459, 5, 214, 0, 0, 459, 460, 3, 24, 12, 0, 460, 461, 5, 215, 0, 0, 461, 811, 1, 0, 0, 0, 462, 463, 5, 28, 0, 0, 463, 464, 5, 214, 0, 0, 464, 465, 3, 24, 12, 0, 465, 466, 5, 215, 0, 0, 466, 811, 1, 0, 0, 0, 467, 468, 5, 30, 0, 0, 468, 469, 5, 214, 0, 0, 469, 470, 3, 24, 12, 0, 470, 471, 5, 215, 0, 0, 471, 811, 1, 0, 0, 0, 472, 473, 5, 34, 0, 0, 473, 474, 5, 214, 0, 0, 474, 475, 3, 24, 12, 0, 475, 476, 5, 215, 0, 0, 476, 811, 1, 0, 0, 0, 477, 478, 5, 35, 0, 0, 478, 479, 5, 214, 0, 0, 479, 480, 3, 24, 12, 0, 480, 481, 5, 215, 0, 0, 481, 811, 1, 0, 0, 0, 482, 483, 5, 41, 0, 0, 483, 484, 5, 214, 0, 0, 484, 485, 3, 24, 12, 0, 485, 486, 5, 215, 0, 0, 486, 811, 1, 0, 0, 0, 487, 488, 5, 42, 0, 0, 488, 489, 5, 214, 0, 0, 489, 490, 3, 24, 12, 0, 490, 491, 5, 215, 0, 0, 491, 811, 1, 0, 0, 0, 492, 493, 5, 43, 0, 0, 493, 494, 5, 214, 0, 0, 494, 495, 3, 24, 12, 0, 495, 496, 5, 215, 0, 0, 496, 811, 1, 0, 0, 0, 497, 498, 5, 44, 0, 0, 498, 499, 5, 214, 0, 0, 499, 500, 3, 24, 12, 0, 500, 501, 5, 215, 0, 0, 501, 811, 1, 0, 0, 0, 502, 503, 5, 45, 0, 0, 503, 504, 5, 214, 0, 0, 504, 505, 3, 24, 12, 0, 505, 506, 5, 215, 0, 0, 506, 811, 1, 0, 0, 0, 507, 508, 5, 36, 0, 0, 508, 509, 5, 214, 0, 0, 509, 510, 3, 24, 12, 0, 510, 511, 5, 215, 0, 0, 511, 811, 1, 0, 0, 0, 512, 513, 5, 57, 0, 0, 513, 514, 5, 214, 0, 0, 514, 515, 3, 24, 12, 0, 515, 516, 5, 215, 0, 0, 516, 811, 1, 0, 0, 0, 517, 518, 5, 58, 0, 0, 518, 519, 5, 214, 0, 0, 519, 522, 3, 24, 12, 0, 520, 521, 5, 216, 0, 0, 521, 523, 3, 24, 12, 0, 522, 520, 1, 0, 0, 0, 522, 523, 1, 0, 0, 0, 523, 524, 1, 0, 0, 0, 524, 525, 5, 215, 0, 0, 525, 811, 1, 0, 0, 0, 526, 527, 5, 59, 0, 0, 527, 528, 5, 214, 0, 0, 528, 529, 3, 24, 12, 0, 529, 530, 5, 215, 0, 0, 530, 811, 1, 0, 0, 0, 531, 532, 5, 60, 0, 0, 532, 533, 5, 214, 0, 0, 533, 534, 3, 24, 12, 0, 534, 535, 5, 215, 0, 0, 535, 811, 1, 0, 0, 0, 536, 537, 5, 61, 0, 0, 537, 538, 5, 214, 0, 0, 538, 539, 3, 24, 12, 0, 539, 540, 5, 215, 0, 0, 540, 811, 1, 0, 0, 0, 541, 542, 5, 155, 0, 0, 542, 543, 5, 214, 0, 0, 543, 544, 3, 24, 12, 0, 544, 545, 5, 215, 0, 0, 545, 811, 1, 0, 0, 0, 546, 547, 5, 69, 0, 0, 547, 548, 5, 214, 0, 0, 548, 549, 3, 24, 12, 0, 549, 550, 5, 215, 0, 0, 550, 811, 1, 0, 0, 0, 551, 552, 5, 70, 0, 0, 552, 553, 5, 214, 0, 0, 553, 554, 3, 24, 12, 0, 554, 555, 5, 215, 0, 0, 555, 811, 1, 0, 0, 0, 556, 557, 5, 71, 0, 0, 557, 558, 5, 214, 0, 0, 558, 561, 3, 24, 12, 0, 559, 560, 5, 216, 0, 0, 560, 562, 3, 24, 12, 0, 561, 559, 1, 0, 0, 0, 561, 562, 1, 0, 0, 0, 562, 563, 1, 0, 0, 0, 563, 564, 5, 215, 0, 0, 564, 811, 1, 0, 0, 0, 565, 566, 5, 73, 0, 0, 566, 567, 5, 214, 0, 0, 567, 568, 3, 24, 12, 0, 568, 569, 5, 215, 0, 0, 569, 811, 1, 0, 0, 0, 570, 571, 5, 74, 0, 0, 571, 572, 5, 214, 0, 0, 572, 573, 3, 24, 12, 0, 573, 574, 5, 215, 0, 0, 574, 811, 1, 0, 0, 0, 575, 576, 5, 75, 0, 0, 576, 577, 5, 214, 0, 0, 577, 580, 3, 24, 12, 0, 578, 579, 5, 216, 0, 0, 579, 581, 3, 24, 12, 0, 580, 578, 1, 0, 0, 0, 580, 581, 1, 0, 0, 0, 581, 582, 1, 0, 0, 0, 582, 583, 5, 215, 0, 0, 583, 811, 1, 0, 0, 0, 584, 585, 5, 86, 0, 0, 585, 586, 5, 214, 0, 0, 586, 587, 3, 24, 12, 0, 587, 588, 5, 215, 0, 0, 588, 811, 1, 0, 0, 0, 589, 590, 5, 87, 0, 0, 590, 591, 5, 214, 0, 0, 591, 592, 3, 24, 12, 0, 592, 593, 5, 216, 0, 0, 593, 596, 3, 24, 12, 0, 594, 595, 5, 216, 0, 0, 595, 597, 3, 24, 12, 0, 596, 594, 1, 0, 0, 0, 596, 597, 1, 0, 0, 0, 597, 598, 1, 0, 0, 0, 598, 599, 5, 215, 0, 0, 599, 811, 1, 0, 0, 0, 600, 601, 5, 76, 0, 0, 601, 602, 5, 214, 0, 0, 602, 603, 3, 24, 12, 0, 603, 604, 5, 215, 0, 0, 604, 811, 1, 0, 0, 0, 605, 606, 5, 112, 0, 0, 606, 607, 5, 214, 0, 0, 607, 608, 3, 24, 12, 0, 608, 609, 5, 215, 0, 0, 609, 811, 1, 0, 0, 0, 610, 611, 5, 113, 0, 0, 611, 612, 5, 214, 0, 0, 612, 613, 3, 24, 12, 0, 613, 614, 5, 215, 0, 0, 614, 811, 1, 0, 0, 0, 615, 616, 5, 114, 0, 0, 616, 617, 5, 214, 0, 0, 617, 618, 3, 24, 12, 0, 618, 619, 5, 215, 0, 0, 619, 811, 1, 0, 0, 0, 620, 621, 5, 115, 0, 0, 621, 622, 5, 214, 0, 0, 622, 623, 3, 24, 12, 0, 623, 624, 5, 215, 0, 0, 624, 811, 1, 0, 0, 0, 625, 626, 5, 156, 0, 0, 626, 627, 5, 214, 0, 0, 627, 634, 3, 24, 12, 0, 628, 629, 5, 216, 0, 0, 629, 632, 3, 24, 12, 0, 630, 631, 5, 216, 0, 0, 631, 633, 3, 24, 12, 0, 632, 630, 1, 0, 0, 0, 632, 633, 1, 0, 0, 0, 633, 635, 1, 0, 0, 0, 634, 628, 1, 0, 0, 0, 634, 635, 1, 0, 0, 0, 635, 636, 1, 0, 0, 0, 636, 637, 5, 215, 0, 0, 637, 811, 1, 0, 0, 0, 638, 639, 5, 157, 0, 0, 639, 640, 5, 214, 0, 0, 640, 643, 3, 24, 12, 0, 641, 642, 5, 216, 0, 0, 642, 644, 3, 24, 12, 0, 643, 641, 1, 0, 0, 0, 643, 644, 1, 0, 0, 0, 644, 645, 1, 0, 0, 0, 645, 646, 5, 215, 0, 0, 646, 811, 1, 0, 0, 0, 647, 648, 5, 158, 0, 0, 648, 649, 5, 214, 0, 0, 649, 652, 3, 24, 12, 0, 650, 651, 5, 216, 0, 0, 651, 653, 3, 24, 12, 0, 652, 650, 1, 0, 0, 0, 652, 653, 1, 0, 0, 0, 653, 654, 1, 0, 0, 0, 654, 655, 5, 215, 0, 0, 655, 811, 1, 0, 0, 0, 656, 657, 5, 159, 0, 0, 657, 658, 5, 214, 0, 0, 658, 661, 3, 24, 12, 0, 659, 660, 5, 216, 0, 0, 660, 662, 3, 24, 12, 0, 661, 659, 1, 0, 0, 0, 661, 662, 1, 0, 0, 0, 662, 663, 1, 0, 0, 0, 663, 664, 5, 215, 0, 0, 664, 811, 1, 0, 0, 0, 665, 666, 5, 160, 0, 0, 666, 667, 5, 214, 0, 0, 667, 670, 3, 24, 12, 0, 668, 669, 5, 216, 0, 0, 669, 671, 3, 24, 12, 0, 670, 668, 1, 0, 0, 0, 670, 671, 1, 0, 0, 0, 671, 672, 1, 0, 0, 0, 672, 673, 5, 215, 0, 0, 673, 811, 1, 0, 0, 0, 674, 675, 5, 67, 0, 0, 675, 676, 5, 214, 0, 0, 676, 677, 3, 24, 12, 0, 677, 678, 5, 215, 0, 0, 678, 811, 1, 0, 0, 0, 679, 680, 5, 68, 0, 0, 680, 681, 5, 214, 0, 0, 681, 682, 3, 24, 12, 0, 682, 683, 5, 215, 0, 0, 683, 811, 1, 0, 0, 0, 684, 685, 5, 161, 0, 0, 685, 686, 5, 214, 0, 0, 686, 687, 3, 24, 12, 0, 687, 688, 5, 215, 0, 0, 688, 811, 1, 0, 0, 0, 689, 690, 5, 88, 0, 0, 690, 691, 5, 214, 0, 0, 691, 692, 3, 24, 12, 0, 692, 693, 5, 215, 0, 0, 693, 811, 1, 0, 0, 0, 694, 695, 5, 93, 0, 0, 695, 696, 5, 214, 0, 0, 696, 697, 3, 24, 12, 0, 697, 698, 5, 215, 0, 0, 698, 811, 1, 0, 0, 0, 699, 700, 5, 94, 0, 0, 700, 701, 5, 214, 0, 0, 701, 702, 3, 24, 12, 0, 702, 703, 5, 215, 0, 0, 703, 811, 1, 0, 0, 0, 704, 705, 5, 104, 0, 0, 705, 706, 5, 214, 0, 0, 706, 707, 3, 24, 12, 0, 707, 708, 5, 215, 0, 0, 708, 811, 1, 0, 0, 0, 709, 710, 5, 105, 0, 0, 710, 711, 5, 214, 0, 0, 711, 712, 3, 24, 12, 0, 712, 713, 5, 215, 0, 0, 713, 811, 1, 0, 0, 0, 714, 715, 5, 106, 0, 0, 715, 716, 5, 214, 0, 0, 716, 717, 3, 24, 12, 0, 717, 718, 5, 215, 0, 0, 718, 811, 1, 0, 0, 0, 719, 720, 5, 119, 0, 0, 720, 721, 5, 214, 0, 0, 721, 722, 3, 24, 12, 0, 722, 723, 5, 215, 0, 0, 723, 811, 1, 0, 0, 0, 724, 725, 5, 120, 0, 0, 725, 726, 5, 214, 0, 0, 726, 727, 3, 24, 12, 0, 727, 728, 5, 215, 0, 0, 728, 811, 1, 0, 0, 0, 729, 730, 5, 121, 0, 0, 730, 731, 5, 214, 0, 0, 731, 732, 3, 24, 12, 0, 732, 733, 5, 215, 0, 0, 733, 811, 1, 0, 0, 0, 734, 735, 5, 170, 0, 0, 735, 736, 5, 214, 0, 0, 736, 737, 3, 24, 12, 0, 737, 738, 5, 215, 0, 0, 738, 811, 1, 0, 0, 0, 739, 740, 5, 32, 0, 0, 740, 741, 5, 214, 0, 0, 741, 742, 3, 24, 12, 0, 742, 743, 5, 215, 0, 0, 743, 811, 1, 0, 0, 0, 744, 745, 5, 127, 0, 0, 745, 746, 5, 214, 0, 0, 746, 749, 3, 24, 12, 0, 747, 748, 5, 216, 0, 0, 748, 750, 3, 24, 12, 0, 749, 747, 1, 0, 0, 0, 749, 750, 1, 0, 0, 0, 750, 751, 1, 0, 0, 0, 751, 752, 5, 215, 0, 0, 752, 811, 1, 0, 0, 0, 753, 754, 5, 128, 0, 0, 754, 755, 5, 214, 0, 0, 755, 758, 3, 24, 12, 0, 756, 757, 5, 216, 0, 0, 757, 759, 3, 24, 12, 0, 758, 756, 1, 0, 0, 0, 758, 759, 1, 0, 0, 0, 759, 760, 1, 0, 0, 0, 760, 761, 5, 215, 0, 0, 761, 811, 1, 0, 0, 0, 762, 763, 5, 129, 0, 0, 763, 764, 5, 214, 0, 0, 764, 767, 3, 24, 12, 0, 765, 766, 5, 216, 0, 0, 766, 768, 3, 24, 12, 0, 767, 765, 1, 0, 0, 0, 767, 768, 1, 0, 0, 0, 768, 769, 1, 0, 0, 0, 769, 770, 5, 215, 0, 0, 770, 811, 1, 0, 0, 0, 771, 772, 5, 130, 0, 0, 772, 773, 5, 214, 0, 0, 773, 776, 3, 24, 12, 0, 774, 775, 5, 216, 0, 0, 775, 777, 3, 24, 12, 0, 776, 774, 1, 0, 0, 0, 776, 777, 1, 0, 0, 0, 777, 778, 1, 0, 0, 0, 778, 779, 5, 215, 0, 0, 779, 811, 1, 0, 0, 0, 780, 781, 5, 117, 0, 0, 781, 782, 5, 214, 0, 0, 782, 783, 3, 24, 12, 0, 783, 784, 5, 215, 0, 0, 784, 811, 1, 0, 0, 0, 785, 786, 5, 118, 0, 0, 786, 787, 5, 214, 0, 0, 787, 788, 3, 24, 12, 0, 788, 789, 5, 215, 0, 0, 789, 811, 1, 0, 0, 0, 790, 791, 5, 95, 0, 0, 791, 792, 5, 214, 0, 0, 792, 793, 3, 24, 12, 0, 793, 794, 5, 215, 0, 0, 794, 811, 1, 0, 0, 0, 795, 796, 5, 96, 0, 0, 796, 797, 5, 214, 0, 0, 797, 798, 3, 24, 12, 0, 798, 799, 5, 215, 0, 0, 799, 811, 1, 0, 0, 0, 800, 801, 5, 143, 0, 0, 801, 802, 5, 214, 0, 0, 802, 803, 3, 24, 12, 0, 803, 804, 5, 215, 0, 0, 804, 811, 1, 0, 0, 0, 805, 806, 5, 144, 0, 0, 806, 807, 5, 214, 0, 0, 807, 808, 3, 24, 12, 0, 808, 809, 5, 215, 0, 0, 809, 811, 1, 0, 0, 0, 810, 357, 1, 0, 0, 0, 810, 362, 1, 0, 0, 0, 810, 367, 1, 0, 0, 0, 810, 372, 1, 0, 0, 0, 810, 377, 1, 0, 0, 0, 810, 382, 1, 0, 0, 0, 810, 387, 1, 0, 0, 0, 810, 392, 1, 0, 0, 0, 810, 397, 1, 0, 0, 0, 810, 402, 1, 0, 0, 0, 810, 407, 1, 0, 0, 0, 810, 412, 1, 0, 0, 0, 810, 417, 1, 0, 0, 0, 810, 422, 1, 0, 0, 0, 810, 427, 1, 0, 0, 0, 810, 432, 1, 0, 0, 0, 810, 437, 1, 0, 0, 0, 810, 442, 1, 0, 0, 0, 810, 447, 1, 0, 0, 0, 810, 452, 1, 0, 0, 0, 810, 457, 1, 0, 0, 0, 810, 462, 1, 0, 0, 0, 810, 467, 1, 0, 0, 0, 810, 472, 1, 0, 0, 0, 810, 477, 1, 0, 0, 0, 810, 482, 1, 0, 0, 0, 810, 487, 1, 0, 0, 0, 810, 492, 1, 0, 0, 0, 810, 497, 1, 0, 0, 0, 810, 502, 1, 0, 0, 0, 810, 507, 1, 0, 0, 0, 810, 512, 1, 0, 0, 0, 810, 517, 1, 0, 0, 0, 810, 526, 1, 0, 0, 0, 810, 531, 1, 0, 0, 0, 810, 536, 1, 0, 0, 0, 810, 541, 1, 0, 0, 0, 810, 546, 1, 0, 0, 0, 810, 551, 1, 0, 0, 0, 810, 556, 1, 0, 0, 0, 810, 565, 1, 0, 0, 0, 810, 570, 1, 0, 0, 0, 810, 575, 1, 0, 0, 0, 810, 584, 1, 0, 0, 0, 810, 589, 1, 0, 0, 0, 810, 600, 1, 0, 0, 0, 810, 605, 1, 0, 0, 0, 810, 610, 1, 0, 0, 0, 810, 615, 1, 0, 0, 0, 810, 620, 1, 0, 0, 0, 810, 625, 1, 0, 0, 0, 810, 638, 1, 0, 0, 0, 810, 647, 1, 0, 0, 0, 810, 656, 1, 0, 0, 0, 810, 665, 1, 0, 0, 0, 810, 674, 1, 0, 0, 0, 810, 679, 1, 0, 0, 0, 810, 684, 1, 0, 0, 0, 810, 689, 1, 0, 0, 0, 810, 694, 1, 0, 0, 0, 810, 699, 1, 0, 0, 0, 810, 704, 1, 0, 0, 0, 810, 709, 1, 0, 0, 0, 810, 714, 1, 0, 0, 0, 810, 719, 1, 0, 0, 0, 810, 724, 1, 0, 0, 0, 810, 729, 1, 0, 0, 0, 810, 734, 1, 0, 0, 0, 810, 739, 1, 0, 0, 0, 810, 744, 1, 0, 0, 0, 810, 753, 1, 0, 0, 0, 810, 762, 1, 0, 0, 0, 810, 771, 1, 0, 0, 0, 810, 780, 1, 0, 0, 0, 810, 785, 1, 0, 0, 0, 810, 790, 1, 0, 0, 0, 810, 795, 1, 0, 0, 0, 810, 800, 1, 0, 0, 0, 810, 805, 1, 0, 0, 0, 811, 49, 1, 0, 0, 0, 812, 813, 5, 29, 0, 0, 813, 814, 5, 214, 0, 0, 814, 815, 3, 24, 12, 0, 815, 816, 5, 216, 0, 0, 816, 817, 3, 24, 12, 0, 817, 818, 5, 215, 0, 0, 818, 1165, 1, 0, 0, 0, 819, 820, 5, 7, 0, 0, 820, 821, 5, 214, 0, 0, 821, 822, 3, 24, 12, 0, 822, 823, 5, 216, 0, 0, 823, 824, 3, 24, 12, 0, 824, 825, 5, 215, 0, 0, 825, 1165, 1, 0, 0, 0, 826, 827, 5, 21, 0, 0, 827, 828, 5, 214, 0, 0, 828, 829, 3, 24, 12, 0, 829, 830, 5, 216, 0, 0, 830, 831, 3, 24, 12, 0, 831, 832, 5, 215, 0, 0, 832, 1165, 1, 0, 0, 0, 833, 834, 5, 22, 0, 0, 834, 835, 5, 214, 0, 0, 835, 836, 3, 24, 12, 0, 836, 837, 5, 216, 0, 0, 837, 838, 3, 24, 12, 0, 838, 839, 5, 215, 0, 0, 839, 1165, 1, 0, 0, 0, 840, 841, 5, 24, 0, 0, 841, 842, 5, 214, 0, 0, 842, 845, 3, 24, 12, 0, 843, 844, 5, 216, 0, 0, 844, 846, 3, 24, 12, 0, 845, 843, 1, 0, 0, 0, 845, 846, 1, 0, 0, 0, 846, 847, 1, 0, 0, 0, 847, 848, 5, 215, 0, 0, 848, 1165, 1, 0, 0, 0, 849, 850, 5, 39, 0, 0, 850, 851, 5, 214, 0, 0, 851, 852, 3, 24, 12, 0, 852, 853, 5, 216, 0, 0, 853, 854, 3, 24, 12, 0, 854, 855, 5, 215, 0, 0, 855, 1165, 1, 0, 0, 0, 856, 857, 5, 55, 0, 0, 857, 858, 5, 214, 0, 0, 858, 859, 3, 24, 12, 0, 859, 860, 5, 216, 0, 0, 860, 861, 3, 24, 12, 0, 861, 862, 5, 215, 0, 0, 862, 1165, 1, 0, 0, 0, 863, 864, 5, 56, 0, 0, 864, 865, 5, 214, 0, 0, 865, 866, 3, 24, 12, 0, 866, 867, 5, 216, 0, 0, 867, 868, 3, 24, 12, 0, 868, 869, 5, 215, 0, 0, 869, 1165, 1, 0, 0, 0, 870, 871, 5, 62, 0, 0, 871, 872, 5, 214, 0, 0, 872, 873, 3, 24, 12, 0, 873, 874, 5, 216, 0, 0, 874, 875, 3, 24, 12, 0, 875, 876, 5, 215, 0, 0, 876, 1165, 1, 0, 0, 0, 877, 878, 5, 63, 0, 0, 878, 879, 5, 214, 0, 0, 879, 880, 3, 24, 12, 0, 880, 881, 5, 216, 0, 0, 881, 882, 3, 24, 12, 0, 882, 883, 5, 215, 0, 0, 883, 1165, 1, 0, 0, 0, 884, 885, 5, 64, 0, 0, 885, 886, 5, 214, 0, 0, 886, 887, 3, 24, 12, 0, 887, 888, 5, 216, 0, 0, 888, 889, 3, 24, 12, 0, 889, 890, 5, 215, 0, 0, 890, 1165, 1, 0, 0, 0, 891, 892, 5, 65, 0, 0, 892, 893, 5, 214, 0, 0, 893, 894, 3, 24, 12, 0, 894, 895, 5, 216, 0, 0, 895, 896, 3, 24, 12, 0, 896, 897, 5, 215, 0, 0, 897, 1165, 1, 0, 0, 0, 898, 899, 5, 85, 0, 0, 899, 900, 5, 214, 0, 0, 900, 901, 3, 24, 12, 0, 901, 902, 5, 216, 0, 0, 902, 903, 3, 24, 12, 0, 903, 904, 5, 215, 0, 0, 904, 1165, 1, 0, 0, 0, 905, 906, 5, 163, 0, 0, 906, 907, 5, 214, 0, 0, 907, 908, 3, 24, 12, 0, 908, 909, 5, 216, 0, 0, 909, 910, 3, 24, 12, 0, 910, 911, 5, 215, 0, 0, 911, 1165, 1, 0, 0, 0, 912, 913, 5, 164, 0, 0, 913, 914, 5, 214, 0, 0, 914, 915, 3, 24, 12, 0, 915, 916, 5, 216, 0, 0, 916, 917, 3, 24, 12, 0, 917, 918, 5, 215, 0, 0, 918, 1165, 1, 0, 0, 0, 919, 920, 5, 162, 0, 0, 920, 921, 5, 214, 0, 0, 921, 922, 3, 24, 12, 0, 922, 923, 5, 216, 0, 0, 923, 924, 3, 24, 12, 0, 924, 925, 5, 215, 0, 0, 925, 1165, 1, 0, 0, 0, 926, 927, 5, 168, 0, 0, 927, 928, 5, 214, 0, 0, 928, 929, 3, 24, 12, 0, 929, 930, 5, 216, 0, 0, 930, 931, 3, 24, 12, 0, 931, 932, 5, 215, 0, 0, 932, 1165, 1, 0, 0, 0, 933, 934, 5, 169, 0, 0, 934, 935, 5, 214, 0, 0, 935, 936, 3, 24, 12, 0, 936, 937, 5, 216, 0, 0, 937, 938, 3, 24, 12, 0, 938, 939, 5, 215, 0, 0, 939, 1165, 1, 0, 0, 0, 940, 941, 5, 89, 0, 0, 941, 942, 5, 214, 0, 0, 942, 943, 3, 24, 12, 0, 943, 944, 5, 216, 0, 0, 944, 945, 3, 24, 12, 0, 945, 946, 5, 215, 0, 0, 946, 1165, 1, 0, 0, 0, 947, 948, 5, 50, 0, 0, 948, 949, 5, 214, 0, 0, 949, 950, 3, 24, 12, 0, 950, 951, 5, 216, 0, 0, 951, 952, 3, 24, 12, 0, 952, 953, 5, 215, 0, 0, 953, 1165, 1, 0, 0, 0, 954, 955, 5, 72, 0, 0, 955, 956, 5, 214, 0, 0, 956, 957, 3, 24, 12, 0, 957, 958, 5, 216, 0, 0, 958, 961, 3, 24, 12, 0, 959, 960, 5, 216, 0, 0, 960, 962, 3, 24, 12, 0, 961, 959, 1, 0, 0, 0, 961, 962, 1, 0, 0, 0, 962, 963, 1, 0, 0, 0, 963, 964, 5, 215, 0, 0, 964, 1165, 1, 0, 0, 0, 965, 966, 5, 77, 0, 0, 966, 967, 5, 214, 0, 0, 967, 968, 3, 24, 12, 0, 968, 969, 5, 216, 0, 0, 969, 970, 3, 24, 12, 0, 970, 971, 5, 215, 0, 0, 971, 1165, 1, 0, 0, 0, 972, 973, 5, 78, 0, 0, 973, 974, 5, 214, 0, 0, 974, 975, 3, 24, 12, 0, 975, 976, 5, 216, 0, 0, 976, 977, 3, 24, 12, 0, 977, 978, 5, 215, 0, 0, 978, 1165, 1, 0, 0, 0, 979, 980, 5, 92, 0, 0, 980, 981, 5, 214, 0, 0, 981, 982, 3, 24, 12, 0, 982, 983, 5, 216, 0, 0, 983, 984, 3, 24, 12, 0, 984, 985, 5, 215, 0, 0, 985, 1165, 1, 0, 0, 0, 986, 987, 5, 111, 0, 0, 987, 988, 5, 214, 0, 0, 988, 989, 3, 24, 12, 0, 989, 990, 5, 216, 0, 0, 990, 991, 3, 24, 12, 0, 991, 992, 5, 215, 0, 0, 992, 1165, 1, 0, 0, 0, 993, 994, 5, 90, 0, 0, 994, 995, 5, 214, 0, 0, 995, 996, 3, 24, 12, 0, 996, 997, 5, 216, 0, 0, 997, 998, 3, 24, 12, 0, 998, 999, 5, 215, 0, 0, 999, 1165, 1, 0, 0, 0, 1000, 1001, 5, 110, 0, 0, 1001, 1002, 5, 214, 0, 0, 1002, 1009, 3, 40, 20, 0, 1003, 1004, 5, 216, 0, 0, 1004, 1007, 3, 24, 12, 0, 1005, 1006, 5, 216, 0, 0, 1006, 1008, 3, 24, 12, 0, 1007, 1005, 1, 0, 0, 0, 1007, 1008, 1, 0, 0, 0, 1008, 1010, 1, 0, 0, 0, 1009, 1003, 1, 0, 0, 0, 1009, 1010, 1, 0, 0, 0, 1010, 1011, 1, 0, 0, 0, 1011, 1012, 5, 215, 0, 0, 1012, 1165, 1, 0, 0, 0, 1013, 1014, 5, 100, 0, 0, 1014, 1015, 5, 214, 0, 0, 1015, 1016, 3, 24, 12, 0, 1016, 1017, 5, 216, 0, 0, 1017, 1018, 3, 24, 12, 0, 1018, 1019, 5, 215, 0, 0, 1019, 1165, 1, 0, 0, 0, 1020, 1021, 5, 101, 0, 0, 1021, 1022, 5, 214, 0, 0, 1022, 1023, 3, 24, 12, 0, 1023, 1024, 5, 216, 0, 0, 1024, 1025, 3, 24, 12, 0, 1025, 1026, 5, 215, 0, 0, 1026, 1165, 1, 0, 0, 0, 1027, 1028, 5, 102, 0, 0, 1028, 1029, 5, 214, 0, 0, 1029, 1030, 3, 24, 12, 0, 1030, 1031, 5, 216, 0, 0, 1031, 1032, 3, 24, 12, 0, 1032, 1033, 5, 215, 0, 0, 1033, 1165, 1, 0, 0, 0, 1034, 1035, 5, 91, 0, 0, 1035, 1036, 5, 214, 0, 0, 1036, 1037, 3, 24, 12, 0, 1037, 1038, 5, 216, 0, 0, 1038, 1039, 3, 24, 12, 0, 1039, 1040, 5, 215, 0, 0, 1040, 1165, 1, 0, 0, 0, 1041, 1042, 5, 103, 0, 0, 1042, 1043, 5, 214, 0, 0, 1043, 1044, 3, 24, 12, 0, 1044, 1045, 5, 216, 0, 0, 1045, 1056, 3, 24, 12, 0, 1046, 1047, 5, 216, 0, 0, 1047, 1054, 3, 24, 12, 0, 1048, 1049, 5, 216, 0, 0, 1049, 1052, 3, 24, 12, 0, 1050, 1051, 5, 216, 0, 0, 1051, 1053, 3, 24, 12, 0, 1052, 1050, 1, 0, 0, 0, 1052, 1053, 1, 0, 0, 0, 1053, 1055, 1, 0, 0, 0, 1054, 1048, 1, 0, 0, 0, 1054, 1055, 1, 0, 0, 0, 1055, 1057, 1, 0, 0, 0, 1056, 1046, 1, 0, 0, 0, 1056, 1057, 1, 0, 0, 0, 1057, 1058, 1, 0, 0, 0, 1058, 1059, 5, 215, 0, 0, 1059, 1165, 1, 0, 0, 0, 1060, 1061, 5, 107, 0, 0, 1061, 1062, 5, 214, 0, 0, 1062, 1063, 3, 24, 12, 0, 1063, 1064, 5, 216, 0, 0, 1064, 1065, 3, 24, 12, 0, 1065, 1066, 5, 215, 0, 0, 1066, 1165, 1, 0, 0, 0, 1067, 1068, 5, 108, 0, 0, 1068, 1069, 5, 214, 0, 0, 1069, 1070, 3, 24, 12, 0, 1070, 1071, 5, 216, 0, 0, 1071, 1072, 3, 24, 12, 0, 1072, 1073, 5, 215, 0, 0, 1073, 1165, 1, 0, 0, 0, 1074, 1075, 5, 109, 0, 0, 1075, 1076, 5, 214, 0, 0, 1076, 1077, 3, 24, 12, 0, 1077, 1078, 5, 216, 0, 0, 1078, 1079, 3, 24, 12, 0, 1079, 1080, 5, 215, 0, 0, 1080, 1165, 1, 0, 0, 0, 1081, 1082, 5, 122, 0, 0, 1082, 1083, 5, 214, 0, 0, 1083, 1086, 3, 24, 12, 0, 1084, 1085, 5, 216, 0, 0, 1085, 1087, 3, 24, 12, 0, 1086, 1084, 1, 0, 0, 0, 1086, 1087, 1, 0, 0, 0, 1087, 1088, 1, 0, 0, 0, 1088, 1089, 5, 215, 0, 0, 1089, 1165, 1, 0, 0, 0, 1090, 1091, 5, 123, 0, 0, 1091, 1092, 5, 214, 0, 0, 1092, 1095, 3, 24, 12, 0, 1093, 1094, 5, 216, 0, 0, 1094, 1096, 3, 24, 12, 0, 1095, 1093, 1, 0, 0, 0, 1095, 1096, 1, 0, 0, 0, 1096, 1097, 1, 0, 0, 0, 1097, 1098, 5, 215, 0, 0, 1098, 1165, 1, 0, 0, 0, 1099, 1100, 5, 124, 0, 0, 1100, 1101, 5, 214, 0, 0, 1101, 1102, 3, 24, 12, 0, 1102, 1103, 5, 216, 0, 0, 1103, 1106, 3, 24, 12, 0, 1104, 1105, 5, 216, 0, 0, 1105, 1107, 3, 24, 12, 0, 1106, 1104, 1, 0, 0, 0, 1106, 1107, 1, 0, 0, 0, 1107, 1108, 1, 0, 0, 0, 1108, 1109, 5, 215, 0, 0, 1109, 1165, 1, 0, 0, 0, 1110, 1111, 5, 125, 0, 0, 1111, 1112, 5, 214, 0, 0, 1112, 1113, 3, 24, 12, 0, 1113, 1114, 5, 216, 0, 0, 1114, 1115, 3, 24, 12, 0, 1115, 1116, 5, 215, 0, 0, 1116, 1165, 1, 0, 0, 0, 1117, 1118, 5, 126, 0, 0, 1118, 1119, 5, 214, 0, 0, 1119, 1120, 3, 24, 12, 0, 1120, 1121, 5, 216, 0, 0, 1121, 1122, 3, 24, 12, 0, 1122, 1123, 5, 216, 0, 0, 1123, 1124, 3, 24, 12, 0, 1124, 1125, 5, 215, 0, 0, 1125, 1165, 1, 0, 0, 0, 1126, 1127, 5, 137, 0, 0, 1127, 1128, 5, 214, 0, 0, 1128, 1129, 3, 24, 12, 0, 1129, 1130, 5, 215, 0, 0, 1130, 1165, 1, 0, 0, 0, 1131, 1132, 5, 138, 0, 0, 1132, 1133, 5, 214, 0, 0, 1133, 1139, 3, 24, 12, 0, 1134, 1135, 5, 216, 0, 0, 1135, 1136, 3, 24, 12, 0, 1136, 1137, 5, 216, 0, 0, 1137, 1138, 3, 24, 12, 0, 1138, 1140, 1, 0, 0, 0, 1139, 1134, 1, 0, 0, 0, 1139, 1140, 1, 0, 0, 0, 1140, 1141, 1, 0, 0, 0, 1141, 1142, 5, 215, 0, 0, 1142, 1165, 1, 0, 0, 0, 1143, 1144, 5, 139, 0, 0, 1144, 1145, 5, 214, 0, 0, 1145, 1146, 3, 24, 12, 0, 1146, 1147, 5, 216, 0, 0, 1147, 1148, 3, 24, 12, 0, 1148, 1149, 5, 215, 0, 0, 1149, 1165, 1, 0, 0, 0, 1150, 1151, 5, 140, 0, 0, 1151, 1152, 5, 214, 0, 0, 1152, 1153, 3, 24, 12, 0, 1153, 1154, 5, 216, 0, 0, 1154, 1155, 3, 24, 12, 0, 1155, 1156, 5, 215, 0, 0, 1156, 1165, 1, 0, 0, 0, 1157, 1158, 5, 141, 0, 0, 1158, 1159, 5, 214, 0, 0, 1159, 1160, 3, 24, 12, 0, 1160, 1161, 5, 216, 0, 0, 1161, 1162, 3, 24, 12, 0, 1162, 1163, 5, 215, 0, 0, 1163, 1165, 1, 0, 0, 0, 1164, 812, 1, 0, 0, 0, 1164, 819, 1, 0, 0, 0, 1164, 826, 1, 0, 0, 0, 1164, 833, 1, 0, 0, 0, 1164, 840, 1, 0, 0, 0, 1164, 849, 1, 0, 0, 0, 1164, 856, 1, 0, 0, 0, 1164, 863, 1, 0, 0, 0, 1164, 870, 1, 0, 0, 0, 1164, 877, 1, 0, 0, 0, 1164, 884, 1, 0, 0, 0, 1164, 891, 1, 0, 0, 0, 1164, 898, 1, 0, 0, 0, 1164, 905, 1, 0, 0, 0, 1164, 912, 1, 0, 0, 0, 1164, 919, 1, 0, 0, 0, 1164, 926, 1, 0, 0, 0, 1164, 933, 1, 0, 0, 0, 1164, 940, 1, 0, 0, 0, 1164, 947, 1, 0, 0, 0, 1164, 954, 1, 0, 0, 0, 1164, 965, 1, 0, 0, 0, 1164, 972, 1, 0, 0, 0, 1164, 979, 1, 0, 0, 0, 1164, 986, 1, 0, 0, 0, 1164, 993, 1, 0, 0, 0, 1164, 1000, 1, 0, 0, 0, 1164, 1013, 1, 0, 0, 0, 1164, 1020, 1, 0, 0, 0, 1164, 1027, 1, 0, 0, 0, 1164, 1034, 1, 0, 0, 0, 1164, 1041, 1, 0, 0, 0, 1164, 1060, 1, 0, 0, 0, 1164, 1067, 1, 0, 0, 0, 1164, 1074, 1, 0, 0, 0, 1164, 1081, 1, 0, 0, 0, 1164, 1090, 1, 0, 0, 0, 1164, 1099, 1, 0, 0, 0, 1164, 1110, 1, 0, 0, 0, 1164, 1117, 1, 0, 0, 0, 1164, 1126, 1, 0, 0, 0, 1164, 1131, 1, 0, 0, 0, 1164, 1143, 1, 0, 0, 0, 1164, 1150, 1, 0, 0, 0, 1164, 1157, 1, 0, 0, 0, 1165, 51, 1, 0, 0, 0, 1166, 1167, 5, 31, 0, 0, 1167, 1168, 5, 214, 0, 0, 1168, 1169, 3, 24, 12, 0, 1169, 1170, 5, 216, 0, 0, 1170, 1171, 3, 24, 12, 0, 1171, 1172, 5, 216, 0, 0, 1172, 1173, 3, 24, 12, 0, 1173, 1174, 5, 215, 0, 0, 1174, 1432, 1, 0, 0, 0, 1175, 1176, 5, 38, 0, 0, 1176, 1177, 5, 214, 0, 0, 1177, 1178, 3, 24, 12, 0, 1178, 1179, 5, 216, 0, 0, 1179, 1180, 3, 24, 12, 0, 1180, 1181, 5, 216, 0, 0, 1181, 1182, 3, 24, 12, 0, 1182, 1183, 5, 215, 0, 0, 1183, 1432, 1, 0, 0, 0, 1184, 1185, 5, 40, 0, 0, 1185, 1186, 5, 214, 0, 0, 1186, 1187, 3, 24, 12, 0, 1187, 1188, 5, 216, 0, 0, 1188, 1189, 3, 24, 12, 0, 1189, 1190, 5, 216, 0, 0, 1190, 1191, 3, 24, 12, 0, 1191, 1192, 5, 215, 0, 0, 1192, 1432, 1, 0, 0, 0, 1193, 1194, 5, 52, 0, 0, 1194, 1195, 5, 214, 0, 0, 1195, 1196, 3, 24, 12, 0, 1196, 1197, 5, 216, 0, 0, 1197, 1198, 3, 24, 12, 0, 1198, 1199, 5, 216, 0, 0, 1199, 1200, 3, 24, 12, 0, 1200, 1201, 5, 215, 0, 0, 1201, 1432, 1, 0, 0, 0, 1202, 1203, 5, 66, 0, 0, 1203, 1204, 5, 214, 0, 0, 1204, 1205, 3, 24, 12, 0, 1205, 1206, 5, 216, 0, 0, 1206, 1207, 3, 24, 12, 0, 1207, 1208, 5, 216, 0, 0, 1208, 1209, 3, 24, 12, 0, 1209, 1210, 5, 215, 0, 0, 1210, 1432, 1, 0, 0, 0, 1211, 1212, 5, 79, 0, 0, 1212, 1213, 5, 214, 0, 0, 1213, 1214, 3, 24, 12, 0, 1214, 1215, 5, 216, 0, 0, 1215, 1216, 3, 24, 12, 0, 1216, 1217, 5, 216, 0, 0, 1217, 1218, 3, 24, 12, 0, 1218, 1219, 5, 215, 0, 0, 1219, 1432, 1, 0, 0, 0, 1220, 1221, 5, 80, 0, 0, 1221, 1222, 5, 214, 0, 0, 1222, 1223, 3, 24, 12, 0, 1223, 1224, 5, 216, 0, 0, 1224, 1225, 3, 24, 12, 0, 1225, 1226, 5, 216, 0, 0, 1226, 1227, 3, 24, 12, 0, 1227, 1228, 5, 215, 0, 0, 1228, 1432, 1, 0, 0, 0, 1229, 1230, 5, 81, 0, 0, 1230, 1231, 5, 214, 0, 0, 1231, 1232, 3, 24, 12, 0, 1232, 1233, 5, 216, 0, 0, 1233, 1234, 3, 24, 12, 0, 1234, 1235, 5, 216, 0, 0, 1235, 1236, 3, 24, 12, 0, 1236, 1237, 5, 215, 0, 0, 1237, 1432, 1, 0, 0, 0, 1238, 1239, 5, 82, 0, 0, 1239, 1240, 5, 214, 0, 0, 1240, 1241, 3, 24, 12, 0, 1241, 1242, 5, 216, 0, 0, 1242, 1243, 3, 24, 12, 0, 1243, 1244, 5, 216, 0, 0, 1244, 1245, 3, 24, 12, 0, 1245, 1246, 5, 215, 0, 0, 1246, 1432, 1, 0, 0, 0, 1247, 1248, 5, 171, 0, 0, 1248, 1249, 5, 214, 0, 0, 1249, 1250, 3, 24, 12, 0, 1250, 1251, 5, 216, 0, 0, 1251, 1252, 3, 24, 12, 0, 1252, 1253, 5, 216, 0, 0, 1253, 1254, 3, 24, 12, 0, 1254, 1255, 5, 215, 0, 0, 1255, 1432, 1, 0, 0, 0, 1256, 1257, 5, 33, 0, 0, 1257, 1258, 5, 214, 0, 0, 1258, 1261, 3, 24, 12, 0, 1259, 1260, 5, 216, 0, 0, 1260, 1262, 3, 24, 12, 0, 1261, 1259, 1, 0, 0, 0, 1261, 1262, 1, 0, 0, 0, 1262, 1263, 1, 0, 0, 0, 1263, 1264, 5, 215, 0, 0, 1264, 1432, 1, 0, 0, 0, 1265, 1266, 5, 99, 0, 0, 1266, 1267, 5, 214, 0, 0, 1267, 1268, 3, 24, 12, 0, 1268, 1269, 5, 216, 0, 0, 1269, 1270, 3, 24, 12, 0, 1270, 1271, 5, 216, 0, 0, 1271, 1274, 3, 24, 12, 0, 1272, 1273, 5, 216, 0, 0, 1273, 1275, 3, 24, 12, 0, 1274, 1272, 1, 0, 0, 0, 1274, 1275, 1, 0, 0, 0, 1275, 1276, 1, 0, 0, 0, 1276, 1277, 5, 215, 0, 0, 1277, 1432, 1, 0, 0, 0, 1278, 1279, 5, 53, 0, 0, 1279, 1280, 5, 214, 0, 0, 1280, 1281, 3, 24, 12, 0, 1281, 1282, 5, 216, 0, 0, 1282, 1283, 3, 24, 12, 0, 1283, 1284, 5, 216, 0, 0, 1284, 1285, 3, 24, 12, 0, 1285, 1286, 5, 215, 0, 0, 1286, 1432, 1, 0, 0, 0, 1287, 1288, 5, 167, 0, 0, 1288, 1289, 5, 214, 0, 0, 1289, 1290, 3, 24, 12, 0, 1290, 1291, 5, 216, 0, 0, 1291, 1294, 3, 24, 12, 0, 1292, 1293, 5, 216, 0, 0, 1293, 1295, 3, 24, 12, 0, 1294, 1292, 1, 0, 0, 0, 1294, 1295, 1, 0, 0, 0, 1295, 1296, 1, 0, 0, 0, 1296, 1297, 5, 215, 0, 0, 1297, 1432, 1, 0, 0, 0, 1298, 1299, 5, 131, 0, 0, 1299, 1300, 5, 214, 0, 0, 1300, 1306, 3, 24, 12, 0, 1301, 1302, 5, 216, 0, 0, 1302, 1303, 3, 24, 12, 0, 1303, 1304, 5, 216, 0, 0, 1304, 1305, 3, 24, 12, 0, 1305, 1307, 1, 0, 0, 0, 1306, 1301, 1, 0, 0, 0, 1306, 1307, 1, 0, 0, 0, 1307, 1308, 1, 0, 0, 0, 1308, 1309, 5, 215, 0, 0, 1309, 1432, 1, 0, 0, 0, 1310, 1311, 5, 132, 0, 0, 1311, 1312, 5, 214, 0, 0, 1312, 1318, 3, 24, 12, 0, 1313, 1314, 5, 216, 0, 0, 1314, 1315, 3, 24, 12, 0, 1315, 1316, 5, 216, 0, 0, 1316, 1317, 3, 24, 12, 0, 1317, 1319, 1, 0, 0, 0, 1318, 1313, 1, 0, 0, 0, 1318, 1319, 1, 0, 0, 0, 1319, 1320, 1, 0, 0, 0, 1320, 1321, 5, 215, 0, 0, 1321, 1432, 1, 0, 0, 0, 1322, 1323, 5, 135, 0, 0, 1323, 1324, 5, 214, 0, 0, 1324, 1330, 3, 24, 12, 0, 1325, 1326, 5, 216, 0, 0, 1326, 1327, 3, 24, 12, 0, 1327, 1328, 5, 216, 0, 0, 1328, 1329, 3, 24, 12, 0, 1329, 1331, 1, 0, 0, 0, 1330, 1325, 1, 0, 0, 0, 1330, 1331, 1, 0, 0, 0, 1331, 1334, 1, 0, 0, 0, 1332, 1333, 5, 216, 0, 0, 1333, 1335, 3, 24, 12, 0, 1334, 1332, 1, 0, 0, 0, 1334, 1335, 1, 0, 0, 0, 1335, 1336, 1, 0, 0, 0, 1336, 1337, 5, 215, 0, 0, 1337, 1432, 1, 0, 0, 0, 1338, 1339, 5, 136, 0, 0, 1339, 1340, 5, 214, 0, 0, 1340, 1346, 3, 24, 12, 0, 1341, 1342, 5, 216, 0, 0, 1342, 1343, 3, 24, 12, 0, 1343, 1344, 5, 216, 0, 0, 1344, 1345, 3, 24, 12, 0, 1345, 1347, 1, 0, 0, 0, 1346, 1341, 1, 0, 0, 0, 1346, 1347, 1, 0, 0, 0, 1347, 1350, 1, 0, 0, 0, 1348, 1349, 5, 216, 0, 0, 1349, 1351, 3, 24, 12, 0, 1350, 1348, 1, 0, 0, 0, 1350, 1351, 1, 0, 0, 0, 1351, 1352, 1, 0, 0, 0, 1352, 1353, 5, 215, 0, 0, 1353, 1432, 1, 0, 0, 0, 1354, 1355, 5, 97, 0, 0, 1355, 1356, 5, 214, 0, 0, 1356, 1357, 3, 24, 12, 0, 1357, 1358, 5, 216, 0, 0, 1358, 1359, 3, 24, 12, 0, 1359, 1360, 5, 216, 0, 0, 1360, 1361, 3, 24, 12, 0, 1361, 1362, 5, 215, 0, 0, 1362, 1432, 1, 0, 0, 0, 1363, 1364, 5, 133, 0, 0, 1364, 1365, 5, 214, 0, 0, 1365, 1371, 3, 24, 12, 0, 1366, 1367, 5, 216, 0, 0, 1367, 1368, 3, 24, 12, 0, 1368, 1369, 5, 216, 0, 0, 1369, 1370, 3, 24, 12, 0, 1370, 1372, 1, 0, 0, 0, 1371, 1366, 1, 0, 0, 0, 1371, 1372, 1, 0, 0, 0, 1372, 1373, 1, 0, 0, 0, 1373, 1374, 5, 215, 0, 0, 1374, 1432, 1, 0, 0, 0, 1375, 1376, 5, 134, 0, 0, 1376, 1377, 5, 214, 0, 0, 1377, 1383, 3, 24, 12, 0, 1378, 1379, 5, 216, 0, 0, 1379, 1380, 3, 24, 12, 0, 1380, 1381, 5, 216, 0, 0, 1381, 1382, 3, 24, 12, 0, 1382, 1384, 1, 0, 0, 0, 1383, 1378, 1, 0, 0, 0, 1383, 1384, 1, 0, 0, 0, 1384, 1385, 1, 0, 0, 0, 1385, 1386, 5, 215, 0, 0, 1386, 1432, 1, 0, 0, 0, 1387, 1388, 5, 142, 0, 0, 1388, 1389, 5, 214, 0, 0, 1389, 1390, 3, 24, 12, 0, 1390, 1391, 5, 216, 0, 0, 1391, 1392, 3, 24, 12, 0, 1392, 1393, 5, 216, 0, 0, 1393, 1396, 3, 24, 12, 0, 1394, 1395, 5, 216, 0, 0, 1395, 1397, 3, 24, 12, 0, 1396, 1394, 1, 0, 0, 0, 1396, 1397, 1, 0, 0, 0, 1397, 1400, 1, 0, 0, 0, 1398, 1399, 5, 216, 0, 0, 1399, 1401, 3, 24, 12, 0, 1400, 1398, 1, 0, 0, 0, 1400, 1401, 1, 0, 0, 0, 1401, 1404, 1, 0, 0, 0, 1402, 1403, 5, 216, 0, 0, 1403, 1405, 3, 24, 12, 0, 1404, 1402, 1, 0, 0, 0, 1404, 1405, 1, 0, 0, 0, 1405, 1408, 1, 0, 0, 0, 1406, 1407, 5, 216, 0, 0, 1407, 1409, 3, 24, 12, 0, 1408, 1406, 1, 0, 0, 0, 1408, 1409, 1, 0, 0, 0, 1409, 1412, 1, 0, 0, 0, 1410, 1411, 5, 216, 0, 0, 1411, 1413, 3, 24, 12, 0, 1412, 1410, 1, 0, 0, 0, 1412, 1413, 1, 0, 0, 0, 1413, 1416, 1, 0, 0, 0, 1414, 1415, 5, 216, 0, 0, 1415, 1417, 3, 24, 12, 0, 1416, 1414, 1, 0, 0, 0, 1416, 1417, 1, 0, 0, 0, 1417, 1418, 1, 0, 0, 0, 1418, 1419, 5, 215, 0, 0, 1419, 1432, 1, 0, 0, 0, 1420, 1421, 5, 173, 0, 0, 1421, 1422, 5, 214, 0, 0, 1422, 1423, 3, 24, 12, 0, 1423, 1424, 5, 216, 0, 0, 1424, 1427, 3, 24, 12, 0, 1425, 1426, 5, 216, 0, 0, 1426, 1428, 3, 24, 12, 0, 1427, 1425, 1, 0, 0, 0, 1427, 1428, 1, 0, 0, 0, 1428, 1429, 1, 0, 0, 0, 1429, 1430, 5, 215, 0, 0, 1430, 1432, 1, 0, 0, 0, 1431, 1166, 1, 0, 0, 0, 1431, 1175, 1, 0, 0, 0, 1431, 1184, 1, 0, 0, 0, 1431, 1193, 1, 0, 0, 0, 1431, 1202, 1, 0, 0, 0, 1431, 1211, 1, 0, 0, 0, 1431, 1220, 1, 0, 0, 0, 1431, 1229, 1, 0, 0, 0, 1431, 1238, 1, 0, 0, 0, 1431, 1247, 1, 0, 0, 0, 1431, 1256, 1, 0, 0, 0, 1431, 1265, 1, 0, 0, 0, 1431, 1278, 1, 0, 0, 0, 1431, 1287, 1, 0, 0, 0, 1431, 1298, 1, 0, 0, 0, 1431, 1310, 1, 0, 0, 0, 1431, 1322, 1, 0, 0, 0, 1431, 1338, 1, 0, 0, 0, 1431, 1354, 1, 0, 0, 0, 1431, 1363, 1, 0, 0, 0, 1431, 1375, 1, 0, 0, 0, 1431, 1387, 1, 0, 0, 0, 1431, 1420, 1, 0, 0, 0, 1432, 53, 1, 0, 0, 0, 1433, 1434, 5, 49, 0, 0, 1434, 1435, 5, 214, 0, 0, 1435, 1436, 3, 24, 12, 0, 1436, 1437, 5, 216, 0, 0, 1437, 1438, 3, 24, 12, 0, 1438, 1439, 5, 216, 0, 0, 1439, 1440, 3, 24, 12, 0, 1440, 1441, 5, 216, 0, 0, 1441, 1442, 3, 24, 12, 0, 1442, 1443, 5, 215, 0, 0, 1443, 1489, 1, 0, 0, 0, 1444, 1445, 5, 37, 0, 0, 1445, 1446, 5, 214, 0, 0, 1446, 1447, 3, 24, 12, 0, 1447, 1448, 5, 216, 0, 0, 1448, 1449, 3, 24, 12, 0, 1449, 1450, 5, 216, 0, 0, 1450, 1451, 3, 24, 12, 0, 1451, 1452, 5, 216, 0, 0, 1452, 1453, 3, 24, 12, 0, 1453, 1454, 5, 215, 0, 0, 1454, 1489, 1, 0, 0, 0, 1455, 1456, 5, 54, 0, 0, 1456, 1457, 5, 214, 0, 0, 1457, 1458, 3, 24, 12, 0, 1458, 1459, 5, 216, 0, 0, 1459, 1460, 3, 24, 12, 0, 1460, 1461, 5, 216, 0, 0, 1461, 1462, 3, 24, 12, 0, 1462, 1463, 5, 216, 0, 0, 1463, 1464, 3, 24, 12, 0, 1464, 1465, 5, 215, 0, 0, 1465, 1489, 1, 0, 0, 0, 1466, 1467, 5, 83, 0, 0, 1467, 1468, 5, 214, 0, 0, 1468, 1469, 3, 24, 12, 0, 1469, 1470, 5, 216, 0, 0, 1470, 1471, 3, 24, 12, 0, 1471, 1472, 5, 216, 0, 0, 1472, 1473, 3, 24, 12, 0, 1473, 1474, 5, 216, 0, 0, 1474, 1475, 3, 24, 12, 0, 1475, 1476, 5, 215, 0, 0, 1476, 1489, 1, 0, 0, 0, 1477, 1478, 5, 98, 0, 0, 1478, 1479, 5, 214, 0, 0, 1479, 1480, 3, 24, 12, 0, 1480, 1481, 5, 216, 0, 0, 1481, 1482, 3, 24, 12, 0, 1482, 1483, 5, 216, 0, 0, 1483, 1484, 3, 24, 12, 0, 1484, 1485, 5, 216, 0, 0, 1485, 1486, 3, 24, 12, 0, 1486, 1487, 5, 215, 0, 0, 1487, 1489, 1, 0, 0, 0, 1488, 1433, 1, 0, 0, 0, 1488, 1444, 1, 0, 0, 0, 1488, 1455, 1, 0, 0, 0, 1488, 1466, 1, 0, 0, 0, 1488, 1477, 1, 0, 0, 0, 1489, 55, 1, 0, 0, 0, 1490, 1491, 5, 84, 0, 0, 1491, 1492, 5, 214, 0, 0, 1492, 1493, 3, 24, 12, 0, 1493, 1494, 5, 216, 0, 0, 1494, 1495, 3, 24, 12, 0, 1495, 1496, 5, 216, 0, 0, 1496, 1497, 3, 24, 12, 0, 1497, 1498, 5, 216, 0, 0, 1498, 1499, 3, 24, 12, 0, 1499, 1500, 5, 216, 0, 0, 1500, 1501, 3, 24, 12, 0, 1501, 1502, 5, 215, 0, 0, 1502, 1523, 1, 0, 0, 0, 1503, 1504, 5, 145, 0, 0, 1504, 1505, 5, 214, 0, 0, 1505, 1506, 3, 24, 12, 0, 1506, 1507, 5, 216, 0, 0, 1507, 1518, 3, 24, 12, 0, 1508, 1509, 5, 216, 0, 0, 1509, 1516, 3, 24, 12, 0, 1510, 1511, 5, 216, 0, 0, 1511, 1514, 3, 24, 12, 0, 1512, 1513, 5, 216, 0, 0, 1513, 1515, 3, 24, 12, 0, 1514, 1512, 1, 0, 0, 0, 1514, 1515, 1, 0, 0, 0, 1515, 1517, 1, 0, 0, 0, 1516, 1510, 1, 0, 0, 0, 1516, 1517, 1, 0, 0, 0, 1517, 1519, 1, 0, 0, 0, 1518, 1508, 1, 0, 0, 0, 1518, 1519, 1, 0, 0, 0, 1519, 1520, 1, 0, 0, 0, 1520, 1521, 5, 215, 0, 0, 1521, 1523, 1, 0, 0, 0, 1522, 1490, 1, 0, 0, 0, 1522, 1503, 1, 0, 0, 0, 1523, 57, 1, 0, 0, 0, 1524, 1525, 5, 19, 0, 0, 1525, 1526, 5, 214, 0, 0, 1526, 1531, 3, 24, 12, 0, 1527, 1528, 5, 216, 0, 0, 1528, 1530, 3, 24, 12, 0, 1529, 1527, 1, 0, 0, 0, 1530, 1533, 1, 0, 0, 0, 1531, 1529, 1, 0, 0, 0, 1531, 1532, 1, 0, 0, 0, 1532, 1534, 1, 0, 0, 0, 1533, 1531, 1, 0, 0, 0, 1534, 1535, 5, 215, 0, 0, 1535, 1616, 1, 0, 0, 0, 1536, 1537, 5, 20, 0, 0, 1537, 1538, 5, 214, 0, 0, 1538, 1543, 3, 24, 12, 0, 1539, 1540, 5, 216, 0, 0, 1540, 1542, 3, 24, 12, 0, 1541, 1539, 1, 0, 0, 0, 1542, 1545, 1, 0, 0, 0, 1543, 1541, 1, 0, 0, 0, 1543, 1544, 1, 0, 0, 0, 1544, 1546, 1, 0, 0, 0, 1545, 1543, 1, 0, 0, 0, 1546, 1547, 5, 215, 0, 0, 1547, 1616, 1, 0, 0, 0, 1548, 1549, 5, 46, 0, 0, 1549, 1550, 5, 214, 0, 0, 1550, 1553, 3, 24, 12, 0, 1551, 1552, 5, 216, 0, 0, 1552, 1554, 3, 24, 12, 0, 1553, 1551, 1, 0, 0, 0, 1554, 1555, 1, 0, 0, 0, 1555, 1553, 1, 0, 0, 0, 1555, 1556, 1, 0, 0, 0, 1556, 1557, 1, 0, 0, 0, 1557, 1558, 5, 215, 0, 0, 1558, 1616, 1, 0, 0, 0, 1559, 1560, 5, 47, 0, 0, 1560, 1561, 5, 214, 0, 0, 1561, 1564, 3, 24, 12, 0, 1562, 1563, 5, 216, 0, 0, 1563, 1565, 3, 24, 12, 0, 1564, 1562, 1, 0, 0, 0, 1565, 1566, 1, 0, 0, 0, 1566, 1564, 1, 0, 0, 0, 1566, 1567, 1, 0, 0, 0, 1567, 1568, 1, 0, 0, 0, 1568, 1569, 5, 215, 0, 0, 1569, 1616, 1, 0, 0, 0, 1570, 1571, 5, 48, 0, 0, 1571, 1572, 5, 214, 0, 0, 1572, 1575, 3, 24, 12, 0, 1573, 1574, 5, 216, 0, 0, 1574, 1576, 3, 24, 12, 0, 1575, 1573, 1, 0, 0, 0, 1576, 1577, 1, 0, 0, 0, 1577, 1575, 1, 0, 0, 0, 1577, 1578, 1, 0, 0, 0, 1578, 1579, 1, 0, 0, 0, 1579, 1580, 5, 215, 0, 0, 1580, 1616, 1, 0, 0, 0, 1581, 1582, 5, 51, 0, 0, 1582, 1583, 5, 214, 0, 0, 1583, 1584, 3, 24, 12, 0, 1584, 1585, 5, 216, 0, 0, 1585, 1586, 3, 24, 12, 0, 1586, 1587, 5, 215, 0, 0, 1587, 1616, 1, 0, 0, 0, 1588, 1589, 5, 165, 0, 0, 1589, 1590, 5, 214, 0, 0, 1590, 1593, 3, 24, 12, 0, 1591, 1592, 5, 216, 0, 0, 1592, 1594, 3, 24, 12, 0, 1593, 1591, 1, 0, 0, 0, 1593, 1594, 1, 0, 0, 0, 1594, 1595, 1, 0, 0, 0, 1595, 1596, 5, 215, 0, 0, 1596, 1616, 1, 0, 0, 0, 1597, 1598, 5, 166, 0, 0, 1598, 1599, 5, 214, 0, 0, 1599, 1600, 3, 24, 12, 0, 1600, 1601, 5, 216, 0, 0, 1601, 1602, 3, 24, 12, 0, 1602, 1603, 5, 215, 0, 0, 1603, 1616, 1, 0, 0, 0, 1604, 1605, 5, 116, 0, 0, 1605, 1606, 5, 214, 0, 0, 1606, 1609, 3, 24, 12, 0, 1607, 1608, 5, 216, 0, 0, 1608, 1610, 3, 24, 12, 0, 1609, 1607, 1, 0, 0, 0, 1610, 1611, 1, 0, 0, 0, 1611, 1609, 1, 0, 0, 0, 1611, 1612, 1, 0, 0, 0, 1612, 1613, 1, 0, 0, 0, 1613, 1614, 5, 215, 0, 0, 1614, 1616, 1, 0, 0, 0, 1615, 1524, 1, 0, 0, 0, 1615, 1536, 1, 0, 0, 0, 1615, 1548, 1, 0, 0, 0, 1615, 1559, 1, 0, 0, 0, 1615, 1570, 1, 0, 0, 0, 1615, 1581, 1, 0, 0, 0, 1615, 1588, 1, 0, 0, 0, 1615, 1597, 1, 0, 0, 0, 1615, 1604, 1, 0, 0, 0, 1616, 59, 1, 0, 0, 0, 1617, 1618, 5, 174, 0, 0, 1618, 1619, 5, 214, 0, 0, 1619, 1622, 3, 24, 12, 0, 1620, 1621, 5, 216, 0, 0, 1621, 1623, 3, 24, 12, 0, 1622, 1620, 1, 0, 0, 0, 1622, 1623, 1, 0, 0, 0, 1623, 1624, 1, 0, 0, 0, 1624, 1625, 5, 215, 0, 0, 1625, 1885, 1, 0, 0, 0, 1626, 1627, 5, 175, 0, 0, 1627, 1628, 5, 214, 0, 0, 1628, 1631, 3, 24, 12, 0, 1629, 1630, 5, 216, 0, 0, 1630, 1632, 3, 24, 12, 0, 1631, 1629, 1, 0, 0, 0, 1631, 1632, 1, 0, 0, 0, 1632, 1633, 1, 0, 0, 0, 1633, 1634, 5, 215, 0, 0, 1634, 1885, 1, 0, 0, 0, 1635, 1636, 5, 177, 0, 0, 1636, 1637, 5, 214, 0, 0, 1637, 1638, 3, 24, 12, 0, 1638, 1639, 5, 216, 0, 0, 1639, 1642, 3, 24, 12, 0, 1640, 1641, 5, 216, 0, 0, 1641, 1643, 3, 24, 12, 0, 1642, 1640, 1, 0, 0, 0, 1642, 1643, 1, 0, 0, 0, 1643, 1644, 1, 0, 0, 0, 1644, 1645, 5, 215, 0, 0, 1645, 1885, 1, 0, 0, 0, 1646, 1647, 5, 179, 0, 0, 1647, 1648, 5, 214, 0, 0, 1648, 1649, 3, 24, 12, 0, 1649, 1650, 5, 216, 0, 0, 1650, 1653, 3, 24, 12, 0, 1651, 1652, 5, 216, 0, 0, 1652, 1654, 3, 24, 12, 0, 1653, 1651, 1, 0, 0, 0, 1653, 1654, 1, 0, 0, 0, 1654, 1655, 1, 0, 0, 0, 1655, 1656, 5, 215, 0, 0, 1656, 1885, 1, 0, 0, 0, 1657, 1658, 5, 180, 0, 0, 1658, 1659, 5, 214, 0, 0, 1659, 1660, 3, 24, 12, 0, 1660, 1661, 5, 216, 0, 0, 1661, 1664, 3, 24, 12, 0, 1662, 1663, 5, 216, 0, 0, 1663, 1665, 3, 24, 12, 0, 1664, 1662, 1, 0, 0, 0, 1664, 1665, 1, 0, 0, 0, 1665, 1666, 1, 0, 0, 0, 1666, 1667, 5, 215, 0, 0, 1667, 1885, 1, 0, 0, 0, 1668, 1669, 5, 176, 0, 0, 1669, 1670, 5, 214, 0, 0, 1670, 1671, 3, 24, 12, 0, 1671, 1672, 5, 216, 0, 0, 1672, 1673, 3, 24, 12, 0, 1673, 1674, 5, 216, 0, 0, 1674, 1677, 3, 24, 12, 0, 1675, 1676, 5, 216, 0, 0, 1676, 1678, 3, 24, 12, 0, 1677, 1675, 1, 0, 0, 0, 1677, 1678, 1, 0, 0, 0, 1678, 1679, 1, 0, 0, 0, 1679, 1680, 5, 215, 0, 0, 1680, 1885, 1, 0, 0, 0, 1681, 1682, 5, 178, 0, 0, 1682, 1683, 5, 214, 0, 0, 1683, 1684, 3, 24, 12, 0, 1684, 1685, 5, 216, 0, 0, 1685, 1686, 3, 24, 12, 0, 1686, 1687, 5, 216, 0, 0, 1687, 1690, 3, 24, 12, 0, 1688, 1689, 5, 216, 0, 0, 1689, 1691, 3, 24, 12, 0, 1690, 1688, 1, 0, 0, 0, 1690, 1691, 1, 0, 0, 0, 1691, 1692, 1, 0, 0, 0, 1692, 1693, 5, 215, 0, 0, 1693, 1885, 1, 0, 0, 0, 1694, 1695, 5, 181, 0, 0, 1695, 1696, 5, 214, 0, 0, 1696, 1697, 3, 24, 12, 0, 1697, 1698, 5, 216, 0, 0, 1698, 1699, 3, 24, 12, 0, 1699, 1700, 5, 216, 0, 0, 1700, 1703, 3, 24, 12, 0, 1701, 1702, 5, 216, 0, 0, 1702, 1704, 3, 24, 12, 0, 1703, 1701, 1, 0, 0, 0, 1703, 1704, 1, 0, 0, 0, 1704, 1705, 1, 0, 0, 0, 1705, 1706, 5, 215, 0, 0, 1706, 1885, 1, 0, 0, 0, 1707, 1708, 5, 182, 0, 0, 1708, 1709, 5, 214, 0, 0, 1709, 1710, 3, 24, 12, 0, 1710, 1711, 5, 216, 0, 0, 1711, 1712, 3, 24, 12, 0, 1712, 1713, 5, 216, 0, 0, 1713, 1716, 3, 24, 12, 0, 1714, 1715, 5, 216, 0, 0, 1715, 1717, 3, 24, 12, 0, 1716, 1714, 1, 0, 0, 0, 1716, 1717, 1, 0, 0, 0, 1717, 1718, 1, 0, 0, 0, 1718, 1719, 5, 215, 0, 0, 1719, 1885, 1, 0, 0, 0, 1720, 1721, 5, 183, 0, 0, 1721, 1722, 5, 214, 0, 0, 1722, 1723, 3, 24, 12, 0, 1723, 1724, 5, 216, 0, 0, 1724, 1725, 3, 24, 12, 0, 1725, 1726, 5, 216, 0, 0, 1726, 1729, 3, 24, 12, 0, 1727, 1728, 5, 216, 0, 0, 1728, 1730, 3, 24, 12, 0, 1729, 1727, 1, 0, 0, 0, 1729, 1730, 1, 0, 0, 0, 1730, 1731, 1, 0, 0, 0, 1731, 1732, 5, 215, 0, 0, 1732, 1885, 1, 0, 0, 0, 1733, 1734, 5, 184, 0, 0, 1734, 1735, 5, 214, 0, 0, 1735, 1736, 3, 24, 12, 0, 1736, 1737, 5, 216, 0, 0, 1737, 1738, 3, 24, 12, 0, 1738, 1739, 5, 216, 0, 0, 1739, 1742, 3, 24, 12, 0, 1740, 1741, 5, 216, 0, 0, 1741, 1743, 3, 24, 12, 0, 1742, 1740, 1, 0, 0, 0, 1742, 1743, 1, 0, 0, 0, 1743, 1744, 1, 0, 0, 0, 1744, 1745, 5, 215, 0, 0, 1745, 1885, 1, 0, 0, 0, 1746, 1747, 5, 185, 0, 0, 1747, 1748, 5, 214, 0, 0, 1748, 1749, 3, 24, 12, 0, 1749, 1750, 5, 216, 0, 0, 1750, 1751, 3, 24, 12, 0, 1751, 1752, 5, 216, 0, 0, 1752, 1755, 3, 24, 12, 0, 1753, 1754, 5, 216, 0, 0, 1754, 1756, 3, 24, 12, 0, 1755, 1753, 1, 0, 0, 0, 1755, 1756, 1, 0, 0, 0, 1756, 1757, 1, 0, 0, 0, 1757, 1758, 5, 215, 0, 0, 1758, 1885, 1, 0, 0, 0, 1759, 1760, 5, 186, 0, 0, 1760, 1761, 5, 214, 0, 0, 1761, 1762, 3, 24, 12, 0, 1762, 1763, 5, 216, 0, 0, 1763, 1766, 3, 24, 12, 0, 1764, 1765, 5, 216, 0, 0, 1765, 1767, 3, 24, 12, 0, 1766, 1764, 1, 0, 0, 0, 1766, 1767, 1, 0, 0, 0, 1767, 1768, 1, 0, 0, 0, 1768, 1769, 5, 215, 0, 0, 1769, 1885, 1, 0, 0, 0, 1770, 1771, 5, 187, 0, 0, 1771, 1772, 5, 214, 0, 0, 1772, 1773, 3, 24, 12, 0, 1773, 1774, 5, 216, 0, 0, 1774, 1777, 3, 24, 12, 0, 1775, 1776, 5, 216, 0, 0, 1776, 1778, 3, 24, 12, 0, 1777, 1775, 1, 0, 0, 0, 1777, 1778, 1, 0, 0, 0, 1778, 1779, 1, 0, 0, 0, 1779, 1780, 5, 215, 0, 0, 1780, 1885, 1, 0, 0, 0, 1781, 1782, 5, 188, 0, 0, 1782, 1783, 5, 214, 0, 0, 1783, 1784, 3, 24, 12, 0, 1784, 1785, 5, 216, 0, 0, 1785, 1788, 3, 24, 12, 0, 1786, 1787, 5, 216, 0, 0, 1787, 1789, 3, 24, 12, 0, 1788, 1786, 1, 0, 0, 0, 1788, 1789, 1, 0, 0, 0, 1789, 1792, 1, 0, 0, 0, 1790, 1791, 5, 216, 0, 0, 1791, 1793, 3, 24, 12, 0, 1792, 1790, 1, 0, 0, 0, 1792, 1793, 1, 0, 0, 0, 1793, 1796, 1, 0, 0, 0, 1794, 1795, 5, 216, 0, 0, 1795, 1797, 3, 24, 12, 0, 1796, 1794, 1, 0, 0, 0, 1796, 1797, 1, 0, 0, 0, 1797, 1798, 1, 0, 0, 0, 1798, 1799, 5, 215, 0, 0, 1799, 1885, 1, 0, 0, 0, 1800, 1801, 5, 189, 0, 0, 1801, 1802, 5, 214, 0, 0, 1802, 1803, 3, 24, 12, 0, 1803, 1804, 5, 216, 0, 0, 1804, 1807, 3, 24, 12, 0, 1805, 1806, 5, 216, 0, 0, 1806, 1808, 3, 24, 12, 0, 1807, 1805, 1, 0, 0, 0, 1807, 1808, 1, 0, 0, 0, 1808, 1811, 1, 0, 0, 0, 1809, 1810, 5, 216, 0, 0, 1810, 1812, 3, 24, 12, 0, 1811, 1809, 1, 0, 0, 0, 1811, 1812, 1, 0, 0, 0, 1812, 1815, 1, 0, 0, 0, 1813, 1814, 5, 216, 0, 0, 1814, 1816, 3, 24, 12, 0, 1815, 1813, 1, 0, 0, 0, 1815, 1816, 1, 0, 0, 0, 1816, 1817, 1, 0, 0, 0, 1817, 1818, 5, 215, 0, 0, 1818, 1885, 1, 0, 0, 0, 1819, 1820, 5, 190, 0, 0, 1820, 1821, 5, 214, 0, 0, 1821, 1822, 3, 24, 12, 0, 1822, 1823, 5, 216, 0, 0, 1823, 1826, 3, 24, 12, 0, 1824, 1825, 5, 216, 0, 0, 1825, 1827, 3, 24, 12, 0, 1826, 1824, 1, 0, 0, 0, 1826, 1827, 1, 0, 0, 0, 1827, 1830, 1, 0, 0, 0, 1828, 1829, 5, 216, 0, 0, 1829, 1831, 3, 24, 12, 0, 1830, 1828, 1, 0, 0, 0, 1830, 1831, 1, 0, 0, 0, 1831, 1834, 1, 0, 0, 0, 1832, 1833, 5, 216, 0, 0, 1833, 1835, 3, 24, 12, 0, 1834, 1832, 1, 0, 0, 0, 1834, 1835, 1, 0, 0, 0, 1835, 1836, 1, 0, 0, 0, 1836, 1837, 5, 215, 0, 0, 1837, 1885, 1, 0, 0, 0, 1838, 1839, 5, 191, 0, 0, 1839, 1840, 5, 214, 0, 0, 1840, 1841, 3, 24, 12, 0, 1841, 1842, 5, 216, 0, 0, 1842, 1845, 3, 24, 12, 0, 1843, 1844, 5, 216, 0, 0, 1844, 1846, 3, 24, 12, 0, 1845, 1843, 1, 0, 0, 0, 1845, 1846, 1, 0, 0, 0, 1846, 1849, 1, 0, 0, 0, 1847, 1848, 5, 216, 0, 0, 1848, 1850, 3, 24, 12, 0, 1849, 1847, 1, 0, 0, 0, 1849, 1850, 1, 0, 0, 0, 1850, 1853, 1, 0, 0, 0, 1851, 1852, 5, 216, 0, 0, 1852, 1854, 3, 24, 12, 0, 1853, 1851, 1, 0, 0, 0, 1853, 1854, 1, 0, 0, 0, 1854, 1855, 1, 0, 0, 0, 1855, 1856, 5, 215, 0, 0, 1856, 1885, 1, 0, 0, 0, 1857, 1858, 5, 192, 0, 0, 1858, 1859, 5, 214, 0, 0, 1859, 1860, 3, 24, 12, 0, 1860, 1861, 5, 216, 0, 0, 1861, 1862, 3, 24, 12, 0, 1862, 1863, 5, 216, 0, 0, 1863, 1864, 3, 24, 12, 0, 1864, 1865, 5, 216, 0, 0, 1865, 1868, 3, 24, 12, 0, 1866, 1867, 5, 216, 0, 0, 1867, 1869, 3, 24, 12, 0, 1868, 1866, 1, 0, 0, 0, 1868, 1869, 1, 0, 0, 0, 1869, 1872, 1, 0, 0, 0, 1870, 1871, 5, 216, 0, 0, 1871, 1873, 3, 24, 12, 0, 1872, 1870, 1, 0, 0, 0, 1872, 1873, 1, 0, 0, 0, 1873, 1876, 1, 0, 0, 0, 1874, 1875, 5, 216, 0, 0, 1875, 1877, 3, 24, 12, 0, 1876, 1874, 1, 0, 0, 0, 1876, 1877, 1, 0, 0, 0, 1877, 1880, 1, 0, 0, 0, 1878, 1879, 5, 216, 0, 0, 1879, 1881, 3, 24, 12, 0, 1880, 1878, 1, 0, 0, 0, 1880, 1881, 1, 0, 0, 0, 1881, 1882, 1, 0, 0, 0, 1882, 1883, 5, 215, 0, 0, 1883, 1885, 1, 0, 0, 0, 1884, 1617, 1, 0, 0, 0, 1884, 1626, 1, 0, 0, 0, 1884, 1635, 1, 0, 0, 0, 1884, 1646, 1, 0, 0, 0, 1884, 1657, 1, 0, 0, 0, 1884, 1668, 1, 0, 0, 0, 1884, 1681, 1, 0, 0, 0, 1884, 1694, 1, 0, 0, 0, 1884, 1707, 1, 0, 0, 0, 1884, 1720, 1, 0, 0, 0, 1884, 1733, 1, 0, 0, 0, 1884, 1746, 1, 0, 0, 0, 1884, 1759, 1, 0, 0, 0, 1884, 1770, 1, 0, 0, 0, 1884, 1781, 1, 0, 0, 0, 1884, 1800, 1, 0, 0, 0, 1884, 1819, 1, 0, 0, 0, 1884, 1838, 1, 0, 0, 0, 1884, 1857, 1, 0, 0, 0, 1885, 61, 1, 0, 0, 0, 120, 65, 67, 72, 79, 85, 96, 103, 115, 129, 138, 158, 171, 178, 207, 209, 221, 223, 238, 240, 252, 254, 262, 269, 281, 288, 309, 329, 337, 343, 350, 522, 561, 580, 596, 632, 634, 643, 652, 661, 670, 749, 758, 767, 776, 810, 845, 961, 1007, 1009, 1052, 1054, 1056, 1086, 1095, 1106, 1139, 1164, 1261, 1274, 1294, 1306, 1318, 1330, 1334, 1346, 1350, 1371, 1383, 1396, 1400, 1404, 1408, 1412, 1416, 1427, 1431, 1488, 1514, 1516, 1518, 1522, 1531, 1543, 1555, 1566, 1577, 1593, 1611, 1615, 1622, 1631, 1642, 1653, 1664, 1677, 1690, 1703, 1716, 1729, 1742, 1755, 1766, 1777, 1788, 1792, 1796, 1807, 1811, 1815, 1826, 1830, 1834, 1845, 1849, 1853, 1868, 1872, 1876, 1880, 1884] \ No newline at end of file diff --git a/more_math/Parser/grammer/MathExpr.tokens b/more_math/Parser/grammer/MathExpr.tokens index 43ef2e1..4a3a884 100644 --- a/more_math/Parser/grammer/MathExpr.tokens +++ b/more_math/Parser/grammer/MathExpr.tokens @@ -170,64 +170,65 @@ CORR=169 ENTROPY=170 CROP=171 NONE=172 -NOISE=173 -RAND=174 -CAUCHY=175 -EXPONENTIAL=176 -LOGNORMAL=177 -BERNOULLI=178 -POISSON=179 -GAMMADIST=180 -BETADIST=181 -LAPLACEDIST=182 -GUMBELDIST=183 -WEIBULLDIST=184 -CHI2DIST=185 -STUDENTTDIST=186 -PERLIN=187 -CELLULAR=188 -PLASMA=189 -RIDGED=190 -DOMAIN_WARP=191 -PLUS=192 -MINUS=193 -MULT=194 -DIV=195 -MOD=196 -POW=197 -LSHIFT=198 -RSHIFT=199 -GE=200 -GT=201 -LE=202 -LT=203 -EQ=204 -EQUEALS=205 -PLUS_EQ=206 -MINUS_EQ=207 -MULT_EQ=208 -DIV_EQ=209 -MOD_EQ=210 -NE=211 -PIPE=212 -LPAREN=213 -RPAREN=214 -COMMA=215 -SEMICOLON=216 -ARROW=217 -LBRACKET=218 -RBRACKET=219 -QUESTION=220 -COLON=221 -LBRACE=222 -RBRACE=223 -NUMBER=224 -CONSTANT=225 -STRING=226 -VARIABLE=227 -SL_COMMENT=228 -ML_COMMENT=229 -WS=230 +COORDS=173 +NOISE=174 +RAND=175 +CAUCHY=176 +EXPONENTIAL=177 +LOGNORMAL=178 +BERNOULLI=179 +POISSON=180 +GAMMADIST=181 +BETADIST=182 +LAPLACEDIST=183 +GUMBELDIST=184 +WEIBULLDIST=185 +CHI2DIST=186 +STUDENTTDIST=187 +PERLIN=188 +CELLULAR=189 +PLASMA=190 +RIDGED=191 +DOMAIN_WARP=192 +PLUS=193 +MINUS=194 +MULT=195 +DIV=196 +MOD=197 +POW=198 +LSHIFT=199 +RSHIFT=200 +GE=201 +GT=202 +LE=203 +LT=204 +EQ=205 +EQUEALS=206 +PLUS_EQ=207 +MINUS_EQ=208 +MULT_EQ=209 +DIV_EQ=210 +MOD_EQ=211 +NE=212 +PIPE=213 +LPAREN=214 +RPAREN=215 +COMMA=216 +SEMICOLON=217 +ARROW=218 +LBRACKET=219 +RBRACKET=220 +QUESTION=221 +COLON=222 +LBRACE=223 +RBRACE=224 +NUMBER=225 +CONSTANT=226 +STRING=227 +VARIABLE=228 +SL_COMMENT=229 +ML_COMMENT=230 +WS=231 'sin'=1 'cos'=2 'tan'=3 @@ -366,35 +367,35 @@ WS=230 'cov'=168 'entropy'=170 'crop'=171 -'+'=192 -'-'=193 -'*'=194 -'/'=195 -'%'=196 -'^'=197 -'<<'=198 -'>>'=199 -'>='=200 -'>'=201 -'<='=202 -'<'=203 -'=='=204 -'='=205 -'+='=206 -'-='=207 -'*='=208 -'/='=209 -'%='=210 -'!='=211 -'|'=212 -'('=213 -')'=214 -','=215 -';'=216 -'->'=217 -'['=218 -']'=219 -'?'=220 -':'=221 -'{'=222 -'}'=223 +'+'=193 +'-'=194 +'*'=195 +'/'=196 +'%'=197 +'^'=198 +'<<'=199 +'>>'=200 +'>='=201 +'>'=202 +'<='=203 +'<'=204 +'=='=205 +'='=206 +'+='=207 +'-='=208 +'*='=209 +'/='=210 +'%='=211 +'!='=212 +'|'=213 +'('=214 +')'=215 +','=216 +';'=217 +'->'=218 +'['=219 +']'=220 +'?'=221 +':'=222 +'{'=223 +'}'=224 diff --git a/more_math/Parser/grammer/MathExprLexer.interp b/more_math/Parser/grammer/MathExprLexer.interp index add82db..793c4b2 100644 --- a/more_math/Parser/grammer/MathExprLexer.interp +++ b/more_math/Parser/grammer/MathExprLexer.interp @@ -191,6 +191,7 @@ null null null null +null '+' '-' '*' @@ -405,6 +406,7 @@ CORR ENTROPY CROP NONE +COORDS NOISE RAND CAUCHY @@ -637,6 +639,7 @@ CORR ENTROPY CROP NONE +COORDS NOISE RAND CAUCHY @@ -704,4 +707,4 @@ mode names: DEFAULT_MODE atn: -[4, 0, 230, 2722, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108, 2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 2, 112, 7, 112, 2, 113, 7, 113, 2, 114, 7, 114, 2, 115, 7, 115, 2, 116, 7, 116, 2, 117, 7, 117, 2, 118, 7, 118, 2, 119, 7, 119, 2, 120, 7, 120, 2, 121, 7, 121, 2, 122, 7, 122, 2, 123, 7, 123, 2, 124, 7, 124, 2, 125, 7, 125, 2, 126, 7, 126, 2, 127, 7, 127, 2, 128, 7, 128, 2, 129, 7, 129, 2, 130, 7, 130, 2, 131, 7, 131, 2, 132, 7, 132, 2, 133, 7, 133, 2, 134, 7, 134, 2, 135, 7, 135, 2, 136, 7, 136, 2, 137, 7, 137, 2, 138, 7, 138, 2, 139, 7, 139, 2, 140, 7, 140, 2, 141, 7, 141, 2, 142, 7, 142, 2, 143, 7, 143, 2, 144, 7, 144, 2, 145, 7, 145, 2, 146, 7, 146, 2, 147, 7, 147, 2, 148, 7, 148, 2, 149, 7, 149, 2, 150, 7, 150, 2, 151, 7, 151, 2, 152, 7, 152, 2, 153, 7, 153, 2, 154, 7, 154, 2, 155, 7, 155, 2, 156, 7, 156, 2, 157, 7, 157, 2, 158, 7, 158, 2, 159, 7, 159, 2, 160, 7, 160, 2, 161, 7, 161, 2, 162, 7, 162, 2, 163, 7, 163, 2, 164, 7, 164, 2, 165, 7, 165, 2, 166, 7, 166, 2, 167, 7, 167, 2, 168, 7, 168, 2, 169, 7, 169, 2, 170, 7, 170, 2, 171, 7, 171, 2, 172, 7, 172, 2, 173, 7, 173, 2, 174, 7, 174, 2, 175, 7, 175, 2, 176, 7, 176, 2, 177, 7, 177, 2, 178, 7, 178, 2, 179, 7, 179, 2, 180, 7, 180, 2, 181, 7, 181, 2, 182, 7, 182, 2, 183, 7, 183, 2, 184, 7, 184, 2, 185, 7, 185, 2, 186, 7, 186, 2, 187, 7, 187, 2, 188, 7, 188, 2, 189, 7, 189, 2, 190, 7, 190, 2, 191, 7, 191, 2, 192, 7, 192, 2, 193, 7, 193, 2, 194, 7, 194, 2, 195, 7, 195, 2, 196, 7, 196, 2, 197, 7, 197, 2, 198, 7, 198, 2, 199, 7, 199, 2, 200, 7, 200, 2, 201, 7, 201, 2, 202, 7, 202, 2, 203, 7, 203, 2, 204, 7, 204, 2, 205, 7, 205, 2, 206, 7, 206, 2, 207, 7, 207, 2, 208, 7, 208, 2, 209, 7, 209, 2, 210, 7, 210, 2, 211, 7, 211, 2, 212, 7, 212, 2, 213, 7, 213, 2, 214, 7, 214, 2, 215, 7, 215, 2, 216, 7, 216, 2, 217, 7, 217, 2, 218, 7, 218, 2, 219, 7, 219, 2, 220, 7, 220, 2, 221, 7, 221, 2, 222, 7, 222, 2, 223, 7, 223, 2, 224, 7, 224, 2, 225, 7, 225, 2, 226, 7, 226, 2, 227, 7, 227, 2, 228, 7, 228, 2, 229, 7, 229, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 654, 8, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 3, 36, 669, 8, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 745, 8, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 762, 8, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 3, 49, 780, 8, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 3, 50, 793, 8, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 3, 61, 866, 8, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 3, 62, 883, 8, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66, 1, 66, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 68, 1, 68, 1, 68, 1, 68, 1, 69, 1, 69, 1, 69, 1, 69, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 3, 71, 941, 8, 71, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 3, 76, 990, 8, 76, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 3, 77, 1012, 8, 77, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 3, 78, 1029, 8, 78, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 3, 79, 1050, 8, 79, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 3, 80, 1065, 8, 80, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 3, 82, 1092, 8, 82, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 3, 84, 1123, 8, 84, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 3, 85, 1139, 8, 85, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 3, 91, 1210, 8, 91, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 3, 94, 1260, 8, 94, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 3, 95, 1280, 8, 95, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 3, 97, 1301, 8, 97, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 99, 1, 99, 1, 99, 1, 99, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 3, 103, 1348, 8, 103, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 3, 104, 1372, 8, 104, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 3, 106, 1395, 8, 106, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 3, 107, 1412, 8, 107, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 3, 108, 1427, 8, 108, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 3, 115, 1509, 8, 115, 1, 116, 1, 116, 1, 116, 1, 116, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 3, 123, 1564, 8, 123, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 3, 140, 1793, 8, 140, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 3, 143, 1854, 8, 143, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 3, 144, 1875, 8, 144, 1, 145, 1, 145, 1, 145, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 148, 1, 148, 1, 148, 1, 148, 1, 149, 1, 149, 1, 149, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 3, 153, 1932, 8, 153, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 167, 1, 167, 1, 167, 1, 167, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 3, 168, 2051, 8, 168, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 3, 171, 2082, 8, 171, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 3, 172, 2107, 8, 172, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 3, 173, 2132, 8, 173, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 3, 174, 2152, 8, 174, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 3, 175, 2177, 8, 175, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 3, 176, 2202, 8, 176, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 3, 177, 2225, 8, 177, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 3, 178, 2246, 8, 178, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 3, 179, 2265, 8, 179, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 3, 180, 2286, 8, 180, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 3, 181, 2307, 8, 181, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 3, 182, 2332, 8, 182, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 3, 183, 2353, 8, 183, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 3, 184, 2374, 8, 184, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 3, 185, 2396, 8, 185, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 3, 186, 2416, 8, 186, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 3, 187, 2466, 8, 187, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 3, 188, 2496, 8, 188, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 3, 189, 2516, 8, 189, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 3, 190, 2546, 8, 190, 1, 191, 1, 191, 1, 192, 1, 192, 1, 193, 1, 193, 1, 194, 1, 194, 1, 195, 1, 195, 1, 196, 1, 196, 1, 197, 1, 197, 1, 197, 1, 198, 1, 198, 1, 198, 1, 199, 1, 199, 1, 199, 1, 200, 1, 200, 1, 201, 1, 201, 1, 201, 1, 202, 1, 202, 1, 203, 1, 203, 1, 203, 1, 204, 1, 204, 1, 205, 1, 205, 1, 205, 1, 206, 1, 206, 1, 206, 1, 207, 1, 207, 1, 207, 1, 208, 1, 208, 1, 208, 1, 209, 1, 209, 1, 209, 1, 210, 1, 210, 1, 210, 1, 211, 1, 211, 1, 212, 1, 212, 1, 213, 1, 213, 1, 214, 1, 214, 1, 215, 1, 215, 1, 216, 1, 216, 1, 216, 1, 217, 1, 217, 1, 218, 1, 218, 1, 219, 1, 219, 1, 220, 1, 220, 1, 221, 1, 221, 1, 222, 1, 222, 1, 223, 4, 223, 2625, 8, 223, 11, 223, 12, 223, 2626, 1, 223, 1, 223, 5, 223, 2631, 8, 223, 10, 223, 12, 223, 2634, 9, 223, 3, 223, 2636, 8, 223, 1, 223, 1, 223, 4, 223, 2640, 8, 223, 11, 223, 12, 223, 2641, 3, 223, 2644, 8, 223, 1, 223, 1, 223, 3, 223, 2648, 8, 223, 1, 223, 4, 223, 2651, 8, 223, 11, 223, 12, 223, 2652, 3, 223, 2655, 8, 223, 1, 224, 1, 224, 1, 224, 1, 224, 1, 224, 3, 224, 2662, 8, 224, 1, 225, 1, 225, 1, 225, 1, 225, 5, 225, 2668, 8, 225, 10, 225, 12, 225, 2671, 9, 225, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 5, 225, 2678, 8, 225, 10, 225, 12, 225, 2681, 9, 225, 1, 225, 3, 225, 2684, 8, 225, 1, 226, 1, 226, 5, 226, 2688, 8, 226, 10, 226, 12, 226, 2691, 9, 226, 1, 227, 1, 227, 5, 227, 2695, 8, 227, 10, 227, 12, 227, 2698, 9, 227, 1, 227, 1, 227, 1, 228, 1, 228, 1, 228, 1, 228, 5, 228, 2706, 8, 228, 10, 228, 12, 228, 2709, 9, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 228, 1, 229, 4, 229, 2717, 8, 229, 11, 229, 12, 229, 2718, 1, 229, 1, 229, 1, 2707, 0, 230, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11, 23, 12, 25, 13, 27, 14, 29, 15, 31, 16, 33, 17, 35, 18, 37, 19, 39, 20, 41, 21, 43, 22, 45, 23, 47, 24, 49, 25, 51, 26, 53, 27, 55, 28, 57, 29, 59, 30, 61, 31, 63, 32, 65, 33, 67, 34, 69, 35, 71, 36, 73, 37, 75, 38, 77, 39, 79, 40, 81, 41, 83, 42, 85, 43, 87, 44, 89, 45, 91, 46, 93, 47, 95, 48, 97, 49, 99, 50, 101, 51, 103, 52, 105, 53, 107, 54, 109, 55, 111, 56, 113, 57, 115, 58, 117, 59, 119, 60, 121, 61, 123, 62, 125, 63, 127, 64, 129, 65, 131, 66, 133, 67, 135, 68, 137, 69, 139, 70, 141, 71, 143, 72, 145, 73, 147, 74, 149, 75, 151, 76, 153, 77, 155, 78, 157, 79, 159, 80, 161, 81, 163, 82, 165, 83, 167, 84, 169, 85, 171, 86, 173, 87, 175, 88, 177, 89, 179, 90, 181, 91, 183, 92, 185, 93, 187, 94, 189, 95, 191, 96, 193, 97, 195, 98, 197, 99, 199, 100, 201, 101, 203, 102, 205, 103, 207, 104, 209, 105, 211, 106, 213, 107, 215, 108, 217, 109, 219, 110, 221, 111, 223, 112, 225, 113, 227, 114, 229, 115, 231, 116, 233, 117, 235, 118, 237, 119, 239, 120, 241, 121, 243, 122, 245, 123, 247, 124, 249, 125, 251, 126, 253, 127, 255, 128, 257, 129, 259, 130, 261, 131, 263, 132, 265, 133, 267, 134, 269, 135, 271, 136, 273, 137, 275, 138, 277, 139, 279, 140, 281, 141, 283, 142, 285, 143, 287, 144, 289, 145, 291, 146, 293, 147, 295, 148, 297, 149, 299, 150, 301, 151, 303, 152, 305, 153, 307, 154, 309, 155, 311, 156, 313, 157, 315, 158, 317, 159, 319, 160, 321, 161, 323, 162, 325, 163, 327, 164, 329, 165, 331, 166, 333, 167, 335, 168, 337, 169, 339, 170, 341, 171, 343, 172, 345, 173, 347, 174, 349, 175, 351, 176, 353, 177, 355, 178, 357, 179, 359, 180, 361, 181, 363, 182, 365, 183, 367, 184, 369, 185, 371, 186, 373, 187, 375, 188, 377, 189, 379, 190, 381, 191, 383, 192, 385, 193, 387, 194, 389, 195, 391, 196, 393, 197, 395, 198, 397, 199, 399, 200, 401, 201, 403, 202, 405, 203, 407, 204, 409, 205, 411, 206, 413, 207, 415, 208, 417, 209, 419, 210, 421, 211, 423, 212, 425, 213, 427, 214, 429, 215, 431, 216, 433, 217, 435, 218, 437, 219, 439, 220, 441, 221, 443, 222, 445, 223, 447, 224, 449, 225, 451, 226, 453, 227, 455, 228, 457, 229, 459, 230, 1, 0, 9, 1, 0, 48, 57, 2, 0, 69, 69, 101, 101, 2, 0, 43, 43, 45, 45, 4, 0, 10, 10, 13, 13, 34, 34, 92, 92, 4, 0, 10, 10, 13, 13, 39, 39, 92, 92, 3, 0, 65, 90, 95, 95, 97, 122, 4, 0, 48, 57, 65, 90, 95, 95, 97, 122, 2, 0, 10, 10, 13, 13, 3, 0, 9, 10, 13, 13, 32, 32, 2805, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0, 39, 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 0, 51, 1, 0, 0, 0, 0, 53, 1, 0, 0, 0, 0, 55, 1, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 61, 1, 0, 0, 0, 0, 63, 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 81, 1, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 85, 1, 0, 0, 0, 0, 87, 1, 0, 0, 0, 0, 89, 1, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 95, 1, 0, 0, 0, 0, 97, 1, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 101, 1, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 105, 1, 0, 0, 0, 0, 107, 1, 0, 0, 0, 0, 109, 1, 0, 0, 0, 0, 111, 1, 0, 0, 0, 0, 113, 1, 0, 0, 0, 0, 115, 1, 0, 0, 0, 0, 117, 1, 0, 0, 0, 0, 119, 1, 0, 0, 0, 0, 121, 1, 0, 0, 0, 0, 123, 1, 0, 0, 0, 0, 125, 1, 0, 0, 0, 0, 127, 1, 0, 0, 0, 0, 129, 1, 0, 0, 0, 0, 131, 1, 0, 0, 0, 0, 133, 1, 0, 0, 0, 0, 135, 1, 0, 0, 0, 0, 137, 1, 0, 0, 0, 0, 139, 1, 0, 0, 0, 0, 141, 1, 0, 0, 0, 0, 143, 1, 0, 0, 0, 0, 145, 1, 0, 0, 0, 0, 147, 1, 0, 0, 0, 0, 149, 1, 0, 0, 0, 0, 151, 1, 0, 0, 0, 0, 153, 1, 0, 0, 0, 0, 155, 1, 0, 0, 0, 0, 157, 1, 0, 0, 0, 0, 159, 1, 0, 0, 0, 0, 161, 1, 0, 0, 0, 0, 163, 1, 0, 0, 0, 0, 165, 1, 0, 0, 0, 0, 167, 1, 0, 0, 0, 0, 169, 1, 0, 0, 0, 0, 171, 1, 0, 0, 0, 0, 173, 1, 0, 0, 0, 0, 175, 1, 0, 0, 0, 0, 177, 1, 0, 0, 0, 0, 179, 1, 0, 0, 0, 0, 181, 1, 0, 0, 0, 0, 183, 1, 0, 0, 0, 0, 185, 1, 0, 0, 0, 0, 187, 1, 0, 0, 0, 0, 189, 1, 0, 0, 0, 0, 191, 1, 0, 0, 0, 0, 193, 1, 0, 0, 0, 0, 195, 1, 0, 0, 0, 0, 197, 1, 0, 0, 0, 0, 199, 1, 0, 0, 0, 0, 201, 1, 0, 0, 0, 0, 203, 1, 0, 0, 0, 0, 205, 1, 0, 0, 0, 0, 207, 1, 0, 0, 0, 0, 209, 1, 0, 0, 0, 0, 211, 1, 0, 0, 0, 0, 213, 1, 0, 0, 0, 0, 215, 1, 0, 0, 0, 0, 217, 1, 0, 0, 0, 0, 219, 1, 0, 0, 0, 0, 221, 1, 0, 0, 0, 0, 223, 1, 0, 0, 0, 0, 225, 1, 0, 0, 0, 0, 227, 1, 0, 0, 0, 0, 229, 1, 0, 0, 0, 0, 231, 1, 0, 0, 0, 0, 233, 1, 0, 0, 0, 0, 235, 1, 0, 0, 0, 0, 237, 1, 0, 0, 0, 0, 239, 1, 0, 0, 0, 0, 241, 1, 0, 0, 0, 0, 243, 1, 0, 0, 0, 0, 245, 1, 0, 0, 0, 0, 247, 1, 0, 0, 0, 0, 249, 1, 0, 0, 0, 0, 251, 1, 0, 0, 0, 0, 253, 1, 0, 0, 0, 0, 255, 1, 0, 0, 0, 0, 257, 1, 0, 0, 0, 0, 259, 1, 0, 0, 0, 0, 261, 1, 0, 0, 0, 0, 263, 1, 0, 0, 0, 0, 265, 1, 0, 0, 0, 0, 267, 1, 0, 0, 0, 0, 269, 1, 0, 0, 0, 0, 271, 1, 0, 0, 0, 0, 273, 1, 0, 0, 0, 0, 275, 1, 0, 0, 0, 0, 277, 1, 0, 0, 0, 0, 279, 1, 0, 0, 0, 0, 281, 1, 0, 0, 0, 0, 283, 1, 0, 0, 0, 0, 285, 1, 0, 0, 0, 0, 287, 1, 0, 0, 0, 0, 289, 1, 0, 0, 0, 0, 291, 1, 0, 0, 0, 0, 293, 1, 0, 0, 0, 0, 295, 1, 0, 0, 0, 0, 297, 1, 0, 0, 0, 0, 299, 1, 0, 0, 0, 0, 301, 1, 0, 0, 0, 0, 303, 1, 0, 0, 0, 0, 305, 1, 0, 0, 0, 0, 307, 1, 0, 0, 0, 0, 309, 1, 0, 0, 0, 0, 311, 1, 0, 0, 0, 0, 313, 1, 0, 0, 0, 0, 315, 1, 0, 0, 0, 0, 317, 1, 0, 0, 0, 0, 319, 1, 0, 0, 0, 0, 321, 1, 0, 0, 0, 0, 323, 1, 0, 0, 0, 0, 325, 1, 0, 0, 0, 0, 327, 1, 0, 0, 0, 0, 329, 1, 0, 0, 0, 0, 331, 1, 0, 0, 0, 0, 333, 1, 0, 0, 0, 0, 335, 1, 0, 0, 0, 0, 337, 1, 0, 0, 0, 0, 339, 1, 0, 0, 0, 0, 341, 1, 0, 0, 0, 0, 343, 1, 0, 0, 0, 0, 345, 1, 0, 0, 0, 0, 347, 1, 0, 0, 0, 0, 349, 1, 0, 0, 0, 0, 351, 1, 0, 0, 0, 0, 353, 1, 0, 0, 0, 0, 355, 1, 0, 0, 0, 0, 357, 1, 0, 0, 0, 0, 359, 1, 0, 0, 0, 0, 361, 1, 0, 0, 0, 0, 363, 1, 0, 0, 0, 0, 365, 1, 0, 0, 0, 0, 367, 1, 0, 0, 0, 0, 369, 1, 0, 0, 0, 0, 371, 1, 0, 0, 0, 0, 373, 1, 0, 0, 0, 0, 375, 1, 0, 0, 0, 0, 377, 1, 0, 0, 0, 0, 379, 1, 0, 0, 0, 0, 381, 1, 0, 0, 0, 0, 383, 1, 0, 0, 0, 0, 385, 1, 0, 0, 0, 0, 387, 1, 0, 0, 0, 0, 389, 1, 0, 0, 0, 0, 391, 1, 0, 0, 0, 0, 393, 1, 0, 0, 0, 0, 395, 1, 0, 0, 0, 0, 397, 1, 0, 0, 0, 0, 399, 1, 0, 0, 0, 0, 401, 1, 0, 0, 0, 0, 403, 1, 0, 0, 0, 0, 405, 1, 0, 0, 0, 0, 407, 1, 0, 0, 0, 0, 409, 1, 0, 0, 0, 0, 411, 1, 0, 0, 0, 0, 413, 1, 0, 0, 0, 0, 415, 1, 0, 0, 0, 0, 417, 1, 0, 0, 0, 0, 419, 1, 0, 0, 0, 0, 421, 1, 0, 0, 0, 0, 423, 1, 0, 0, 0, 0, 425, 1, 0, 0, 0, 0, 427, 1, 0, 0, 0, 0, 429, 1, 0, 0, 0, 0, 431, 1, 0, 0, 0, 0, 433, 1, 0, 0, 0, 0, 435, 1, 0, 0, 0, 0, 437, 1, 0, 0, 0, 0, 439, 1, 0, 0, 0, 0, 441, 1, 0, 0, 0, 0, 443, 1, 0, 0, 0, 0, 445, 1, 0, 0, 0, 0, 447, 1, 0, 0, 0, 0, 449, 1, 0, 0, 0, 0, 451, 1, 0, 0, 0, 0, 453, 1, 0, 0, 0, 0, 455, 1, 0, 0, 0, 0, 457, 1, 0, 0, 0, 0, 459, 1, 0, 0, 0, 1, 461, 1, 0, 0, 0, 3, 465, 1, 0, 0, 0, 5, 469, 1, 0, 0, 0, 7, 473, 1, 0, 0, 0, 9, 478, 1, 0, 0, 0, 11, 483, 1, 0, 0, 0, 13, 488, 1, 0, 0, 0, 15, 494, 1, 0, 0, 0, 17, 499, 1, 0, 0, 0, 19, 504, 1, 0, 0, 0, 21, 509, 1, 0, 0, 0, 23, 515, 1, 0, 0, 0, 25, 521, 1, 0, 0, 0, 27, 527, 1, 0, 0, 0, 29, 531, 1, 0, 0, 0, 31, 536, 1, 0, 0, 0, 33, 539, 1, 0, 0, 0, 35, 543, 1, 0, 0, 0, 37, 547, 1, 0, 0, 0, 39, 552, 1, 0, 0, 0, 41, 557, 1, 0, 0, 0, 43, 562, 1, 0, 0, 0, 45, 567, 1, 0, 0, 0, 47, 573, 1, 0, 0, 0, 49, 579, 1, 0, 0, 0, 51, 585, 1, 0, 0, 0, 53, 590, 1, 0, 0, 0, 55, 596, 1, 0, 0, 0, 57, 602, 1, 0, 0, 0, 59, 606, 1, 0, 0, 0, 61, 611, 1, 0, 0, 0, 63, 617, 1, 0, 0, 0, 65, 621, 1, 0, 0, 0, 67, 626, 1, 0, 0, 0, 69, 632, 1, 0, 0, 0, 71, 653, 1, 0, 0, 0, 73, 668, 1, 0, 0, 0, 75, 670, 1, 0, 0, 0, 77, 675, 1, 0, 0, 0, 79, 680, 1, 0, 0, 0, 81, 691, 1, 0, 0, 0, 83, 697, 1, 0, 0, 0, 85, 702, 1, 0, 0, 0, 87, 711, 1, 0, 0, 0, 89, 716, 1, 0, 0, 0, 91, 721, 1, 0, 0, 0, 93, 744, 1, 0, 0, 0, 95, 761, 1, 0, 0, 0, 97, 763, 1, 0, 0, 0, 99, 779, 1, 0, 0, 0, 101, 792, 1, 0, 0, 0, 103, 794, 1, 0, 0, 0, 105, 800, 1, 0, 0, 0, 107, 809, 1, 0, 0, 0, 109, 818, 1, 0, 0, 0, 111, 823, 1, 0, 0, 0, 113, 828, 1, 0, 0, 0, 115, 833, 1, 0, 0, 0, 117, 837, 1, 0, 0, 0, 119, 842, 1, 0, 0, 0, 121, 846, 1, 0, 0, 0, 123, 865, 1, 0, 0, 0, 125, 882, 1, 0, 0, 0, 127, 884, 1, 0, 0, 0, 129, 893, 1, 0, 0, 0, 131, 897, 1, 0, 0, 0, 133, 904, 1, 0, 0, 0, 135, 908, 1, 0, 0, 0, 137, 915, 1, 0, 0, 0, 139, 919, 1, 0, 0, 0, 141, 923, 1, 0, 0, 0, 143, 940, 1, 0, 0, 0, 145, 942, 1, 0, 0, 0, 147, 949, 1, 0, 0, 0, 149, 954, 1, 0, 0, 0, 151, 961, 1, 0, 0, 0, 153, 989, 1, 0, 0, 0, 155, 1011, 1, 0, 0, 0, 157, 1028, 1, 0, 0, 0, 159, 1049, 1, 0, 0, 0, 161, 1064, 1, 0, 0, 0, 163, 1066, 1, 0, 0, 0, 165, 1091, 1, 0, 0, 0, 167, 1093, 1, 0, 0, 0, 169, 1122, 1, 0, 0, 0, 171, 1138, 1, 0, 0, 0, 173, 1140, 1, 0, 0, 0, 175, 1147, 1, 0, 0, 0, 177, 1155, 1, 0, 0, 0, 179, 1162, 1, 0, 0, 0, 181, 1172, 1, 0, 0, 0, 183, 1209, 1, 0, 0, 0, 185, 1211, 1, 0, 0, 0, 187, 1223, 1, 0, 0, 0, 189, 1259, 1, 0, 0, 0, 191, 1279, 1, 0, 0, 0, 193, 1281, 1, 0, 0, 0, 195, 1300, 1, 0, 0, 0, 197, 1302, 1, 0, 0, 0, 199, 1310, 1, 0, 0, 0, 201, 1314, 1, 0, 0, 0, 203, 1320, 1, 0, 0, 0, 205, 1327, 1, 0, 0, 0, 207, 1347, 1, 0, 0, 0, 209, 1371, 1, 0, 0, 0, 211, 1373, 1, 0, 0, 0, 213, 1394, 1, 0, 0, 0, 215, 1411, 1, 0, 0, 0, 217, 1426, 1, 0, 0, 0, 219, 1428, 1, 0, 0, 0, 221, 1435, 1, 0, 0, 0, 223, 1446, 1, 0, 0, 0, 225, 1456, 1, 0, 0, 0, 227, 1468, 1, 0, 0, 0, 229, 1478, 1, 0, 0, 0, 231, 1508, 1, 0, 0, 0, 233, 1510, 1, 0, 0, 0, 235, 1514, 1, 0, 0, 0, 237, 1520, 1, 0, 0, 0, 239, 1526, 1, 0, 0, 0, 241, 1532, 1, 0, 0, 0, 243, 1537, 1, 0, 0, 0, 245, 1543, 1, 0, 0, 0, 247, 1563, 1, 0, 0, 0, 249, 1565, 1, 0, 0, 0, 251, 1570, 1, 0, 0, 0, 253, 1578, 1, 0, 0, 0, 255, 1585, 1, 0, 0, 0, 257, 1591, 1, 0, 0, 0, 259, 1602, 1, 0, 0, 0, 261, 1614, 1, 0, 0, 0, 263, 1627, 1, 0, 0, 0, 265, 1641, 1, 0, 0, 0, 267, 1654, 1, 0, 0, 0, 269, 1668, 1, 0, 0, 0, 271, 1679, 1, 0, 0, 0, 273, 1690, 1, 0, 0, 0, 275, 1701, 1, 0, 0, 0, 277, 1712, 1, 0, 0, 0, 279, 1731, 1, 0, 0, 0, 281, 1792, 1, 0, 0, 0, 283, 1794, 1, 0, 0, 0, 285, 1805, 1, 0, 0, 0, 287, 1853, 1, 0, 0, 0, 289, 1874, 1, 0, 0, 0, 291, 1876, 1, 0, 0, 0, 293, 1879, 1, 0, 0, 0, 295, 1884, 1, 0, 0, 0, 297, 1890, 1, 0, 0, 0, 299, 1894, 1, 0, 0, 0, 301, 1897, 1, 0, 0, 0, 303, 1903, 1, 0, 0, 0, 305, 1912, 1, 0, 0, 0, 307, 1931, 1, 0, 0, 0, 309, 1933, 1, 0, 0, 0, 311, 1938, 1, 0, 0, 0, 313, 1946, 1, 0, 0, 0, 315, 1953, 1, 0, 0, 0, 317, 1960, 1, 0, 0, 0, 319, 1968, 1, 0, 0, 0, 321, 1976, 1, 0, 0, 0, 323, 1983, 1, 0, 0, 0, 325, 1988, 1, 0, 0, 0, 327, 1999, 1, 0, 0, 0, 329, 2008, 1, 0, 0, 0, 331, 2016, 1, 0, 0, 0, 333, 2026, 1, 0, 0, 0, 335, 2031, 1, 0, 0, 0, 337, 2050, 1, 0, 0, 0, 339, 2052, 1, 0, 0, 0, 341, 2060, 1, 0, 0, 0, 343, 2081, 1, 0, 0, 0, 345, 2106, 1, 0, 0, 0, 347, 2131, 1, 0, 0, 0, 349, 2151, 1, 0, 0, 0, 351, 2176, 1, 0, 0, 0, 353, 2201, 1, 0, 0, 0, 355, 2224, 1, 0, 0, 0, 357, 2245, 1, 0, 0, 0, 359, 2264, 1, 0, 0, 0, 361, 2285, 1, 0, 0, 0, 363, 2306, 1, 0, 0, 0, 365, 2331, 1, 0, 0, 0, 367, 2352, 1, 0, 0, 0, 369, 2373, 1, 0, 0, 0, 371, 2395, 1, 0, 0, 0, 373, 2415, 1, 0, 0, 0, 375, 2465, 1, 0, 0, 0, 377, 2495, 1, 0, 0, 0, 379, 2515, 1, 0, 0, 0, 381, 2545, 1, 0, 0, 0, 383, 2547, 1, 0, 0, 0, 385, 2549, 1, 0, 0, 0, 387, 2551, 1, 0, 0, 0, 389, 2553, 1, 0, 0, 0, 391, 2555, 1, 0, 0, 0, 393, 2557, 1, 0, 0, 0, 395, 2559, 1, 0, 0, 0, 397, 2562, 1, 0, 0, 0, 399, 2565, 1, 0, 0, 0, 401, 2568, 1, 0, 0, 0, 403, 2570, 1, 0, 0, 0, 405, 2573, 1, 0, 0, 0, 407, 2575, 1, 0, 0, 0, 409, 2578, 1, 0, 0, 0, 411, 2580, 1, 0, 0, 0, 413, 2583, 1, 0, 0, 0, 415, 2586, 1, 0, 0, 0, 417, 2589, 1, 0, 0, 0, 419, 2592, 1, 0, 0, 0, 421, 2595, 1, 0, 0, 0, 423, 2598, 1, 0, 0, 0, 425, 2600, 1, 0, 0, 0, 427, 2602, 1, 0, 0, 0, 429, 2604, 1, 0, 0, 0, 431, 2606, 1, 0, 0, 0, 433, 2608, 1, 0, 0, 0, 435, 2611, 1, 0, 0, 0, 437, 2613, 1, 0, 0, 0, 439, 2615, 1, 0, 0, 0, 441, 2617, 1, 0, 0, 0, 443, 2619, 1, 0, 0, 0, 445, 2621, 1, 0, 0, 0, 447, 2643, 1, 0, 0, 0, 449, 2661, 1, 0, 0, 0, 451, 2683, 1, 0, 0, 0, 453, 2685, 1, 0, 0, 0, 455, 2692, 1, 0, 0, 0, 457, 2701, 1, 0, 0, 0, 459, 2716, 1, 0, 0, 0, 461, 462, 5, 115, 0, 0, 462, 463, 5, 105, 0, 0, 463, 464, 5, 110, 0, 0, 464, 2, 1, 0, 0, 0, 465, 466, 5, 99, 0, 0, 466, 467, 5, 111, 0, 0, 467, 468, 5, 115, 0, 0, 468, 4, 1, 0, 0, 0, 469, 470, 5, 116, 0, 0, 470, 471, 5, 97, 0, 0, 471, 472, 5, 110, 0, 0, 472, 6, 1, 0, 0, 0, 473, 474, 5, 97, 0, 0, 474, 475, 5, 115, 0, 0, 475, 476, 5, 105, 0, 0, 476, 477, 5, 110, 0, 0, 477, 8, 1, 0, 0, 0, 478, 479, 5, 97, 0, 0, 479, 480, 5, 99, 0, 0, 480, 481, 5, 111, 0, 0, 481, 482, 5, 115, 0, 0, 482, 10, 1, 0, 0, 0, 483, 484, 5, 97, 0, 0, 484, 485, 5, 116, 0, 0, 485, 486, 5, 97, 0, 0, 486, 487, 5, 110, 0, 0, 487, 12, 1, 0, 0, 0, 488, 489, 5, 97, 0, 0, 489, 490, 5, 116, 0, 0, 490, 491, 5, 97, 0, 0, 491, 492, 5, 110, 0, 0, 492, 493, 5, 50, 0, 0, 493, 14, 1, 0, 0, 0, 494, 495, 5, 115, 0, 0, 495, 496, 5, 105, 0, 0, 496, 497, 5, 110, 0, 0, 497, 498, 5, 104, 0, 0, 498, 16, 1, 0, 0, 0, 499, 500, 5, 99, 0, 0, 500, 501, 5, 111, 0, 0, 501, 502, 5, 115, 0, 0, 502, 503, 5, 104, 0, 0, 503, 18, 1, 0, 0, 0, 504, 505, 5, 116, 0, 0, 505, 506, 5, 97, 0, 0, 506, 507, 5, 110, 0, 0, 507, 508, 5, 104, 0, 0, 508, 20, 1, 0, 0, 0, 509, 510, 5, 97, 0, 0, 510, 511, 5, 115, 0, 0, 511, 512, 5, 105, 0, 0, 512, 513, 5, 110, 0, 0, 513, 514, 5, 104, 0, 0, 514, 22, 1, 0, 0, 0, 515, 516, 5, 97, 0, 0, 516, 517, 5, 99, 0, 0, 517, 518, 5, 111, 0, 0, 518, 519, 5, 115, 0, 0, 519, 520, 5, 104, 0, 0, 520, 24, 1, 0, 0, 0, 521, 522, 5, 97, 0, 0, 522, 523, 5, 116, 0, 0, 523, 524, 5, 97, 0, 0, 524, 525, 5, 110, 0, 0, 525, 526, 5, 104, 0, 0, 526, 26, 1, 0, 0, 0, 527, 528, 5, 97, 0, 0, 528, 529, 5, 98, 0, 0, 529, 530, 5, 115, 0, 0, 530, 28, 1, 0, 0, 0, 531, 532, 5, 115, 0, 0, 532, 533, 5, 113, 0, 0, 533, 534, 5, 114, 0, 0, 534, 535, 5, 116, 0, 0, 535, 30, 1, 0, 0, 0, 536, 537, 5, 108, 0, 0, 537, 538, 5, 110, 0, 0, 538, 32, 1, 0, 0, 0, 539, 540, 5, 108, 0, 0, 540, 541, 5, 111, 0, 0, 541, 542, 5, 103, 0, 0, 542, 34, 1, 0, 0, 0, 543, 544, 5, 101, 0, 0, 544, 545, 5, 120, 0, 0, 545, 546, 5, 112, 0, 0, 546, 36, 1, 0, 0, 0, 547, 548, 5, 115, 0, 0, 548, 549, 5, 109, 0, 0, 549, 550, 5, 105, 0, 0, 550, 551, 5, 110, 0, 0, 551, 38, 1, 0, 0, 0, 552, 553, 5, 115, 0, 0, 553, 554, 5, 109, 0, 0, 554, 555, 5, 97, 0, 0, 555, 556, 5, 120, 0, 0, 556, 40, 1, 0, 0, 0, 557, 558, 5, 116, 0, 0, 558, 559, 5, 109, 0, 0, 559, 560, 5, 105, 0, 0, 560, 561, 5, 110, 0, 0, 561, 42, 1, 0, 0, 0, 562, 563, 5, 116, 0, 0, 563, 564, 5, 109, 0, 0, 564, 565, 5, 97, 0, 0, 565, 566, 5, 120, 0, 0, 566, 44, 1, 0, 0, 0, 567, 568, 5, 116, 0, 0, 568, 569, 5, 110, 0, 0, 569, 570, 5, 111, 0, 0, 570, 571, 5, 114, 0, 0, 571, 572, 5, 109, 0, 0, 572, 46, 1, 0, 0, 0, 573, 574, 5, 115, 0, 0, 574, 575, 5, 110, 0, 0, 575, 576, 5, 111, 0, 0, 576, 577, 5, 114, 0, 0, 577, 578, 5, 109, 0, 0, 578, 48, 1, 0, 0, 0, 579, 580, 5, 102, 0, 0, 580, 581, 5, 108, 0, 0, 581, 582, 5, 111, 0, 0, 582, 583, 5, 111, 0, 0, 583, 584, 5, 114, 0, 0, 584, 50, 1, 0, 0, 0, 585, 586, 5, 99, 0, 0, 586, 587, 5, 101, 0, 0, 587, 588, 5, 105, 0, 0, 588, 589, 5, 108, 0, 0, 589, 52, 1, 0, 0, 0, 590, 591, 5, 114, 0, 0, 591, 592, 5, 111, 0, 0, 592, 593, 5, 117, 0, 0, 593, 594, 5, 110, 0, 0, 594, 595, 5, 100, 0, 0, 595, 54, 1, 0, 0, 0, 596, 597, 5, 103, 0, 0, 597, 598, 5, 97, 0, 0, 598, 599, 5, 109, 0, 0, 599, 600, 5, 109, 0, 0, 600, 601, 5, 97, 0, 0, 601, 56, 1, 0, 0, 0, 602, 603, 5, 112, 0, 0, 603, 604, 5, 111, 0, 0, 604, 605, 5, 119, 0, 0, 605, 58, 1, 0, 0, 0, 606, 607, 5, 115, 0, 0, 607, 608, 5, 105, 0, 0, 608, 609, 5, 103, 0, 0, 609, 610, 5, 109, 0, 0, 610, 60, 1, 0, 0, 0, 611, 612, 5, 99, 0, 0, 612, 613, 5, 108, 0, 0, 613, 614, 5, 97, 0, 0, 614, 615, 5, 109, 0, 0, 615, 616, 5, 112, 0, 0, 616, 62, 1, 0, 0, 0, 617, 618, 5, 102, 0, 0, 618, 619, 5, 102, 0, 0, 619, 620, 5, 116, 0, 0, 620, 64, 1, 0, 0, 0, 621, 622, 5, 105, 0, 0, 622, 623, 5, 102, 0, 0, 623, 624, 5, 102, 0, 0, 624, 625, 5, 116, 0, 0, 625, 66, 1, 0, 0, 0, 626, 627, 5, 97, 0, 0, 627, 628, 5, 110, 0, 0, 628, 629, 5, 103, 0, 0, 629, 630, 5, 108, 0, 0, 630, 631, 5, 101, 0, 0, 631, 68, 1, 0, 0, 0, 632, 633, 5, 112, 0, 0, 633, 634, 5, 114, 0, 0, 634, 635, 5, 105, 0, 0, 635, 636, 5, 110, 0, 0, 636, 637, 5, 116, 0, 0, 637, 70, 1, 0, 0, 0, 638, 639, 5, 112, 0, 0, 639, 640, 5, 114, 0, 0, 640, 641, 5, 105, 0, 0, 641, 642, 5, 110, 0, 0, 642, 643, 5, 116, 0, 0, 643, 644, 5, 95, 0, 0, 644, 645, 5, 115, 0, 0, 645, 646, 5, 104, 0, 0, 646, 647, 5, 97, 0, 0, 647, 648, 5, 112, 0, 0, 648, 654, 5, 101, 0, 0, 649, 650, 5, 112, 0, 0, 650, 651, 5, 115, 0, 0, 651, 652, 5, 104, 0, 0, 652, 654, 5, 112, 0, 0, 653, 638, 1, 0, 0, 0, 653, 649, 1, 0, 0, 0, 654, 72, 1, 0, 0, 0, 655, 656, 5, 110, 0, 0, 656, 657, 5, 118, 0, 0, 657, 669, 5, 108, 0, 0, 658, 659, 5, 110, 0, 0, 659, 660, 5, 97, 0, 0, 660, 661, 5, 110, 0, 0, 661, 662, 5, 95, 0, 0, 662, 663, 5, 116, 0, 0, 663, 664, 5, 111, 0, 0, 664, 665, 5, 95, 0, 0, 665, 666, 5, 110, 0, 0, 666, 667, 5, 117, 0, 0, 667, 669, 5, 109, 0, 0, 668, 655, 1, 0, 0, 0, 668, 658, 1, 0, 0, 0, 669, 74, 1, 0, 0, 0, 670, 671, 5, 108, 0, 0, 671, 672, 5, 101, 0, 0, 672, 673, 5, 114, 0, 0, 673, 674, 5, 112, 0, 0, 674, 76, 1, 0, 0, 0, 675, 676, 5, 115, 0, 0, 676, 677, 5, 116, 0, 0, 677, 678, 5, 101, 0, 0, 678, 679, 5, 112, 0, 0, 679, 78, 1, 0, 0, 0, 680, 681, 5, 115, 0, 0, 681, 682, 5, 109, 0, 0, 682, 683, 5, 111, 0, 0, 683, 684, 5, 111, 0, 0, 684, 685, 5, 116, 0, 0, 685, 686, 5, 104, 0, 0, 686, 687, 5, 115, 0, 0, 687, 688, 5, 116, 0, 0, 688, 689, 5, 101, 0, 0, 689, 690, 5, 112, 0, 0, 690, 80, 1, 0, 0, 0, 691, 692, 5, 102, 0, 0, 692, 693, 5, 114, 0, 0, 693, 694, 5, 97, 0, 0, 694, 695, 5, 99, 0, 0, 695, 696, 5, 116, 0, 0, 696, 82, 1, 0, 0, 0, 697, 698, 5, 114, 0, 0, 698, 699, 5, 101, 0, 0, 699, 700, 5, 108, 0, 0, 700, 701, 5, 117, 0, 0, 701, 84, 1, 0, 0, 0, 702, 703, 5, 115, 0, 0, 703, 704, 5, 111, 0, 0, 704, 705, 5, 102, 0, 0, 705, 706, 5, 116, 0, 0, 706, 707, 5, 112, 0, 0, 707, 708, 5, 108, 0, 0, 708, 709, 5, 117, 0, 0, 709, 710, 5, 115, 0, 0, 710, 86, 1, 0, 0, 0, 711, 712, 5, 103, 0, 0, 712, 713, 5, 101, 0, 0, 713, 714, 5, 108, 0, 0, 714, 715, 5, 117, 0, 0, 715, 88, 1, 0, 0, 0, 716, 717, 5, 115, 0, 0, 717, 718, 5, 105, 0, 0, 718, 719, 5, 103, 0, 0, 719, 720, 5, 110, 0, 0, 720, 90, 1, 0, 0, 0, 721, 722, 5, 109, 0, 0, 722, 723, 5, 97, 0, 0, 723, 724, 5, 112, 0, 0, 724, 92, 1, 0, 0, 0, 725, 726, 5, 101, 0, 0, 726, 727, 5, 122, 0, 0, 727, 728, 5, 99, 0, 0, 728, 729, 5, 111, 0, 0, 729, 730, 5, 110, 0, 0, 730, 731, 5, 118, 0, 0, 731, 732, 5, 111, 0, 0, 732, 733, 5, 108, 0, 0, 733, 734, 5, 117, 0, 0, 734, 735, 5, 116, 0, 0, 735, 736, 5, 105, 0, 0, 736, 737, 5, 111, 0, 0, 737, 745, 5, 110, 0, 0, 738, 739, 5, 101, 0, 0, 739, 740, 5, 122, 0, 0, 740, 741, 5, 99, 0, 0, 741, 742, 5, 111, 0, 0, 742, 743, 5, 110, 0, 0, 743, 745, 5, 118, 0, 0, 744, 725, 1, 0, 0, 0, 744, 738, 1, 0, 0, 0, 745, 94, 1, 0, 0, 0, 746, 747, 5, 99, 0, 0, 747, 748, 5, 111, 0, 0, 748, 749, 5, 110, 0, 0, 749, 750, 5, 118, 0, 0, 750, 751, 5, 111, 0, 0, 751, 752, 5, 108, 0, 0, 752, 753, 5, 117, 0, 0, 753, 754, 5, 116, 0, 0, 754, 755, 5, 105, 0, 0, 755, 756, 5, 111, 0, 0, 756, 762, 5, 110, 0, 0, 757, 758, 5, 99, 0, 0, 758, 759, 5, 111, 0, 0, 759, 760, 5, 110, 0, 0, 760, 762, 5, 118, 0, 0, 761, 746, 1, 0, 0, 0, 761, 757, 1, 0, 0, 0, 762, 96, 1, 0, 0, 0, 763, 764, 5, 115, 0, 0, 764, 765, 5, 119, 0, 0, 765, 766, 5, 97, 0, 0, 766, 767, 5, 112, 0, 0, 767, 98, 1, 0, 0, 0, 768, 769, 5, 112, 0, 0, 769, 770, 5, 101, 0, 0, 770, 771, 5, 114, 0, 0, 771, 772, 5, 109, 0, 0, 772, 773, 5, 117, 0, 0, 773, 774, 5, 116, 0, 0, 774, 780, 5, 101, 0, 0, 775, 776, 5, 112, 0, 0, 776, 777, 5, 101, 0, 0, 777, 778, 5, 114, 0, 0, 778, 780, 5, 109, 0, 0, 779, 768, 1, 0, 0, 0, 779, 775, 1, 0, 0, 0, 780, 100, 1, 0, 0, 0, 781, 782, 5, 114, 0, 0, 782, 783, 5, 101, 0, 0, 783, 784, 5, 115, 0, 0, 784, 785, 5, 104, 0, 0, 785, 786, 5, 97, 0, 0, 786, 787, 5, 112, 0, 0, 787, 793, 5, 101, 0, 0, 788, 789, 5, 114, 0, 0, 789, 790, 5, 115, 0, 0, 790, 791, 5, 104, 0, 0, 791, 793, 5, 112, 0, 0, 792, 781, 1, 0, 0, 0, 792, 788, 1, 0, 0, 0, 793, 102, 1, 0, 0, 0, 794, 795, 5, 114, 0, 0, 795, 796, 5, 97, 0, 0, 796, 797, 5, 110, 0, 0, 797, 798, 5, 103, 0, 0, 798, 799, 5, 101, 0, 0, 799, 104, 1, 0, 0, 0, 800, 801, 5, 108, 0, 0, 801, 802, 5, 105, 0, 0, 802, 803, 5, 110, 0, 0, 803, 804, 5, 115, 0, 0, 804, 805, 5, 112, 0, 0, 805, 806, 5, 97, 0, 0, 806, 807, 5, 99, 0, 0, 807, 808, 5, 101, 0, 0, 808, 106, 1, 0, 0, 0, 809, 810, 5, 108, 0, 0, 810, 811, 5, 111, 0, 0, 811, 812, 5, 103, 0, 0, 812, 813, 5, 115, 0, 0, 813, 814, 5, 112, 0, 0, 814, 815, 5, 97, 0, 0, 815, 816, 5, 99, 0, 0, 816, 817, 5, 101, 0, 0, 817, 108, 1, 0, 0, 0, 818, 819, 5, 116, 0, 0, 819, 820, 5, 111, 0, 0, 820, 821, 5, 112, 0, 0, 821, 822, 5, 107, 0, 0, 822, 110, 1, 0, 0, 0, 823, 824, 5, 98, 0, 0, 824, 825, 5, 111, 0, 0, 825, 826, 5, 116, 0, 0, 826, 827, 5, 107, 0, 0, 827, 112, 1, 0, 0, 0, 828, 829, 5, 112, 0, 0, 829, 830, 5, 105, 0, 0, 830, 831, 5, 110, 0, 0, 831, 832, 5, 118, 0, 0, 832, 114, 1, 0, 0, 0, 833, 834, 5, 115, 0, 0, 834, 835, 5, 117, 0, 0, 835, 836, 5, 109, 0, 0, 836, 116, 1, 0, 0, 0, 837, 838, 5, 109, 0, 0, 838, 839, 5, 101, 0, 0, 839, 840, 5, 97, 0, 0, 840, 841, 5, 110, 0, 0, 841, 118, 1, 0, 0, 0, 842, 843, 5, 115, 0, 0, 843, 844, 5, 116, 0, 0, 844, 845, 5, 100, 0, 0, 845, 120, 1, 0, 0, 0, 846, 847, 5, 118, 0, 0, 847, 848, 5, 97, 0, 0, 848, 849, 5, 114, 0, 0, 849, 122, 1, 0, 0, 0, 850, 851, 5, 113, 0, 0, 851, 852, 5, 117, 0, 0, 852, 853, 5, 97, 0, 0, 853, 854, 5, 114, 0, 0, 854, 855, 5, 116, 0, 0, 855, 856, 5, 105, 0, 0, 856, 857, 5, 108, 0, 0, 857, 866, 5, 101, 0, 0, 858, 859, 5, 113, 0, 0, 859, 860, 5, 117, 0, 0, 860, 861, 5, 97, 0, 0, 861, 862, 5, 114, 0, 0, 862, 863, 5, 116, 0, 0, 863, 864, 5, 105, 0, 0, 864, 866, 5, 108, 0, 0, 865, 850, 1, 0, 0, 0, 865, 858, 1, 0, 0, 0, 866, 124, 1, 0, 0, 0, 867, 868, 5, 112, 0, 0, 868, 869, 5, 101, 0, 0, 869, 870, 5, 114, 0, 0, 870, 871, 5, 99, 0, 0, 871, 872, 5, 101, 0, 0, 872, 873, 5, 110, 0, 0, 873, 874, 5, 116, 0, 0, 874, 875, 5, 105, 0, 0, 875, 876, 5, 108, 0, 0, 876, 883, 5, 101, 0, 0, 877, 878, 5, 112, 0, 0, 878, 879, 5, 114, 0, 0, 879, 880, 5, 99, 0, 0, 880, 881, 5, 110, 0, 0, 881, 883, 5, 116, 0, 0, 882, 867, 1, 0, 0, 0, 882, 877, 1, 0, 0, 0, 883, 126, 1, 0, 0, 0, 884, 885, 5, 113, 0, 0, 885, 886, 5, 117, 0, 0, 886, 887, 5, 97, 0, 0, 887, 888, 5, 110, 0, 0, 888, 889, 5, 116, 0, 0, 889, 890, 5, 105, 0, 0, 890, 891, 5, 108, 0, 0, 891, 892, 5, 101, 0, 0, 892, 128, 1, 0, 0, 0, 893, 894, 5, 100, 0, 0, 894, 895, 5, 111, 0, 0, 895, 896, 5, 116, 0, 0, 896, 130, 1, 0, 0, 0, 897, 898, 5, 109, 0, 0, 898, 899, 5, 111, 0, 0, 899, 900, 5, 109, 0, 0, 900, 901, 5, 101, 0, 0, 901, 902, 5, 110, 0, 0, 902, 903, 5, 116, 0, 0, 903, 132, 1, 0, 0, 0, 904, 905, 5, 101, 0, 0, 905, 906, 5, 114, 0, 0, 906, 907, 5, 102, 0, 0, 907, 134, 1, 0, 0, 0, 908, 909, 5, 101, 0, 0, 909, 910, 5, 114, 0, 0, 910, 911, 5, 102, 0, 0, 911, 912, 5, 105, 0, 0, 912, 913, 5, 110, 0, 0, 913, 914, 5, 118, 0, 0, 914, 136, 1, 0, 0, 0, 915, 916, 5, 97, 0, 0, 916, 917, 5, 110, 0, 0, 917, 918, 5, 121, 0, 0, 918, 138, 1, 0, 0, 0, 919, 920, 5, 97, 0, 0, 920, 921, 5, 108, 0, 0, 921, 922, 5, 108, 0, 0, 922, 140, 1, 0, 0, 0, 923, 924, 5, 101, 0, 0, 924, 925, 5, 100, 0, 0, 925, 926, 5, 103, 0, 0, 926, 927, 5, 101, 0, 0, 927, 142, 1, 0, 0, 0, 928, 929, 5, 98, 0, 0, 929, 930, 5, 108, 0, 0, 930, 931, 5, 117, 0, 0, 931, 941, 5, 114, 0, 0, 932, 933, 5, 103, 0, 0, 933, 934, 5, 97, 0, 0, 934, 935, 5, 117, 0, 0, 935, 936, 5, 115, 0, 0, 936, 937, 5, 115, 0, 0, 937, 938, 5, 105, 0, 0, 938, 939, 5, 97, 0, 0, 939, 941, 5, 110, 0, 0, 940, 928, 1, 0, 0, 0, 940, 932, 1, 0, 0, 0, 941, 144, 1, 0, 0, 0, 942, 943, 5, 109, 0, 0, 943, 944, 5, 101, 0, 0, 944, 945, 5, 100, 0, 0, 945, 946, 5, 105, 0, 0, 946, 947, 5, 97, 0, 0, 947, 948, 5, 110, 0, 0, 948, 146, 1, 0, 0, 0, 949, 950, 5, 109, 0, 0, 950, 951, 5, 111, 0, 0, 951, 952, 5, 100, 0, 0, 952, 953, 5, 101, 0, 0, 953, 148, 1, 0, 0, 0, 954, 955, 5, 99, 0, 0, 955, 956, 5, 117, 0, 0, 956, 957, 5, 109, 0, 0, 957, 958, 5, 115, 0, 0, 958, 959, 5, 117, 0, 0, 959, 960, 5, 109, 0, 0, 960, 150, 1, 0, 0, 0, 961, 962, 5, 99, 0, 0, 962, 963, 5, 117, 0, 0, 963, 964, 5, 109, 0, 0, 964, 965, 5, 112, 0, 0, 965, 966, 5, 114, 0, 0, 966, 967, 5, 111, 0, 0, 967, 968, 5, 100, 0, 0, 968, 152, 1, 0, 0, 0, 969, 970, 5, 116, 0, 0, 970, 971, 5, 111, 0, 0, 971, 972, 5, 112, 0, 0, 972, 973, 5, 107, 0, 0, 973, 974, 5, 95, 0, 0, 974, 975, 5, 105, 0, 0, 975, 976, 5, 110, 0, 0, 976, 990, 5, 100, 0, 0, 977, 978, 5, 116, 0, 0, 978, 979, 5, 111, 0, 0, 979, 980, 5, 112, 0, 0, 980, 981, 5, 107, 0, 0, 981, 982, 5, 95, 0, 0, 982, 983, 5, 105, 0, 0, 983, 984, 5, 110, 0, 0, 984, 985, 5, 100, 0, 0, 985, 986, 5, 105, 0, 0, 986, 987, 5, 99, 0, 0, 987, 988, 5, 101, 0, 0, 988, 990, 5, 115, 0, 0, 989, 969, 1, 0, 0, 0, 989, 977, 1, 0, 0, 0, 990, 154, 1, 0, 0, 0, 991, 992, 5, 98, 0, 0, 992, 993, 5, 111, 0, 0, 993, 994, 5, 116, 0, 0, 994, 995, 5, 107, 0, 0, 995, 996, 5, 95, 0, 0, 996, 997, 5, 105, 0, 0, 997, 998, 5, 110, 0, 0, 998, 1012, 5, 100, 0, 0, 999, 1000, 5, 98, 0, 0, 1000, 1001, 5, 111, 0, 0, 1001, 1002, 5, 116, 0, 0, 1002, 1003, 5, 107, 0, 0, 1003, 1004, 5, 95, 0, 0, 1004, 1005, 5, 105, 0, 0, 1005, 1006, 5, 110, 0, 0, 1006, 1007, 5, 100, 0, 0, 1007, 1008, 5, 105, 0, 0, 1008, 1009, 5, 99, 0, 0, 1009, 1010, 5, 101, 0, 0, 1010, 1012, 5, 115, 0, 0, 1011, 991, 1, 0, 0, 0, 1011, 999, 1, 0, 0, 0, 1012, 156, 1, 0, 0, 0, 1013, 1014, 5, 99, 0, 0, 1014, 1015, 5, 117, 0, 0, 1015, 1016, 5, 98, 0, 0, 1016, 1017, 5, 105, 0, 0, 1017, 1018, 5, 99, 0, 0, 1018, 1019, 5, 95, 0, 0, 1019, 1020, 5, 101, 0, 0, 1020, 1021, 5, 97, 0, 0, 1021, 1022, 5, 115, 0, 0, 1022, 1029, 5, 101, 0, 0, 1023, 1024, 5, 99, 0, 0, 1024, 1025, 5, 117, 0, 0, 1025, 1026, 5, 98, 0, 0, 1026, 1027, 5, 105, 0, 0, 1027, 1029, 5, 99, 0, 0, 1028, 1013, 1, 0, 0, 0, 1028, 1023, 1, 0, 0, 0, 1029, 158, 1, 0, 0, 0, 1030, 1031, 5, 101, 0, 0, 1031, 1032, 5, 108, 0, 0, 1032, 1033, 5, 97, 0, 0, 1033, 1034, 5, 115, 0, 0, 1034, 1035, 5, 116, 0, 0, 1035, 1036, 5, 105, 0, 0, 1036, 1037, 5, 99, 0, 0, 1037, 1038, 5, 95, 0, 0, 1038, 1039, 5, 101, 0, 0, 1039, 1040, 5, 97, 0, 0, 1040, 1041, 5, 115, 0, 0, 1041, 1050, 5, 101, 0, 0, 1042, 1043, 5, 101, 0, 0, 1043, 1044, 5, 108, 0, 0, 1044, 1045, 5, 97, 0, 0, 1045, 1046, 5, 115, 0, 0, 1046, 1047, 5, 116, 0, 0, 1047, 1048, 5, 105, 0, 0, 1048, 1050, 5, 99, 0, 0, 1049, 1030, 1, 0, 0, 0, 1049, 1042, 1, 0, 0, 0, 1050, 160, 1, 0, 0, 0, 1051, 1052, 5, 115, 0, 0, 1052, 1053, 5, 105, 0, 0, 1053, 1054, 5, 110, 0, 0, 1054, 1055, 5, 101, 0, 0, 1055, 1056, 5, 95, 0, 0, 1056, 1057, 5, 101, 0, 0, 1057, 1058, 5, 97, 0, 0, 1058, 1059, 5, 115, 0, 0, 1059, 1065, 5, 101, 0, 0, 1060, 1061, 5, 115, 0, 0, 1061, 1062, 5, 105, 0, 0, 1062, 1063, 5, 110, 0, 0, 1063, 1065, 5, 101, 0, 0, 1064, 1051, 1, 0, 0, 0, 1064, 1060, 1, 0, 0, 0, 1065, 162, 1, 0, 0, 0, 1066, 1067, 5, 115, 0, 0, 1067, 1068, 5, 109, 0, 0, 1068, 1069, 5, 111, 0, 0, 1069, 1070, 5, 111, 0, 0, 1070, 1071, 5, 116, 0, 0, 1071, 1072, 5, 104, 0, 0, 1072, 1073, 5, 101, 0, 0, 1073, 1074, 5, 114, 0, 0, 1074, 1075, 5, 115, 0, 0, 1075, 1076, 5, 116, 0, 0, 1076, 1077, 5, 101, 0, 0, 1077, 1078, 5, 112, 0, 0, 1078, 164, 1, 0, 0, 0, 1079, 1080, 5, 100, 0, 0, 1080, 1081, 5, 105, 0, 0, 1081, 1082, 5, 115, 0, 0, 1082, 1092, 5, 116, 0, 0, 1083, 1084, 5, 100, 0, 0, 1084, 1085, 5, 105, 0, 0, 1085, 1086, 5, 115, 0, 0, 1086, 1087, 5, 116, 0, 0, 1087, 1088, 5, 97, 0, 0, 1088, 1089, 5, 110, 0, 0, 1089, 1090, 5, 99, 0, 0, 1090, 1092, 5, 101, 0, 0, 1091, 1079, 1, 0, 0, 0, 1091, 1083, 1, 0, 0, 0, 1092, 166, 1, 0, 0, 0, 1093, 1094, 5, 114, 0, 0, 1094, 1095, 5, 101, 0, 0, 1095, 1096, 5, 109, 0, 0, 1096, 1097, 5, 97, 0, 0, 1097, 1098, 5, 112, 0, 0, 1098, 168, 1, 0, 0, 0, 1099, 1100, 5, 99, 0, 0, 1100, 1101, 5, 111, 0, 0, 1101, 1102, 5, 115, 0, 0, 1102, 1103, 5, 115, 0, 0, 1103, 1104, 5, 105, 0, 0, 1104, 1123, 5, 109, 0, 0, 1105, 1106, 5, 99, 0, 0, 1106, 1107, 5, 111, 0, 0, 1107, 1108, 5, 115, 0, 0, 1108, 1109, 5, 105, 0, 0, 1109, 1110, 5, 110, 0, 0, 1110, 1111, 5, 101, 0, 0, 1111, 1112, 5, 95, 0, 0, 1112, 1113, 5, 115, 0, 0, 1113, 1114, 5, 105, 0, 0, 1114, 1115, 5, 109, 0, 0, 1115, 1116, 5, 105, 0, 0, 1116, 1117, 5, 108, 0, 0, 1117, 1118, 5, 97, 0, 0, 1118, 1119, 5, 114, 0, 0, 1119, 1120, 5, 105, 0, 0, 1120, 1121, 5, 116, 0, 0, 1121, 1123, 5, 121, 0, 0, 1122, 1099, 1, 0, 0, 0, 1122, 1105, 1, 0, 0, 0, 1123, 170, 1, 0, 0, 0, 1124, 1125, 5, 99, 0, 0, 1125, 1126, 5, 111, 0, 0, 1126, 1127, 5, 117, 0, 0, 1127, 1128, 5, 110, 0, 0, 1128, 1139, 5, 116, 0, 0, 1129, 1130, 5, 99, 0, 0, 1130, 1131, 5, 110, 0, 0, 1131, 1139, 5, 116, 0, 0, 1132, 1133, 5, 108, 0, 0, 1133, 1134, 5, 101, 0, 0, 1134, 1135, 5, 110, 0, 0, 1135, 1136, 5, 103, 0, 0, 1136, 1137, 5, 116, 0, 0, 1137, 1139, 5, 104, 0, 0, 1138, 1124, 1, 0, 0, 0, 1138, 1129, 1, 0, 0, 0, 1138, 1132, 1, 0, 0, 0, 1139, 172, 1, 0, 0, 0, 1140, 1141, 5, 114, 0, 0, 1141, 1142, 5, 101, 0, 0, 1142, 1143, 5, 112, 0, 0, 1143, 1144, 5, 101, 0, 0, 1144, 1145, 5, 97, 0, 0, 1145, 1146, 5, 116, 0, 0, 1146, 174, 1, 0, 0, 0, 1147, 1148, 5, 102, 0, 0, 1148, 1149, 5, 108, 0, 0, 1149, 1150, 5, 97, 0, 0, 1150, 1151, 5, 116, 0, 0, 1151, 1152, 5, 116, 0, 0, 1152, 1153, 5, 101, 0, 0, 1153, 1154, 5, 110, 0, 0, 1154, 176, 1, 0, 0, 0, 1155, 1156, 5, 97, 0, 0, 1156, 1157, 5, 112, 0, 0, 1157, 1158, 5, 112, 0, 0, 1158, 1159, 5, 101, 0, 0, 1159, 1160, 5, 110, 0, 0, 1160, 1161, 5, 100, 0, 0, 1161, 178, 1, 0, 0, 0, 1162, 1163, 5, 103, 0, 0, 1163, 1164, 5, 101, 0, 0, 1164, 1165, 5, 116, 0, 0, 1165, 1166, 5, 95, 0, 0, 1166, 1167, 5, 118, 0, 0, 1167, 1168, 5, 97, 0, 0, 1168, 1169, 5, 108, 0, 0, 1169, 1170, 5, 117, 0, 0, 1170, 1171, 5, 101, 0, 0, 1171, 180, 1, 0, 0, 0, 1172, 1173, 5, 102, 0, 0, 1173, 1174, 5, 108, 0, 0, 1174, 1175, 5, 111, 0, 0, 1175, 1176, 5, 119, 0, 0, 1176, 1177, 5, 95, 0, 0, 1177, 1178, 5, 97, 0, 0, 1178, 1179, 5, 112, 0, 0, 1179, 1180, 5, 112, 0, 0, 1180, 1181, 5, 108, 0, 0, 1181, 1182, 5, 121, 0, 0, 1182, 182, 1, 0, 0, 0, 1183, 1184, 5, 98, 0, 0, 1184, 1185, 5, 97, 0, 0, 1185, 1186, 5, 116, 0, 0, 1186, 1187, 5, 99, 0, 0, 1187, 1188, 5, 104, 0, 0, 1188, 1189, 5, 95, 0, 0, 1189, 1190, 5, 115, 0, 0, 1190, 1191, 5, 104, 0, 0, 1191, 1192, 5, 117, 0, 0, 1192, 1193, 5, 102, 0, 0, 1193, 1194, 5, 102, 0, 0, 1194, 1195, 5, 108, 0, 0, 1195, 1210, 5, 101, 0, 0, 1196, 1197, 5, 115, 0, 0, 1197, 1198, 5, 104, 0, 0, 1198, 1199, 5, 117, 0, 0, 1199, 1200, 5, 102, 0, 0, 1200, 1201, 5, 102, 0, 0, 1201, 1202, 5, 108, 0, 0, 1202, 1210, 5, 101, 0, 0, 1203, 1204, 5, 115, 0, 0, 1204, 1205, 5, 101, 0, 0, 1205, 1206, 5, 108, 0, 0, 1206, 1207, 5, 101, 0, 0, 1207, 1208, 5, 99, 0, 0, 1208, 1210, 5, 116, 0, 0, 1209, 1183, 1, 0, 0, 0, 1209, 1196, 1, 0, 0, 0, 1209, 1203, 1, 0, 0, 0, 1210, 184, 1, 0, 0, 0, 1211, 1212, 5, 109, 0, 0, 1212, 1213, 5, 111, 0, 0, 1213, 1214, 5, 116, 0, 0, 1214, 1215, 5, 105, 0, 0, 1215, 1216, 5, 111, 0, 0, 1216, 1217, 5, 110, 0, 0, 1217, 1218, 5, 95, 0, 0, 1218, 1219, 5, 109, 0, 0, 1219, 1220, 5, 97, 0, 0, 1220, 1221, 5, 115, 0, 0, 1221, 1222, 5, 107, 0, 0, 1222, 186, 1, 0, 0, 0, 1223, 1224, 5, 102, 0, 0, 1224, 1225, 5, 108, 0, 0, 1225, 1226, 5, 111, 0, 0, 1226, 1227, 5, 119, 0, 0, 1227, 1228, 5, 95, 0, 0, 1228, 1229, 5, 116, 0, 0, 1229, 1230, 5, 111, 0, 0, 1230, 1231, 5, 95, 0, 0, 1231, 1232, 5, 105, 0, 0, 1232, 1233, 5, 109, 0, 0, 1233, 1234, 5, 97, 0, 0, 1234, 1235, 5, 103, 0, 0, 1235, 1236, 5, 101, 0, 0, 1236, 188, 1, 0, 0, 0, 1237, 1238, 5, 102, 0, 0, 1238, 1239, 5, 108, 0, 0, 1239, 1240, 5, 111, 0, 0, 1240, 1241, 5, 119, 0, 0, 1241, 1242, 5, 95, 0, 0, 1242, 1243, 5, 109, 0, 0, 1243, 1244, 5, 97, 0, 0, 1244, 1260, 5, 103, 0, 0, 1245, 1246, 5, 102, 0, 0, 1246, 1247, 5, 108, 0, 0, 1247, 1248, 5, 111, 0, 0, 1248, 1249, 5, 119, 0, 0, 1249, 1250, 5, 95, 0, 0, 1250, 1251, 5, 109, 0, 0, 1251, 1252, 5, 97, 0, 0, 1252, 1253, 5, 103, 0, 0, 1253, 1254, 5, 110, 0, 0, 1254, 1255, 5, 105, 0, 0, 1255, 1256, 5, 116, 0, 0, 1256, 1257, 5, 117, 0, 0, 1257, 1258, 5, 100, 0, 0, 1258, 1260, 5, 101, 0, 0, 1259, 1237, 1, 0, 0, 0, 1259, 1245, 1, 0, 0, 0, 1260, 190, 1, 0, 0, 0, 1261, 1262, 5, 102, 0, 0, 1262, 1263, 5, 108, 0, 0, 1263, 1264, 5, 111, 0, 0, 1264, 1265, 5, 119, 0, 0, 1265, 1266, 5, 95, 0, 0, 1266, 1267, 5, 97, 0, 0, 1267, 1268, 5, 110, 0, 0, 1268, 1280, 5, 103, 0, 0, 1269, 1270, 5, 102, 0, 0, 1270, 1271, 5, 108, 0, 0, 1271, 1272, 5, 111, 0, 0, 1272, 1273, 5, 119, 0, 0, 1273, 1274, 5, 95, 0, 0, 1274, 1275, 5, 97, 0, 0, 1275, 1276, 5, 110, 0, 0, 1276, 1277, 5, 103, 0, 0, 1277, 1278, 5, 108, 0, 0, 1278, 1280, 5, 101, 0, 0, 1279, 1261, 1, 0, 0, 0, 1279, 1269, 1, 0, 0, 0, 1280, 192, 1, 0, 0, 0, 1281, 1282, 5, 119, 0, 0, 1282, 1283, 5, 104, 0, 0, 1283, 1284, 5, 101, 0, 0, 1284, 1285, 5, 114, 0, 0, 1285, 1286, 5, 101, 0, 0, 1286, 194, 1, 0, 0, 0, 1287, 1288, 5, 104, 0, 0, 1288, 1289, 5, 105, 0, 0, 1289, 1290, 5, 115, 0, 0, 1290, 1291, 5, 116, 0, 0, 1291, 1292, 5, 111, 0, 0, 1292, 1293, 5, 103, 0, 0, 1293, 1294, 5, 114, 0, 0, 1294, 1295, 5, 97, 0, 0, 1295, 1301, 5, 109, 0, 0, 1296, 1297, 5, 104, 0, 0, 1297, 1298, 5, 105, 0, 0, 1298, 1299, 5, 115, 0, 0, 1299, 1301, 5, 116, 0, 0, 1300, 1287, 1, 0, 0, 0, 1300, 1296, 1, 0, 0, 0, 1301, 196, 1, 0, 0, 0, 1302, 1303, 5, 111, 0, 0, 1303, 1304, 5, 118, 0, 0, 1304, 1305, 5, 101, 0, 0, 1305, 1306, 5, 114, 0, 0, 1306, 1307, 5, 108, 0, 0, 1307, 1308, 5, 97, 0, 0, 1308, 1309, 5, 121, 0, 0, 1309, 198, 1, 0, 0, 0, 1310, 1311, 5, 112, 0, 0, 1311, 1312, 5, 97, 0, 0, 1312, 1313, 5, 100, 0, 0, 1313, 200, 1, 0, 0, 0, 1314, 1315, 5, 99, 0, 0, 1315, 1316, 5, 114, 0, 0, 1316, 1317, 5, 111, 0, 0, 1317, 1318, 5, 115, 0, 0, 1318, 1319, 5, 115, 0, 0, 1319, 202, 1, 0, 0, 0, 1320, 1321, 5, 109, 0, 0, 1321, 1322, 5, 97, 0, 0, 1322, 1323, 5, 116, 0, 0, 1323, 1324, 5, 109, 0, 0, 1324, 1325, 5, 117, 0, 0, 1325, 1326, 5, 108, 0, 0, 1326, 204, 1, 0, 0, 0, 1327, 1328, 5, 114, 0, 0, 1328, 1329, 5, 105, 0, 0, 1329, 1330, 5, 102, 0, 0, 1330, 1331, 5, 101, 0, 0, 1331, 206, 1, 0, 0, 0, 1332, 1333, 5, 98, 0, 0, 1333, 1334, 5, 110, 0, 0, 1334, 1335, 5, 111, 0, 0, 1335, 1348, 5, 116, 0, 0, 1336, 1337, 5, 98, 0, 0, 1337, 1338, 5, 105, 0, 0, 1338, 1339, 5, 116, 0, 0, 1339, 1340, 5, 119, 0, 0, 1340, 1341, 5, 105, 0, 0, 1341, 1342, 5, 115, 0, 0, 1342, 1343, 5, 101, 0, 0, 1343, 1344, 5, 95, 0, 0, 1344, 1345, 5, 110, 0, 0, 1345, 1346, 5, 111, 0, 0, 1346, 1348, 5, 116, 0, 0, 1347, 1332, 1, 0, 0, 0, 1347, 1336, 1, 0, 0, 0, 1348, 208, 1, 0, 0, 0, 1349, 1350, 5, 98, 0, 0, 1350, 1351, 5, 105, 0, 0, 1351, 1352, 5, 116, 0, 0, 1352, 1353, 5, 99, 0, 0, 1353, 1354, 5, 111, 0, 0, 1354, 1355, 5, 117, 0, 0, 1355, 1356, 5, 110, 0, 0, 1356, 1372, 5, 116, 0, 0, 1357, 1358, 5, 112, 0, 0, 1358, 1359, 5, 111, 0, 0, 1359, 1360, 5, 112, 0, 0, 1360, 1361, 5, 99, 0, 0, 1361, 1362, 5, 111, 0, 0, 1362, 1363, 5, 117, 0, 0, 1363, 1364, 5, 110, 0, 0, 1364, 1372, 5, 116, 0, 0, 1365, 1366, 5, 112, 0, 0, 1366, 1367, 5, 111, 0, 0, 1367, 1368, 5, 112, 0, 0, 1368, 1369, 5, 99, 0, 0, 1369, 1370, 5, 110, 0, 0, 1370, 1372, 5, 116, 0, 0, 1371, 1349, 1, 0, 0, 0, 1371, 1357, 1, 0, 0, 0, 1371, 1365, 1, 0, 0, 0, 1372, 210, 1, 0, 0, 0, 1373, 1374, 5, 115, 0, 0, 1374, 1375, 5, 104, 0, 0, 1375, 1376, 5, 97, 0, 0, 1376, 1377, 5, 112, 0, 0, 1377, 1378, 5, 101, 0, 0, 1378, 212, 1, 0, 0, 0, 1379, 1380, 5, 98, 0, 0, 1380, 1381, 5, 97, 0, 0, 1381, 1382, 5, 110, 0, 0, 1382, 1395, 5, 100, 0, 0, 1383, 1384, 5, 98, 0, 0, 1384, 1385, 5, 105, 0, 0, 1385, 1386, 5, 116, 0, 0, 1386, 1387, 5, 119, 0, 0, 1387, 1388, 5, 105, 0, 0, 1388, 1389, 5, 115, 0, 0, 1389, 1390, 5, 101, 0, 0, 1390, 1391, 5, 95, 0, 0, 1391, 1392, 5, 97, 0, 0, 1392, 1393, 5, 110, 0, 0, 1393, 1395, 5, 100, 0, 0, 1394, 1379, 1, 0, 0, 0, 1394, 1383, 1, 0, 0, 0, 1395, 214, 1, 0, 0, 0, 1396, 1397, 5, 98, 0, 0, 1397, 1398, 5, 120, 0, 0, 1398, 1399, 5, 111, 0, 0, 1399, 1412, 5, 114, 0, 0, 1400, 1401, 5, 98, 0, 0, 1401, 1402, 5, 105, 0, 0, 1402, 1403, 5, 116, 0, 0, 1403, 1404, 5, 119, 0, 0, 1404, 1405, 5, 105, 0, 0, 1405, 1406, 5, 115, 0, 0, 1406, 1407, 5, 101, 0, 0, 1407, 1408, 5, 95, 0, 0, 1408, 1409, 5, 120, 0, 0, 1409, 1410, 5, 111, 0, 0, 1410, 1412, 5, 114, 0, 0, 1411, 1396, 1, 0, 0, 0, 1411, 1400, 1, 0, 0, 0, 1412, 216, 1, 0, 0, 0, 1413, 1414, 5, 98, 0, 0, 1414, 1415, 5, 111, 0, 0, 1415, 1427, 5, 114, 0, 0, 1416, 1417, 5, 98, 0, 0, 1417, 1418, 5, 105, 0, 0, 1418, 1419, 5, 116, 0, 0, 1419, 1420, 5, 119, 0, 0, 1420, 1421, 5, 105, 0, 0, 1421, 1422, 5, 115, 0, 0, 1422, 1423, 5, 101, 0, 0, 1423, 1424, 5, 95, 0, 0, 1424, 1425, 5, 111, 0, 0, 1425, 1427, 5, 114, 0, 0, 1426, 1413, 1, 0, 0, 0, 1426, 1416, 1, 0, 0, 0, 1427, 218, 1, 0, 0, 0, 1428, 1429, 5, 116, 0, 0, 1429, 1430, 5, 101, 0, 0, 1430, 1431, 5, 110, 0, 0, 1431, 1432, 5, 115, 0, 0, 1432, 1433, 5, 111, 0, 0, 1433, 1434, 5, 114, 0, 0, 1434, 220, 1, 0, 0, 0, 1435, 1436, 5, 115, 0, 0, 1436, 1437, 5, 116, 0, 0, 1437, 1438, 5, 97, 0, 0, 1438, 1439, 5, 99, 0, 0, 1439, 1440, 5, 107, 0, 0, 1440, 1441, 5, 95, 0, 0, 1441, 1442, 5, 112, 0, 0, 1442, 1443, 5, 117, 0, 0, 1443, 1444, 5, 115, 0, 0, 1444, 1445, 5, 104, 0, 0, 1445, 222, 1, 0, 0, 0, 1446, 1447, 5, 115, 0, 0, 1447, 1448, 5, 116, 0, 0, 1448, 1449, 5, 97, 0, 0, 1449, 1450, 5, 99, 0, 0, 1450, 1451, 5, 107, 0, 0, 1451, 1452, 5, 95, 0, 0, 1452, 1453, 5, 112, 0, 0, 1453, 1454, 5, 111, 0, 0, 1454, 1455, 5, 112, 0, 0, 1455, 224, 1, 0, 0, 0, 1456, 1457, 5, 115, 0, 0, 1457, 1458, 5, 116, 0, 0, 1458, 1459, 5, 97, 0, 0, 1459, 1460, 5, 99, 0, 0, 1460, 1461, 5, 107, 0, 0, 1461, 1462, 5, 95, 0, 0, 1462, 1463, 5, 99, 0, 0, 1463, 1464, 5, 108, 0, 0, 1464, 1465, 5, 101, 0, 0, 1465, 1466, 5, 97, 0, 0, 1466, 1467, 5, 114, 0, 0, 1467, 226, 1, 0, 0, 0, 1468, 1469, 5, 115, 0, 0, 1469, 1470, 5, 116, 0, 0, 1470, 1471, 5, 97, 0, 0, 1471, 1472, 5, 99, 0, 0, 1472, 1473, 5, 107, 0, 0, 1473, 1474, 5, 95, 0, 0, 1474, 1475, 5, 104, 0, 0, 1475, 1476, 5, 97, 0, 0, 1476, 1477, 5, 115, 0, 0, 1477, 228, 1, 0, 0, 0, 1478, 1479, 5, 115, 0, 0, 1479, 1480, 5, 116, 0, 0, 1480, 1481, 5, 97, 0, 0, 1481, 1482, 5, 99, 0, 0, 1482, 1483, 5, 107, 0, 0, 1483, 1484, 5, 95, 0, 0, 1484, 1485, 5, 103, 0, 0, 1485, 1486, 5, 101, 0, 0, 1486, 1487, 5, 116, 0, 0, 1487, 230, 1, 0, 0, 0, 1488, 1489, 5, 99, 0, 0, 1489, 1490, 5, 97, 0, 0, 1490, 1509, 5, 116, 0, 0, 1491, 1492, 5, 99, 0, 0, 1492, 1493, 5, 111, 0, 0, 1493, 1494, 5, 110, 0, 0, 1494, 1495, 5, 99, 0, 0, 1495, 1496, 5, 97, 0, 0, 1496, 1509, 5, 116, 0, 0, 1497, 1498, 5, 99, 0, 0, 1498, 1499, 5, 111, 0, 0, 1499, 1500, 5, 110, 0, 0, 1500, 1501, 5, 99, 0, 0, 1501, 1502, 5, 97, 0, 0, 1502, 1503, 5, 116, 0, 0, 1503, 1504, 5, 101, 0, 0, 1504, 1505, 5, 110, 0, 0, 1505, 1506, 5, 97, 0, 0, 1506, 1507, 5, 116, 0, 0, 1507, 1509, 5, 101, 0, 0, 1508, 1488, 1, 0, 0, 0, 1508, 1491, 1, 0, 0, 0, 1508, 1497, 1, 0, 0, 0, 1509, 232, 1, 0, 0, 0, 1510, 1511, 5, 105, 0, 0, 1511, 1512, 5, 110, 0, 0, 1512, 1513, 5, 116, 0, 0, 1513, 234, 1, 0, 0, 0, 1514, 1515, 5, 102, 0, 0, 1515, 1516, 5, 108, 0, 0, 1516, 1517, 5, 111, 0, 0, 1517, 1518, 5, 97, 0, 0, 1518, 1519, 5, 116, 0, 0, 1519, 236, 1, 0, 0, 0, 1520, 1521, 5, 117, 0, 0, 1521, 1522, 5, 112, 0, 0, 1522, 1523, 5, 112, 0, 0, 1523, 1524, 5, 101, 0, 0, 1524, 1525, 5, 114, 0, 0, 1525, 238, 1, 0, 0, 0, 1526, 1527, 5, 108, 0, 0, 1527, 1528, 5, 111, 0, 0, 1528, 1529, 5, 119, 0, 0, 1529, 1530, 5, 101, 0, 0, 1530, 1531, 5, 114, 0, 0, 1531, 240, 1, 0, 0, 0, 1532, 1533, 5, 116, 0, 0, 1533, 1534, 5, 114, 0, 0, 1534, 1535, 5, 105, 0, 0, 1535, 1536, 5, 109, 0, 0, 1536, 242, 1, 0, 0, 0, 1537, 1538, 5, 115, 0, 0, 1538, 1539, 5, 112, 0, 0, 1539, 1540, 5, 108, 0, 0, 1540, 1541, 5, 105, 0, 0, 1541, 1542, 5, 116, 0, 0, 1542, 244, 1, 0, 0, 0, 1543, 1544, 5, 106, 0, 0, 1544, 1545, 5, 111, 0, 0, 1545, 1546, 5, 105, 0, 0, 1546, 1547, 5, 110, 0, 0, 1547, 246, 1, 0, 0, 0, 1548, 1549, 5, 115, 0, 0, 1549, 1550, 5, 117, 0, 0, 1550, 1551, 5, 98, 0, 0, 1551, 1552, 5, 115, 0, 0, 1552, 1553, 5, 116, 0, 0, 1553, 1554, 5, 114, 0, 0, 1554, 1555, 5, 105, 0, 0, 1555, 1556, 5, 110, 0, 0, 1556, 1564, 5, 103, 0, 0, 1557, 1558, 5, 115, 0, 0, 1558, 1559, 5, 117, 0, 0, 1559, 1560, 5, 98, 0, 0, 1560, 1561, 5, 115, 0, 0, 1561, 1562, 5, 116, 0, 0, 1562, 1564, 5, 114, 0, 0, 1563, 1548, 1, 0, 0, 0, 1563, 1557, 1, 0, 0, 0, 1564, 248, 1, 0, 0, 0, 1565, 1566, 5, 102, 0, 0, 1566, 1567, 5, 105, 0, 0, 1567, 1568, 5, 110, 0, 0, 1568, 1569, 5, 100, 0, 0, 1569, 250, 1, 0, 0, 0, 1570, 1571, 5, 114, 0, 0, 1571, 1572, 5, 101, 0, 0, 1572, 1573, 5, 112, 0, 0, 1573, 1574, 5, 108, 0, 0, 1574, 1575, 5, 97, 0, 0, 1575, 1576, 5, 99, 0, 0, 1576, 1577, 5, 101, 0, 0, 1577, 252, 1, 0, 0, 0, 1578, 1579, 5, 100, 0, 0, 1579, 1580, 5, 105, 0, 0, 1580, 1581, 5, 108, 0, 0, 1581, 1582, 5, 97, 0, 0, 1582, 1583, 5, 116, 0, 0, 1583, 1584, 5, 101, 0, 0, 1584, 254, 1, 0, 0, 0, 1585, 1586, 5, 101, 0, 0, 1586, 1587, 5, 114, 0, 0, 1587, 1588, 5, 111, 0, 0, 1588, 1589, 5, 100, 0, 0, 1589, 1590, 5, 101, 0, 0, 1590, 256, 1, 0, 0, 0, 1591, 1592, 5, 109, 0, 0, 1592, 1593, 5, 111, 0, 0, 1593, 1594, 5, 114, 0, 0, 1594, 1595, 5, 112, 0, 0, 1595, 1596, 5, 104, 0, 0, 1596, 1597, 5, 95, 0, 0, 1597, 1598, 5, 111, 0, 0, 1598, 1599, 5, 112, 0, 0, 1599, 1600, 5, 101, 0, 0, 1600, 1601, 5, 110, 0, 0, 1601, 258, 1, 0, 0, 0, 1602, 1603, 5, 109, 0, 0, 1603, 1604, 5, 111, 0, 0, 1604, 1605, 5, 114, 0, 0, 1605, 1606, 5, 112, 0, 0, 1606, 1607, 5, 104, 0, 0, 1607, 1608, 5, 95, 0, 0, 1608, 1609, 5, 99, 0, 0, 1609, 1610, 5, 108, 0, 0, 1610, 1611, 5, 111, 0, 0, 1611, 1612, 5, 115, 0, 0, 1612, 1613, 5, 101, 0, 0, 1613, 260, 1, 0, 0, 0, 1614, 1615, 5, 114, 0, 0, 1615, 1616, 5, 103, 0, 0, 1616, 1617, 5, 98, 0, 0, 1617, 1618, 5, 95, 0, 0, 1618, 1619, 5, 116, 0, 0, 1619, 1620, 5, 111, 0, 0, 1620, 1621, 5, 95, 0, 0, 1621, 1622, 5, 111, 0, 0, 1622, 1623, 5, 107, 0, 0, 1623, 1624, 5, 108, 0, 0, 1624, 1625, 5, 97, 0, 0, 1625, 1626, 5, 98, 0, 0, 1626, 262, 1, 0, 0, 0, 1627, 1628, 5, 114, 0, 0, 1628, 1629, 5, 103, 0, 0, 1629, 1630, 5, 98, 0, 0, 1630, 1631, 5, 95, 0, 0, 1631, 1632, 5, 116, 0, 0, 1632, 1633, 5, 111, 0, 0, 1633, 1634, 5, 95, 0, 0, 1634, 1635, 5, 99, 0, 0, 1635, 1636, 5, 105, 0, 0, 1636, 1637, 5, 101, 0, 0, 1637, 1638, 5, 108, 0, 0, 1638, 1639, 5, 97, 0, 0, 1639, 1640, 5, 98, 0, 0, 1640, 264, 1, 0, 0, 0, 1641, 1642, 5, 111, 0, 0, 1642, 1643, 5, 107, 0, 0, 1643, 1644, 5, 108, 0, 0, 1644, 1645, 5, 97, 0, 0, 1645, 1646, 5, 98, 0, 0, 1646, 1647, 5, 95, 0, 0, 1647, 1648, 5, 116, 0, 0, 1648, 1649, 5, 111, 0, 0, 1649, 1650, 5, 95, 0, 0, 1650, 1651, 5, 114, 0, 0, 1651, 1652, 5, 103, 0, 0, 1652, 1653, 5, 98, 0, 0, 1653, 266, 1, 0, 0, 0, 1654, 1655, 5, 99, 0, 0, 1655, 1656, 5, 105, 0, 0, 1656, 1657, 5, 101, 0, 0, 1657, 1658, 5, 108, 0, 0, 1658, 1659, 5, 97, 0, 0, 1659, 1660, 5, 98, 0, 0, 1660, 1661, 5, 95, 0, 0, 1661, 1662, 5, 116, 0, 0, 1662, 1663, 5, 111, 0, 0, 1663, 1664, 5, 95, 0, 0, 1664, 1665, 5, 114, 0, 0, 1665, 1666, 5, 103, 0, 0, 1666, 1667, 5, 98, 0, 0, 1667, 268, 1, 0, 0, 0, 1668, 1669, 5, 114, 0, 0, 1669, 1670, 5, 103, 0, 0, 1670, 1671, 5, 98, 0, 0, 1671, 1672, 5, 95, 0, 0, 1672, 1673, 5, 116, 0, 0, 1673, 1674, 5, 111, 0, 0, 1674, 1675, 5, 95, 0, 0, 1675, 1676, 5, 104, 0, 0, 1676, 1677, 5, 115, 0, 0, 1677, 1678, 5, 118, 0, 0, 1678, 270, 1, 0, 0, 0, 1679, 1680, 5, 104, 0, 0, 1680, 1681, 5, 115, 0, 0, 1681, 1682, 5, 118, 0, 0, 1682, 1683, 5, 95, 0, 0, 1683, 1684, 5, 116, 0, 0, 1684, 1685, 5, 111, 0, 0, 1685, 1686, 5, 95, 0, 0, 1686, 1687, 5, 114, 0, 0, 1687, 1688, 5, 103, 0, 0, 1688, 1689, 5, 98, 0, 0, 1689, 272, 1, 0, 0, 0, 1690, 1691, 5, 105, 0, 0, 1691, 1692, 5, 110, 0, 0, 1692, 1693, 5, 116, 0, 0, 1693, 1694, 5, 95, 0, 0, 1694, 1695, 5, 116, 0, 0, 1695, 1696, 5, 111, 0, 0, 1696, 1697, 5, 95, 0, 0, 1697, 1698, 5, 114, 0, 0, 1698, 1699, 5, 103, 0, 0, 1699, 1700, 5, 98, 0, 0, 1700, 274, 1, 0, 0, 0, 1701, 1702, 5, 114, 0, 0, 1702, 1703, 5, 103, 0, 0, 1703, 1704, 5, 98, 0, 0, 1704, 1705, 5, 95, 0, 0, 1705, 1706, 5, 116, 0, 0, 1706, 1707, 5, 111, 0, 0, 1707, 1708, 5, 95, 0, 0, 1708, 1709, 5, 105, 0, 0, 1709, 1710, 5, 110, 0, 0, 1710, 1711, 5, 116, 0, 0, 1711, 276, 1, 0, 0, 0, 1712, 1713, 5, 105, 0, 0, 1713, 1714, 5, 110, 0, 0, 1714, 1715, 5, 116, 0, 0, 1715, 1716, 5, 101, 0, 0, 1716, 1717, 5, 114, 0, 0, 1717, 1718, 5, 112, 0, 0, 1718, 1719, 5, 111, 0, 0, 1719, 1720, 5, 108, 0, 0, 1720, 1721, 5, 97, 0, 0, 1721, 1722, 5, 116, 0, 0, 1722, 1723, 5, 101, 0, 0, 1723, 1724, 5, 95, 0, 0, 1724, 1725, 5, 108, 0, 0, 1725, 1726, 5, 105, 0, 0, 1726, 1727, 5, 110, 0, 0, 1727, 1728, 5, 101, 0, 0, 1728, 1729, 5, 97, 0, 0, 1729, 1730, 5, 114, 0, 0, 1730, 278, 1, 0, 0, 0, 1731, 1732, 5, 105, 0, 0, 1732, 1733, 5, 110, 0, 0, 1733, 1734, 5, 116, 0, 0, 1734, 1735, 5, 101, 0, 0, 1735, 1736, 5, 114, 0, 0, 1736, 1737, 5, 112, 0, 0, 1737, 1738, 5, 111, 0, 0, 1738, 1739, 5, 108, 0, 0, 1739, 1740, 5, 97, 0, 0, 1740, 1741, 5, 116, 0, 0, 1741, 1742, 5, 101, 0, 0, 1742, 1743, 5, 95, 0, 0, 1743, 1744, 5, 97, 0, 0, 1744, 1745, 5, 114, 0, 0, 1745, 1746, 5, 101, 0, 0, 1746, 1747, 5, 97, 0, 0, 1747, 280, 1, 0, 0, 0, 1748, 1749, 5, 105, 0, 0, 1749, 1750, 5, 110, 0, 0, 1750, 1751, 5, 116, 0, 0, 1751, 1752, 5, 101, 0, 0, 1752, 1753, 5, 114, 0, 0, 1753, 1754, 5, 112, 0, 0, 1754, 1755, 5, 111, 0, 0, 1755, 1756, 5, 108, 0, 0, 1756, 1757, 5, 97, 0, 0, 1757, 1758, 5, 116, 0, 0, 1758, 1759, 5, 101, 0, 0, 1759, 1760, 5, 95, 0, 0, 1760, 1761, 5, 110, 0, 0, 1761, 1762, 5, 101, 0, 0, 1762, 1763, 5, 97, 0, 0, 1763, 1764, 5, 114, 0, 0, 1764, 1765, 5, 101, 0, 0, 1765, 1766, 5, 115, 0, 0, 1766, 1793, 5, 116, 0, 0, 1767, 1768, 5, 105, 0, 0, 1768, 1769, 5, 110, 0, 0, 1769, 1770, 5, 116, 0, 0, 1770, 1771, 5, 101, 0, 0, 1771, 1772, 5, 114, 0, 0, 1772, 1773, 5, 112, 0, 0, 1773, 1774, 5, 111, 0, 0, 1774, 1775, 5, 108, 0, 0, 1775, 1776, 5, 97, 0, 0, 1776, 1777, 5, 116, 0, 0, 1777, 1778, 5, 101, 0, 0, 1778, 1779, 5, 95, 0, 0, 1779, 1780, 5, 110, 0, 0, 1780, 1781, 5, 101, 0, 0, 1781, 1782, 5, 97, 0, 0, 1782, 1783, 5, 114, 0, 0, 1783, 1784, 5, 101, 0, 0, 1784, 1785, 5, 115, 0, 0, 1785, 1786, 5, 116, 0, 0, 1786, 1787, 5, 95, 0, 0, 1787, 1788, 5, 101, 0, 0, 1788, 1789, 5, 120, 0, 0, 1789, 1790, 5, 97, 0, 0, 1790, 1791, 5, 99, 0, 0, 1791, 1793, 5, 116, 0, 0, 1792, 1748, 1, 0, 0, 0, 1792, 1767, 1, 0, 0, 0, 1793, 282, 1, 0, 0, 0, 1794, 1795, 5, 116, 0, 0, 1795, 1796, 5, 101, 0, 0, 1796, 1797, 5, 120, 0, 0, 1797, 1798, 5, 116, 0, 0, 1798, 1799, 5, 95, 0, 0, 1799, 1800, 5, 105, 0, 0, 1800, 1801, 5, 109, 0, 0, 1801, 1802, 5, 97, 0, 0, 1802, 1803, 5, 103, 0, 0, 1803, 1804, 5, 101, 0, 0, 1804, 284, 1, 0, 0, 0, 1805, 1806, 5, 97, 0, 0, 1806, 1807, 5, 115, 0, 0, 1807, 1808, 5, 95, 0, 0, 1808, 1809, 5, 110, 0, 0, 1809, 1810, 5, 101, 0, 0, 1810, 1811, 5, 115, 0, 0, 1811, 1812, 5, 116, 0, 0, 1812, 1813, 5, 101, 0, 0, 1813, 1814, 5, 100, 0, 0, 1814, 1815, 5, 95, 0, 0, 1815, 1816, 5, 116, 0, 0, 1816, 1817, 5, 101, 0, 0, 1817, 1818, 5, 110, 0, 0, 1818, 1819, 5, 115, 0, 0, 1819, 1820, 5, 111, 0, 0, 1820, 1821, 5, 114, 0, 0, 1821, 286, 1, 0, 0, 0, 1822, 1823, 5, 115, 0, 0, 1823, 1824, 5, 118, 0, 0, 1824, 1854, 5, 100, 0, 0, 1825, 1826, 5, 115, 0, 0, 1826, 1827, 5, 105, 0, 0, 1827, 1828, 5, 110, 0, 0, 1828, 1829, 5, 103, 0, 0, 1829, 1830, 5, 117, 0, 0, 1830, 1831, 5, 108, 0, 0, 1831, 1832, 5, 97, 0, 0, 1832, 1833, 5, 114, 0, 0, 1833, 1834, 5, 95, 0, 0, 1834, 1835, 5, 118, 0, 0, 1835, 1836, 5, 97, 0, 0, 1836, 1837, 5, 108, 0, 0, 1837, 1838, 5, 117, 0, 0, 1838, 1839, 5, 101, 0, 0, 1839, 1840, 5, 95, 0, 0, 1840, 1841, 5, 100, 0, 0, 1841, 1842, 5, 101, 0, 0, 1842, 1843, 5, 99, 0, 0, 1843, 1844, 5, 111, 0, 0, 1844, 1845, 5, 109, 0, 0, 1845, 1846, 5, 112, 0, 0, 1846, 1847, 5, 111, 0, 0, 1847, 1848, 5, 115, 0, 0, 1848, 1849, 5, 105, 0, 0, 1849, 1850, 5, 116, 0, 0, 1850, 1851, 5, 105, 0, 0, 1851, 1852, 5, 111, 0, 0, 1852, 1854, 5, 110, 0, 0, 1853, 1822, 1, 0, 0, 0, 1853, 1825, 1, 0, 0, 0, 1854, 288, 1, 0, 0, 0, 1855, 1856, 5, 100, 0, 0, 1856, 1857, 5, 105, 0, 0, 1857, 1858, 5, 97, 0, 0, 1858, 1859, 5, 103, 0, 0, 1859, 1860, 5, 111, 0, 0, 1860, 1861, 5, 110, 0, 0, 1861, 1862, 5, 97, 0, 0, 1862, 1863, 5, 108, 0, 0, 1863, 1864, 5, 95, 0, 0, 1864, 1865, 5, 109, 0, 0, 1865, 1866, 5, 97, 0, 0, 1866, 1867, 5, 116, 0, 0, 1867, 1868, 5, 114, 0, 0, 1868, 1869, 5, 105, 0, 0, 1869, 1875, 5, 120, 0, 0, 1870, 1871, 5, 100, 0, 0, 1871, 1872, 5, 105, 0, 0, 1872, 1873, 5, 97, 0, 0, 1873, 1875, 5, 103, 0, 0, 1874, 1855, 1, 0, 0, 0, 1874, 1870, 1, 0, 0, 0, 1875, 290, 1, 0, 0, 0, 1876, 1877, 5, 105, 0, 0, 1877, 1878, 5, 102, 0, 0, 1878, 292, 1, 0, 0, 0, 1879, 1880, 5, 101, 0, 0, 1880, 1881, 5, 108, 0, 0, 1881, 1882, 5, 115, 0, 0, 1882, 1883, 5, 101, 0, 0, 1883, 294, 1, 0, 0, 0, 1884, 1885, 5, 119, 0, 0, 1885, 1886, 5, 104, 0, 0, 1886, 1887, 5, 105, 0, 0, 1887, 1888, 5, 108, 0, 0, 1888, 1889, 5, 101, 0, 0, 1889, 296, 1, 0, 0, 0, 1890, 1891, 5, 102, 0, 0, 1891, 1892, 5, 111, 0, 0, 1892, 1893, 5, 114, 0, 0, 1893, 298, 1, 0, 0, 0, 1894, 1895, 5, 105, 0, 0, 1895, 1896, 5, 110, 0, 0, 1896, 300, 1, 0, 0, 0, 1897, 1898, 5, 98, 0, 0, 1898, 1899, 5, 114, 0, 0, 1899, 1900, 5, 101, 0, 0, 1900, 1901, 5, 97, 0, 0, 1901, 1902, 5, 107, 0, 0, 1902, 302, 1, 0, 0, 0, 1903, 1904, 5, 99, 0, 0, 1904, 1905, 5, 111, 0, 0, 1905, 1906, 5, 110, 0, 0, 1906, 1907, 5, 116, 0, 0, 1907, 1908, 5, 105, 0, 0, 1908, 1909, 5, 110, 0, 0, 1909, 1910, 5, 117, 0, 0, 1910, 1911, 5, 101, 0, 0, 1911, 304, 1, 0, 0, 0, 1912, 1913, 5, 114, 0, 0, 1913, 1914, 5, 101, 0, 0, 1914, 1915, 5, 116, 0, 0, 1915, 1916, 5, 117, 0, 0, 1916, 1917, 5, 114, 0, 0, 1917, 1918, 5, 110, 0, 0, 1918, 306, 1, 0, 0, 0, 1919, 1920, 5, 116, 0, 0, 1920, 1921, 5, 105, 0, 0, 1921, 1922, 5, 109, 0, 0, 1922, 1923, 5, 101, 0, 0, 1923, 1924, 5, 115, 0, 0, 1924, 1925, 5, 116, 0, 0, 1925, 1926, 5, 97, 0, 0, 1926, 1927, 5, 109, 0, 0, 1927, 1932, 5, 112, 0, 0, 1928, 1929, 5, 110, 0, 0, 1929, 1930, 5, 111, 0, 0, 1930, 1932, 5, 119, 0, 0, 1931, 1919, 1, 0, 0, 0, 1931, 1928, 1, 0, 0, 0, 1932, 308, 1, 0, 0, 0, 1933, 1934, 5, 115, 0, 0, 1934, 1935, 5, 111, 0, 0, 1935, 1936, 5, 114, 0, 0, 1936, 1937, 5, 116, 0, 0, 1937, 310, 1, 0, 0, 0, 1938, 1939, 5, 97, 0, 0, 1939, 1940, 5, 114, 0, 0, 1940, 1941, 5, 103, 0, 0, 1941, 1942, 5, 115, 0, 0, 1942, 1943, 5, 111, 0, 0, 1943, 1944, 5, 114, 0, 0, 1944, 1945, 5, 116, 0, 0, 1945, 312, 1, 0, 0, 0, 1946, 1947, 5, 97, 0, 0, 1947, 1948, 5, 114, 0, 0, 1948, 1949, 5, 103, 0, 0, 1949, 1950, 5, 109, 0, 0, 1950, 1951, 5, 105, 0, 0, 1951, 1952, 5, 110, 0, 0, 1952, 314, 1, 0, 0, 0, 1953, 1954, 5, 97, 0, 0, 1954, 1955, 5, 114, 0, 0, 1955, 1956, 5, 103, 0, 0, 1956, 1957, 5, 109, 0, 0, 1957, 1958, 5, 97, 0, 0, 1958, 1959, 5, 120, 0, 0, 1959, 316, 1, 0, 0, 0, 1960, 1961, 5, 115, 0, 0, 1961, 1962, 5, 111, 0, 0, 1962, 1963, 5, 102, 0, 0, 1963, 1964, 5, 116, 0, 0, 1964, 1965, 5, 109, 0, 0, 1965, 1966, 5, 97, 0, 0, 1966, 1967, 5, 120, 0, 0, 1967, 318, 1, 0, 0, 0, 1968, 1969, 5, 115, 0, 0, 1969, 1970, 5, 111, 0, 0, 1970, 1971, 5, 102, 0, 0, 1971, 1972, 5, 116, 0, 0, 1972, 1973, 5, 109, 0, 0, 1973, 1974, 5, 105, 0, 0, 1974, 1975, 5, 110, 0, 0, 1975, 320, 1, 0, 0, 0, 1976, 1977, 5, 117, 0, 0, 1977, 1978, 5, 110, 0, 0, 1978, 1979, 5, 105, 0, 0, 1979, 1980, 5, 113, 0, 0, 1980, 1981, 5, 117, 0, 0, 1981, 1982, 5, 101, 0, 0, 1982, 322, 1, 0, 0, 0, 1983, 1984, 5, 102, 0, 0, 1984, 1985, 5, 108, 0, 0, 1985, 1986, 5, 105, 0, 0, 1986, 1987, 5, 112, 0, 0, 1987, 324, 1, 0, 0, 0, 1988, 1989, 5, 115, 0, 0, 1989, 1990, 5, 116, 0, 0, 1990, 1991, 5, 97, 0, 0, 1991, 1992, 5, 114, 0, 0, 1992, 1993, 5, 116, 0, 0, 1993, 1994, 5, 115, 0, 0, 1994, 1995, 5, 119, 0, 0, 1995, 1996, 5, 105, 0, 0, 1996, 1997, 5, 116, 0, 0, 1997, 1998, 5, 104, 0, 0, 1998, 326, 1, 0, 0, 0, 1999, 2000, 5, 101, 0, 0, 2000, 2001, 5, 110, 0, 0, 2001, 2002, 5, 100, 0, 0, 2002, 2003, 5, 115, 0, 0, 2003, 2004, 5, 119, 0, 0, 2004, 2005, 5, 105, 0, 0, 2005, 2006, 5, 116, 0, 0, 2006, 2007, 5, 104, 0, 0, 2007, 328, 1, 0, 0, 0, 2008, 2009, 5, 115, 0, 0, 2009, 2010, 5, 113, 0, 0, 2010, 2011, 5, 117, 0, 0, 2011, 2012, 5, 101, 0, 0, 2012, 2013, 5, 101, 0, 0, 2013, 2014, 5, 122, 0, 0, 2014, 2015, 5, 101, 0, 0, 2015, 330, 1, 0, 0, 0, 2016, 2017, 5, 117, 0, 0, 2017, 2018, 5, 110, 0, 0, 2018, 2019, 5, 115, 0, 0, 2019, 2020, 5, 113, 0, 0, 2020, 2021, 5, 117, 0, 0, 2021, 2022, 5, 101, 0, 0, 2022, 2023, 5, 101, 0, 0, 2023, 2024, 5, 122, 0, 0, 2024, 2025, 5, 101, 0, 0, 2025, 332, 1, 0, 0, 0, 2026, 2027, 5, 114, 0, 0, 2027, 2028, 5, 111, 0, 0, 2028, 2029, 5, 108, 0, 0, 2029, 2030, 5, 108, 0, 0, 2030, 334, 1, 0, 0, 0, 2031, 2032, 5, 99, 0, 0, 2032, 2033, 5, 111, 0, 0, 2033, 2034, 5, 118, 0, 0, 2034, 336, 1, 0, 0, 0, 2035, 2036, 5, 99, 0, 0, 2036, 2037, 5, 111, 0, 0, 2037, 2038, 5, 114, 0, 0, 2038, 2051, 5, 114, 0, 0, 2039, 2040, 5, 99, 0, 0, 2040, 2041, 5, 111, 0, 0, 2041, 2042, 5, 114, 0, 0, 2042, 2043, 5, 114, 0, 0, 2043, 2044, 5, 101, 0, 0, 2044, 2045, 5, 108, 0, 0, 2045, 2046, 5, 97, 0, 0, 2046, 2047, 5, 116, 0, 0, 2047, 2048, 5, 105, 0, 0, 2048, 2049, 5, 111, 0, 0, 2049, 2051, 5, 110, 0, 0, 2050, 2035, 1, 0, 0, 0, 2050, 2039, 1, 0, 0, 0, 2051, 338, 1, 0, 0, 0, 2052, 2053, 5, 101, 0, 0, 2053, 2054, 5, 110, 0, 0, 2054, 2055, 5, 116, 0, 0, 2055, 2056, 5, 114, 0, 0, 2056, 2057, 5, 111, 0, 0, 2057, 2058, 5, 112, 0, 0, 2058, 2059, 5, 121, 0, 0, 2059, 340, 1, 0, 0, 0, 2060, 2061, 5, 99, 0, 0, 2061, 2062, 5, 114, 0, 0, 2062, 2063, 5, 111, 0, 0, 2063, 2064, 5, 112, 0, 0, 2064, 342, 1, 0, 0, 0, 2065, 2066, 5, 110, 0, 0, 2066, 2067, 5, 111, 0, 0, 2067, 2068, 5, 110, 0, 0, 2068, 2082, 5, 101, 0, 0, 2069, 2070, 5, 78, 0, 0, 2070, 2071, 5, 111, 0, 0, 2071, 2072, 5, 110, 0, 0, 2072, 2082, 5, 101, 0, 0, 2073, 2074, 5, 110, 0, 0, 2074, 2075, 5, 117, 0, 0, 2075, 2076, 5, 108, 0, 0, 2076, 2082, 5, 108, 0, 0, 2077, 2078, 5, 78, 0, 0, 2078, 2079, 5, 85, 0, 0, 2079, 2080, 5, 76, 0, 0, 2080, 2082, 5, 76, 0, 0, 2081, 2065, 1, 0, 0, 0, 2081, 2069, 1, 0, 0, 0, 2081, 2073, 1, 0, 0, 0, 2081, 2077, 1, 0, 0, 0, 2082, 344, 1, 0, 0, 0, 2083, 2084, 5, 110, 0, 0, 2084, 2085, 5, 111, 0, 0, 2085, 2086, 5, 105, 0, 0, 2086, 2087, 5, 115, 0, 0, 2087, 2107, 5, 101, 0, 0, 2088, 2089, 5, 114, 0, 0, 2089, 2090, 5, 97, 0, 0, 2090, 2091, 5, 110, 0, 0, 2091, 2092, 5, 100, 0, 0, 2092, 2107, 5, 110, 0, 0, 2093, 2094, 5, 114, 0, 0, 2094, 2095, 5, 97, 0, 0, 2095, 2096, 5, 110, 0, 0, 2096, 2097, 5, 100, 0, 0, 2097, 2098, 5, 111, 0, 0, 2098, 2099, 5, 109, 0, 0, 2099, 2100, 5, 95, 0, 0, 2100, 2101, 5, 110, 0, 0, 2101, 2102, 5, 111, 0, 0, 2102, 2103, 5, 114, 0, 0, 2103, 2104, 5, 109, 0, 0, 2104, 2105, 5, 97, 0, 0, 2105, 2107, 5, 108, 0, 0, 2106, 2083, 1, 0, 0, 0, 2106, 2088, 1, 0, 0, 0, 2106, 2093, 1, 0, 0, 0, 2107, 346, 1, 0, 0, 0, 2108, 2109, 5, 114, 0, 0, 2109, 2110, 5, 97, 0, 0, 2110, 2111, 5, 110, 0, 0, 2111, 2132, 5, 100, 0, 0, 2112, 2113, 5, 114, 0, 0, 2113, 2114, 5, 97, 0, 0, 2114, 2115, 5, 110, 0, 0, 2115, 2116, 5, 100, 0, 0, 2116, 2132, 5, 117, 0, 0, 2117, 2118, 5, 114, 0, 0, 2118, 2119, 5, 97, 0, 0, 2119, 2120, 5, 110, 0, 0, 2120, 2121, 5, 100, 0, 0, 2121, 2122, 5, 111, 0, 0, 2122, 2123, 5, 109, 0, 0, 2123, 2124, 5, 95, 0, 0, 2124, 2125, 5, 117, 0, 0, 2125, 2126, 5, 110, 0, 0, 2126, 2127, 5, 105, 0, 0, 2127, 2128, 5, 102, 0, 0, 2128, 2129, 5, 111, 0, 0, 2129, 2130, 5, 114, 0, 0, 2130, 2132, 5, 109, 0, 0, 2131, 2108, 1, 0, 0, 0, 2131, 2112, 1, 0, 0, 0, 2131, 2117, 1, 0, 0, 0, 2132, 348, 1, 0, 0, 0, 2133, 2134, 5, 114, 0, 0, 2134, 2135, 5, 97, 0, 0, 2135, 2136, 5, 110, 0, 0, 2136, 2137, 5, 100, 0, 0, 2137, 2152, 5, 99, 0, 0, 2138, 2139, 5, 114, 0, 0, 2139, 2140, 5, 97, 0, 0, 2140, 2141, 5, 110, 0, 0, 2141, 2142, 5, 100, 0, 0, 2142, 2143, 5, 111, 0, 0, 2143, 2144, 5, 109, 0, 0, 2144, 2145, 5, 95, 0, 0, 2145, 2146, 5, 99, 0, 0, 2146, 2147, 5, 97, 0, 0, 2147, 2148, 5, 117, 0, 0, 2148, 2149, 5, 99, 0, 0, 2149, 2150, 5, 104, 0, 0, 2150, 2152, 5, 121, 0, 0, 2151, 2133, 1, 0, 0, 0, 2151, 2138, 1, 0, 0, 0, 2152, 350, 1, 0, 0, 0, 2153, 2154, 5, 114, 0, 0, 2154, 2155, 5, 97, 0, 0, 2155, 2156, 5, 110, 0, 0, 2156, 2157, 5, 100, 0, 0, 2157, 2177, 5, 101, 0, 0, 2158, 2159, 5, 114, 0, 0, 2159, 2160, 5, 97, 0, 0, 2160, 2161, 5, 110, 0, 0, 2161, 2162, 5, 100, 0, 0, 2162, 2163, 5, 111, 0, 0, 2163, 2164, 5, 109, 0, 0, 2164, 2165, 5, 95, 0, 0, 2165, 2166, 5, 101, 0, 0, 2166, 2167, 5, 120, 0, 0, 2167, 2168, 5, 112, 0, 0, 2168, 2169, 5, 111, 0, 0, 2169, 2170, 5, 110, 0, 0, 2170, 2171, 5, 101, 0, 0, 2171, 2172, 5, 110, 0, 0, 2172, 2173, 5, 116, 0, 0, 2173, 2174, 5, 105, 0, 0, 2174, 2175, 5, 97, 0, 0, 2175, 2177, 5, 108, 0, 0, 2176, 2153, 1, 0, 0, 0, 2176, 2158, 1, 0, 0, 0, 2177, 352, 1, 0, 0, 0, 2178, 2179, 5, 114, 0, 0, 2179, 2180, 5, 97, 0, 0, 2180, 2181, 5, 110, 0, 0, 2181, 2182, 5, 100, 0, 0, 2182, 2183, 5, 108, 0, 0, 2183, 2202, 5, 110, 0, 0, 2184, 2185, 5, 114, 0, 0, 2185, 2186, 5, 97, 0, 0, 2186, 2187, 5, 110, 0, 0, 2187, 2188, 5, 100, 0, 0, 2188, 2189, 5, 111, 0, 0, 2189, 2190, 5, 109, 0, 0, 2190, 2191, 5, 95, 0, 0, 2191, 2192, 5, 108, 0, 0, 2192, 2193, 5, 111, 0, 0, 2193, 2194, 5, 103, 0, 0, 2194, 2195, 5, 95, 0, 0, 2195, 2196, 5, 110, 0, 0, 2196, 2197, 5, 111, 0, 0, 2197, 2198, 5, 114, 0, 0, 2198, 2199, 5, 109, 0, 0, 2199, 2200, 5, 97, 0, 0, 2200, 2202, 5, 108, 0, 0, 2201, 2178, 1, 0, 0, 0, 2201, 2184, 1, 0, 0, 0, 2202, 354, 1, 0, 0, 0, 2203, 2204, 5, 114, 0, 0, 2204, 2205, 5, 97, 0, 0, 2205, 2206, 5, 110, 0, 0, 2206, 2207, 5, 100, 0, 0, 2207, 2225, 5, 98, 0, 0, 2208, 2209, 5, 114, 0, 0, 2209, 2210, 5, 97, 0, 0, 2210, 2211, 5, 110, 0, 0, 2211, 2212, 5, 100, 0, 0, 2212, 2213, 5, 111, 0, 0, 2213, 2214, 5, 109, 0, 0, 2214, 2215, 5, 95, 0, 0, 2215, 2216, 5, 98, 0, 0, 2216, 2217, 5, 101, 0, 0, 2217, 2218, 5, 114, 0, 0, 2218, 2219, 5, 110, 0, 0, 2219, 2220, 5, 111, 0, 0, 2220, 2221, 5, 117, 0, 0, 2221, 2222, 5, 108, 0, 0, 2222, 2223, 5, 108, 0, 0, 2223, 2225, 5, 105, 0, 0, 2224, 2203, 1, 0, 0, 0, 2224, 2208, 1, 0, 0, 0, 2225, 356, 1, 0, 0, 0, 2226, 2227, 5, 114, 0, 0, 2227, 2228, 5, 97, 0, 0, 2228, 2229, 5, 110, 0, 0, 2229, 2230, 5, 100, 0, 0, 2230, 2246, 5, 112, 0, 0, 2231, 2232, 5, 114, 0, 0, 2232, 2233, 5, 97, 0, 0, 2233, 2234, 5, 110, 0, 0, 2234, 2235, 5, 100, 0, 0, 2235, 2236, 5, 111, 0, 0, 2236, 2237, 5, 109, 0, 0, 2237, 2238, 5, 95, 0, 0, 2238, 2239, 5, 112, 0, 0, 2239, 2240, 5, 111, 0, 0, 2240, 2241, 5, 105, 0, 0, 2241, 2242, 5, 115, 0, 0, 2242, 2243, 5, 115, 0, 0, 2243, 2244, 5, 111, 0, 0, 2244, 2246, 5, 110, 0, 0, 2245, 2226, 1, 0, 0, 0, 2245, 2231, 1, 0, 0, 0, 2246, 358, 1, 0, 0, 0, 2247, 2248, 5, 114, 0, 0, 2248, 2249, 5, 97, 0, 0, 2249, 2250, 5, 110, 0, 0, 2250, 2251, 5, 100, 0, 0, 2251, 2265, 5, 103, 0, 0, 2252, 2253, 5, 114, 0, 0, 2253, 2254, 5, 97, 0, 0, 2254, 2255, 5, 110, 0, 0, 2255, 2256, 5, 100, 0, 0, 2256, 2257, 5, 111, 0, 0, 2257, 2258, 5, 109, 0, 0, 2258, 2259, 5, 95, 0, 0, 2259, 2260, 5, 103, 0, 0, 2260, 2261, 5, 97, 0, 0, 2261, 2262, 5, 109, 0, 0, 2262, 2263, 5, 109, 0, 0, 2263, 2265, 5, 97, 0, 0, 2264, 2247, 1, 0, 0, 0, 2264, 2252, 1, 0, 0, 0, 2265, 360, 1, 0, 0, 0, 2266, 2267, 5, 114, 0, 0, 2267, 2268, 5, 97, 0, 0, 2268, 2269, 5, 110, 0, 0, 2269, 2270, 5, 100, 0, 0, 2270, 2271, 5, 98, 0, 0, 2271, 2272, 5, 101, 0, 0, 2272, 2273, 5, 116, 0, 0, 2273, 2286, 5, 97, 0, 0, 2274, 2275, 5, 114, 0, 0, 2275, 2276, 5, 97, 0, 0, 2276, 2277, 5, 110, 0, 0, 2277, 2278, 5, 100, 0, 0, 2278, 2279, 5, 111, 0, 0, 2279, 2280, 5, 109, 0, 0, 2280, 2281, 5, 95, 0, 0, 2281, 2282, 5, 98, 0, 0, 2282, 2283, 5, 101, 0, 0, 2283, 2284, 5, 116, 0, 0, 2284, 2286, 5, 97, 0, 0, 2285, 2266, 1, 0, 0, 0, 2285, 2274, 1, 0, 0, 0, 2286, 362, 1, 0, 0, 0, 2287, 2288, 5, 114, 0, 0, 2288, 2289, 5, 97, 0, 0, 2289, 2290, 5, 110, 0, 0, 2290, 2291, 5, 100, 0, 0, 2291, 2307, 5, 108, 0, 0, 2292, 2293, 5, 114, 0, 0, 2293, 2294, 5, 97, 0, 0, 2294, 2295, 5, 110, 0, 0, 2295, 2296, 5, 100, 0, 0, 2296, 2297, 5, 111, 0, 0, 2297, 2298, 5, 109, 0, 0, 2298, 2299, 5, 95, 0, 0, 2299, 2300, 5, 108, 0, 0, 2300, 2301, 5, 97, 0, 0, 2301, 2302, 5, 112, 0, 0, 2302, 2303, 5, 108, 0, 0, 2303, 2304, 5, 97, 0, 0, 2304, 2305, 5, 99, 0, 0, 2305, 2307, 5, 101, 0, 0, 2306, 2287, 1, 0, 0, 0, 2306, 2292, 1, 0, 0, 0, 2307, 364, 1, 0, 0, 0, 2308, 2309, 5, 114, 0, 0, 2309, 2310, 5, 97, 0, 0, 2310, 2311, 5, 110, 0, 0, 2311, 2312, 5, 100, 0, 0, 2312, 2313, 5, 103, 0, 0, 2313, 2314, 5, 117, 0, 0, 2314, 2315, 5, 109, 0, 0, 2315, 2316, 5, 98, 0, 0, 2316, 2317, 5, 101, 0, 0, 2317, 2332, 5, 108, 0, 0, 2318, 2319, 5, 114, 0, 0, 2319, 2320, 5, 97, 0, 0, 2320, 2321, 5, 110, 0, 0, 2321, 2322, 5, 100, 0, 0, 2322, 2323, 5, 111, 0, 0, 2323, 2324, 5, 109, 0, 0, 2324, 2325, 5, 95, 0, 0, 2325, 2326, 5, 103, 0, 0, 2326, 2327, 5, 117, 0, 0, 2327, 2328, 5, 109, 0, 0, 2328, 2329, 5, 98, 0, 0, 2329, 2330, 5, 101, 0, 0, 2330, 2332, 5, 108, 0, 0, 2331, 2308, 1, 0, 0, 0, 2331, 2318, 1, 0, 0, 0, 2332, 366, 1, 0, 0, 0, 2333, 2334, 5, 114, 0, 0, 2334, 2335, 5, 97, 0, 0, 2335, 2336, 5, 110, 0, 0, 2336, 2337, 5, 100, 0, 0, 2337, 2353, 5, 119, 0, 0, 2338, 2339, 5, 114, 0, 0, 2339, 2340, 5, 97, 0, 0, 2340, 2341, 5, 110, 0, 0, 2341, 2342, 5, 100, 0, 0, 2342, 2343, 5, 111, 0, 0, 2343, 2344, 5, 109, 0, 0, 2344, 2345, 5, 95, 0, 0, 2345, 2346, 5, 119, 0, 0, 2346, 2347, 5, 101, 0, 0, 2347, 2348, 5, 105, 0, 0, 2348, 2349, 5, 98, 0, 0, 2349, 2350, 5, 117, 0, 0, 2350, 2351, 5, 108, 0, 0, 2351, 2353, 5, 108, 0, 0, 2352, 2333, 1, 0, 0, 0, 2352, 2338, 1, 0, 0, 0, 2353, 368, 1, 0, 0, 0, 2354, 2355, 5, 114, 0, 0, 2355, 2356, 5, 97, 0, 0, 2356, 2357, 5, 110, 0, 0, 2357, 2358, 5, 100, 0, 0, 2358, 2359, 5, 99, 0, 0, 2359, 2360, 5, 104, 0, 0, 2360, 2361, 5, 105, 0, 0, 2361, 2374, 5, 50, 0, 0, 2362, 2363, 5, 114, 0, 0, 2363, 2364, 5, 97, 0, 0, 2364, 2365, 5, 110, 0, 0, 2365, 2366, 5, 100, 0, 0, 2366, 2367, 5, 111, 0, 0, 2367, 2368, 5, 109, 0, 0, 2368, 2369, 5, 95, 0, 0, 2369, 2370, 5, 99, 0, 0, 2370, 2371, 5, 104, 0, 0, 2371, 2372, 5, 105, 0, 0, 2372, 2374, 5, 50, 0, 0, 2373, 2354, 1, 0, 0, 0, 2373, 2362, 1, 0, 0, 0, 2374, 370, 1, 0, 0, 0, 2375, 2376, 5, 114, 0, 0, 2376, 2377, 5, 97, 0, 0, 2377, 2378, 5, 110, 0, 0, 2378, 2379, 5, 100, 0, 0, 2379, 2396, 5, 116, 0, 0, 2380, 2381, 5, 114, 0, 0, 2381, 2382, 5, 97, 0, 0, 2382, 2383, 5, 110, 0, 0, 2383, 2384, 5, 100, 0, 0, 2384, 2385, 5, 111, 0, 0, 2385, 2386, 5, 109, 0, 0, 2386, 2387, 5, 95, 0, 0, 2387, 2388, 5, 115, 0, 0, 2388, 2389, 5, 116, 0, 0, 2389, 2390, 5, 117, 0, 0, 2390, 2391, 5, 100, 0, 0, 2391, 2392, 5, 101, 0, 0, 2392, 2393, 5, 110, 0, 0, 2393, 2394, 5, 116, 0, 0, 2394, 2396, 5, 116, 0, 0, 2395, 2375, 1, 0, 0, 0, 2395, 2380, 1, 0, 0, 0, 2396, 372, 1, 0, 0, 0, 2397, 2398, 5, 112, 0, 0, 2398, 2399, 5, 101, 0, 0, 2399, 2400, 5, 114, 0, 0, 2400, 2401, 5, 108, 0, 0, 2401, 2402, 5, 105, 0, 0, 2402, 2416, 5, 110, 0, 0, 2403, 2404, 5, 112, 0, 0, 2404, 2405, 5, 101, 0, 0, 2405, 2406, 5, 114, 0, 0, 2406, 2407, 5, 108, 0, 0, 2407, 2408, 5, 105, 0, 0, 2408, 2409, 5, 110, 0, 0, 2409, 2410, 5, 95, 0, 0, 2410, 2411, 5, 110, 0, 0, 2411, 2412, 5, 111, 0, 0, 2412, 2413, 5, 105, 0, 0, 2413, 2414, 5, 115, 0, 0, 2414, 2416, 5, 101, 0, 0, 2415, 2397, 1, 0, 0, 0, 2415, 2403, 1, 0, 0, 0, 2416, 374, 1, 0, 0, 0, 2417, 2418, 5, 99, 0, 0, 2418, 2419, 5, 101, 0, 0, 2419, 2420, 5, 108, 0, 0, 2420, 2421, 5, 108, 0, 0, 2421, 2422, 5, 117, 0, 0, 2422, 2423, 5, 108, 0, 0, 2423, 2424, 5, 97, 0, 0, 2424, 2466, 5, 114, 0, 0, 2425, 2426, 5, 118, 0, 0, 2426, 2427, 5, 111, 0, 0, 2427, 2428, 5, 114, 0, 0, 2428, 2429, 5, 111, 0, 0, 2429, 2430, 5, 110, 0, 0, 2430, 2431, 5, 111, 0, 0, 2431, 2466, 5, 105, 0, 0, 2432, 2433, 5, 119, 0, 0, 2433, 2434, 5, 111, 0, 0, 2434, 2435, 5, 114, 0, 0, 2435, 2436, 5, 108, 0, 0, 2436, 2437, 5, 101, 0, 0, 2437, 2466, 5, 121, 0, 0, 2438, 2439, 5, 99, 0, 0, 2439, 2440, 5, 101, 0, 0, 2440, 2441, 5, 108, 0, 0, 2441, 2442, 5, 108, 0, 0, 2442, 2443, 5, 117, 0, 0, 2443, 2444, 5, 108, 0, 0, 2444, 2445, 5, 97, 0, 0, 2445, 2446, 5, 114, 0, 0, 2446, 2447, 5, 95, 0, 0, 2447, 2448, 5, 110, 0, 0, 2448, 2449, 5, 111, 0, 0, 2449, 2450, 5, 105, 0, 0, 2450, 2451, 5, 115, 0, 0, 2451, 2466, 5, 101, 0, 0, 2452, 2453, 5, 118, 0, 0, 2453, 2454, 5, 111, 0, 0, 2454, 2455, 5, 114, 0, 0, 2455, 2456, 5, 111, 0, 0, 2456, 2457, 5, 110, 0, 0, 2457, 2458, 5, 111, 0, 0, 2458, 2459, 5, 105, 0, 0, 2459, 2460, 5, 95, 0, 0, 2460, 2461, 5, 110, 0, 0, 2461, 2462, 5, 111, 0, 0, 2462, 2463, 5, 105, 0, 0, 2463, 2464, 5, 115, 0, 0, 2464, 2466, 5, 101, 0, 0, 2465, 2417, 1, 0, 0, 0, 2465, 2425, 1, 0, 0, 0, 2465, 2432, 1, 0, 0, 0, 2465, 2438, 1, 0, 0, 0, 2465, 2452, 1, 0, 0, 0, 2466, 376, 1, 0, 0, 0, 2467, 2468, 5, 112, 0, 0, 2468, 2469, 5, 108, 0, 0, 2469, 2470, 5, 97, 0, 0, 2470, 2471, 5, 115, 0, 0, 2471, 2472, 5, 109, 0, 0, 2472, 2496, 5, 97, 0, 0, 2473, 2474, 5, 116, 0, 0, 2474, 2475, 5, 117, 0, 0, 2475, 2476, 5, 114, 0, 0, 2476, 2477, 5, 98, 0, 0, 2477, 2478, 5, 117, 0, 0, 2478, 2479, 5, 108, 0, 0, 2479, 2480, 5, 101, 0, 0, 2480, 2481, 5, 110, 0, 0, 2481, 2482, 5, 99, 0, 0, 2482, 2496, 5, 101, 0, 0, 2483, 2484, 5, 112, 0, 0, 2484, 2485, 5, 108, 0, 0, 2485, 2486, 5, 97, 0, 0, 2486, 2487, 5, 115, 0, 0, 2487, 2488, 5, 109, 0, 0, 2488, 2489, 5, 97, 0, 0, 2489, 2490, 5, 95, 0, 0, 2490, 2491, 5, 110, 0, 0, 2491, 2492, 5, 111, 0, 0, 2492, 2493, 5, 105, 0, 0, 2493, 2494, 5, 115, 0, 0, 2494, 2496, 5, 101, 0, 0, 2495, 2467, 1, 0, 0, 0, 2495, 2473, 1, 0, 0, 0, 2495, 2483, 1, 0, 0, 0, 2496, 378, 1, 0, 0, 0, 2497, 2498, 5, 114, 0, 0, 2498, 2499, 5, 105, 0, 0, 2499, 2500, 5, 100, 0, 0, 2500, 2501, 5, 103, 0, 0, 2501, 2502, 5, 101, 0, 0, 2502, 2516, 5, 100, 0, 0, 2503, 2504, 5, 114, 0, 0, 2504, 2505, 5, 105, 0, 0, 2505, 2506, 5, 100, 0, 0, 2506, 2507, 5, 103, 0, 0, 2507, 2508, 5, 101, 0, 0, 2508, 2509, 5, 100, 0, 0, 2509, 2510, 5, 95, 0, 0, 2510, 2511, 5, 110, 0, 0, 2511, 2512, 5, 111, 0, 0, 2512, 2513, 5, 105, 0, 0, 2513, 2514, 5, 115, 0, 0, 2514, 2516, 5, 101, 0, 0, 2515, 2497, 1, 0, 0, 0, 2515, 2503, 1, 0, 0, 0, 2516, 380, 1, 0, 0, 0, 2517, 2518, 5, 100, 0, 0, 2518, 2519, 5, 111, 0, 0, 2519, 2520, 5, 109, 0, 0, 2520, 2521, 5, 97, 0, 0, 2521, 2522, 5, 105, 0, 0, 2522, 2523, 5, 110, 0, 0, 2523, 2524, 5, 95, 0, 0, 2524, 2525, 5, 119, 0, 0, 2525, 2526, 5, 97, 0, 0, 2526, 2527, 5, 114, 0, 0, 2527, 2546, 5, 112, 0, 0, 2528, 2529, 5, 100, 0, 0, 2529, 2530, 5, 111, 0, 0, 2530, 2531, 5, 109, 0, 0, 2531, 2532, 5, 97, 0, 0, 2532, 2533, 5, 105, 0, 0, 2533, 2534, 5, 110, 0, 0, 2534, 2535, 5, 95, 0, 0, 2535, 2536, 5, 119, 0, 0, 2536, 2537, 5, 97, 0, 0, 2537, 2538, 5, 114, 0, 0, 2538, 2539, 5, 112, 0, 0, 2539, 2540, 5, 95, 0, 0, 2540, 2541, 5, 110, 0, 0, 2541, 2542, 5, 111, 0, 0, 2542, 2543, 5, 105, 0, 0, 2543, 2544, 5, 115, 0, 0, 2544, 2546, 5, 101, 0, 0, 2545, 2517, 1, 0, 0, 0, 2545, 2528, 1, 0, 0, 0, 2546, 382, 1, 0, 0, 0, 2547, 2548, 5, 43, 0, 0, 2548, 384, 1, 0, 0, 0, 2549, 2550, 5, 45, 0, 0, 2550, 386, 1, 0, 0, 0, 2551, 2552, 5, 42, 0, 0, 2552, 388, 1, 0, 0, 0, 2553, 2554, 5, 47, 0, 0, 2554, 390, 1, 0, 0, 0, 2555, 2556, 5, 37, 0, 0, 2556, 392, 1, 0, 0, 0, 2557, 2558, 5, 94, 0, 0, 2558, 394, 1, 0, 0, 0, 2559, 2560, 5, 60, 0, 0, 2560, 2561, 5, 60, 0, 0, 2561, 396, 1, 0, 0, 0, 2562, 2563, 5, 62, 0, 0, 2563, 2564, 5, 62, 0, 0, 2564, 398, 1, 0, 0, 0, 2565, 2566, 5, 62, 0, 0, 2566, 2567, 5, 61, 0, 0, 2567, 400, 1, 0, 0, 0, 2568, 2569, 5, 62, 0, 0, 2569, 402, 1, 0, 0, 0, 2570, 2571, 5, 60, 0, 0, 2571, 2572, 5, 61, 0, 0, 2572, 404, 1, 0, 0, 0, 2573, 2574, 5, 60, 0, 0, 2574, 406, 1, 0, 0, 0, 2575, 2576, 5, 61, 0, 0, 2576, 2577, 5, 61, 0, 0, 2577, 408, 1, 0, 0, 0, 2578, 2579, 5, 61, 0, 0, 2579, 410, 1, 0, 0, 0, 2580, 2581, 5, 43, 0, 0, 2581, 2582, 5, 61, 0, 0, 2582, 412, 1, 0, 0, 0, 2583, 2584, 5, 45, 0, 0, 2584, 2585, 5, 61, 0, 0, 2585, 414, 1, 0, 0, 0, 2586, 2587, 5, 42, 0, 0, 2587, 2588, 5, 61, 0, 0, 2588, 416, 1, 0, 0, 0, 2589, 2590, 5, 47, 0, 0, 2590, 2591, 5, 61, 0, 0, 2591, 418, 1, 0, 0, 0, 2592, 2593, 5, 37, 0, 0, 2593, 2594, 5, 61, 0, 0, 2594, 420, 1, 0, 0, 0, 2595, 2596, 5, 33, 0, 0, 2596, 2597, 5, 61, 0, 0, 2597, 422, 1, 0, 0, 0, 2598, 2599, 5, 124, 0, 0, 2599, 424, 1, 0, 0, 0, 2600, 2601, 5, 40, 0, 0, 2601, 426, 1, 0, 0, 0, 2602, 2603, 5, 41, 0, 0, 2603, 428, 1, 0, 0, 0, 2604, 2605, 5, 44, 0, 0, 2605, 430, 1, 0, 0, 0, 2606, 2607, 5, 59, 0, 0, 2607, 432, 1, 0, 0, 0, 2608, 2609, 5, 45, 0, 0, 2609, 2610, 5, 62, 0, 0, 2610, 434, 1, 0, 0, 0, 2611, 2612, 5, 91, 0, 0, 2612, 436, 1, 0, 0, 0, 2613, 2614, 5, 93, 0, 0, 2614, 438, 1, 0, 0, 0, 2615, 2616, 5, 63, 0, 0, 2616, 440, 1, 0, 0, 0, 2617, 2618, 5, 58, 0, 0, 2618, 442, 1, 0, 0, 0, 2619, 2620, 5, 123, 0, 0, 2620, 444, 1, 0, 0, 0, 2621, 2622, 5, 125, 0, 0, 2622, 446, 1, 0, 0, 0, 2623, 2625, 7, 0, 0, 0, 2624, 2623, 1, 0, 0, 0, 2625, 2626, 1, 0, 0, 0, 2626, 2624, 1, 0, 0, 0, 2626, 2627, 1, 0, 0, 0, 2627, 2635, 1, 0, 0, 0, 2628, 2632, 5, 46, 0, 0, 2629, 2631, 7, 0, 0, 0, 2630, 2629, 1, 0, 0, 0, 2631, 2634, 1, 0, 0, 0, 2632, 2630, 1, 0, 0, 0, 2632, 2633, 1, 0, 0, 0, 2633, 2636, 1, 0, 0, 0, 2634, 2632, 1, 0, 0, 0, 2635, 2628, 1, 0, 0, 0, 2635, 2636, 1, 0, 0, 0, 2636, 2644, 1, 0, 0, 0, 2637, 2639, 5, 46, 0, 0, 2638, 2640, 7, 0, 0, 0, 2639, 2638, 1, 0, 0, 0, 2640, 2641, 1, 0, 0, 0, 2641, 2639, 1, 0, 0, 0, 2641, 2642, 1, 0, 0, 0, 2642, 2644, 1, 0, 0, 0, 2643, 2624, 1, 0, 0, 0, 2643, 2637, 1, 0, 0, 0, 2644, 2654, 1, 0, 0, 0, 2645, 2647, 7, 1, 0, 0, 2646, 2648, 7, 2, 0, 0, 2647, 2646, 1, 0, 0, 0, 2647, 2648, 1, 0, 0, 0, 2648, 2650, 1, 0, 0, 0, 2649, 2651, 7, 0, 0, 0, 2650, 2649, 1, 0, 0, 0, 2651, 2652, 1, 0, 0, 0, 2652, 2650, 1, 0, 0, 0, 2652, 2653, 1, 0, 0, 0, 2653, 2655, 1, 0, 0, 0, 2654, 2645, 1, 0, 0, 0, 2654, 2655, 1, 0, 0, 0, 2655, 448, 1, 0, 0, 0, 2656, 2657, 5, 112, 0, 0, 2657, 2662, 5, 105, 0, 0, 2658, 2659, 5, 80, 0, 0, 2659, 2662, 5, 73, 0, 0, 2660, 2662, 7, 1, 0, 0, 2661, 2656, 1, 0, 0, 0, 2661, 2658, 1, 0, 0, 0, 2661, 2660, 1, 0, 0, 0, 2662, 450, 1, 0, 0, 0, 2663, 2669, 5, 34, 0, 0, 2664, 2668, 8, 3, 0, 0, 2665, 2666, 5, 92, 0, 0, 2666, 2668, 9, 0, 0, 0, 2667, 2664, 1, 0, 0, 0, 2667, 2665, 1, 0, 0, 0, 2668, 2671, 1, 0, 0, 0, 2669, 2667, 1, 0, 0, 0, 2669, 2670, 1, 0, 0, 0, 2670, 2672, 1, 0, 0, 0, 2671, 2669, 1, 0, 0, 0, 2672, 2684, 5, 34, 0, 0, 2673, 2679, 5, 39, 0, 0, 2674, 2678, 8, 4, 0, 0, 2675, 2676, 5, 92, 0, 0, 2676, 2678, 9, 0, 0, 0, 2677, 2674, 1, 0, 0, 0, 2677, 2675, 1, 0, 0, 0, 2678, 2681, 1, 0, 0, 0, 2679, 2677, 1, 0, 0, 0, 2679, 2680, 1, 0, 0, 0, 2680, 2682, 1, 0, 0, 0, 2681, 2679, 1, 0, 0, 0, 2682, 2684, 5, 39, 0, 0, 2683, 2663, 1, 0, 0, 0, 2683, 2673, 1, 0, 0, 0, 2684, 452, 1, 0, 0, 0, 2685, 2689, 7, 5, 0, 0, 2686, 2688, 7, 6, 0, 0, 2687, 2686, 1, 0, 0, 0, 2688, 2691, 1, 0, 0, 0, 2689, 2687, 1, 0, 0, 0, 2689, 2690, 1, 0, 0, 0, 2690, 454, 1, 0, 0, 0, 2691, 2689, 1, 0, 0, 0, 2692, 2696, 5, 35, 0, 0, 2693, 2695, 8, 7, 0, 0, 2694, 2693, 1, 0, 0, 0, 2695, 2698, 1, 0, 0, 0, 2696, 2694, 1, 0, 0, 0, 2696, 2697, 1, 0, 0, 0, 2697, 2699, 1, 0, 0, 0, 2698, 2696, 1, 0, 0, 0, 2699, 2700, 6, 227, 0, 0, 2700, 456, 1, 0, 0, 0, 2701, 2702, 5, 47, 0, 0, 2702, 2703, 5, 42, 0, 0, 2703, 2707, 1, 0, 0, 0, 2704, 2706, 9, 0, 0, 0, 2705, 2704, 1, 0, 0, 0, 2706, 2709, 1, 0, 0, 0, 2707, 2708, 1, 0, 0, 0, 2707, 2705, 1, 0, 0, 0, 2708, 2710, 1, 0, 0, 0, 2709, 2707, 1, 0, 0, 0, 2710, 2711, 5, 42, 0, 0, 2711, 2712, 5, 47, 0, 0, 2712, 2713, 1, 0, 0, 0, 2713, 2714, 6, 228, 0, 0, 2714, 458, 1, 0, 0, 0, 2715, 2717, 7, 8, 0, 0, 2716, 2715, 1, 0, 0, 0, 2717, 2718, 1, 0, 0, 0, 2718, 2716, 1, 0, 0, 0, 2718, 2719, 1, 0, 0, 0, 2719, 2720, 1, 0, 0, 0, 2720, 2721, 6, 229, 0, 0, 2721, 460, 1, 0, 0, 0, 72, 0, 653, 668, 744, 761, 779, 792, 865, 882, 940, 989, 1011, 1028, 1049, 1064, 1091, 1122, 1138, 1209, 1259, 1279, 1300, 1347, 1371, 1394, 1411, 1426, 1508, 1563, 1792, 1853, 1874, 1931, 2050, 2081, 2106, 2131, 2151, 2176, 2201, 2224, 2245, 2264, 2285, 2306, 2331, 2352, 2373, 2395, 2415, 2465, 2495, 2515, 2545, 2626, 2632, 2635, 2641, 2643, 2647, 2652, 2654, 2661, 2667, 2669, 2677, 2679, 2683, 2689, 2696, 2707, 2718, 1, 6, 0, 0] \ No newline at end of file +[4, 0, 231, 2743, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108, 2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 2, 112, 7, 112, 2, 113, 7, 113, 2, 114, 7, 114, 2, 115, 7, 115, 2, 116, 7, 116, 2, 117, 7, 117, 2, 118, 7, 118, 2, 119, 7, 119, 2, 120, 7, 120, 2, 121, 7, 121, 2, 122, 7, 122, 2, 123, 7, 123, 2, 124, 7, 124, 2, 125, 7, 125, 2, 126, 7, 126, 2, 127, 7, 127, 2, 128, 7, 128, 2, 129, 7, 129, 2, 130, 7, 130, 2, 131, 7, 131, 2, 132, 7, 132, 2, 133, 7, 133, 2, 134, 7, 134, 2, 135, 7, 135, 2, 136, 7, 136, 2, 137, 7, 137, 2, 138, 7, 138, 2, 139, 7, 139, 2, 140, 7, 140, 2, 141, 7, 141, 2, 142, 7, 142, 2, 143, 7, 143, 2, 144, 7, 144, 2, 145, 7, 145, 2, 146, 7, 146, 2, 147, 7, 147, 2, 148, 7, 148, 2, 149, 7, 149, 2, 150, 7, 150, 2, 151, 7, 151, 2, 152, 7, 152, 2, 153, 7, 153, 2, 154, 7, 154, 2, 155, 7, 155, 2, 156, 7, 156, 2, 157, 7, 157, 2, 158, 7, 158, 2, 159, 7, 159, 2, 160, 7, 160, 2, 161, 7, 161, 2, 162, 7, 162, 2, 163, 7, 163, 2, 164, 7, 164, 2, 165, 7, 165, 2, 166, 7, 166, 2, 167, 7, 167, 2, 168, 7, 168, 2, 169, 7, 169, 2, 170, 7, 170, 2, 171, 7, 171, 2, 172, 7, 172, 2, 173, 7, 173, 2, 174, 7, 174, 2, 175, 7, 175, 2, 176, 7, 176, 2, 177, 7, 177, 2, 178, 7, 178, 2, 179, 7, 179, 2, 180, 7, 180, 2, 181, 7, 181, 2, 182, 7, 182, 2, 183, 7, 183, 2, 184, 7, 184, 2, 185, 7, 185, 2, 186, 7, 186, 2, 187, 7, 187, 2, 188, 7, 188, 2, 189, 7, 189, 2, 190, 7, 190, 2, 191, 7, 191, 2, 192, 7, 192, 2, 193, 7, 193, 2, 194, 7, 194, 2, 195, 7, 195, 2, 196, 7, 196, 2, 197, 7, 197, 2, 198, 7, 198, 2, 199, 7, 199, 2, 200, 7, 200, 2, 201, 7, 201, 2, 202, 7, 202, 2, 203, 7, 203, 2, 204, 7, 204, 2, 205, 7, 205, 2, 206, 7, 206, 2, 207, 7, 207, 2, 208, 7, 208, 2, 209, 7, 209, 2, 210, 7, 210, 2, 211, 7, 211, 2, 212, 7, 212, 2, 213, 7, 213, 2, 214, 7, 214, 2, 215, 7, 215, 2, 216, 7, 216, 2, 217, 7, 217, 2, 218, 7, 218, 2, 219, 7, 219, 2, 220, 7, 220, 2, 221, 7, 221, 2, 222, 7, 222, 2, 223, 7, 223, 2, 224, 7, 224, 2, 225, 7, 225, 2, 226, 7, 226, 2, 227, 7, 227, 2, 228, 7, 228, 2, 229, 7, 229, 2, 230, 7, 230, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 656, 8, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 3, 36, 671, 8, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 747, 8, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 764, 8, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 3, 49, 782, 8, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 3, 50, 795, 8, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 3, 61, 868, 8, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 3, 62, 885, 8, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66, 1, 66, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 68, 1, 68, 1, 68, 1, 68, 1, 69, 1, 69, 1, 69, 1, 69, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 3, 71, 943, 8, 71, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 3, 76, 992, 8, 76, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 3, 77, 1014, 8, 77, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 3, 78, 1031, 8, 78, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, 3, 79, 1052, 8, 79, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 3, 80, 1067, 8, 80, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 3, 82, 1094, 8, 82, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 3, 84, 1125, 8, 84, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 3, 85, 1141, 8, 85, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 3, 91, 1212, 8, 91, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 93, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 3, 94, 1262, 8, 94, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 1, 95, 3, 95, 1282, 8, 95, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 3, 97, 1303, 8, 97, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 99, 1, 99, 1, 99, 1, 99, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 3, 103, 1350, 8, 103, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 3, 104, 1374, 8, 104, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 3, 106, 1397, 8, 106, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 3, 107, 1414, 8, 107, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 3, 108, 1429, 8, 108, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 109, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 3, 115, 1511, 8, 115, 1, 116, 1, 116, 1, 116, 1, 116, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 120, 1, 120, 1, 120, 1, 120, 1, 120, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 122, 1, 122, 1, 122, 1, 122, 1, 122, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 3, 123, 1566, 8, 123, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 127, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 138, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 3, 140, 1795, 8, 140, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 3, 143, 1856, 8, 143, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 3, 144, 1877, 8, 144, 1, 145, 1, 145, 1, 145, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 148, 1, 148, 1, 148, 1, 148, 1, 149, 1, 149, 1, 149, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 152, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 3, 153, 1934, 8, 153, 1, 154, 1, 154, 1, 154, 1, 154, 1, 154, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 164, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 165, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 167, 1, 167, 1, 167, 1, 167, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 168, 3, 168, 2053, 8, 168, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 169, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 3, 171, 2084, 8, 171, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, 3, 172, 2103, 8, 172, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 3, 173, 2128, 8, 173, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 3, 174, 2153, 8, 174, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 3, 175, 2173, 8, 175, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 3, 176, 2198, 8, 176, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 3, 177, 2223, 8, 177, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 3, 178, 2246, 8, 178, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 3, 179, 2267, 8, 179, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 3, 180, 2286, 8, 180, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 1, 181, 3, 181, 2307, 8, 181, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 3, 182, 2328, 8, 182, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 1, 183, 3, 183, 2353, 8, 183, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 3, 184, 2374, 8, 184, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 1, 185, 3, 185, 2395, 8, 185, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 1, 186, 3, 186, 2417, 8, 186, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 3, 187, 2437, 8, 187, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 1, 188, 3, 188, 2487, 8, 188, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 3, 189, 2517, 8, 189, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 3, 190, 2537, 8, 190, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 3, 191, 2567, 8, 191, 1, 192, 1, 192, 1, 193, 1, 193, 1, 194, 1, 194, 1, 195, 1, 195, 1, 196, 1, 196, 1, 197, 1, 197, 1, 198, 1, 198, 1, 198, 1, 199, 1, 199, 1, 199, 1, 200, 1, 200, 1, 200, 1, 201, 1, 201, 1, 202, 1, 202, 1, 202, 1, 203, 1, 203, 1, 204, 1, 204, 1, 204, 1, 205, 1, 205, 1, 206, 1, 206, 1, 206, 1, 207, 1, 207, 1, 207, 1, 208, 1, 208, 1, 208, 1, 209, 1, 209, 1, 209, 1, 210, 1, 210, 1, 210, 1, 211, 1, 211, 1, 211, 1, 212, 1, 212, 1, 213, 1, 213, 1, 214, 1, 214, 1, 215, 1, 215, 1, 216, 1, 216, 1, 217, 1, 217, 1, 217, 1, 218, 1, 218, 1, 219, 1, 219, 1, 220, 1, 220, 1, 221, 1, 221, 1, 222, 1, 222, 1, 223, 1, 223, 1, 224, 4, 224, 2646, 8, 224, 11, 224, 12, 224, 2647, 1, 224, 1, 224, 5, 224, 2652, 8, 224, 10, 224, 12, 224, 2655, 9, 224, 3, 224, 2657, 8, 224, 1, 224, 1, 224, 4, 224, 2661, 8, 224, 11, 224, 12, 224, 2662, 3, 224, 2665, 8, 224, 1, 224, 1, 224, 3, 224, 2669, 8, 224, 1, 224, 4, 224, 2672, 8, 224, 11, 224, 12, 224, 2673, 3, 224, 2676, 8, 224, 1, 225, 1, 225, 1, 225, 1, 225, 1, 225, 3, 225, 2683, 8, 225, 1, 226, 1, 226, 1, 226, 1, 226, 5, 226, 2689, 8, 226, 10, 226, 12, 226, 2692, 9, 226, 1, 226, 1, 226, 1, 226, 1, 226, 1, 226, 5, 226, 2699, 8, 226, 10, 226, 12, 226, 2702, 9, 226, 1, 226, 3, 226, 2705, 8, 226, 1, 227, 1, 227, 5, 227, 2709, 8, 227, 10, 227, 12, 227, 2712, 9, 227, 1, 228, 1, 228, 5, 228, 2716, 8, 228, 10, 228, 12, 228, 2719, 9, 228, 1, 228, 1, 228, 1, 229, 1, 229, 1, 229, 1, 229, 5, 229, 2727, 8, 229, 10, 229, 12, 229, 2730, 9, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 1, 230, 4, 230, 2738, 8, 230, 11, 230, 12, 230, 2739, 1, 230, 1, 230, 1, 2728, 0, 231, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11, 23, 12, 25, 13, 27, 14, 29, 15, 31, 16, 33, 17, 35, 18, 37, 19, 39, 20, 41, 21, 43, 22, 45, 23, 47, 24, 49, 25, 51, 26, 53, 27, 55, 28, 57, 29, 59, 30, 61, 31, 63, 32, 65, 33, 67, 34, 69, 35, 71, 36, 73, 37, 75, 38, 77, 39, 79, 40, 81, 41, 83, 42, 85, 43, 87, 44, 89, 45, 91, 46, 93, 47, 95, 48, 97, 49, 99, 50, 101, 51, 103, 52, 105, 53, 107, 54, 109, 55, 111, 56, 113, 57, 115, 58, 117, 59, 119, 60, 121, 61, 123, 62, 125, 63, 127, 64, 129, 65, 131, 66, 133, 67, 135, 68, 137, 69, 139, 70, 141, 71, 143, 72, 145, 73, 147, 74, 149, 75, 151, 76, 153, 77, 155, 78, 157, 79, 159, 80, 161, 81, 163, 82, 165, 83, 167, 84, 169, 85, 171, 86, 173, 87, 175, 88, 177, 89, 179, 90, 181, 91, 183, 92, 185, 93, 187, 94, 189, 95, 191, 96, 193, 97, 195, 98, 197, 99, 199, 100, 201, 101, 203, 102, 205, 103, 207, 104, 209, 105, 211, 106, 213, 107, 215, 108, 217, 109, 219, 110, 221, 111, 223, 112, 225, 113, 227, 114, 229, 115, 231, 116, 233, 117, 235, 118, 237, 119, 239, 120, 241, 121, 243, 122, 245, 123, 247, 124, 249, 125, 251, 126, 253, 127, 255, 128, 257, 129, 259, 130, 261, 131, 263, 132, 265, 133, 267, 134, 269, 135, 271, 136, 273, 137, 275, 138, 277, 139, 279, 140, 281, 141, 283, 142, 285, 143, 287, 144, 289, 145, 291, 146, 293, 147, 295, 148, 297, 149, 299, 150, 301, 151, 303, 152, 305, 153, 307, 154, 309, 155, 311, 156, 313, 157, 315, 158, 317, 159, 319, 160, 321, 161, 323, 162, 325, 163, 327, 164, 329, 165, 331, 166, 333, 167, 335, 168, 337, 169, 339, 170, 341, 171, 343, 172, 345, 173, 347, 174, 349, 175, 351, 176, 353, 177, 355, 178, 357, 179, 359, 180, 361, 181, 363, 182, 365, 183, 367, 184, 369, 185, 371, 186, 373, 187, 375, 188, 377, 189, 379, 190, 381, 191, 383, 192, 385, 193, 387, 194, 389, 195, 391, 196, 393, 197, 395, 198, 397, 199, 399, 200, 401, 201, 403, 202, 405, 203, 407, 204, 409, 205, 411, 206, 413, 207, 415, 208, 417, 209, 419, 210, 421, 211, 423, 212, 425, 213, 427, 214, 429, 215, 431, 216, 433, 217, 435, 218, 437, 219, 439, 220, 441, 221, 443, 222, 445, 223, 447, 224, 449, 225, 451, 226, 453, 227, 455, 228, 457, 229, 459, 230, 461, 231, 1, 0, 9, 1, 0, 48, 57, 2, 0, 69, 69, 101, 101, 2, 0, 43, 43, 45, 45, 4, 0, 10, 10, 13, 13, 34, 34, 92, 92, 4, 0, 10, 10, 13, 13, 39, 39, 92, 92, 3, 0, 65, 90, 95, 95, 97, 122, 4, 0, 48, 57, 65, 90, 95, 95, 97, 122, 2, 0, 10, 10, 13, 13, 3, 0, 9, 10, 13, 13, 32, 32, 2827, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0, 39, 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 0, 51, 1, 0, 0, 0, 0, 53, 1, 0, 0, 0, 0, 55, 1, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 61, 1, 0, 0, 0, 0, 63, 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 81, 1, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 85, 1, 0, 0, 0, 0, 87, 1, 0, 0, 0, 0, 89, 1, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 95, 1, 0, 0, 0, 0, 97, 1, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 101, 1, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 105, 1, 0, 0, 0, 0, 107, 1, 0, 0, 0, 0, 109, 1, 0, 0, 0, 0, 111, 1, 0, 0, 0, 0, 113, 1, 0, 0, 0, 0, 115, 1, 0, 0, 0, 0, 117, 1, 0, 0, 0, 0, 119, 1, 0, 0, 0, 0, 121, 1, 0, 0, 0, 0, 123, 1, 0, 0, 0, 0, 125, 1, 0, 0, 0, 0, 127, 1, 0, 0, 0, 0, 129, 1, 0, 0, 0, 0, 131, 1, 0, 0, 0, 0, 133, 1, 0, 0, 0, 0, 135, 1, 0, 0, 0, 0, 137, 1, 0, 0, 0, 0, 139, 1, 0, 0, 0, 0, 141, 1, 0, 0, 0, 0, 143, 1, 0, 0, 0, 0, 145, 1, 0, 0, 0, 0, 147, 1, 0, 0, 0, 0, 149, 1, 0, 0, 0, 0, 151, 1, 0, 0, 0, 0, 153, 1, 0, 0, 0, 0, 155, 1, 0, 0, 0, 0, 157, 1, 0, 0, 0, 0, 159, 1, 0, 0, 0, 0, 161, 1, 0, 0, 0, 0, 163, 1, 0, 0, 0, 0, 165, 1, 0, 0, 0, 0, 167, 1, 0, 0, 0, 0, 169, 1, 0, 0, 0, 0, 171, 1, 0, 0, 0, 0, 173, 1, 0, 0, 0, 0, 175, 1, 0, 0, 0, 0, 177, 1, 0, 0, 0, 0, 179, 1, 0, 0, 0, 0, 181, 1, 0, 0, 0, 0, 183, 1, 0, 0, 0, 0, 185, 1, 0, 0, 0, 0, 187, 1, 0, 0, 0, 0, 189, 1, 0, 0, 0, 0, 191, 1, 0, 0, 0, 0, 193, 1, 0, 0, 0, 0, 195, 1, 0, 0, 0, 0, 197, 1, 0, 0, 0, 0, 199, 1, 0, 0, 0, 0, 201, 1, 0, 0, 0, 0, 203, 1, 0, 0, 0, 0, 205, 1, 0, 0, 0, 0, 207, 1, 0, 0, 0, 0, 209, 1, 0, 0, 0, 0, 211, 1, 0, 0, 0, 0, 213, 1, 0, 0, 0, 0, 215, 1, 0, 0, 0, 0, 217, 1, 0, 0, 0, 0, 219, 1, 0, 0, 0, 0, 221, 1, 0, 0, 0, 0, 223, 1, 0, 0, 0, 0, 225, 1, 0, 0, 0, 0, 227, 1, 0, 0, 0, 0, 229, 1, 0, 0, 0, 0, 231, 1, 0, 0, 0, 0, 233, 1, 0, 0, 0, 0, 235, 1, 0, 0, 0, 0, 237, 1, 0, 0, 0, 0, 239, 1, 0, 0, 0, 0, 241, 1, 0, 0, 0, 0, 243, 1, 0, 0, 0, 0, 245, 1, 0, 0, 0, 0, 247, 1, 0, 0, 0, 0, 249, 1, 0, 0, 0, 0, 251, 1, 0, 0, 0, 0, 253, 1, 0, 0, 0, 0, 255, 1, 0, 0, 0, 0, 257, 1, 0, 0, 0, 0, 259, 1, 0, 0, 0, 0, 261, 1, 0, 0, 0, 0, 263, 1, 0, 0, 0, 0, 265, 1, 0, 0, 0, 0, 267, 1, 0, 0, 0, 0, 269, 1, 0, 0, 0, 0, 271, 1, 0, 0, 0, 0, 273, 1, 0, 0, 0, 0, 275, 1, 0, 0, 0, 0, 277, 1, 0, 0, 0, 0, 279, 1, 0, 0, 0, 0, 281, 1, 0, 0, 0, 0, 283, 1, 0, 0, 0, 0, 285, 1, 0, 0, 0, 0, 287, 1, 0, 0, 0, 0, 289, 1, 0, 0, 0, 0, 291, 1, 0, 0, 0, 0, 293, 1, 0, 0, 0, 0, 295, 1, 0, 0, 0, 0, 297, 1, 0, 0, 0, 0, 299, 1, 0, 0, 0, 0, 301, 1, 0, 0, 0, 0, 303, 1, 0, 0, 0, 0, 305, 1, 0, 0, 0, 0, 307, 1, 0, 0, 0, 0, 309, 1, 0, 0, 0, 0, 311, 1, 0, 0, 0, 0, 313, 1, 0, 0, 0, 0, 315, 1, 0, 0, 0, 0, 317, 1, 0, 0, 0, 0, 319, 1, 0, 0, 0, 0, 321, 1, 0, 0, 0, 0, 323, 1, 0, 0, 0, 0, 325, 1, 0, 0, 0, 0, 327, 1, 0, 0, 0, 0, 329, 1, 0, 0, 0, 0, 331, 1, 0, 0, 0, 0, 333, 1, 0, 0, 0, 0, 335, 1, 0, 0, 0, 0, 337, 1, 0, 0, 0, 0, 339, 1, 0, 0, 0, 0, 341, 1, 0, 0, 0, 0, 343, 1, 0, 0, 0, 0, 345, 1, 0, 0, 0, 0, 347, 1, 0, 0, 0, 0, 349, 1, 0, 0, 0, 0, 351, 1, 0, 0, 0, 0, 353, 1, 0, 0, 0, 0, 355, 1, 0, 0, 0, 0, 357, 1, 0, 0, 0, 0, 359, 1, 0, 0, 0, 0, 361, 1, 0, 0, 0, 0, 363, 1, 0, 0, 0, 0, 365, 1, 0, 0, 0, 0, 367, 1, 0, 0, 0, 0, 369, 1, 0, 0, 0, 0, 371, 1, 0, 0, 0, 0, 373, 1, 0, 0, 0, 0, 375, 1, 0, 0, 0, 0, 377, 1, 0, 0, 0, 0, 379, 1, 0, 0, 0, 0, 381, 1, 0, 0, 0, 0, 383, 1, 0, 0, 0, 0, 385, 1, 0, 0, 0, 0, 387, 1, 0, 0, 0, 0, 389, 1, 0, 0, 0, 0, 391, 1, 0, 0, 0, 0, 393, 1, 0, 0, 0, 0, 395, 1, 0, 0, 0, 0, 397, 1, 0, 0, 0, 0, 399, 1, 0, 0, 0, 0, 401, 1, 0, 0, 0, 0, 403, 1, 0, 0, 0, 0, 405, 1, 0, 0, 0, 0, 407, 1, 0, 0, 0, 0, 409, 1, 0, 0, 0, 0, 411, 1, 0, 0, 0, 0, 413, 1, 0, 0, 0, 0, 415, 1, 0, 0, 0, 0, 417, 1, 0, 0, 0, 0, 419, 1, 0, 0, 0, 0, 421, 1, 0, 0, 0, 0, 423, 1, 0, 0, 0, 0, 425, 1, 0, 0, 0, 0, 427, 1, 0, 0, 0, 0, 429, 1, 0, 0, 0, 0, 431, 1, 0, 0, 0, 0, 433, 1, 0, 0, 0, 0, 435, 1, 0, 0, 0, 0, 437, 1, 0, 0, 0, 0, 439, 1, 0, 0, 0, 0, 441, 1, 0, 0, 0, 0, 443, 1, 0, 0, 0, 0, 445, 1, 0, 0, 0, 0, 447, 1, 0, 0, 0, 0, 449, 1, 0, 0, 0, 0, 451, 1, 0, 0, 0, 0, 453, 1, 0, 0, 0, 0, 455, 1, 0, 0, 0, 0, 457, 1, 0, 0, 0, 0, 459, 1, 0, 0, 0, 0, 461, 1, 0, 0, 0, 1, 463, 1, 0, 0, 0, 3, 467, 1, 0, 0, 0, 5, 471, 1, 0, 0, 0, 7, 475, 1, 0, 0, 0, 9, 480, 1, 0, 0, 0, 11, 485, 1, 0, 0, 0, 13, 490, 1, 0, 0, 0, 15, 496, 1, 0, 0, 0, 17, 501, 1, 0, 0, 0, 19, 506, 1, 0, 0, 0, 21, 511, 1, 0, 0, 0, 23, 517, 1, 0, 0, 0, 25, 523, 1, 0, 0, 0, 27, 529, 1, 0, 0, 0, 29, 533, 1, 0, 0, 0, 31, 538, 1, 0, 0, 0, 33, 541, 1, 0, 0, 0, 35, 545, 1, 0, 0, 0, 37, 549, 1, 0, 0, 0, 39, 554, 1, 0, 0, 0, 41, 559, 1, 0, 0, 0, 43, 564, 1, 0, 0, 0, 45, 569, 1, 0, 0, 0, 47, 575, 1, 0, 0, 0, 49, 581, 1, 0, 0, 0, 51, 587, 1, 0, 0, 0, 53, 592, 1, 0, 0, 0, 55, 598, 1, 0, 0, 0, 57, 604, 1, 0, 0, 0, 59, 608, 1, 0, 0, 0, 61, 613, 1, 0, 0, 0, 63, 619, 1, 0, 0, 0, 65, 623, 1, 0, 0, 0, 67, 628, 1, 0, 0, 0, 69, 634, 1, 0, 0, 0, 71, 655, 1, 0, 0, 0, 73, 670, 1, 0, 0, 0, 75, 672, 1, 0, 0, 0, 77, 677, 1, 0, 0, 0, 79, 682, 1, 0, 0, 0, 81, 693, 1, 0, 0, 0, 83, 699, 1, 0, 0, 0, 85, 704, 1, 0, 0, 0, 87, 713, 1, 0, 0, 0, 89, 718, 1, 0, 0, 0, 91, 723, 1, 0, 0, 0, 93, 746, 1, 0, 0, 0, 95, 763, 1, 0, 0, 0, 97, 765, 1, 0, 0, 0, 99, 781, 1, 0, 0, 0, 101, 794, 1, 0, 0, 0, 103, 796, 1, 0, 0, 0, 105, 802, 1, 0, 0, 0, 107, 811, 1, 0, 0, 0, 109, 820, 1, 0, 0, 0, 111, 825, 1, 0, 0, 0, 113, 830, 1, 0, 0, 0, 115, 835, 1, 0, 0, 0, 117, 839, 1, 0, 0, 0, 119, 844, 1, 0, 0, 0, 121, 848, 1, 0, 0, 0, 123, 867, 1, 0, 0, 0, 125, 884, 1, 0, 0, 0, 127, 886, 1, 0, 0, 0, 129, 895, 1, 0, 0, 0, 131, 899, 1, 0, 0, 0, 133, 906, 1, 0, 0, 0, 135, 910, 1, 0, 0, 0, 137, 917, 1, 0, 0, 0, 139, 921, 1, 0, 0, 0, 141, 925, 1, 0, 0, 0, 143, 942, 1, 0, 0, 0, 145, 944, 1, 0, 0, 0, 147, 951, 1, 0, 0, 0, 149, 956, 1, 0, 0, 0, 151, 963, 1, 0, 0, 0, 153, 991, 1, 0, 0, 0, 155, 1013, 1, 0, 0, 0, 157, 1030, 1, 0, 0, 0, 159, 1051, 1, 0, 0, 0, 161, 1066, 1, 0, 0, 0, 163, 1068, 1, 0, 0, 0, 165, 1093, 1, 0, 0, 0, 167, 1095, 1, 0, 0, 0, 169, 1124, 1, 0, 0, 0, 171, 1140, 1, 0, 0, 0, 173, 1142, 1, 0, 0, 0, 175, 1149, 1, 0, 0, 0, 177, 1157, 1, 0, 0, 0, 179, 1164, 1, 0, 0, 0, 181, 1174, 1, 0, 0, 0, 183, 1211, 1, 0, 0, 0, 185, 1213, 1, 0, 0, 0, 187, 1225, 1, 0, 0, 0, 189, 1261, 1, 0, 0, 0, 191, 1281, 1, 0, 0, 0, 193, 1283, 1, 0, 0, 0, 195, 1302, 1, 0, 0, 0, 197, 1304, 1, 0, 0, 0, 199, 1312, 1, 0, 0, 0, 201, 1316, 1, 0, 0, 0, 203, 1322, 1, 0, 0, 0, 205, 1329, 1, 0, 0, 0, 207, 1349, 1, 0, 0, 0, 209, 1373, 1, 0, 0, 0, 211, 1375, 1, 0, 0, 0, 213, 1396, 1, 0, 0, 0, 215, 1413, 1, 0, 0, 0, 217, 1428, 1, 0, 0, 0, 219, 1430, 1, 0, 0, 0, 221, 1437, 1, 0, 0, 0, 223, 1448, 1, 0, 0, 0, 225, 1458, 1, 0, 0, 0, 227, 1470, 1, 0, 0, 0, 229, 1480, 1, 0, 0, 0, 231, 1510, 1, 0, 0, 0, 233, 1512, 1, 0, 0, 0, 235, 1516, 1, 0, 0, 0, 237, 1522, 1, 0, 0, 0, 239, 1528, 1, 0, 0, 0, 241, 1534, 1, 0, 0, 0, 243, 1539, 1, 0, 0, 0, 245, 1545, 1, 0, 0, 0, 247, 1565, 1, 0, 0, 0, 249, 1567, 1, 0, 0, 0, 251, 1572, 1, 0, 0, 0, 253, 1580, 1, 0, 0, 0, 255, 1587, 1, 0, 0, 0, 257, 1593, 1, 0, 0, 0, 259, 1604, 1, 0, 0, 0, 261, 1616, 1, 0, 0, 0, 263, 1629, 1, 0, 0, 0, 265, 1643, 1, 0, 0, 0, 267, 1656, 1, 0, 0, 0, 269, 1670, 1, 0, 0, 0, 271, 1681, 1, 0, 0, 0, 273, 1692, 1, 0, 0, 0, 275, 1703, 1, 0, 0, 0, 277, 1714, 1, 0, 0, 0, 279, 1733, 1, 0, 0, 0, 281, 1794, 1, 0, 0, 0, 283, 1796, 1, 0, 0, 0, 285, 1807, 1, 0, 0, 0, 287, 1855, 1, 0, 0, 0, 289, 1876, 1, 0, 0, 0, 291, 1878, 1, 0, 0, 0, 293, 1881, 1, 0, 0, 0, 295, 1886, 1, 0, 0, 0, 297, 1892, 1, 0, 0, 0, 299, 1896, 1, 0, 0, 0, 301, 1899, 1, 0, 0, 0, 303, 1905, 1, 0, 0, 0, 305, 1914, 1, 0, 0, 0, 307, 1933, 1, 0, 0, 0, 309, 1935, 1, 0, 0, 0, 311, 1940, 1, 0, 0, 0, 313, 1948, 1, 0, 0, 0, 315, 1955, 1, 0, 0, 0, 317, 1962, 1, 0, 0, 0, 319, 1970, 1, 0, 0, 0, 321, 1978, 1, 0, 0, 0, 323, 1985, 1, 0, 0, 0, 325, 1990, 1, 0, 0, 0, 327, 2001, 1, 0, 0, 0, 329, 2010, 1, 0, 0, 0, 331, 2018, 1, 0, 0, 0, 333, 2028, 1, 0, 0, 0, 335, 2033, 1, 0, 0, 0, 337, 2052, 1, 0, 0, 0, 339, 2054, 1, 0, 0, 0, 341, 2062, 1, 0, 0, 0, 343, 2083, 1, 0, 0, 0, 345, 2102, 1, 0, 0, 0, 347, 2127, 1, 0, 0, 0, 349, 2152, 1, 0, 0, 0, 351, 2172, 1, 0, 0, 0, 353, 2197, 1, 0, 0, 0, 355, 2222, 1, 0, 0, 0, 357, 2245, 1, 0, 0, 0, 359, 2266, 1, 0, 0, 0, 361, 2285, 1, 0, 0, 0, 363, 2306, 1, 0, 0, 0, 365, 2327, 1, 0, 0, 0, 367, 2352, 1, 0, 0, 0, 369, 2373, 1, 0, 0, 0, 371, 2394, 1, 0, 0, 0, 373, 2416, 1, 0, 0, 0, 375, 2436, 1, 0, 0, 0, 377, 2486, 1, 0, 0, 0, 379, 2516, 1, 0, 0, 0, 381, 2536, 1, 0, 0, 0, 383, 2566, 1, 0, 0, 0, 385, 2568, 1, 0, 0, 0, 387, 2570, 1, 0, 0, 0, 389, 2572, 1, 0, 0, 0, 391, 2574, 1, 0, 0, 0, 393, 2576, 1, 0, 0, 0, 395, 2578, 1, 0, 0, 0, 397, 2580, 1, 0, 0, 0, 399, 2583, 1, 0, 0, 0, 401, 2586, 1, 0, 0, 0, 403, 2589, 1, 0, 0, 0, 405, 2591, 1, 0, 0, 0, 407, 2594, 1, 0, 0, 0, 409, 2596, 1, 0, 0, 0, 411, 2599, 1, 0, 0, 0, 413, 2601, 1, 0, 0, 0, 415, 2604, 1, 0, 0, 0, 417, 2607, 1, 0, 0, 0, 419, 2610, 1, 0, 0, 0, 421, 2613, 1, 0, 0, 0, 423, 2616, 1, 0, 0, 0, 425, 2619, 1, 0, 0, 0, 427, 2621, 1, 0, 0, 0, 429, 2623, 1, 0, 0, 0, 431, 2625, 1, 0, 0, 0, 433, 2627, 1, 0, 0, 0, 435, 2629, 1, 0, 0, 0, 437, 2632, 1, 0, 0, 0, 439, 2634, 1, 0, 0, 0, 441, 2636, 1, 0, 0, 0, 443, 2638, 1, 0, 0, 0, 445, 2640, 1, 0, 0, 0, 447, 2642, 1, 0, 0, 0, 449, 2664, 1, 0, 0, 0, 451, 2682, 1, 0, 0, 0, 453, 2704, 1, 0, 0, 0, 455, 2706, 1, 0, 0, 0, 457, 2713, 1, 0, 0, 0, 459, 2722, 1, 0, 0, 0, 461, 2737, 1, 0, 0, 0, 463, 464, 5, 115, 0, 0, 464, 465, 5, 105, 0, 0, 465, 466, 5, 110, 0, 0, 466, 2, 1, 0, 0, 0, 467, 468, 5, 99, 0, 0, 468, 469, 5, 111, 0, 0, 469, 470, 5, 115, 0, 0, 470, 4, 1, 0, 0, 0, 471, 472, 5, 116, 0, 0, 472, 473, 5, 97, 0, 0, 473, 474, 5, 110, 0, 0, 474, 6, 1, 0, 0, 0, 475, 476, 5, 97, 0, 0, 476, 477, 5, 115, 0, 0, 477, 478, 5, 105, 0, 0, 478, 479, 5, 110, 0, 0, 479, 8, 1, 0, 0, 0, 480, 481, 5, 97, 0, 0, 481, 482, 5, 99, 0, 0, 482, 483, 5, 111, 0, 0, 483, 484, 5, 115, 0, 0, 484, 10, 1, 0, 0, 0, 485, 486, 5, 97, 0, 0, 486, 487, 5, 116, 0, 0, 487, 488, 5, 97, 0, 0, 488, 489, 5, 110, 0, 0, 489, 12, 1, 0, 0, 0, 490, 491, 5, 97, 0, 0, 491, 492, 5, 116, 0, 0, 492, 493, 5, 97, 0, 0, 493, 494, 5, 110, 0, 0, 494, 495, 5, 50, 0, 0, 495, 14, 1, 0, 0, 0, 496, 497, 5, 115, 0, 0, 497, 498, 5, 105, 0, 0, 498, 499, 5, 110, 0, 0, 499, 500, 5, 104, 0, 0, 500, 16, 1, 0, 0, 0, 501, 502, 5, 99, 0, 0, 502, 503, 5, 111, 0, 0, 503, 504, 5, 115, 0, 0, 504, 505, 5, 104, 0, 0, 505, 18, 1, 0, 0, 0, 506, 507, 5, 116, 0, 0, 507, 508, 5, 97, 0, 0, 508, 509, 5, 110, 0, 0, 509, 510, 5, 104, 0, 0, 510, 20, 1, 0, 0, 0, 511, 512, 5, 97, 0, 0, 512, 513, 5, 115, 0, 0, 513, 514, 5, 105, 0, 0, 514, 515, 5, 110, 0, 0, 515, 516, 5, 104, 0, 0, 516, 22, 1, 0, 0, 0, 517, 518, 5, 97, 0, 0, 518, 519, 5, 99, 0, 0, 519, 520, 5, 111, 0, 0, 520, 521, 5, 115, 0, 0, 521, 522, 5, 104, 0, 0, 522, 24, 1, 0, 0, 0, 523, 524, 5, 97, 0, 0, 524, 525, 5, 116, 0, 0, 525, 526, 5, 97, 0, 0, 526, 527, 5, 110, 0, 0, 527, 528, 5, 104, 0, 0, 528, 26, 1, 0, 0, 0, 529, 530, 5, 97, 0, 0, 530, 531, 5, 98, 0, 0, 531, 532, 5, 115, 0, 0, 532, 28, 1, 0, 0, 0, 533, 534, 5, 115, 0, 0, 534, 535, 5, 113, 0, 0, 535, 536, 5, 114, 0, 0, 536, 537, 5, 116, 0, 0, 537, 30, 1, 0, 0, 0, 538, 539, 5, 108, 0, 0, 539, 540, 5, 110, 0, 0, 540, 32, 1, 0, 0, 0, 541, 542, 5, 108, 0, 0, 542, 543, 5, 111, 0, 0, 543, 544, 5, 103, 0, 0, 544, 34, 1, 0, 0, 0, 545, 546, 5, 101, 0, 0, 546, 547, 5, 120, 0, 0, 547, 548, 5, 112, 0, 0, 548, 36, 1, 0, 0, 0, 549, 550, 5, 115, 0, 0, 550, 551, 5, 109, 0, 0, 551, 552, 5, 105, 0, 0, 552, 553, 5, 110, 0, 0, 553, 38, 1, 0, 0, 0, 554, 555, 5, 115, 0, 0, 555, 556, 5, 109, 0, 0, 556, 557, 5, 97, 0, 0, 557, 558, 5, 120, 0, 0, 558, 40, 1, 0, 0, 0, 559, 560, 5, 116, 0, 0, 560, 561, 5, 109, 0, 0, 561, 562, 5, 105, 0, 0, 562, 563, 5, 110, 0, 0, 563, 42, 1, 0, 0, 0, 564, 565, 5, 116, 0, 0, 565, 566, 5, 109, 0, 0, 566, 567, 5, 97, 0, 0, 567, 568, 5, 120, 0, 0, 568, 44, 1, 0, 0, 0, 569, 570, 5, 116, 0, 0, 570, 571, 5, 110, 0, 0, 571, 572, 5, 111, 0, 0, 572, 573, 5, 114, 0, 0, 573, 574, 5, 109, 0, 0, 574, 46, 1, 0, 0, 0, 575, 576, 5, 115, 0, 0, 576, 577, 5, 110, 0, 0, 577, 578, 5, 111, 0, 0, 578, 579, 5, 114, 0, 0, 579, 580, 5, 109, 0, 0, 580, 48, 1, 0, 0, 0, 581, 582, 5, 102, 0, 0, 582, 583, 5, 108, 0, 0, 583, 584, 5, 111, 0, 0, 584, 585, 5, 111, 0, 0, 585, 586, 5, 114, 0, 0, 586, 50, 1, 0, 0, 0, 587, 588, 5, 99, 0, 0, 588, 589, 5, 101, 0, 0, 589, 590, 5, 105, 0, 0, 590, 591, 5, 108, 0, 0, 591, 52, 1, 0, 0, 0, 592, 593, 5, 114, 0, 0, 593, 594, 5, 111, 0, 0, 594, 595, 5, 117, 0, 0, 595, 596, 5, 110, 0, 0, 596, 597, 5, 100, 0, 0, 597, 54, 1, 0, 0, 0, 598, 599, 5, 103, 0, 0, 599, 600, 5, 97, 0, 0, 600, 601, 5, 109, 0, 0, 601, 602, 5, 109, 0, 0, 602, 603, 5, 97, 0, 0, 603, 56, 1, 0, 0, 0, 604, 605, 5, 112, 0, 0, 605, 606, 5, 111, 0, 0, 606, 607, 5, 119, 0, 0, 607, 58, 1, 0, 0, 0, 608, 609, 5, 115, 0, 0, 609, 610, 5, 105, 0, 0, 610, 611, 5, 103, 0, 0, 611, 612, 5, 109, 0, 0, 612, 60, 1, 0, 0, 0, 613, 614, 5, 99, 0, 0, 614, 615, 5, 108, 0, 0, 615, 616, 5, 97, 0, 0, 616, 617, 5, 109, 0, 0, 617, 618, 5, 112, 0, 0, 618, 62, 1, 0, 0, 0, 619, 620, 5, 102, 0, 0, 620, 621, 5, 102, 0, 0, 621, 622, 5, 116, 0, 0, 622, 64, 1, 0, 0, 0, 623, 624, 5, 105, 0, 0, 624, 625, 5, 102, 0, 0, 625, 626, 5, 102, 0, 0, 626, 627, 5, 116, 0, 0, 627, 66, 1, 0, 0, 0, 628, 629, 5, 97, 0, 0, 629, 630, 5, 110, 0, 0, 630, 631, 5, 103, 0, 0, 631, 632, 5, 108, 0, 0, 632, 633, 5, 101, 0, 0, 633, 68, 1, 0, 0, 0, 634, 635, 5, 112, 0, 0, 635, 636, 5, 114, 0, 0, 636, 637, 5, 105, 0, 0, 637, 638, 5, 110, 0, 0, 638, 639, 5, 116, 0, 0, 639, 70, 1, 0, 0, 0, 640, 641, 5, 112, 0, 0, 641, 642, 5, 114, 0, 0, 642, 643, 5, 105, 0, 0, 643, 644, 5, 110, 0, 0, 644, 645, 5, 116, 0, 0, 645, 646, 5, 95, 0, 0, 646, 647, 5, 115, 0, 0, 647, 648, 5, 104, 0, 0, 648, 649, 5, 97, 0, 0, 649, 650, 5, 112, 0, 0, 650, 656, 5, 101, 0, 0, 651, 652, 5, 112, 0, 0, 652, 653, 5, 115, 0, 0, 653, 654, 5, 104, 0, 0, 654, 656, 5, 112, 0, 0, 655, 640, 1, 0, 0, 0, 655, 651, 1, 0, 0, 0, 656, 72, 1, 0, 0, 0, 657, 658, 5, 110, 0, 0, 658, 659, 5, 118, 0, 0, 659, 671, 5, 108, 0, 0, 660, 661, 5, 110, 0, 0, 661, 662, 5, 97, 0, 0, 662, 663, 5, 110, 0, 0, 663, 664, 5, 95, 0, 0, 664, 665, 5, 116, 0, 0, 665, 666, 5, 111, 0, 0, 666, 667, 5, 95, 0, 0, 667, 668, 5, 110, 0, 0, 668, 669, 5, 117, 0, 0, 669, 671, 5, 109, 0, 0, 670, 657, 1, 0, 0, 0, 670, 660, 1, 0, 0, 0, 671, 74, 1, 0, 0, 0, 672, 673, 5, 108, 0, 0, 673, 674, 5, 101, 0, 0, 674, 675, 5, 114, 0, 0, 675, 676, 5, 112, 0, 0, 676, 76, 1, 0, 0, 0, 677, 678, 5, 115, 0, 0, 678, 679, 5, 116, 0, 0, 679, 680, 5, 101, 0, 0, 680, 681, 5, 112, 0, 0, 681, 78, 1, 0, 0, 0, 682, 683, 5, 115, 0, 0, 683, 684, 5, 109, 0, 0, 684, 685, 5, 111, 0, 0, 685, 686, 5, 111, 0, 0, 686, 687, 5, 116, 0, 0, 687, 688, 5, 104, 0, 0, 688, 689, 5, 115, 0, 0, 689, 690, 5, 116, 0, 0, 690, 691, 5, 101, 0, 0, 691, 692, 5, 112, 0, 0, 692, 80, 1, 0, 0, 0, 693, 694, 5, 102, 0, 0, 694, 695, 5, 114, 0, 0, 695, 696, 5, 97, 0, 0, 696, 697, 5, 99, 0, 0, 697, 698, 5, 116, 0, 0, 698, 82, 1, 0, 0, 0, 699, 700, 5, 114, 0, 0, 700, 701, 5, 101, 0, 0, 701, 702, 5, 108, 0, 0, 702, 703, 5, 117, 0, 0, 703, 84, 1, 0, 0, 0, 704, 705, 5, 115, 0, 0, 705, 706, 5, 111, 0, 0, 706, 707, 5, 102, 0, 0, 707, 708, 5, 116, 0, 0, 708, 709, 5, 112, 0, 0, 709, 710, 5, 108, 0, 0, 710, 711, 5, 117, 0, 0, 711, 712, 5, 115, 0, 0, 712, 86, 1, 0, 0, 0, 713, 714, 5, 103, 0, 0, 714, 715, 5, 101, 0, 0, 715, 716, 5, 108, 0, 0, 716, 717, 5, 117, 0, 0, 717, 88, 1, 0, 0, 0, 718, 719, 5, 115, 0, 0, 719, 720, 5, 105, 0, 0, 720, 721, 5, 103, 0, 0, 721, 722, 5, 110, 0, 0, 722, 90, 1, 0, 0, 0, 723, 724, 5, 109, 0, 0, 724, 725, 5, 97, 0, 0, 725, 726, 5, 112, 0, 0, 726, 92, 1, 0, 0, 0, 727, 728, 5, 101, 0, 0, 728, 729, 5, 122, 0, 0, 729, 730, 5, 99, 0, 0, 730, 731, 5, 111, 0, 0, 731, 732, 5, 110, 0, 0, 732, 733, 5, 118, 0, 0, 733, 734, 5, 111, 0, 0, 734, 735, 5, 108, 0, 0, 735, 736, 5, 117, 0, 0, 736, 737, 5, 116, 0, 0, 737, 738, 5, 105, 0, 0, 738, 739, 5, 111, 0, 0, 739, 747, 5, 110, 0, 0, 740, 741, 5, 101, 0, 0, 741, 742, 5, 122, 0, 0, 742, 743, 5, 99, 0, 0, 743, 744, 5, 111, 0, 0, 744, 745, 5, 110, 0, 0, 745, 747, 5, 118, 0, 0, 746, 727, 1, 0, 0, 0, 746, 740, 1, 0, 0, 0, 747, 94, 1, 0, 0, 0, 748, 749, 5, 99, 0, 0, 749, 750, 5, 111, 0, 0, 750, 751, 5, 110, 0, 0, 751, 752, 5, 118, 0, 0, 752, 753, 5, 111, 0, 0, 753, 754, 5, 108, 0, 0, 754, 755, 5, 117, 0, 0, 755, 756, 5, 116, 0, 0, 756, 757, 5, 105, 0, 0, 757, 758, 5, 111, 0, 0, 758, 764, 5, 110, 0, 0, 759, 760, 5, 99, 0, 0, 760, 761, 5, 111, 0, 0, 761, 762, 5, 110, 0, 0, 762, 764, 5, 118, 0, 0, 763, 748, 1, 0, 0, 0, 763, 759, 1, 0, 0, 0, 764, 96, 1, 0, 0, 0, 765, 766, 5, 115, 0, 0, 766, 767, 5, 119, 0, 0, 767, 768, 5, 97, 0, 0, 768, 769, 5, 112, 0, 0, 769, 98, 1, 0, 0, 0, 770, 771, 5, 112, 0, 0, 771, 772, 5, 101, 0, 0, 772, 773, 5, 114, 0, 0, 773, 774, 5, 109, 0, 0, 774, 775, 5, 117, 0, 0, 775, 776, 5, 116, 0, 0, 776, 782, 5, 101, 0, 0, 777, 778, 5, 112, 0, 0, 778, 779, 5, 101, 0, 0, 779, 780, 5, 114, 0, 0, 780, 782, 5, 109, 0, 0, 781, 770, 1, 0, 0, 0, 781, 777, 1, 0, 0, 0, 782, 100, 1, 0, 0, 0, 783, 784, 5, 114, 0, 0, 784, 785, 5, 101, 0, 0, 785, 786, 5, 115, 0, 0, 786, 787, 5, 104, 0, 0, 787, 788, 5, 97, 0, 0, 788, 789, 5, 112, 0, 0, 789, 795, 5, 101, 0, 0, 790, 791, 5, 114, 0, 0, 791, 792, 5, 115, 0, 0, 792, 793, 5, 104, 0, 0, 793, 795, 5, 112, 0, 0, 794, 783, 1, 0, 0, 0, 794, 790, 1, 0, 0, 0, 795, 102, 1, 0, 0, 0, 796, 797, 5, 114, 0, 0, 797, 798, 5, 97, 0, 0, 798, 799, 5, 110, 0, 0, 799, 800, 5, 103, 0, 0, 800, 801, 5, 101, 0, 0, 801, 104, 1, 0, 0, 0, 802, 803, 5, 108, 0, 0, 803, 804, 5, 105, 0, 0, 804, 805, 5, 110, 0, 0, 805, 806, 5, 115, 0, 0, 806, 807, 5, 112, 0, 0, 807, 808, 5, 97, 0, 0, 808, 809, 5, 99, 0, 0, 809, 810, 5, 101, 0, 0, 810, 106, 1, 0, 0, 0, 811, 812, 5, 108, 0, 0, 812, 813, 5, 111, 0, 0, 813, 814, 5, 103, 0, 0, 814, 815, 5, 115, 0, 0, 815, 816, 5, 112, 0, 0, 816, 817, 5, 97, 0, 0, 817, 818, 5, 99, 0, 0, 818, 819, 5, 101, 0, 0, 819, 108, 1, 0, 0, 0, 820, 821, 5, 116, 0, 0, 821, 822, 5, 111, 0, 0, 822, 823, 5, 112, 0, 0, 823, 824, 5, 107, 0, 0, 824, 110, 1, 0, 0, 0, 825, 826, 5, 98, 0, 0, 826, 827, 5, 111, 0, 0, 827, 828, 5, 116, 0, 0, 828, 829, 5, 107, 0, 0, 829, 112, 1, 0, 0, 0, 830, 831, 5, 112, 0, 0, 831, 832, 5, 105, 0, 0, 832, 833, 5, 110, 0, 0, 833, 834, 5, 118, 0, 0, 834, 114, 1, 0, 0, 0, 835, 836, 5, 115, 0, 0, 836, 837, 5, 117, 0, 0, 837, 838, 5, 109, 0, 0, 838, 116, 1, 0, 0, 0, 839, 840, 5, 109, 0, 0, 840, 841, 5, 101, 0, 0, 841, 842, 5, 97, 0, 0, 842, 843, 5, 110, 0, 0, 843, 118, 1, 0, 0, 0, 844, 845, 5, 115, 0, 0, 845, 846, 5, 116, 0, 0, 846, 847, 5, 100, 0, 0, 847, 120, 1, 0, 0, 0, 848, 849, 5, 118, 0, 0, 849, 850, 5, 97, 0, 0, 850, 851, 5, 114, 0, 0, 851, 122, 1, 0, 0, 0, 852, 853, 5, 113, 0, 0, 853, 854, 5, 117, 0, 0, 854, 855, 5, 97, 0, 0, 855, 856, 5, 114, 0, 0, 856, 857, 5, 116, 0, 0, 857, 858, 5, 105, 0, 0, 858, 859, 5, 108, 0, 0, 859, 868, 5, 101, 0, 0, 860, 861, 5, 113, 0, 0, 861, 862, 5, 117, 0, 0, 862, 863, 5, 97, 0, 0, 863, 864, 5, 114, 0, 0, 864, 865, 5, 116, 0, 0, 865, 866, 5, 105, 0, 0, 866, 868, 5, 108, 0, 0, 867, 852, 1, 0, 0, 0, 867, 860, 1, 0, 0, 0, 868, 124, 1, 0, 0, 0, 869, 870, 5, 112, 0, 0, 870, 871, 5, 101, 0, 0, 871, 872, 5, 114, 0, 0, 872, 873, 5, 99, 0, 0, 873, 874, 5, 101, 0, 0, 874, 875, 5, 110, 0, 0, 875, 876, 5, 116, 0, 0, 876, 877, 5, 105, 0, 0, 877, 878, 5, 108, 0, 0, 878, 885, 5, 101, 0, 0, 879, 880, 5, 112, 0, 0, 880, 881, 5, 114, 0, 0, 881, 882, 5, 99, 0, 0, 882, 883, 5, 110, 0, 0, 883, 885, 5, 116, 0, 0, 884, 869, 1, 0, 0, 0, 884, 879, 1, 0, 0, 0, 885, 126, 1, 0, 0, 0, 886, 887, 5, 113, 0, 0, 887, 888, 5, 117, 0, 0, 888, 889, 5, 97, 0, 0, 889, 890, 5, 110, 0, 0, 890, 891, 5, 116, 0, 0, 891, 892, 5, 105, 0, 0, 892, 893, 5, 108, 0, 0, 893, 894, 5, 101, 0, 0, 894, 128, 1, 0, 0, 0, 895, 896, 5, 100, 0, 0, 896, 897, 5, 111, 0, 0, 897, 898, 5, 116, 0, 0, 898, 130, 1, 0, 0, 0, 899, 900, 5, 109, 0, 0, 900, 901, 5, 111, 0, 0, 901, 902, 5, 109, 0, 0, 902, 903, 5, 101, 0, 0, 903, 904, 5, 110, 0, 0, 904, 905, 5, 116, 0, 0, 905, 132, 1, 0, 0, 0, 906, 907, 5, 101, 0, 0, 907, 908, 5, 114, 0, 0, 908, 909, 5, 102, 0, 0, 909, 134, 1, 0, 0, 0, 910, 911, 5, 101, 0, 0, 911, 912, 5, 114, 0, 0, 912, 913, 5, 102, 0, 0, 913, 914, 5, 105, 0, 0, 914, 915, 5, 110, 0, 0, 915, 916, 5, 118, 0, 0, 916, 136, 1, 0, 0, 0, 917, 918, 5, 97, 0, 0, 918, 919, 5, 110, 0, 0, 919, 920, 5, 121, 0, 0, 920, 138, 1, 0, 0, 0, 921, 922, 5, 97, 0, 0, 922, 923, 5, 108, 0, 0, 923, 924, 5, 108, 0, 0, 924, 140, 1, 0, 0, 0, 925, 926, 5, 101, 0, 0, 926, 927, 5, 100, 0, 0, 927, 928, 5, 103, 0, 0, 928, 929, 5, 101, 0, 0, 929, 142, 1, 0, 0, 0, 930, 931, 5, 98, 0, 0, 931, 932, 5, 108, 0, 0, 932, 933, 5, 117, 0, 0, 933, 943, 5, 114, 0, 0, 934, 935, 5, 103, 0, 0, 935, 936, 5, 97, 0, 0, 936, 937, 5, 117, 0, 0, 937, 938, 5, 115, 0, 0, 938, 939, 5, 115, 0, 0, 939, 940, 5, 105, 0, 0, 940, 941, 5, 97, 0, 0, 941, 943, 5, 110, 0, 0, 942, 930, 1, 0, 0, 0, 942, 934, 1, 0, 0, 0, 943, 144, 1, 0, 0, 0, 944, 945, 5, 109, 0, 0, 945, 946, 5, 101, 0, 0, 946, 947, 5, 100, 0, 0, 947, 948, 5, 105, 0, 0, 948, 949, 5, 97, 0, 0, 949, 950, 5, 110, 0, 0, 950, 146, 1, 0, 0, 0, 951, 952, 5, 109, 0, 0, 952, 953, 5, 111, 0, 0, 953, 954, 5, 100, 0, 0, 954, 955, 5, 101, 0, 0, 955, 148, 1, 0, 0, 0, 956, 957, 5, 99, 0, 0, 957, 958, 5, 117, 0, 0, 958, 959, 5, 109, 0, 0, 959, 960, 5, 115, 0, 0, 960, 961, 5, 117, 0, 0, 961, 962, 5, 109, 0, 0, 962, 150, 1, 0, 0, 0, 963, 964, 5, 99, 0, 0, 964, 965, 5, 117, 0, 0, 965, 966, 5, 109, 0, 0, 966, 967, 5, 112, 0, 0, 967, 968, 5, 114, 0, 0, 968, 969, 5, 111, 0, 0, 969, 970, 5, 100, 0, 0, 970, 152, 1, 0, 0, 0, 971, 972, 5, 116, 0, 0, 972, 973, 5, 111, 0, 0, 973, 974, 5, 112, 0, 0, 974, 975, 5, 107, 0, 0, 975, 976, 5, 95, 0, 0, 976, 977, 5, 105, 0, 0, 977, 978, 5, 110, 0, 0, 978, 992, 5, 100, 0, 0, 979, 980, 5, 116, 0, 0, 980, 981, 5, 111, 0, 0, 981, 982, 5, 112, 0, 0, 982, 983, 5, 107, 0, 0, 983, 984, 5, 95, 0, 0, 984, 985, 5, 105, 0, 0, 985, 986, 5, 110, 0, 0, 986, 987, 5, 100, 0, 0, 987, 988, 5, 105, 0, 0, 988, 989, 5, 99, 0, 0, 989, 990, 5, 101, 0, 0, 990, 992, 5, 115, 0, 0, 991, 971, 1, 0, 0, 0, 991, 979, 1, 0, 0, 0, 992, 154, 1, 0, 0, 0, 993, 994, 5, 98, 0, 0, 994, 995, 5, 111, 0, 0, 995, 996, 5, 116, 0, 0, 996, 997, 5, 107, 0, 0, 997, 998, 5, 95, 0, 0, 998, 999, 5, 105, 0, 0, 999, 1000, 5, 110, 0, 0, 1000, 1014, 5, 100, 0, 0, 1001, 1002, 5, 98, 0, 0, 1002, 1003, 5, 111, 0, 0, 1003, 1004, 5, 116, 0, 0, 1004, 1005, 5, 107, 0, 0, 1005, 1006, 5, 95, 0, 0, 1006, 1007, 5, 105, 0, 0, 1007, 1008, 5, 110, 0, 0, 1008, 1009, 5, 100, 0, 0, 1009, 1010, 5, 105, 0, 0, 1010, 1011, 5, 99, 0, 0, 1011, 1012, 5, 101, 0, 0, 1012, 1014, 5, 115, 0, 0, 1013, 993, 1, 0, 0, 0, 1013, 1001, 1, 0, 0, 0, 1014, 156, 1, 0, 0, 0, 1015, 1016, 5, 99, 0, 0, 1016, 1017, 5, 117, 0, 0, 1017, 1018, 5, 98, 0, 0, 1018, 1019, 5, 105, 0, 0, 1019, 1020, 5, 99, 0, 0, 1020, 1021, 5, 95, 0, 0, 1021, 1022, 5, 101, 0, 0, 1022, 1023, 5, 97, 0, 0, 1023, 1024, 5, 115, 0, 0, 1024, 1031, 5, 101, 0, 0, 1025, 1026, 5, 99, 0, 0, 1026, 1027, 5, 117, 0, 0, 1027, 1028, 5, 98, 0, 0, 1028, 1029, 5, 105, 0, 0, 1029, 1031, 5, 99, 0, 0, 1030, 1015, 1, 0, 0, 0, 1030, 1025, 1, 0, 0, 0, 1031, 158, 1, 0, 0, 0, 1032, 1033, 5, 101, 0, 0, 1033, 1034, 5, 108, 0, 0, 1034, 1035, 5, 97, 0, 0, 1035, 1036, 5, 115, 0, 0, 1036, 1037, 5, 116, 0, 0, 1037, 1038, 5, 105, 0, 0, 1038, 1039, 5, 99, 0, 0, 1039, 1040, 5, 95, 0, 0, 1040, 1041, 5, 101, 0, 0, 1041, 1042, 5, 97, 0, 0, 1042, 1043, 5, 115, 0, 0, 1043, 1052, 5, 101, 0, 0, 1044, 1045, 5, 101, 0, 0, 1045, 1046, 5, 108, 0, 0, 1046, 1047, 5, 97, 0, 0, 1047, 1048, 5, 115, 0, 0, 1048, 1049, 5, 116, 0, 0, 1049, 1050, 5, 105, 0, 0, 1050, 1052, 5, 99, 0, 0, 1051, 1032, 1, 0, 0, 0, 1051, 1044, 1, 0, 0, 0, 1052, 160, 1, 0, 0, 0, 1053, 1054, 5, 115, 0, 0, 1054, 1055, 5, 105, 0, 0, 1055, 1056, 5, 110, 0, 0, 1056, 1057, 5, 101, 0, 0, 1057, 1058, 5, 95, 0, 0, 1058, 1059, 5, 101, 0, 0, 1059, 1060, 5, 97, 0, 0, 1060, 1061, 5, 115, 0, 0, 1061, 1067, 5, 101, 0, 0, 1062, 1063, 5, 115, 0, 0, 1063, 1064, 5, 105, 0, 0, 1064, 1065, 5, 110, 0, 0, 1065, 1067, 5, 101, 0, 0, 1066, 1053, 1, 0, 0, 0, 1066, 1062, 1, 0, 0, 0, 1067, 162, 1, 0, 0, 0, 1068, 1069, 5, 115, 0, 0, 1069, 1070, 5, 109, 0, 0, 1070, 1071, 5, 111, 0, 0, 1071, 1072, 5, 111, 0, 0, 1072, 1073, 5, 116, 0, 0, 1073, 1074, 5, 104, 0, 0, 1074, 1075, 5, 101, 0, 0, 1075, 1076, 5, 114, 0, 0, 1076, 1077, 5, 115, 0, 0, 1077, 1078, 5, 116, 0, 0, 1078, 1079, 5, 101, 0, 0, 1079, 1080, 5, 112, 0, 0, 1080, 164, 1, 0, 0, 0, 1081, 1082, 5, 100, 0, 0, 1082, 1083, 5, 105, 0, 0, 1083, 1084, 5, 115, 0, 0, 1084, 1094, 5, 116, 0, 0, 1085, 1086, 5, 100, 0, 0, 1086, 1087, 5, 105, 0, 0, 1087, 1088, 5, 115, 0, 0, 1088, 1089, 5, 116, 0, 0, 1089, 1090, 5, 97, 0, 0, 1090, 1091, 5, 110, 0, 0, 1091, 1092, 5, 99, 0, 0, 1092, 1094, 5, 101, 0, 0, 1093, 1081, 1, 0, 0, 0, 1093, 1085, 1, 0, 0, 0, 1094, 166, 1, 0, 0, 0, 1095, 1096, 5, 114, 0, 0, 1096, 1097, 5, 101, 0, 0, 1097, 1098, 5, 109, 0, 0, 1098, 1099, 5, 97, 0, 0, 1099, 1100, 5, 112, 0, 0, 1100, 168, 1, 0, 0, 0, 1101, 1102, 5, 99, 0, 0, 1102, 1103, 5, 111, 0, 0, 1103, 1104, 5, 115, 0, 0, 1104, 1105, 5, 115, 0, 0, 1105, 1106, 5, 105, 0, 0, 1106, 1125, 5, 109, 0, 0, 1107, 1108, 5, 99, 0, 0, 1108, 1109, 5, 111, 0, 0, 1109, 1110, 5, 115, 0, 0, 1110, 1111, 5, 105, 0, 0, 1111, 1112, 5, 110, 0, 0, 1112, 1113, 5, 101, 0, 0, 1113, 1114, 5, 95, 0, 0, 1114, 1115, 5, 115, 0, 0, 1115, 1116, 5, 105, 0, 0, 1116, 1117, 5, 109, 0, 0, 1117, 1118, 5, 105, 0, 0, 1118, 1119, 5, 108, 0, 0, 1119, 1120, 5, 97, 0, 0, 1120, 1121, 5, 114, 0, 0, 1121, 1122, 5, 105, 0, 0, 1122, 1123, 5, 116, 0, 0, 1123, 1125, 5, 121, 0, 0, 1124, 1101, 1, 0, 0, 0, 1124, 1107, 1, 0, 0, 0, 1125, 170, 1, 0, 0, 0, 1126, 1127, 5, 99, 0, 0, 1127, 1128, 5, 111, 0, 0, 1128, 1129, 5, 117, 0, 0, 1129, 1130, 5, 110, 0, 0, 1130, 1141, 5, 116, 0, 0, 1131, 1132, 5, 99, 0, 0, 1132, 1133, 5, 110, 0, 0, 1133, 1141, 5, 116, 0, 0, 1134, 1135, 5, 108, 0, 0, 1135, 1136, 5, 101, 0, 0, 1136, 1137, 5, 110, 0, 0, 1137, 1138, 5, 103, 0, 0, 1138, 1139, 5, 116, 0, 0, 1139, 1141, 5, 104, 0, 0, 1140, 1126, 1, 0, 0, 0, 1140, 1131, 1, 0, 0, 0, 1140, 1134, 1, 0, 0, 0, 1141, 172, 1, 0, 0, 0, 1142, 1143, 5, 114, 0, 0, 1143, 1144, 5, 101, 0, 0, 1144, 1145, 5, 112, 0, 0, 1145, 1146, 5, 101, 0, 0, 1146, 1147, 5, 97, 0, 0, 1147, 1148, 5, 116, 0, 0, 1148, 174, 1, 0, 0, 0, 1149, 1150, 5, 102, 0, 0, 1150, 1151, 5, 108, 0, 0, 1151, 1152, 5, 97, 0, 0, 1152, 1153, 5, 116, 0, 0, 1153, 1154, 5, 116, 0, 0, 1154, 1155, 5, 101, 0, 0, 1155, 1156, 5, 110, 0, 0, 1156, 176, 1, 0, 0, 0, 1157, 1158, 5, 97, 0, 0, 1158, 1159, 5, 112, 0, 0, 1159, 1160, 5, 112, 0, 0, 1160, 1161, 5, 101, 0, 0, 1161, 1162, 5, 110, 0, 0, 1162, 1163, 5, 100, 0, 0, 1163, 178, 1, 0, 0, 0, 1164, 1165, 5, 103, 0, 0, 1165, 1166, 5, 101, 0, 0, 1166, 1167, 5, 116, 0, 0, 1167, 1168, 5, 95, 0, 0, 1168, 1169, 5, 118, 0, 0, 1169, 1170, 5, 97, 0, 0, 1170, 1171, 5, 108, 0, 0, 1171, 1172, 5, 117, 0, 0, 1172, 1173, 5, 101, 0, 0, 1173, 180, 1, 0, 0, 0, 1174, 1175, 5, 102, 0, 0, 1175, 1176, 5, 108, 0, 0, 1176, 1177, 5, 111, 0, 0, 1177, 1178, 5, 119, 0, 0, 1178, 1179, 5, 95, 0, 0, 1179, 1180, 5, 97, 0, 0, 1180, 1181, 5, 112, 0, 0, 1181, 1182, 5, 112, 0, 0, 1182, 1183, 5, 108, 0, 0, 1183, 1184, 5, 121, 0, 0, 1184, 182, 1, 0, 0, 0, 1185, 1186, 5, 98, 0, 0, 1186, 1187, 5, 97, 0, 0, 1187, 1188, 5, 116, 0, 0, 1188, 1189, 5, 99, 0, 0, 1189, 1190, 5, 104, 0, 0, 1190, 1191, 5, 95, 0, 0, 1191, 1192, 5, 115, 0, 0, 1192, 1193, 5, 104, 0, 0, 1193, 1194, 5, 117, 0, 0, 1194, 1195, 5, 102, 0, 0, 1195, 1196, 5, 102, 0, 0, 1196, 1197, 5, 108, 0, 0, 1197, 1212, 5, 101, 0, 0, 1198, 1199, 5, 115, 0, 0, 1199, 1200, 5, 104, 0, 0, 1200, 1201, 5, 117, 0, 0, 1201, 1202, 5, 102, 0, 0, 1202, 1203, 5, 102, 0, 0, 1203, 1204, 5, 108, 0, 0, 1204, 1212, 5, 101, 0, 0, 1205, 1206, 5, 115, 0, 0, 1206, 1207, 5, 101, 0, 0, 1207, 1208, 5, 108, 0, 0, 1208, 1209, 5, 101, 0, 0, 1209, 1210, 5, 99, 0, 0, 1210, 1212, 5, 116, 0, 0, 1211, 1185, 1, 0, 0, 0, 1211, 1198, 1, 0, 0, 0, 1211, 1205, 1, 0, 0, 0, 1212, 184, 1, 0, 0, 0, 1213, 1214, 5, 109, 0, 0, 1214, 1215, 5, 111, 0, 0, 1215, 1216, 5, 116, 0, 0, 1216, 1217, 5, 105, 0, 0, 1217, 1218, 5, 111, 0, 0, 1218, 1219, 5, 110, 0, 0, 1219, 1220, 5, 95, 0, 0, 1220, 1221, 5, 109, 0, 0, 1221, 1222, 5, 97, 0, 0, 1222, 1223, 5, 115, 0, 0, 1223, 1224, 5, 107, 0, 0, 1224, 186, 1, 0, 0, 0, 1225, 1226, 5, 102, 0, 0, 1226, 1227, 5, 108, 0, 0, 1227, 1228, 5, 111, 0, 0, 1228, 1229, 5, 119, 0, 0, 1229, 1230, 5, 95, 0, 0, 1230, 1231, 5, 116, 0, 0, 1231, 1232, 5, 111, 0, 0, 1232, 1233, 5, 95, 0, 0, 1233, 1234, 5, 105, 0, 0, 1234, 1235, 5, 109, 0, 0, 1235, 1236, 5, 97, 0, 0, 1236, 1237, 5, 103, 0, 0, 1237, 1238, 5, 101, 0, 0, 1238, 188, 1, 0, 0, 0, 1239, 1240, 5, 102, 0, 0, 1240, 1241, 5, 108, 0, 0, 1241, 1242, 5, 111, 0, 0, 1242, 1243, 5, 119, 0, 0, 1243, 1244, 5, 95, 0, 0, 1244, 1245, 5, 109, 0, 0, 1245, 1246, 5, 97, 0, 0, 1246, 1262, 5, 103, 0, 0, 1247, 1248, 5, 102, 0, 0, 1248, 1249, 5, 108, 0, 0, 1249, 1250, 5, 111, 0, 0, 1250, 1251, 5, 119, 0, 0, 1251, 1252, 5, 95, 0, 0, 1252, 1253, 5, 109, 0, 0, 1253, 1254, 5, 97, 0, 0, 1254, 1255, 5, 103, 0, 0, 1255, 1256, 5, 110, 0, 0, 1256, 1257, 5, 105, 0, 0, 1257, 1258, 5, 116, 0, 0, 1258, 1259, 5, 117, 0, 0, 1259, 1260, 5, 100, 0, 0, 1260, 1262, 5, 101, 0, 0, 1261, 1239, 1, 0, 0, 0, 1261, 1247, 1, 0, 0, 0, 1262, 190, 1, 0, 0, 0, 1263, 1264, 5, 102, 0, 0, 1264, 1265, 5, 108, 0, 0, 1265, 1266, 5, 111, 0, 0, 1266, 1267, 5, 119, 0, 0, 1267, 1268, 5, 95, 0, 0, 1268, 1269, 5, 97, 0, 0, 1269, 1270, 5, 110, 0, 0, 1270, 1282, 5, 103, 0, 0, 1271, 1272, 5, 102, 0, 0, 1272, 1273, 5, 108, 0, 0, 1273, 1274, 5, 111, 0, 0, 1274, 1275, 5, 119, 0, 0, 1275, 1276, 5, 95, 0, 0, 1276, 1277, 5, 97, 0, 0, 1277, 1278, 5, 110, 0, 0, 1278, 1279, 5, 103, 0, 0, 1279, 1280, 5, 108, 0, 0, 1280, 1282, 5, 101, 0, 0, 1281, 1263, 1, 0, 0, 0, 1281, 1271, 1, 0, 0, 0, 1282, 192, 1, 0, 0, 0, 1283, 1284, 5, 119, 0, 0, 1284, 1285, 5, 104, 0, 0, 1285, 1286, 5, 101, 0, 0, 1286, 1287, 5, 114, 0, 0, 1287, 1288, 5, 101, 0, 0, 1288, 194, 1, 0, 0, 0, 1289, 1290, 5, 104, 0, 0, 1290, 1291, 5, 105, 0, 0, 1291, 1292, 5, 115, 0, 0, 1292, 1293, 5, 116, 0, 0, 1293, 1294, 5, 111, 0, 0, 1294, 1295, 5, 103, 0, 0, 1295, 1296, 5, 114, 0, 0, 1296, 1297, 5, 97, 0, 0, 1297, 1303, 5, 109, 0, 0, 1298, 1299, 5, 104, 0, 0, 1299, 1300, 5, 105, 0, 0, 1300, 1301, 5, 115, 0, 0, 1301, 1303, 5, 116, 0, 0, 1302, 1289, 1, 0, 0, 0, 1302, 1298, 1, 0, 0, 0, 1303, 196, 1, 0, 0, 0, 1304, 1305, 5, 111, 0, 0, 1305, 1306, 5, 118, 0, 0, 1306, 1307, 5, 101, 0, 0, 1307, 1308, 5, 114, 0, 0, 1308, 1309, 5, 108, 0, 0, 1309, 1310, 5, 97, 0, 0, 1310, 1311, 5, 121, 0, 0, 1311, 198, 1, 0, 0, 0, 1312, 1313, 5, 112, 0, 0, 1313, 1314, 5, 97, 0, 0, 1314, 1315, 5, 100, 0, 0, 1315, 200, 1, 0, 0, 0, 1316, 1317, 5, 99, 0, 0, 1317, 1318, 5, 114, 0, 0, 1318, 1319, 5, 111, 0, 0, 1319, 1320, 5, 115, 0, 0, 1320, 1321, 5, 115, 0, 0, 1321, 202, 1, 0, 0, 0, 1322, 1323, 5, 109, 0, 0, 1323, 1324, 5, 97, 0, 0, 1324, 1325, 5, 116, 0, 0, 1325, 1326, 5, 109, 0, 0, 1326, 1327, 5, 117, 0, 0, 1327, 1328, 5, 108, 0, 0, 1328, 204, 1, 0, 0, 0, 1329, 1330, 5, 114, 0, 0, 1330, 1331, 5, 105, 0, 0, 1331, 1332, 5, 102, 0, 0, 1332, 1333, 5, 101, 0, 0, 1333, 206, 1, 0, 0, 0, 1334, 1335, 5, 98, 0, 0, 1335, 1336, 5, 110, 0, 0, 1336, 1337, 5, 111, 0, 0, 1337, 1350, 5, 116, 0, 0, 1338, 1339, 5, 98, 0, 0, 1339, 1340, 5, 105, 0, 0, 1340, 1341, 5, 116, 0, 0, 1341, 1342, 5, 119, 0, 0, 1342, 1343, 5, 105, 0, 0, 1343, 1344, 5, 115, 0, 0, 1344, 1345, 5, 101, 0, 0, 1345, 1346, 5, 95, 0, 0, 1346, 1347, 5, 110, 0, 0, 1347, 1348, 5, 111, 0, 0, 1348, 1350, 5, 116, 0, 0, 1349, 1334, 1, 0, 0, 0, 1349, 1338, 1, 0, 0, 0, 1350, 208, 1, 0, 0, 0, 1351, 1352, 5, 98, 0, 0, 1352, 1353, 5, 105, 0, 0, 1353, 1354, 5, 116, 0, 0, 1354, 1355, 5, 99, 0, 0, 1355, 1356, 5, 111, 0, 0, 1356, 1357, 5, 117, 0, 0, 1357, 1358, 5, 110, 0, 0, 1358, 1374, 5, 116, 0, 0, 1359, 1360, 5, 112, 0, 0, 1360, 1361, 5, 111, 0, 0, 1361, 1362, 5, 112, 0, 0, 1362, 1363, 5, 99, 0, 0, 1363, 1364, 5, 111, 0, 0, 1364, 1365, 5, 117, 0, 0, 1365, 1366, 5, 110, 0, 0, 1366, 1374, 5, 116, 0, 0, 1367, 1368, 5, 112, 0, 0, 1368, 1369, 5, 111, 0, 0, 1369, 1370, 5, 112, 0, 0, 1370, 1371, 5, 99, 0, 0, 1371, 1372, 5, 110, 0, 0, 1372, 1374, 5, 116, 0, 0, 1373, 1351, 1, 0, 0, 0, 1373, 1359, 1, 0, 0, 0, 1373, 1367, 1, 0, 0, 0, 1374, 210, 1, 0, 0, 0, 1375, 1376, 5, 115, 0, 0, 1376, 1377, 5, 104, 0, 0, 1377, 1378, 5, 97, 0, 0, 1378, 1379, 5, 112, 0, 0, 1379, 1380, 5, 101, 0, 0, 1380, 212, 1, 0, 0, 0, 1381, 1382, 5, 98, 0, 0, 1382, 1383, 5, 97, 0, 0, 1383, 1384, 5, 110, 0, 0, 1384, 1397, 5, 100, 0, 0, 1385, 1386, 5, 98, 0, 0, 1386, 1387, 5, 105, 0, 0, 1387, 1388, 5, 116, 0, 0, 1388, 1389, 5, 119, 0, 0, 1389, 1390, 5, 105, 0, 0, 1390, 1391, 5, 115, 0, 0, 1391, 1392, 5, 101, 0, 0, 1392, 1393, 5, 95, 0, 0, 1393, 1394, 5, 97, 0, 0, 1394, 1395, 5, 110, 0, 0, 1395, 1397, 5, 100, 0, 0, 1396, 1381, 1, 0, 0, 0, 1396, 1385, 1, 0, 0, 0, 1397, 214, 1, 0, 0, 0, 1398, 1399, 5, 98, 0, 0, 1399, 1400, 5, 120, 0, 0, 1400, 1401, 5, 111, 0, 0, 1401, 1414, 5, 114, 0, 0, 1402, 1403, 5, 98, 0, 0, 1403, 1404, 5, 105, 0, 0, 1404, 1405, 5, 116, 0, 0, 1405, 1406, 5, 119, 0, 0, 1406, 1407, 5, 105, 0, 0, 1407, 1408, 5, 115, 0, 0, 1408, 1409, 5, 101, 0, 0, 1409, 1410, 5, 95, 0, 0, 1410, 1411, 5, 120, 0, 0, 1411, 1412, 5, 111, 0, 0, 1412, 1414, 5, 114, 0, 0, 1413, 1398, 1, 0, 0, 0, 1413, 1402, 1, 0, 0, 0, 1414, 216, 1, 0, 0, 0, 1415, 1416, 5, 98, 0, 0, 1416, 1417, 5, 111, 0, 0, 1417, 1429, 5, 114, 0, 0, 1418, 1419, 5, 98, 0, 0, 1419, 1420, 5, 105, 0, 0, 1420, 1421, 5, 116, 0, 0, 1421, 1422, 5, 119, 0, 0, 1422, 1423, 5, 105, 0, 0, 1423, 1424, 5, 115, 0, 0, 1424, 1425, 5, 101, 0, 0, 1425, 1426, 5, 95, 0, 0, 1426, 1427, 5, 111, 0, 0, 1427, 1429, 5, 114, 0, 0, 1428, 1415, 1, 0, 0, 0, 1428, 1418, 1, 0, 0, 0, 1429, 218, 1, 0, 0, 0, 1430, 1431, 5, 116, 0, 0, 1431, 1432, 5, 101, 0, 0, 1432, 1433, 5, 110, 0, 0, 1433, 1434, 5, 115, 0, 0, 1434, 1435, 5, 111, 0, 0, 1435, 1436, 5, 114, 0, 0, 1436, 220, 1, 0, 0, 0, 1437, 1438, 5, 115, 0, 0, 1438, 1439, 5, 116, 0, 0, 1439, 1440, 5, 97, 0, 0, 1440, 1441, 5, 99, 0, 0, 1441, 1442, 5, 107, 0, 0, 1442, 1443, 5, 95, 0, 0, 1443, 1444, 5, 112, 0, 0, 1444, 1445, 5, 117, 0, 0, 1445, 1446, 5, 115, 0, 0, 1446, 1447, 5, 104, 0, 0, 1447, 222, 1, 0, 0, 0, 1448, 1449, 5, 115, 0, 0, 1449, 1450, 5, 116, 0, 0, 1450, 1451, 5, 97, 0, 0, 1451, 1452, 5, 99, 0, 0, 1452, 1453, 5, 107, 0, 0, 1453, 1454, 5, 95, 0, 0, 1454, 1455, 5, 112, 0, 0, 1455, 1456, 5, 111, 0, 0, 1456, 1457, 5, 112, 0, 0, 1457, 224, 1, 0, 0, 0, 1458, 1459, 5, 115, 0, 0, 1459, 1460, 5, 116, 0, 0, 1460, 1461, 5, 97, 0, 0, 1461, 1462, 5, 99, 0, 0, 1462, 1463, 5, 107, 0, 0, 1463, 1464, 5, 95, 0, 0, 1464, 1465, 5, 99, 0, 0, 1465, 1466, 5, 108, 0, 0, 1466, 1467, 5, 101, 0, 0, 1467, 1468, 5, 97, 0, 0, 1468, 1469, 5, 114, 0, 0, 1469, 226, 1, 0, 0, 0, 1470, 1471, 5, 115, 0, 0, 1471, 1472, 5, 116, 0, 0, 1472, 1473, 5, 97, 0, 0, 1473, 1474, 5, 99, 0, 0, 1474, 1475, 5, 107, 0, 0, 1475, 1476, 5, 95, 0, 0, 1476, 1477, 5, 104, 0, 0, 1477, 1478, 5, 97, 0, 0, 1478, 1479, 5, 115, 0, 0, 1479, 228, 1, 0, 0, 0, 1480, 1481, 5, 115, 0, 0, 1481, 1482, 5, 116, 0, 0, 1482, 1483, 5, 97, 0, 0, 1483, 1484, 5, 99, 0, 0, 1484, 1485, 5, 107, 0, 0, 1485, 1486, 5, 95, 0, 0, 1486, 1487, 5, 103, 0, 0, 1487, 1488, 5, 101, 0, 0, 1488, 1489, 5, 116, 0, 0, 1489, 230, 1, 0, 0, 0, 1490, 1491, 5, 99, 0, 0, 1491, 1492, 5, 97, 0, 0, 1492, 1511, 5, 116, 0, 0, 1493, 1494, 5, 99, 0, 0, 1494, 1495, 5, 111, 0, 0, 1495, 1496, 5, 110, 0, 0, 1496, 1497, 5, 99, 0, 0, 1497, 1498, 5, 97, 0, 0, 1498, 1511, 5, 116, 0, 0, 1499, 1500, 5, 99, 0, 0, 1500, 1501, 5, 111, 0, 0, 1501, 1502, 5, 110, 0, 0, 1502, 1503, 5, 99, 0, 0, 1503, 1504, 5, 97, 0, 0, 1504, 1505, 5, 116, 0, 0, 1505, 1506, 5, 101, 0, 0, 1506, 1507, 5, 110, 0, 0, 1507, 1508, 5, 97, 0, 0, 1508, 1509, 5, 116, 0, 0, 1509, 1511, 5, 101, 0, 0, 1510, 1490, 1, 0, 0, 0, 1510, 1493, 1, 0, 0, 0, 1510, 1499, 1, 0, 0, 0, 1511, 232, 1, 0, 0, 0, 1512, 1513, 5, 105, 0, 0, 1513, 1514, 5, 110, 0, 0, 1514, 1515, 5, 116, 0, 0, 1515, 234, 1, 0, 0, 0, 1516, 1517, 5, 102, 0, 0, 1517, 1518, 5, 108, 0, 0, 1518, 1519, 5, 111, 0, 0, 1519, 1520, 5, 97, 0, 0, 1520, 1521, 5, 116, 0, 0, 1521, 236, 1, 0, 0, 0, 1522, 1523, 5, 117, 0, 0, 1523, 1524, 5, 112, 0, 0, 1524, 1525, 5, 112, 0, 0, 1525, 1526, 5, 101, 0, 0, 1526, 1527, 5, 114, 0, 0, 1527, 238, 1, 0, 0, 0, 1528, 1529, 5, 108, 0, 0, 1529, 1530, 5, 111, 0, 0, 1530, 1531, 5, 119, 0, 0, 1531, 1532, 5, 101, 0, 0, 1532, 1533, 5, 114, 0, 0, 1533, 240, 1, 0, 0, 0, 1534, 1535, 5, 116, 0, 0, 1535, 1536, 5, 114, 0, 0, 1536, 1537, 5, 105, 0, 0, 1537, 1538, 5, 109, 0, 0, 1538, 242, 1, 0, 0, 0, 1539, 1540, 5, 115, 0, 0, 1540, 1541, 5, 112, 0, 0, 1541, 1542, 5, 108, 0, 0, 1542, 1543, 5, 105, 0, 0, 1543, 1544, 5, 116, 0, 0, 1544, 244, 1, 0, 0, 0, 1545, 1546, 5, 106, 0, 0, 1546, 1547, 5, 111, 0, 0, 1547, 1548, 5, 105, 0, 0, 1548, 1549, 5, 110, 0, 0, 1549, 246, 1, 0, 0, 0, 1550, 1551, 5, 115, 0, 0, 1551, 1552, 5, 117, 0, 0, 1552, 1553, 5, 98, 0, 0, 1553, 1554, 5, 115, 0, 0, 1554, 1555, 5, 116, 0, 0, 1555, 1556, 5, 114, 0, 0, 1556, 1557, 5, 105, 0, 0, 1557, 1558, 5, 110, 0, 0, 1558, 1566, 5, 103, 0, 0, 1559, 1560, 5, 115, 0, 0, 1560, 1561, 5, 117, 0, 0, 1561, 1562, 5, 98, 0, 0, 1562, 1563, 5, 115, 0, 0, 1563, 1564, 5, 116, 0, 0, 1564, 1566, 5, 114, 0, 0, 1565, 1550, 1, 0, 0, 0, 1565, 1559, 1, 0, 0, 0, 1566, 248, 1, 0, 0, 0, 1567, 1568, 5, 102, 0, 0, 1568, 1569, 5, 105, 0, 0, 1569, 1570, 5, 110, 0, 0, 1570, 1571, 5, 100, 0, 0, 1571, 250, 1, 0, 0, 0, 1572, 1573, 5, 114, 0, 0, 1573, 1574, 5, 101, 0, 0, 1574, 1575, 5, 112, 0, 0, 1575, 1576, 5, 108, 0, 0, 1576, 1577, 5, 97, 0, 0, 1577, 1578, 5, 99, 0, 0, 1578, 1579, 5, 101, 0, 0, 1579, 252, 1, 0, 0, 0, 1580, 1581, 5, 100, 0, 0, 1581, 1582, 5, 105, 0, 0, 1582, 1583, 5, 108, 0, 0, 1583, 1584, 5, 97, 0, 0, 1584, 1585, 5, 116, 0, 0, 1585, 1586, 5, 101, 0, 0, 1586, 254, 1, 0, 0, 0, 1587, 1588, 5, 101, 0, 0, 1588, 1589, 5, 114, 0, 0, 1589, 1590, 5, 111, 0, 0, 1590, 1591, 5, 100, 0, 0, 1591, 1592, 5, 101, 0, 0, 1592, 256, 1, 0, 0, 0, 1593, 1594, 5, 109, 0, 0, 1594, 1595, 5, 111, 0, 0, 1595, 1596, 5, 114, 0, 0, 1596, 1597, 5, 112, 0, 0, 1597, 1598, 5, 104, 0, 0, 1598, 1599, 5, 95, 0, 0, 1599, 1600, 5, 111, 0, 0, 1600, 1601, 5, 112, 0, 0, 1601, 1602, 5, 101, 0, 0, 1602, 1603, 5, 110, 0, 0, 1603, 258, 1, 0, 0, 0, 1604, 1605, 5, 109, 0, 0, 1605, 1606, 5, 111, 0, 0, 1606, 1607, 5, 114, 0, 0, 1607, 1608, 5, 112, 0, 0, 1608, 1609, 5, 104, 0, 0, 1609, 1610, 5, 95, 0, 0, 1610, 1611, 5, 99, 0, 0, 1611, 1612, 5, 108, 0, 0, 1612, 1613, 5, 111, 0, 0, 1613, 1614, 5, 115, 0, 0, 1614, 1615, 5, 101, 0, 0, 1615, 260, 1, 0, 0, 0, 1616, 1617, 5, 114, 0, 0, 1617, 1618, 5, 103, 0, 0, 1618, 1619, 5, 98, 0, 0, 1619, 1620, 5, 95, 0, 0, 1620, 1621, 5, 116, 0, 0, 1621, 1622, 5, 111, 0, 0, 1622, 1623, 5, 95, 0, 0, 1623, 1624, 5, 111, 0, 0, 1624, 1625, 5, 107, 0, 0, 1625, 1626, 5, 108, 0, 0, 1626, 1627, 5, 97, 0, 0, 1627, 1628, 5, 98, 0, 0, 1628, 262, 1, 0, 0, 0, 1629, 1630, 5, 114, 0, 0, 1630, 1631, 5, 103, 0, 0, 1631, 1632, 5, 98, 0, 0, 1632, 1633, 5, 95, 0, 0, 1633, 1634, 5, 116, 0, 0, 1634, 1635, 5, 111, 0, 0, 1635, 1636, 5, 95, 0, 0, 1636, 1637, 5, 99, 0, 0, 1637, 1638, 5, 105, 0, 0, 1638, 1639, 5, 101, 0, 0, 1639, 1640, 5, 108, 0, 0, 1640, 1641, 5, 97, 0, 0, 1641, 1642, 5, 98, 0, 0, 1642, 264, 1, 0, 0, 0, 1643, 1644, 5, 111, 0, 0, 1644, 1645, 5, 107, 0, 0, 1645, 1646, 5, 108, 0, 0, 1646, 1647, 5, 97, 0, 0, 1647, 1648, 5, 98, 0, 0, 1648, 1649, 5, 95, 0, 0, 1649, 1650, 5, 116, 0, 0, 1650, 1651, 5, 111, 0, 0, 1651, 1652, 5, 95, 0, 0, 1652, 1653, 5, 114, 0, 0, 1653, 1654, 5, 103, 0, 0, 1654, 1655, 5, 98, 0, 0, 1655, 266, 1, 0, 0, 0, 1656, 1657, 5, 99, 0, 0, 1657, 1658, 5, 105, 0, 0, 1658, 1659, 5, 101, 0, 0, 1659, 1660, 5, 108, 0, 0, 1660, 1661, 5, 97, 0, 0, 1661, 1662, 5, 98, 0, 0, 1662, 1663, 5, 95, 0, 0, 1663, 1664, 5, 116, 0, 0, 1664, 1665, 5, 111, 0, 0, 1665, 1666, 5, 95, 0, 0, 1666, 1667, 5, 114, 0, 0, 1667, 1668, 5, 103, 0, 0, 1668, 1669, 5, 98, 0, 0, 1669, 268, 1, 0, 0, 0, 1670, 1671, 5, 114, 0, 0, 1671, 1672, 5, 103, 0, 0, 1672, 1673, 5, 98, 0, 0, 1673, 1674, 5, 95, 0, 0, 1674, 1675, 5, 116, 0, 0, 1675, 1676, 5, 111, 0, 0, 1676, 1677, 5, 95, 0, 0, 1677, 1678, 5, 104, 0, 0, 1678, 1679, 5, 115, 0, 0, 1679, 1680, 5, 118, 0, 0, 1680, 270, 1, 0, 0, 0, 1681, 1682, 5, 104, 0, 0, 1682, 1683, 5, 115, 0, 0, 1683, 1684, 5, 118, 0, 0, 1684, 1685, 5, 95, 0, 0, 1685, 1686, 5, 116, 0, 0, 1686, 1687, 5, 111, 0, 0, 1687, 1688, 5, 95, 0, 0, 1688, 1689, 5, 114, 0, 0, 1689, 1690, 5, 103, 0, 0, 1690, 1691, 5, 98, 0, 0, 1691, 272, 1, 0, 0, 0, 1692, 1693, 5, 105, 0, 0, 1693, 1694, 5, 110, 0, 0, 1694, 1695, 5, 116, 0, 0, 1695, 1696, 5, 95, 0, 0, 1696, 1697, 5, 116, 0, 0, 1697, 1698, 5, 111, 0, 0, 1698, 1699, 5, 95, 0, 0, 1699, 1700, 5, 114, 0, 0, 1700, 1701, 5, 103, 0, 0, 1701, 1702, 5, 98, 0, 0, 1702, 274, 1, 0, 0, 0, 1703, 1704, 5, 114, 0, 0, 1704, 1705, 5, 103, 0, 0, 1705, 1706, 5, 98, 0, 0, 1706, 1707, 5, 95, 0, 0, 1707, 1708, 5, 116, 0, 0, 1708, 1709, 5, 111, 0, 0, 1709, 1710, 5, 95, 0, 0, 1710, 1711, 5, 105, 0, 0, 1711, 1712, 5, 110, 0, 0, 1712, 1713, 5, 116, 0, 0, 1713, 276, 1, 0, 0, 0, 1714, 1715, 5, 105, 0, 0, 1715, 1716, 5, 110, 0, 0, 1716, 1717, 5, 116, 0, 0, 1717, 1718, 5, 101, 0, 0, 1718, 1719, 5, 114, 0, 0, 1719, 1720, 5, 112, 0, 0, 1720, 1721, 5, 111, 0, 0, 1721, 1722, 5, 108, 0, 0, 1722, 1723, 5, 97, 0, 0, 1723, 1724, 5, 116, 0, 0, 1724, 1725, 5, 101, 0, 0, 1725, 1726, 5, 95, 0, 0, 1726, 1727, 5, 108, 0, 0, 1727, 1728, 5, 105, 0, 0, 1728, 1729, 5, 110, 0, 0, 1729, 1730, 5, 101, 0, 0, 1730, 1731, 5, 97, 0, 0, 1731, 1732, 5, 114, 0, 0, 1732, 278, 1, 0, 0, 0, 1733, 1734, 5, 105, 0, 0, 1734, 1735, 5, 110, 0, 0, 1735, 1736, 5, 116, 0, 0, 1736, 1737, 5, 101, 0, 0, 1737, 1738, 5, 114, 0, 0, 1738, 1739, 5, 112, 0, 0, 1739, 1740, 5, 111, 0, 0, 1740, 1741, 5, 108, 0, 0, 1741, 1742, 5, 97, 0, 0, 1742, 1743, 5, 116, 0, 0, 1743, 1744, 5, 101, 0, 0, 1744, 1745, 5, 95, 0, 0, 1745, 1746, 5, 97, 0, 0, 1746, 1747, 5, 114, 0, 0, 1747, 1748, 5, 101, 0, 0, 1748, 1749, 5, 97, 0, 0, 1749, 280, 1, 0, 0, 0, 1750, 1751, 5, 105, 0, 0, 1751, 1752, 5, 110, 0, 0, 1752, 1753, 5, 116, 0, 0, 1753, 1754, 5, 101, 0, 0, 1754, 1755, 5, 114, 0, 0, 1755, 1756, 5, 112, 0, 0, 1756, 1757, 5, 111, 0, 0, 1757, 1758, 5, 108, 0, 0, 1758, 1759, 5, 97, 0, 0, 1759, 1760, 5, 116, 0, 0, 1760, 1761, 5, 101, 0, 0, 1761, 1762, 5, 95, 0, 0, 1762, 1763, 5, 110, 0, 0, 1763, 1764, 5, 101, 0, 0, 1764, 1765, 5, 97, 0, 0, 1765, 1766, 5, 114, 0, 0, 1766, 1767, 5, 101, 0, 0, 1767, 1768, 5, 115, 0, 0, 1768, 1795, 5, 116, 0, 0, 1769, 1770, 5, 105, 0, 0, 1770, 1771, 5, 110, 0, 0, 1771, 1772, 5, 116, 0, 0, 1772, 1773, 5, 101, 0, 0, 1773, 1774, 5, 114, 0, 0, 1774, 1775, 5, 112, 0, 0, 1775, 1776, 5, 111, 0, 0, 1776, 1777, 5, 108, 0, 0, 1777, 1778, 5, 97, 0, 0, 1778, 1779, 5, 116, 0, 0, 1779, 1780, 5, 101, 0, 0, 1780, 1781, 5, 95, 0, 0, 1781, 1782, 5, 110, 0, 0, 1782, 1783, 5, 101, 0, 0, 1783, 1784, 5, 97, 0, 0, 1784, 1785, 5, 114, 0, 0, 1785, 1786, 5, 101, 0, 0, 1786, 1787, 5, 115, 0, 0, 1787, 1788, 5, 116, 0, 0, 1788, 1789, 5, 95, 0, 0, 1789, 1790, 5, 101, 0, 0, 1790, 1791, 5, 120, 0, 0, 1791, 1792, 5, 97, 0, 0, 1792, 1793, 5, 99, 0, 0, 1793, 1795, 5, 116, 0, 0, 1794, 1750, 1, 0, 0, 0, 1794, 1769, 1, 0, 0, 0, 1795, 282, 1, 0, 0, 0, 1796, 1797, 5, 116, 0, 0, 1797, 1798, 5, 101, 0, 0, 1798, 1799, 5, 120, 0, 0, 1799, 1800, 5, 116, 0, 0, 1800, 1801, 5, 95, 0, 0, 1801, 1802, 5, 105, 0, 0, 1802, 1803, 5, 109, 0, 0, 1803, 1804, 5, 97, 0, 0, 1804, 1805, 5, 103, 0, 0, 1805, 1806, 5, 101, 0, 0, 1806, 284, 1, 0, 0, 0, 1807, 1808, 5, 97, 0, 0, 1808, 1809, 5, 115, 0, 0, 1809, 1810, 5, 95, 0, 0, 1810, 1811, 5, 110, 0, 0, 1811, 1812, 5, 101, 0, 0, 1812, 1813, 5, 115, 0, 0, 1813, 1814, 5, 116, 0, 0, 1814, 1815, 5, 101, 0, 0, 1815, 1816, 5, 100, 0, 0, 1816, 1817, 5, 95, 0, 0, 1817, 1818, 5, 116, 0, 0, 1818, 1819, 5, 101, 0, 0, 1819, 1820, 5, 110, 0, 0, 1820, 1821, 5, 115, 0, 0, 1821, 1822, 5, 111, 0, 0, 1822, 1823, 5, 114, 0, 0, 1823, 286, 1, 0, 0, 0, 1824, 1825, 5, 115, 0, 0, 1825, 1826, 5, 118, 0, 0, 1826, 1856, 5, 100, 0, 0, 1827, 1828, 5, 115, 0, 0, 1828, 1829, 5, 105, 0, 0, 1829, 1830, 5, 110, 0, 0, 1830, 1831, 5, 103, 0, 0, 1831, 1832, 5, 117, 0, 0, 1832, 1833, 5, 108, 0, 0, 1833, 1834, 5, 97, 0, 0, 1834, 1835, 5, 114, 0, 0, 1835, 1836, 5, 95, 0, 0, 1836, 1837, 5, 118, 0, 0, 1837, 1838, 5, 97, 0, 0, 1838, 1839, 5, 108, 0, 0, 1839, 1840, 5, 117, 0, 0, 1840, 1841, 5, 101, 0, 0, 1841, 1842, 5, 95, 0, 0, 1842, 1843, 5, 100, 0, 0, 1843, 1844, 5, 101, 0, 0, 1844, 1845, 5, 99, 0, 0, 1845, 1846, 5, 111, 0, 0, 1846, 1847, 5, 109, 0, 0, 1847, 1848, 5, 112, 0, 0, 1848, 1849, 5, 111, 0, 0, 1849, 1850, 5, 115, 0, 0, 1850, 1851, 5, 105, 0, 0, 1851, 1852, 5, 116, 0, 0, 1852, 1853, 5, 105, 0, 0, 1853, 1854, 5, 111, 0, 0, 1854, 1856, 5, 110, 0, 0, 1855, 1824, 1, 0, 0, 0, 1855, 1827, 1, 0, 0, 0, 1856, 288, 1, 0, 0, 0, 1857, 1858, 5, 100, 0, 0, 1858, 1859, 5, 105, 0, 0, 1859, 1860, 5, 97, 0, 0, 1860, 1861, 5, 103, 0, 0, 1861, 1862, 5, 111, 0, 0, 1862, 1863, 5, 110, 0, 0, 1863, 1864, 5, 97, 0, 0, 1864, 1865, 5, 108, 0, 0, 1865, 1866, 5, 95, 0, 0, 1866, 1867, 5, 109, 0, 0, 1867, 1868, 5, 97, 0, 0, 1868, 1869, 5, 116, 0, 0, 1869, 1870, 5, 114, 0, 0, 1870, 1871, 5, 105, 0, 0, 1871, 1877, 5, 120, 0, 0, 1872, 1873, 5, 100, 0, 0, 1873, 1874, 5, 105, 0, 0, 1874, 1875, 5, 97, 0, 0, 1875, 1877, 5, 103, 0, 0, 1876, 1857, 1, 0, 0, 0, 1876, 1872, 1, 0, 0, 0, 1877, 290, 1, 0, 0, 0, 1878, 1879, 5, 105, 0, 0, 1879, 1880, 5, 102, 0, 0, 1880, 292, 1, 0, 0, 0, 1881, 1882, 5, 101, 0, 0, 1882, 1883, 5, 108, 0, 0, 1883, 1884, 5, 115, 0, 0, 1884, 1885, 5, 101, 0, 0, 1885, 294, 1, 0, 0, 0, 1886, 1887, 5, 119, 0, 0, 1887, 1888, 5, 104, 0, 0, 1888, 1889, 5, 105, 0, 0, 1889, 1890, 5, 108, 0, 0, 1890, 1891, 5, 101, 0, 0, 1891, 296, 1, 0, 0, 0, 1892, 1893, 5, 102, 0, 0, 1893, 1894, 5, 111, 0, 0, 1894, 1895, 5, 114, 0, 0, 1895, 298, 1, 0, 0, 0, 1896, 1897, 5, 105, 0, 0, 1897, 1898, 5, 110, 0, 0, 1898, 300, 1, 0, 0, 0, 1899, 1900, 5, 98, 0, 0, 1900, 1901, 5, 114, 0, 0, 1901, 1902, 5, 101, 0, 0, 1902, 1903, 5, 97, 0, 0, 1903, 1904, 5, 107, 0, 0, 1904, 302, 1, 0, 0, 0, 1905, 1906, 5, 99, 0, 0, 1906, 1907, 5, 111, 0, 0, 1907, 1908, 5, 110, 0, 0, 1908, 1909, 5, 116, 0, 0, 1909, 1910, 5, 105, 0, 0, 1910, 1911, 5, 110, 0, 0, 1911, 1912, 5, 117, 0, 0, 1912, 1913, 5, 101, 0, 0, 1913, 304, 1, 0, 0, 0, 1914, 1915, 5, 114, 0, 0, 1915, 1916, 5, 101, 0, 0, 1916, 1917, 5, 116, 0, 0, 1917, 1918, 5, 117, 0, 0, 1918, 1919, 5, 114, 0, 0, 1919, 1920, 5, 110, 0, 0, 1920, 306, 1, 0, 0, 0, 1921, 1922, 5, 116, 0, 0, 1922, 1923, 5, 105, 0, 0, 1923, 1924, 5, 109, 0, 0, 1924, 1925, 5, 101, 0, 0, 1925, 1926, 5, 115, 0, 0, 1926, 1927, 5, 116, 0, 0, 1927, 1928, 5, 97, 0, 0, 1928, 1929, 5, 109, 0, 0, 1929, 1934, 5, 112, 0, 0, 1930, 1931, 5, 110, 0, 0, 1931, 1932, 5, 111, 0, 0, 1932, 1934, 5, 119, 0, 0, 1933, 1921, 1, 0, 0, 0, 1933, 1930, 1, 0, 0, 0, 1934, 308, 1, 0, 0, 0, 1935, 1936, 5, 115, 0, 0, 1936, 1937, 5, 111, 0, 0, 1937, 1938, 5, 114, 0, 0, 1938, 1939, 5, 116, 0, 0, 1939, 310, 1, 0, 0, 0, 1940, 1941, 5, 97, 0, 0, 1941, 1942, 5, 114, 0, 0, 1942, 1943, 5, 103, 0, 0, 1943, 1944, 5, 115, 0, 0, 1944, 1945, 5, 111, 0, 0, 1945, 1946, 5, 114, 0, 0, 1946, 1947, 5, 116, 0, 0, 1947, 312, 1, 0, 0, 0, 1948, 1949, 5, 97, 0, 0, 1949, 1950, 5, 114, 0, 0, 1950, 1951, 5, 103, 0, 0, 1951, 1952, 5, 109, 0, 0, 1952, 1953, 5, 105, 0, 0, 1953, 1954, 5, 110, 0, 0, 1954, 314, 1, 0, 0, 0, 1955, 1956, 5, 97, 0, 0, 1956, 1957, 5, 114, 0, 0, 1957, 1958, 5, 103, 0, 0, 1958, 1959, 5, 109, 0, 0, 1959, 1960, 5, 97, 0, 0, 1960, 1961, 5, 120, 0, 0, 1961, 316, 1, 0, 0, 0, 1962, 1963, 5, 115, 0, 0, 1963, 1964, 5, 111, 0, 0, 1964, 1965, 5, 102, 0, 0, 1965, 1966, 5, 116, 0, 0, 1966, 1967, 5, 109, 0, 0, 1967, 1968, 5, 97, 0, 0, 1968, 1969, 5, 120, 0, 0, 1969, 318, 1, 0, 0, 0, 1970, 1971, 5, 115, 0, 0, 1971, 1972, 5, 111, 0, 0, 1972, 1973, 5, 102, 0, 0, 1973, 1974, 5, 116, 0, 0, 1974, 1975, 5, 109, 0, 0, 1975, 1976, 5, 105, 0, 0, 1976, 1977, 5, 110, 0, 0, 1977, 320, 1, 0, 0, 0, 1978, 1979, 5, 117, 0, 0, 1979, 1980, 5, 110, 0, 0, 1980, 1981, 5, 105, 0, 0, 1981, 1982, 5, 113, 0, 0, 1982, 1983, 5, 117, 0, 0, 1983, 1984, 5, 101, 0, 0, 1984, 322, 1, 0, 0, 0, 1985, 1986, 5, 102, 0, 0, 1986, 1987, 5, 108, 0, 0, 1987, 1988, 5, 105, 0, 0, 1988, 1989, 5, 112, 0, 0, 1989, 324, 1, 0, 0, 0, 1990, 1991, 5, 115, 0, 0, 1991, 1992, 5, 116, 0, 0, 1992, 1993, 5, 97, 0, 0, 1993, 1994, 5, 114, 0, 0, 1994, 1995, 5, 116, 0, 0, 1995, 1996, 5, 115, 0, 0, 1996, 1997, 5, 119, 0, 0, 1997, 1998, 5, 105, 0, 0, 1998, 1999, 5, 116, 0, 0, 1999, 2000, 5, 104, 0, 0, 2000, 326, 1, 0, 0, 0, 2001, 2002, 5, 101, 0, 0, 2002, 2003, 5, 110, 0, 0, 2003, 2004, 5, 100, 0, 0, 2004, 2005, 5, 115, 0, 0, 2005, 2006, 5, 119, 0, 0, 2006, 2007, 5, 105, 0, 0, 2007, 2008, 5, 116, 0, 0, 2008, 2009, 5, 104, 0, 0, 2009, 328, 1, 0, 0, 0, 2010, 2011, 5, 115, 0, 0, 2011, 2012, 5, 113, 0, 0, 2012, 2013, 5, 117, 0, 0, 2013, 2014, 5, 101, 0, 0, 2014, 2015, 5, 101, 0, 0, 2015, 2016, 5, 122, 0, 0, 2016, 2017, 5, 101, 0, 0, 2017, 330, 1, 0, 0, 0, 2018, 2019, 5, 117, 0, 0, 2019, 2020, 5, 110, 0, 0, 2020, 2021, 5, 115, 0, 0, 2021, 2022, 5, 113, 0, 0, 2022, 2023, 5, 117, 0, 0, 2023, 2024, 5, 101, 0, 0, 2024, 2025, 5, 101, 0, 0, 2025, 2026, 5, 122, 0, 0, 2026, 2027, 5, 101, 0, 0, 2027, 332, 1, 0, 0, 0, 2028, 2029, 5, 114, 0, 0, 2029, 2030, 5, 111, 0, 0, 2030, 2031, 5, 108, 0, 0, 2031, 2032, 5, 108, 0, 0, 2032, 334, 1, 0, 0, 0, 2033, 2034, 5, 99, 0, 0, 2034, 2035, 5, 111, 0, 0, 2035, 2036, 5, 118, 0, 0, 2036, 336, 1, 0, 0, 0, 2037, 2038, 5, 99, 0, 0, 2038, 2039, 5, 111, 0, 0, 2039, 2040, 5, 114, 0, 0, 2040, 2053, 5, 114, 0, 0, 2041, 2042, 5, 99, 0, 0, 2042, 2043, 5, 111, 0, 0, 2043, 2044, 5, 114, 0, 0, 2044, 2045, 5, 114, 0, 0, 2045, 2046, 5, 101, 0, 0, 2046, 2047, 5, 108, 0, 0, 2047, 2048, 5, 97, 0, 0, 2048, 2049, 5, 116, 0, 0, 2049, 2050, 5, 105, 0, 0, 2050, 2051, 5, 111, 0, 0, 2051, 2053, 5, 110, 0, 0, 2052, 2037, 1, 0, 0, 0, 2052, 2041, 1, 0, 0, 0, 2053, 338, 1, 0, 0, 0, 2054, 2055, 5, 101, 0, 0, 2055, 2056, 5, 110, 0, 0, 2056, 2057, 5, 116, 0, 0, 2057, 2058, 5, 114, 0, 0, 2058, 2059, 5, 111, 0, 0, 2059, 2060, 5, 112, 0, 0, 2060, 2061, 5, 121, 0, 0, 2061, 340, 1, 0, 0, 0, 2062, 2063, 5, 99, 0, 0, 2063, 2064, 5, 114, 0, 0, 2064, 2065, 5, 111, 0, 0, 2065, 2066, 5, 112, 0, 0, 2066, 342, 1, 0, 0, 0, 2067, 2068, 5, 110, 0, 0, 2068, 2069, 5, 111, 0, 0, 2069, 2070, 5, 110, 0, 0, 2070, 2084, 5, 101, 0, 0, 2071, 2072, 5, 78, 0, 0, 2072, 2073, 5, 111, 0, 0, 2073, 2074, 5, 110, 0, 0, 2074, 2084, 5, 101, 0, 0, 2075, 2076, 5, 110, 0, 0, 2076, 2077, 5, 117, 0, 0, 2077, 2078, 5, 108, 0, 0, 2078, 2084, 5, 108, 0, 0, 2079, 2080, 5, 78, 0, 0, 2080, 2081, 5, 85, 0, 0, 2081, 2082, 5, 76, 0, 0, 2082, 2084, 5, 76, 0, 0, 2083, 2067, 1, 0, 0, 0, 2083, 2071, 1, 0, 0, 0, 2083, 2075, 1, 0, 0, 0, 2083, 2079, 1, 0, 0, 0, 2084, 344, 1, 0, 0, 0, 2085, 2086, 5, 99, 0, 0, 2086, 2087, 5, 111, 0, 0, 2087, 2088, 5, 111, 0, 0, 2088, 2089, 5, 114, 0, 0, 2089, 2090, 5, 100, 0, 0, 2090, 2103, 5, 115, 0, 0, 2091, 2092, 5, 99, 0, 0, 2092, 2093, 5, 111, 0, 0, 2093, 2094, 5, 111, 0, 0, 2094, 2095, 5, 114, 0, 0, 2095, 2096, 5, 100, 0, 0, 2096, 2097, 5, 105, 0, 0, 2097, 2098, 5, 110, 0, 0, 2098, 2099, 5, 97, 0, 0, 2099, 2100, 5, 116, 0, 0, 2100, 2101, 5, 101, 0, 0, 2101, 2103, 5, 115, 0, 0, 2102, 2085, 1, 0, 0, 0, 2102, 2091, 1, 0, 0, 0, 2103, 346, 1, 0, 0, 0, 2104, 2105, 5, 110, 0, 0, 2105, 2106, 5, 111, 0, 0, 2106, 2107, 5, 105, 0, 0, 2107, 2108, 5, 115, 0, 0, 2108, 2128, 5, 101, 0, 0, 2109, 2110, 5, 114, 0, 0, 2110, 2111, 5, 97, 0, 0, 2111, 2112, 5, 110, 0, 0, 2112, 2113, 5, 100, 0, 0, 2113, 2128, 5, 110, 0, 0, 2114, 2115, 5, 114, 0, 0, 2115, 2116, 5, 97, 0, 0, 2116, 2117, 5, 110, 0, 0, 2117, 2118, 5, 100, 0, 0, 2118, 2119, 5, 111, 0, 0, 2119, 2120, 5, 109, 0, 0, 2120, 2121, 5, 95, 0, 0, 2121, 2122, 5, 110, 0, 0, 2122, 2123, 5, 111, 0, 0, 2123, 2124, 5, 114, 0, 0, 2124, 2125, 5, 109, 0, 0, 2125, 2126, 5, 97, 0, 0, 2126, 2128, 5, 108, 0, 0, 2127, 2104, 1, 0, 0, 0, 2127, 2109, 1, 0, 0, 0, 2127, 2114, 1, 0, 0, 0, 2128, 348, 1, 0, 0, 0, 2129, 2130, 5, 114, 0, 0, 2130, 2131, 5, 97, 0, 0, 2131, 2132, 5, 110, 0, 0, 2132, 2153, 5, 100, 0, 0, 2133, 2134, 5, 114, 0, 0, 2134, 2135, 5, 97, 0, 0, 2135, 2136, 5, 110, 0, 0, 2136, 2137, 5, 100, 0, 0, 2137, 2153, 5, 117, 0, 0, 2138, 2139, 5, 114, 0, 0, 2139, 2140, 5, 97, 0, 0, 2140, 2141, 5, 110, 0, 0, 2141, 2142, 5, 100, 0, 0, 2142, 2143, 5, 111, 0, 0, 2143, 2144, 5, 109, 0, 0, 2144, 2145, 5, 95, 0, 0, 2145, 2146, 5, 117, 0, 0, 2146, 2147, 5, 110, 0, 0, 2147, 2148, 5, 105, 0, 0, 2148, 2149, 5, 102, 0, 0, 2149, 2150, 5, 111, 0, 0, 2150, 2151, 5, 114, 0, 0, 2151, 2153, 5, 109, 0, 0, 2152, 2129, 1, 0, 0, 0, 2152, 2133, 1, 0, 0, 0, 2152, 2138, 1, 0, 0, 0, 2153, 350, 1, 0, 0, 0, 2154, 2155, 5, 114, 0, 0, 2155, 2156, 5, 97, 0, 0, 2156, 2157, 5, 110, 0, 0, 2157, 2158, 5, 100, 0, 0, 2158, 2173, 5, 99, 0, 0, 2159, 2160, 5, 114, 0, 0, 2160, 2161, 5, 97, 0, 0, 2161, 2162, 5, 110, 0, 0, 2162, 2163, 5, 100, 0, 0, 2163, 2164, 5, 111, 0, 0, 2164, 2165, 5, 109, 0, 0, 2165, 2166, 5, 95, 0, 0, 2166, 2167, 5, 99, 0, 0, 2167, 2168, 5, 97, 0, 0, 2168, 2169, 5, 117, 0, 0, 2169, 2170, 5, 99, 0, 0, 2170, 2171, 5, 104, 0, 0, 2171, 2173, 5, 121, 0, 0, 2172, 2154, 1, 0, 0, 0, 2172, 2159, 1, 0, 0, 0, 2173, 352, 1, 0, 0, 0, 2174, 2175, 5, 114, 0, 0, 2175, 2176, 5, 97, 0, 0, 2176, 2177, 5, 110, 0, 0, 2177, 2178, 5, 100, 0, 0, 2178, 2198, 5, 101, 0, 0, 2179, 2180, 5, 114, 0, 0, 2180, 2181, 5, 97, 0, 0, 2181, 2182, 5, 110, 0, 0, 2182, 2183, 5, 100, 0, 0, 2183, 2184, 5, 111, 0, 0, 2184, 2185, 5, 109, 0, 0, 2185, 2186, 5, 95, 0, 0, 2186, 2187, 5, 101, 0, 0, 2187, 2188, 5, 120, 0, 0, 2188, 2189, 5, 112, 0, 0, 2189, 2190, 5, 111, 0, 0, 2190, 2191, 5, 110, 0, 0, 2191, 2192, 5, 101, 0, 0, 2192, 2193, 5, 110, 0, 0, 2193, 2194, 5, 116, 0, 0, 2194, 2195, 5, 105, 0, 0, 2195, 2196, 5, 97, 0, 0, 2196, 2198, 5, 108, 0, 0, 2197, 2174, 1, 0, 0, 0, 2197, 2179, 1, 0, 0, 0, 2198, 354, 1, 0, 0, 0, 2199, 2200, 5, 114, 0, 0, 2200, 2201, 5, 97, 0, 0, 2201, 2202, 5, 110, 0, 0, 2202, 2203, 5, 100, 0, 0, 2203, 2204, 5, 108, 0, 0, 2204, 2223, 5, 110, 0, 0, 2205, 2206, 5, 114, 0, 0, 2206, 2207, 5, 97, 0, 0, 2207, 2208, 5, 110, 0, 0, 2208, 2209, 5, 100, 0, 0, 2209, 2210, 5, 111, 0, 0, 2210, 2211, 5, 109, 0, 0, 2211, 2212, 5, 95, 0, 0, 2212, 2213, 5, 108, 0, 0, 2213, 2214, 5, 111, 0, 0, 2214, 2215, 5, 103, 0, 0, 2215, 2216, 5, 95, 0, 0, 2216, 2217, 5, 110, 0, 0, 2217, 2218, 5, 111, 0, 0, 2218, 2219, 5, 114, 0, 0, 2219, 2220, 5, 109, 0, 0, 2220, 2221, 5, 97, 0, 0, 2221, 2223, 5, 108, 0, 0, 2222, 2199, 1, 0, 0, 0, 2222, 2205, 1, 0, 0, 0, 2223, 356, 1, 0, 0, 0, 2224, 2225, 5, 114, 0, 0, 2225, 2226, 5, 97, 0, 0, 2226, 2227, 5, 110, 0, 0, 2227, 2228, 5, 100, 0, 0, 2228, 2246, 5, 98, 0, 0, 2229, 2230, 5, 114, 0, 0, 2230, 2231, 5, 97, 0, 0, 2231, 2232, 5, 110, 0, 0, 2232, 2233, 5, 100, 0, 0, 2233, 2234, 5, 111, 0, 0, 2234, 2235, 5, 109, 0, 0, 2235, 2236, 5, 95, 0, 0, 2236, 2237, 5, 98, 0, 0, 2237, 2238, 5, 101, 0, 0, 2238, 2239, 5, 114, 0, 0, 2239, 2240, 5, 110, 0, 0, 2240, 2241, 5, 111, 0, 0, 2241, 2242, 5, 117, 0, 0, 2242, 2243, 5, 108, 0, 0, 2243, 2244, 5, 108, 0, 0, 2244, 2246, 5, 105, 0, 0, 2245, 2224, 1, 0, 0, 0, 2245, 2229, 1, 0, 0, 0, 2246, 358, 1, 0, 0, 0, 2247, 2248, 5, 114, 0, 0, 2248, 2249, 5, 97, 0, 0, 2249, 2250, 5, 110, 0, 0, 2250, 2251, 5, 100, 0, 0, 2251, 2267, 5, 112, 0, 0, 2252, 2253, 5, 114, 0, 0, 2253, 2254, 5, 97, 0, 0, 2254, 2255, 5, 110, 0, 0, 2255, 2256, 5, 100, 0, 0, 2256, 2257, 5, 111, 0, 0, 2257, 2258, 5, 109, 0, 0, 2258, 2259, 5, 95, 0, 0, 2259, 2260, 5, 112, 0, 0, 2260, 2261, 5, 111, 0, 0, 2261, 2262, 5, 105, 0, 0, 2262, 2263, 5, 115, 0, 0, 2263, 2264, 5, 115, 0, 0, 2264, 2265, 5, 111, 0, 0, 2265, 2267, 5, 110, 0, 0, 2266, 2247, 1, 0, 0, 0, 2266, 2252, 1, 0, 0, 0, 2267, 360, 1, 0, 0, 0, 2268, 2269, 5, 114, 0, 0, 2269, 2270, 5, 97, 0, 0, 2270, 2271, 5, 110, 0, 0, 2271, 2272, 5, 100, 0, 0, 2272, 2286, 5, 103, 0, 0, 2273, 2274, 5, 114, 0, 0, 2274, 2275, 5, 97, 0, 0, 2275, 2276, 5, 110, 0, 0, 2276, 2277, 5, 100, 0, 0, 2277, 2278, 5, 111, 0, 0, 2278, 2279, 5, 109, 0, 0, 2279, 2280, 5, 95, 0, 0, 2280, 2281, 5, 103, 0, 0, 2281, 2282, 5, 97, 0, 0, 2282, 2283, 5, 109, 0, 0, 2283, 2284, 5, 109, 0, 0, 2284, 2286, 5, 97, 0, 0, 2285, 2268, 1, 0, 0, 0, 2285, 2273, 1, 0, 0, 0, 2286, 362, 1, 0, 0, 0, 2287, 2288, 5, 114, 0, 0, 2288, 2289, 5, 97, 0, 0, 2289, 2290, 5, 110, 0, 0, 2290, 2291, 5, 100, 0, 0, 2291, 2292, 5, 98, 0, 0, 2292, 2293, 5, 101, 0, 0, 2293, 2294, 5, 116, 0, 0, 2294, 2307, 5, 97, 0, 0, 2295, 2296, 5, 114, 0, 0, 2296, 2297, 5, 97, 0, 0, 2297, 2298, 5, 110, 0, 0, 2298, 2299, 5, 100, 0, 0, 2299, 2300, 5, 111, 0, 0, 2300, 2301, 5, 109, 0, 0, 2301, 2302, 5, 95, 0, 0, 2302, 2303, 5, 98, 0, 0, 2303, 2304, 5, 101, 0, 0, 2304, 2305, 5, 116, 0, 0, 2305, 2307, 5, 97, 0, 0, 2306, 2287, 1, 0, 0, 0, 2306, 2295, 1, 0, 0, 0, 2307, 364, 1, 0, 0, 0, 2308, 2309, 5, 114, 0, 0, 2309, 2310, 5, 97, 0, 0, 2310, 2311, 5, 110, 0, 0, 2311, 2312, 5, 100, 0, 0, 2312, 2328, 5, 108, 0, 0, 2313, 2314, 5, 114, 0, 0, 2314, 2315, 5, 97, 0, 0, 2315, 2316, 5, 110, 0, 0, 2316, 2317, 5, 100, 0, 0, 2317, 2318, 5, 111, 0, 0, 2318, 2319, 5, 109, 0, 0, 2319, 2320, 5, 95, 0, 0, 2320, 2321, 5, 108, 0, 0, 2321, 2322, 5, 97, 0, 0, 2322, 2323, 5, 112, 0, 0, 2323, 2324, 5, 108, 0, 0, 2324, 2325, 5, 97, 0, 0, 2325, 2326, 5, 99, 0, 0, 2326, 2328, 5, 101, 0, 0, 2327, 2308, 1, 0, 0, 0, 2327, 2313, 1, 0, 0, 0, 2328, 366, 1, 0, 0, 0, 2329, 2330, 5, 114, 0, 0, 2330, 2331, 5, 97, 0, 0, 2331, 2332, 5, 110, 0, 0, 2332, 2333, 5, 100, 0, 0, 2333, 2334, 5, 103, 0, 0, 2334, 2335, 5, 117, 0, 0, 2335, 2336, 5, 109, 0, 0, 2336, 2337, 5, 98, 0, 0, 2337, 2338, 5, 101, 0, 0, 2338, 2353, 5, 108, 0, 0, 2339, 2340, 5, 114, 0, 0, 2340, 2341, 5, 97, 0, 0, 2341, 2342, 5, 110, 0, 0, 2342, 2343, 5, 100, 0, 0, 2343, 2344, 5, 111, 0, 0, 2344, 2345, 5, 109, 0, 0, 2345, 2346, 5, 95, 0, 0, 2346, 2347, 5, 103, 0, 0, 2347, 2348, 5, 117, 0, 0, 2348, 2349, 5, 109, 0, 0, 2349, 2350, 5, 98, 0, 0, 2350, 2351, 5, 101, 0, 0, 2351, 2353, 5, 108, 0, 0, 2352, 2329, 1, 0, 0, 0, 2352, 2339, 1, 0, 0, 0, 2353, 368, 1, 0, 0, 0, 2354, 2355, 5, 114, 0, 0, 2355, 2356, 5, 97, 0, 0, 2356, 2357, 5, 110, 0, 0, 2357, 2358, 5, 100, 0, 0, 2358, 2374, 5, 119, 0, 0, 2359, 2360, 5, 114, 0, 0, 2360, 2361, 5, 97, 0, 0, 2361, 2362, 5, 110, 0, 0, 2362, 2363, 5, 100, 0, 0, 2363, 2364, 5, 111, 0, 0, 2364, 2365, 5, 109, 0, 0, 2365, 2366, 5, 95, 0, 0, 2366, 2367, 5, 119, 0, 0, 2367, 2368, 5, 101, 0, 0, 2368, 2369, 5, 105, 0, 0, 2369, 2370, 5, 98, 0, 0, 2370, 2371, 5, 117, 0, 0, 2371, 2372, 5, 108, 0, 0, 2372, 2374, 5, 108, 0, 0, 2373, 2354, 1, 0, 0, 0, 2373, 2359, 1, 0, 0, 0, 2374, 370, 1, 0, 0, 0, 2375, 2376, 5, 114, 0, 0, 2376, 2377, 5, 97, 0, 0, 2377, 2378, 5, 110, 0, 0, 2378, 2379, 5, 100, 0, 0, 2379, 2380, 5, 99, 0, 0, 2380, 2381, 5, 104, 0, 0, 2381, 2382, 5, 105, 0, 0, 2382, 2395, 5, 50, 0, 0, 2383, 2384, 5, 114, 0, 0, 2384, 2385, 5, 97, 0, 0, 2385, 2386, 5, 110, 0, 0, 2386, 2387, 5, 100, 0, 0, 2387, 2388, 5, 111, 0, 0, 2388, 2389, 5, 109, 0, 0, 2389, 2390, 5, 95, 0, 0, 2390, 2391, 5, 99, 0, 0, 2391, 2392, 5, 104, 0, 0, 2392, 2393, 5, 105, 0, 0, 2393, 2395, 5, 50, 0, 0, 2394, 2375, 1, 0, 0, 0, 2394, 2383, 1, 0, 0, 0, 2395, 372, 1, 0, 0, 0, 2396, 2397, 5, 114, 0, 0, 2397, 2398, 5, 97, 0, 0, 2398, 2399, 5, 110, 0, 0, 2399, 2400, 5, 100, 0, 0, 2400, 2417, 5, 116, 0, 0, 2401, 2402, 5, 114, 0, 0, 2402, 2403, 5, 97, 0, 0, 2403, 2404, 5, 110, 0, 0, 2404, 2405, 5, 100, 0, 0, 2405, 2406, 5, 111, 0, 0, 2406, 2407, 5, 109, 0, 0, 2407, 2408, 5, 95, 0, 0, 2408, 2409, 5, 115, 0, 0, 2409, 2410, 5, 116, 0, 0, 2410, 2411, 5, 117, 0, 0, 2411, 2412, 5, 100, 0, 0, 2412, 2413, 5, 101, 0, 0, 2413, 2414, 5, 110, 0, 0, 2414, 2415, 5, 116, 0, 0, 2415, 2417, 5, 116, 0, 0, 2416, 2396, 1, 0, 0, 0, 2416, 2401, 1, 0, 0, 0, 2417, 374, 1, 0, 0, 0, 2418, 2419, 5, 112, 0, 0, 2419, 2420, 5, 101, 0, 0, 2420, 2421, 5, 114, 0, 0, 2421, 2422, 5, 108, 0, 0, 2422, 2423, 5, 105, 0, 0, 2423, 2437, 5, 110, 0, 0, 2424, 2425, 5, 112, 0, 0, 2425, 2426, 5, 101, 0, 0, 2426, 2427, 5, 114, 0, 0, 2427, 2428, 5, 108, 0, 0, 2428, 2429, 5, 105, 0, 0, 2429, 2430, 5, 110, 0, 0, 2430, 2431, 5, 95, 0, 0, 2431, 2432, 5, 110, 0, 0, 2432, 2433, 5, 111, 0, 0, 2433, 2434, 5, 105, 0, 0, 2434, 2435, 5, 115, 0, 0, 2435, 2437, 5, 101, 0, 0, 2436, 2418, 1, 0, 0, 0, 2436, 2424, 1, 0, 0, 0, 2437, 376, 1, 0, 0, 0, 2438, 2439, 5, 99, 0, 0, 2439, 2440, 5, 101, 0, 0, 2440, 2441, 5, 108, 0, 0, 2441, 2442, 5, 108, 0, 0, 2442, 2443, 5, 117, 0, 0, 2443, 2444, 5, 108, 0, 0, 2444, 2445, 5, 97, 0, 0, 2445, 2487, 5, 114, 0, 0, 2446, 2447, 5, 118, 0, 0, 2447, 2448, 5, 111, 0, 0, 2448, 2449, 5, 114, 0, 0, 2449, 2450, 5, 111, 0, 0, 2450, 2451, 5, 110, 0, 0, 2451, 2452, 5, 111, 0, 0, 2452, 2487, 5, 105, 0, 0, 2453, 2454, 5, 119, 0, 0, 2454, 2455, 5, 111, 0, 0, 2455, 2456, 5, 114, 0, 0, 2456, 2457, 5, 108, 0, 0, 2457, 2458, 5, 101, 0, 0, 2458, 2487, 5, 121, 0, 0, 2459, 2460, 5, 99, 0, 0, 2460, 2461, 5, 101, 0, 0, 2461, 2462, 5, 108, 0, 0, 2462, 2463, 5, 108, 0, 0, 2463, 2464, 5, 117, 0, 0, 2464, 2465, 5, 108, 0, 0, 2465, 2466, 5, 97, 0, 0, 2466, 2467, 5, 114, 0, 0, 2467, 2468, 5, 95, 0, 0, 2468, 2469, 5, 110, 0, 0, 2469, 2470, 5, 111, 0, 0, 2470, 2471, 5, 105, 0, 0, 2471, 2472, 5, 115, 0, 0, 2472, 2487, 5, 101, 0, 0, 2473, 2474, 5, 118, 0, 0, 2474, 2475, 5, 111, 0, 0, 2475, 2476, 5, 114, 0, 0, 2476, 2477, 5, 111, 0, 0, 2477, 2478, 5, 110, 0, 0, 2478, 2479, 5, 111, 0, 0, 2479, 2480, 5, 105, 0, 0, 2480, 2481, 5, 95, 0, 0, 2481, 2482, 5, 110, 0, 0, 2482, 2483, 5, 111, 0, 0, 2483, 2484, 5, 105, 0, 0, 2484, 2485, 5, 115, 0, 0, 2485, 2487, 5, 101, 0, 0, 2486, 2438, 1, 0, 0, 0, 2486, 2446, 1, 0, 0, 0, 2486, 2453, 1, 0, 0, 0, 2486, 2459, 1, 0, 0, 0, 2486, 2473, 1, 0, 0, 0, 2487, 378, 1, 0, 0, 0, 2488, 2489, 5, 112, 0, 0, 2489, 2490, 5, 108, 0, 0, 2490, 2491, 5, 97, 0, 0, 2491, 2492, 5, 115, 0, 0, 2492, 2493, 5, 109, 0, 0, 2493, 2517, 5, 97, 0, 0, 2494, 2495, 5, 116, 0, 0, 2495, 2496, 5, 117, 0, 0, 2496, 2497, 5, 114, 0, 0, 2497, 2498, 5, 98, 0, 0, 2498, 2499, 5, 117, 0, 0, 2499, 2500, 5, 108, 0, 0, 2500, 2501, 5, 101, 0, 0, 2501, 2502, 5, 110, 0, 0, 2502, 2503, 5, 99, 0, 0, 2503, 2517, 5, 101, 0, 0, 2504, 2505, 5, 112, 0, 0, 2505, 2506, 5, 108, 0, 0, 2506, 2507, 5, 97, 0, 0, 2507, 2508, 5, 115, 0, 0, 2508, 2509, 5, 109, 0, 0, 2509, 2510, 5, 97, 0, 0, 2510, 2511, 5, 95, 0, 0, 2511, 2512, 5, 110, 0, 0, 2512, 2513, 5, 111, 0, 0, 2513, 2514, 5, 105, 0, 0, 2514, 2515, 5, 115, 0, 0, 2515, 2517, 5, 101, 0, 0, 2516, 2488, 1, 0, 0, 0, 2516, 2494, 1, 0, 0, 0, 2516, 2504, 1, 0, 0, 0, 2517, 380, 1, 0, 0, 0, 2518, 2519, 5, 114, 0, 0, 2519, 2520, 5, 105, 0, 0, 2520, 2521, 5, 100, 0, 0, 2521, 2522, 5, 103, 0, 0, 2522, 2523, 5, 101, 0, 0, 2523, 2537, 5, 100, 0, 0, 2524, 2525, 5, 114, 0, 0, 2525, 2526, 5, 105, 0, 0, 2526, 2527, 5, 100, 0, 0, 2527, 2528, 5, 103, 0, 0, 2528, 2529, 5, 101, 0, 0, 2529, 2530, 5, 100, 0, 0, 2530, 2531, 5, 95, 0, 0, 2531, 2532, 5, 110, 0, 0, 2532, 2533, 5, 111, 0, 0, 2533, 2534, 5, 105, 0, 0, 2534, 2535, 5, 115, 0, 0, 2535, 2537, 5, 101, 0, 0, 2536, 2518, 1, 0, 0, 0, 2536, 2524, 1, 0, 0, 0, 2537, 382, 1, 0, 0, 0, 2538, 2539, 5, 100, 0, 0, 2539, 2540, 5, 111, 0, 0, 2540, 2541, 5, 109, 0, 0, 2541, 2542, 5, 97, 0, 0, 2542, 2543, 5, 105, 0, 0, 2543, 2544, 5, 110, 0, 0, 2544, 2545, 5, 95, 0, 0, 2545, 2546, 5, 119, 0, 0, 2546, 2547, 5, 97, 0, 0, 2547, 2548, 5, 114, 0, 0, 2548, 2567, 5, 112, 0, 0, 2549, 2550, 5, 100, 0, 0, 2550, 2551, 5, 111, 0, 0, 2551, 2552, 5, 109, 0, 0, 2552, 2553, 5, 97, 0, 0, 2553, 2554, 5, 105, 0, 0, 2554, 2555, 5, 110, 0, 0, 2555, 2556, 5, 95, 0, 0, 2556, 2557, 5, 119, 0, 0, 2557, 2558, 5, 97, 0, 0, 2558, 2559, 5, 114, 0, 0, 2559, 2560, 5, 112, 0, 0, 2560, 2561, 5, 95, 0, 0, 2561, 2562, 5, 110, 0, 0, 2562, 2563, 5, 111, 0, 0, 2563, 2564, 5, 105, 0, 0, 2564, 2565, 5, 115, 0, 0, 2565, 2567, 5, 101, 0, 0, 2566, 2538, 1, 0, 0, 0, 2566, 2549, 1, 0, 0, 0, 2567, 384, 1, 0, 0, 0, 2568, 2569, 5, 43, 0, 0, 2569, 386, 1, 0, 0, 0, 2570, 2571, 5, 45, 0, 0, 2571, 388, 1, 0, 0, 0, 2572, 2573, 5, 42, 0, 0, 2573, 390, 1, 0, 0, 0, 2574, 2575, 5, 47, 0, 0, 2575, 392, 1, 0, 0, 0, 2576, 2577, 5, 37, 0, 0, 2577, 394, 1, 0, 0, 0, 2578, 2579, 5, 94, 0, 0, 2579, 396, 1, 0, 0, 0, 2580, 2581, 5, 60, 0, 0, 2581, 2582, 5, 60, 0, 0, 2582, 398, 1, 0, 0, 0, 2583, 2584, 5, 62, 0, 0, 2584, 2585, 5, 62, 0, 0, 2585, 400, 1, 0, 0, 0, 2586, 2587, 5, 62, 0, 0, 2587, 2588, 5, 61, 0, 0, 2588, 402, 1, 0, 0, 0, 2589, 2590, 5, 62, 0, 0, 2590, 404, 1, 0, 0, 0, 2591, 2592, 5, 60, 0, 0, 2592, 2593, 5, 61, 0, 0, 2593, 406, 1, 0, 0, 0, 2594, 2595, 5, 60, 0, 0, 2595, 408, 1, 0, 0, 0, 2596, 2597, 5, 61, 0, 0, 2597, 2598, 5, 61, 0, 0, 2598, 410, 1, 0, 0, 0, 2599, 2600, 5, 61, 0, 0, 2600, 412, 1, 0, 0, 0, 2601, 2602, 5, 43, 0, 0, 2602, 2603, 5, 61, 0, 0, 2603, 414, 1, 0, 0, 0, 2604, 2605, 5, 45, 0, 0, 2605, 2606, 5, 61, 0, 0, 2606, 416, 1, 0, 0, 0, 2607, 2608, 5, 42, 0, 0, 2608, 2609, 5, 61, 0, 0, 2609, 418, 1, 0, 0, 0, 2610, 2611, 5, 47, 0, 0, 2611, 2612, 5, 61, 0, 0, 2612, 420, 1, 0, 0, 0, 2613, 2614, 5, 37, 0, 0, 2614, 2615, 5, 61, 0, 0, 2615, 422, 1, 0, 0, 0, 2616, 2617, 5, 33, 0, 0, 2617, 2618, 5, 61, 0, 0, 2618, 424, 1, 0, 0, 0, 2619, 2620, 5, 124, 0, 0, 2620, 426, 1, 0, 0, 0, 2621, 2622, 5, 40, 0, 0, 2622, 428, 1, 0, 0, 0, 2623, 2624, 5, 41, 0, 0, 2624, 430, 1, 0, 0, 0, 2625, 2626, 5, 44, 0, 0, 2626, 432, 1, 0, 0, 0, 2627, 2628, 5, 59, 0, 0, 2628, 434, 1, 0, 0, 0, 2629, 2630, 5, 45, 0, 0, 2630, 2631, 5, 62, 0, 0, 2631, 436, 1, 0, 0, 0, 2632, 2633, 5, 91, 0, 0, 2633, 438, 1, 0, 0, 0, 2634, 2635, 5, 93, 0, 0, 2635, 440, 1, 0, 0, 0, 2636, 2637, 5, 63, 0, 0, 2637, 442, 1, 0, 0, 0, 2638, 2639, 5, 58, 0, 0, 2639, 444, 1, 0, 0, 0, 2640, 2641, 5, 123, 0, 0, 2641, 446, 1, 0, 0, 0, 2642, 2643, 5, 125, 0, 0, 2643, 448, 1, 0, 0, 0, 2644, 2646, 7, 0, 0, 0, 2645, 2644, 1, 0, 0, 0, 2646, 2647, 1, 0, 0, 0, 2647, 2645, 1, 0, 0, 0, 2647, 2648, 1, 0, 0, 0, 2648, 2656, 1, 0, 0, 0, 2649, 2653, 5, 46, 0, 0, 2650, 2652, 7, 0, 0, 0, 2651, 2650, 1, 0, 0, 0, 2652, 2655, 1, 0, 0, 0, 2653, 2651, 1, 0, 0, 0, 2653, 2654, 1, 0, 0, 0, 2654, 2657, 1, 0, 0, 0, 2655, 2653, 1, 0, 0, 0, 2656, 2649, 1, 0, 0, 0, 2656, 2657, 1, 0, 0, 0, 2657, 2665, 1, 0, 0, 0, 2658, 2660, 5, 46, 0, 0, 2659, 2661, 7, 0, 0, 0, 2660, 2659, 1, 0, 0, 0, 2661, 2662, 1, 0, 0, 0, 2662, 2660, 1, 0, 0, 0, 2662, 2663, 1, 0, 0, 0, 2663, 2665, 1, 0, 0, 0, 2664, 2645, 1, 0, 0, 0, 2664, 2658, 1, 0, 0, 0, 2665, 2675, 1, 0, 0, 0, 2666, 2668, 7, 1, 0, 0, 2667, 2669, 7, 2, 0, 0, 2668, 2667, 1, 0, 0, 0, 2668, 2669, 1, 0, 0, 0, 2669, 2671, 1, 0, 0, 0, 2670, 2672, 7, 0, 0, 0, 2671, 2670, 1, 0, 0, 0, 2672, 2673, 1, 0, 0, 0, 2673, 2671, 1, 0, 0, 0, 2673, 2674, 1, 0, 0, 0, 2674, 2676, 1, 0, 0, 0, 2675, 2666, 1, 0, 0, 0, 2675, 2676, 1, 0, 0, 0, 2676, 450, 1, 0, 0, 0, 2677, 2678, 5, 112, 0, 0, 2678, 2683, 5, 105, 0, 0, 2679, 2680, 5, 80, 0, 0, 2680, 2683, 5, 73, 0, 0, 2681, 2683, 7, 1, 0, 0, 2682, 2677, 1, 0, 0, 0, 2682, 2679, 1, 0, 0, 0, 2682, 2681, 1, 0, 0, 0, 2683, 452, 1, 0, 0, 0, 2684, 2690, 5, 34, 0, 0, 2685, 2689, 8, 3, 0, 0, 2686, 2687, 5, 92, 0, 0, 2687, 2689, 9, 0, 0, 0, 2688, 2685, 1, 0, 0, 0, 2688, 2686, 1, 0, 0, 0, 2689, 2692, 1, 0, 0, 0, 2690, 2688, 1, 0, 0, 0, 2690, 2691, 1, 0, 0, 0, 2691, 2693, 1, 0, 0, 0, 2692, 2690, 1, 0, 0, 0, 2693, 2705, 5, 34, 0, 0, 2694, 2700, 5, 39, 0, 0, 2695, 2699, 8, 4, 0, 0, 2696, 2697, 5, 92, 0, 0, 2697, 2699, 9, 0, 0, 0, 2698, 2695, 1, 0, 0, 0, 2698, 2696, 1, 0, 0, 0, 2699, 2702, 1, 0, 0, 0, 2700, 2698, 1, 0, 0, 0, 2700, 2701, 1, 0, 0, 0, 2701, 2703, 1, 0, 0, 0, 2702, 2700, 1, 0, 0, 0, 2703, 2705, 5, 39, 0, 0, 2704, 2684, 1, 0, 0, 0, 2704, 2694, 1, 0, 0, 0, 2705, 454, 1, 0, 0, 0, 2706, 2710, 7, 5, 0, 0, 2707, 2709, 7, 6, 0, 0, 2708, 2707, 1, 0, 0, 0, 2709, 2712, 1, 0, 0, 0, 2710, 2708, 1, 0, 0, 0, 2710, 2711, 1, 0, 0, 0, 2711, 456, 1, 0, 0, 0, 2712, 2710, 1, 0, 0, 0, 2713, 2717, 5, 35, 0, 0, 2714, 2716, 8, 7, 0, 0, 2715, 2714, 1, 0, 0, 0, 2716, 2719, 1, 0, 0, 0, 2717, 2715, 1, 0, 0, 0, 2717, 2718, 1, 0, 0, 0, 2718, 2720, 1, 0, 0, 0, 2719, 2717, 1, 0, 0, 0, 2720, 2721, 6, 228, 0, 0, 2721, 458, 1, 0, 0, 0, 2722, 2723, 5, 47, 0, 0, 2723, 2724, 5, 42, 0, 0, 2724, 2728, 1, 0, 0, 0, 2725, 2727, 9, 0, 0, 0, 2726, 2725, 1, 0, 0, 0, 2727, 2730, 1, 0, 0, 0, 2728, 2729, 1, 0, 0, 0, 2728, 2726, 1, 0, 0, 0, 2729, 2731, 1, 0, 0, 0, 2730, 2728, 1, 0, 0, 0, 2731, 2732, 5, 42, 0, 0, 2732, 2733, 5, 47, 0, 0, 2733, 2734, 1, 0, 0, 0, 2734, 2735, 6, 229, 0, 0, 2735, 460, 1, 0, 0, 0, 2736, 2738, 7, 8, 0, 0, 2737, 2736, 1, 0, 0, 0, 2738, 2739, 1, 0, 0, 0, 2739, 2737, 1, 0, 0, 0, 2739, 2740, 1, 0, 0, 0, 2740, 2741, 1, 0, 0, 0, 2741, 2742, 6, 230, 0, 0, 2742, 462, 1, 0, 0, 0, 73, 0, 655, 670, 746, 763, 781, 794, 867, 884, 942, 991, 1013, 1030, 1051, 1066, 1093, 1124, 1140, 1211, 1261, 1281, 1302, 1349, 1373, 1396, 1413, 1428, 1510, 1565, 1794, 1855, 1876, 1933, 2052, 2083, 2102, 2127, 2152, 2172, 2197, 2222, 2245, 2266, 2285, 2306, 2327, 2352, 2373, 2394, 2416, 2436, 2486, 2516, 2536, 2566, 2647, 2653, 2656, 2662, 2664, 2668, 2673, 2675, 2682, 2688, 2690, 2698, 2700, 2704, 2710, 2717, 2728, 2739, 1, 6, 0, 0] \ No newline at end of file diff --git a/more_math/Parser/grammer/MathExprLexer.py b/more_math/Parser/grammer/MathExprLexer.py index 16e06a7..307ddf0 100644 --- a/more_math/Parser/grammer/MathExprLexer.py +++ b/more_math/Parser/grammer/MathExprLexer.py @@ -10,7 +10,7 @@ else: def serializedATN(): return [ - 4,0,230,2722,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7, + 4,0,231,2743,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7, 5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12, 2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19, 7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25, @@ -49,206 +49,208 @@ def serializedATN(): 7,213,2,214,7,214,2,215,7,215,2,216,7,216,2,217,7,217,2,218,7,218, 2,219,7,219,2,220,7,220,2,221,7,221,2,222,7,222,2,223,7,223,2,224, 7,224,2,225,7,225,2,226,7,226,2,227,7,227,2,228,7,228,2,229,7,229, - 1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,2,1,2,1,2,1,2,1,3,1,3,1,3,1,3, - 1,3,1,4,1,4,1,4,1,4,1,4,1,5,1,5,1,5,1,5,1,5,1,6,1,6,1,6,1,6,1,6, - 1,6,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1,8,1,8,1,8,1,9,1,9,1,9,1,9,1,9, - 1,10,1,10,1,10,1,10,1,10,1,10,1,11,1,11,1,11,1,11,1,11,1,11,1,12, - 1,12,1,12,1,12,1,12,1,12,1,13,1,13,1,13,1,13,1,14,1,14,1,14,1,14, - 1,14,1,15,1,15,1,15,1,16,1,16,1,16,1,16,1,17,1,17,1,17,1,17,1,18, - 1,18,1,18,1,18,1,18,1,19,1,19,1,19,1,19,1,19,1,20,1,20,1,20,1,20, - 1,20,1,21,1,21,1,21,1,21,1,21,1,22,1,22,1,22,1,22,1,22,1,22,1,23, - 1,23,1,23,1,23,1,23,1,23,1,24,1,24,1,24,1,24,1,24,1,24,1,25,1,25, - 1,25,1,25,1,25,1,26,1,26,1,26,1,26,1,26,1,26,1,27,1,27,1,27,1,27, - 1,27,1,27,1,28,1,28,1,28,1,28,1,29,1,29,1,29,1,29,1,29,1,30,1,30, - 1,30,1,30,1,30,1,30,1,31,1,31,1,31,1,31,1,32,1,32,1,32,1,32,1,32, - 1,33,1,33,1,33,1,33,1,33,1,33,1,34,1,34,1,34,1,34,1,34,1,34,1,35, - 1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35, - 1,35,3,35,654,8,35,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36, - 1,36,1,36,1,36,1,36,3,36,669,8,36,1,37,1,37,1,37,1,37,1,37,1,38, - 1,38,1,38,1,38,1,38,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39, - 1,39,1,39,1,40,1,40,1,40,1,40,1,40,1,40,1,41,1,41,1,41,1,41,1,41, - 1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,43,1,43,1,43,1,43, - 1,43,1,44,1,44,1,44,1,44,1,44,1,45,1,45,1,45,1,45,1,46,1,46,1,46, - 1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46, - 1,46,1,46,1,46,3,46,745,8,46,1,47,1,47,1,47,1,47,1,47,1,47,1,47, - 1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,3,47,762,8,47,1,48,1,48, - 1,48,1,48,1,48,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49, - 1,49,3,49,780,8,49,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50, - 1,50,1,50,3,50,793,8,50,1,51,1,51,1,51,1,51,1,51,1,51,1,52,1,52, - 1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,53,1,53,1,53,1,53,1,53,1,53, - 1,53,1,53,1,53,1,54,1,54,1,54,1,54,1,54,1,55,1,55,1,55,1,55,1,55, - 1,56,1,56,1,56,1,56,1,56,1,57,1,57,1,57,1,57,1,58,1,58,1,58,1,58, - 1,58,1,59,1,59,1,59,1,59,1,60,1,60,1,60,1,60,1,61,1,61,1,61,1,61, - 1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,3,61,866, - 8,61,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62, - 1,62,1,62,1,62,3,62,883,8,62,1,63,1,63,1,63,1,63,1,63,1,63,1,63, - 1,63,1,63,1,64,1,64,1,64,1,64,1,65,1,65,1,65,1,65,1,65,1,65,1,65, - 1,66,1,66,1,66,1,66,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,68,1,68, - 1,68,1,68,1,69,1,69,1,69,1,69,1,70,1,70,1,70,1,70,1,70,1,71,1,71, - 1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,3,71,941,8,71, - 1,72,1,72,1,72,1,72,1,72,1,72,1,72,1,73,1,73,1,73,1,73,1,73,1,74, - 1,74,1,74,1,74,1,74,1,74,1,74,1,75,1,75,1,75,1,75,1,75,1,75,1,75, - 1,75,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76, - 1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,3,76,990,8,76,1,77,1,77, - 1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77, - 1,77,1,77,1,77,1,77,1,77,3,77,1012,8,77,1,78,1,78,1,78,1,78,1,78, - 1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,3,78,1029,8,78, - 1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,79, - 1,79,1,79,1,79,1,79,1,79,1,79,3,79,1050,8,79,1,80,1,80,1,80,1,80, - 1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,3,80,1065,8,80,1,81, - 1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,82, - 1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,82,3,82,1092, - 8,82,1,83,1,83,1,83,1,83,1,83,1,83,1,84,1,84,1,84,1,84,1,84,1,84, + 2,230,7,230,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,2,1,2,1,2,1,2,1,3, + 1,3,1,3,1,3,1,3,1,4,1,4,1,4,1,4,1,4,1,5,1,5,1,5,1,5,1,5,1,6,1,6, + 1,6,1,6,1,6,1,6,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1,8,1,8,1,8,1,9,1,9, + 1,9,1,9,1,9,1,10,1,10,1,10,1,10,1,10,1,10,1,11,1,11,1,11,1,11,1, + 11,1,11,1,12,1,12,1,12,1,12,1,12,1,12,1,13,1,13,1,13,1,13,1,14,1, + 14,1,14,1,14,1,14,1,15,1,15,1,15,1,16,1,16,1,16,1,16,1,17,1,17,1, + 17,1,17,1,18,1,18,1,18,1,18,1,18,1,19,1,19,1,19,1,19,1,19,1,20,1, + 20,1,20,1,20,1,20,1,21,1,21,1,21,1,21,1,21,1,22,1,22,1,22,1,22,1, + 22,1,22,1,23,1,23,1,23,1,23,1,23,1,23,1,24,1,24,1,24,1,24,1,24,1, + 24,1,25,1,25,1,25,1,25,1,25,1,26,1,26,1,26,1,26,1,26,1,26,1,27,1, + 27,1,27,1,27,1,27,1,27,1,28,1,28,1,28,1,28,1,29,1,29,1,29,1,29,1, + 29,1,30,1,30,1,30,1,30,1,30,1,30,1,31,1,31,1,31,1,31,1,32,1,32,1, + 32,1,32,1,32,1,33,1,33,1,33,1,33,1,33,1,33,1,34,1,34,1,34,1,34,1, + 34,1,34,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1, + 35,1,35,1,35,1,35,3,35,656,8,35,1,36,1,36,1,36,1,36,1,36,1,36,1, + 36,1,36,1,36,1,36,1,36,1,36,1,36,3,36,671,8,36,1,37,1,37,1,37,1, + 37,1,37,1,38,1,38,1,38,1,38,1,38,1,39,1,39,1,39,1,39,1,39,1,39,1, + 39,1,39,1,39,1,39,1,39,1,40,1,40,1,40,1,40,1,40,1,40,1,41,1,41,1, + 41,1,41,1,41,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,43,1, + 43,1,43,1,43,1,43,1,44,1,44,1,44,1,44,1,44,1,45,1,45,1,45,1,45,1, + 46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1, + 46,1,46,1,46,1,46,1,46,1,46,3,46,747,8,46,1,47,1,47,1,47,1,47,1, + 47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,3,47,764,8, + 47,1,48,1,48,1,48,1,48,1,48,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1, + 49,1,49,1,49,1,49,3,49,782,8,49,1,50,1,50,1,50,1,50,1,50,1,50,1, + 50,1,50,1,50,1,50,1,50,3,50,795,8,50,1,51,1,51,1,51,1,51,1,51,1, + 51,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,53,1,53,1,53,1, + 53,1,53,1,53,1,53,1,53,1,53,1,54,1,54,1,54,1,54,1,54,1,55,1,55,1, + 55,1,55,1,55,1,56,1,56,1,56,1,56,1,56,1,57,1,57,1,57,1,57,1,58,1, + 58,1,58,1,58,1,58,1,59,1,59,1,59,1,59,1,60,1,60,1,60,1,60,1,61,1, + 61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1, + 61,3,61,868,8,61,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1, + 62,1,62,1,62,1,62,1,62,1,62,3,62,885,8,62,1,63,1,63,1,63,1,63,1, + 63,1,63,1,63,1,63,1,63,1,64,1,64,1,64,1,64,1,65,1,65,1,65,1,65,1, + 65,1,65,1,65,1,66,1,66,1,66,1,66,1,67,1,67,1,67,1,67,1,67,1,67,1, + 67,1,68,1,68,1,68,1,68,1,69,1,69,1,69,1,69,1,70,1,70,1,70,1,70,1, + 70,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,3, + 71,943,8,71,1,72,1,72,1,72,1,72,1,72,1,72,1,72,1,73,1,73,1,73,1, + 73,1,73,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,75,1,75,1,75,1,75,1, + 75,1,75,1,75,1,75,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1, + 76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,3,76,992,8, + 76,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1, + 77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,3,77,1014,8,77,1,78,1,78,1, + 78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,3, + 78,1031,8,78,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1, + 79,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,79,3,79,1052,8,79,1,80,1, + 80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,3,80,1067, + 8,80,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81, + 1,81,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,82, + 3,82,1094,8,82,1,83,1,83,1,83,1,83,1,83,1,83,1,84,1,84,1,84,1,84, 1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84, - 1,84,1,84,1,84,1,84,3,84,1123,8,84,1,85,1,85,1,85,1,85,1,85,1,85, - 1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,3,85,1139,8,85,1,86,1,86, - 1,86,1,86,1,86,1,86,1,86,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87, - 1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,89,1,89,1,89,1,89,1,89,1,89, - 1,89,1,89,1,89,1,89,1,90,1,90,1,90,1,90,1,90,1,90,1,90,1,90,1,90, - 1,90,1,90,1,91,1,91,1,91,1,91,1,91,1,91,1,91,1,91,1,91,1,91,1,91, + 1,84,1,84,1,84,1,84,1,84,1,84,3,84,1125,8,84,1,85,1,85,1,85,1,85, + 1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,3,85,1141,8,85, + 1,86,1,86,1,86,1,86,1,86,1,86,1,86,1,87,1,87,1,87,1,87,1,87,1,87, + 1,87,1,87,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,89,1,89,1,89,1,89, + 1,89,1,89,1,89,1,89,1,89,1,89,1,90,1,90,1,90,1,90,1,90,1,90,1,90, + 1,90,1,90,1,90,1,90,1,91,1,91,1,91,1,91,1,91,1,91,1,91,1,91,1,91, 1,91,1,91,1,91,1,91,1,91,1,91,1,91,1,91,1,91,1,91,1,91,1,91,1,91, - 1,91,1,91,3,91,1210,8,91,1,92,1,92,1,92,1,92,1,92,1,92,1,92,1,92, - 1,92,1,92,1,92,1,92,1,93,1,93,1,93,1,93,1,93,1,93,1,93,1,93,1,93, - 1,93,1,93,1,93,1,93,1,93,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,94, + 1,91,1,91,1,91,1,91,3,91,1212,8,91,1,92,1,92,1,92,1,92,1,92,1,92, + 1,92,1,92,1,92,1,92,1,92,1,92,1,93,1,93,1,93,1,93,1,93,1,93,1,93, + 1,93,1,93,1,93,1,93,1,93,1,93,1,93,1,94,1,94,1,94,1,94,1,94,1,94, 1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,94, - 1,94,3,94,1260,8,94,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95, - 1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,3,95,1280,8,95,1,96, - 1,96,1,96,1,96,1,96,1,96,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97, - 1,97,1,97,1,97,1,97,1,97,3,97,1301,8,97,1,98,1,98,1,98,1,98,1,98, - 1,98,1,98,1,98,1,99,1,99,1,99,1,99,1,100,1,100,1,100,1,100,1,100, - 1,100,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,102,1,102,1,102, - 1,102,1,102,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103, - 1,103,1,103,1,103,1,103,1,103,1,103,3,103,1348,8,103,1,104,1,104, + 1,94,1,94,1,94,3,94,1262,8,94,1,95,1,95,1,95,1,95,1,95,1,95,1,95, + 1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,3,95,1282, + 8,95,1,96,1,96,1,96,1,96,1,96,1,96,1,97,1,97,1,97,1,97,1,97,1,97, + 1,97,1,97,1,97,1,97,1,97,1,97,1,97,3,97,1303,8,97,1,98,1,98,1,98, + 1,98,1,98,1,98,1,98,1,98,1,99,1,99,1,99,1,99,1,100,1,100,1,100,1, + 100,1,100,1,100,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,102, + 1,102,1,102,1,102,1,102,1,103,1,103,1,103,1,103,1,103,1,103,1,103, + 1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,3,103,1350,8,103, 1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104, - 1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,3,104,1372, - 8,104,1,105,1,105,1,105,1,105,1,105,1,105,1,106,1,106,1,106,1,106, + 1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104, + 3,104,1374,8,104,1,105,1,105,1,105,1,105,1,105,1,105,1,106,1,106, 1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,106, - 3,106,1395,8,106,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107, - 1,107,1,107,1,107,1,107,1,107,1,107,1,107,3,107,1412,8,107,1,108, - 1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108, - 1,108,3,108,1427,8,108,1,109,1,109,1,109,1,109,1,109,1,109,1,109, - 1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,110, - 1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,112, - 1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112, - 1,113,1,113,1,113,1,113,1,113,1,113,1,113,1,113,1,113,1,113,1,114, - 1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,115,1,115, + 1,106,1,106,3,106,1397,8,106,1,107,1,107,1,107,1,107,1,107,1,107, + 1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,3,107,1414, + 8,107,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108, + 1,108,1,108,1,108,3,108,1429,8,108,1,109,1,109,1,109,1,109,1,109, + 1,109,1,109,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,110, + 1,110,1,110,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111, + 1,111,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112, + 1,112,1,112,1,113,1,113,1,113,1,113,1,113,1,113,1,113,1,113,1,113, + 1,113,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114, 1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115, - 1,115,1,115,1,115,1,115,1,115,1,115,1,115,3,115,1509,8,115,1,116, - 1,116,1,116,1,116,1,117,1,117,1,117,1,117,1,117,1,117,1,118,1,118, - 1,118,1,118,1,118,1,118,1,119,1,119,1,119,1,119,1,119,1,119,1,120, - 1,120,1,120,1,120,1,120,1,121,1,121,1,121,1,121,1,121,1,121,1,122, - 1,122,1,122,1,122,1,122,1,123,1,123,1,123,1,123,1,123,1,123,1,123, - 1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,123,3,123,1564,8,123, - 1,124,1,124,1,124,1,124,1,124,1,125,1,125,1,125,1,125,1,125,1,125, - 1,125,1,125,1,126,1,126,1,126,1,126,1,126,1,126,1,126,1,127,1,127, - 1,127,1,127,1,127,1,127,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,129,1,129,1,129,1,129,1,129,1,129,1,129, - 1,129,1,129,1,129,1,129,1,129,1,130,1,130,1,130,1,130,1,130,1,130, - 1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,131,1,131,1,131,1,131, - 1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,132, - 1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132, - 1,132,1,133,1,133,1,133,1,133,1,133,1,133,1,133,1,133,1,133,1,133, - 1,133,1,133,1,133,1,133,1,134,1,134,1,134,1,134,1,134,1,134,1,134, - 1,134,1,134,1,134,1,134,1,135,1,135,1,135,1,135,1,135,1,135,1,135, - 1,135,1,135,1,135,1,135,1,136,1,136,1,136,1,136,1,136,1,136,1,136, - 1,136,1,136,1,136,1,136,1,137,1,137,1,137,1,137,1,137,1,137,1,137, - 1,137,1,137,1,137,1,137,1,138,1,138,1,138,1,138,1,138,1,138,1,138, + 1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,3,115,1511, + 8,115,1,116,1,116,1,116,1,116,1,117,1,117,1,117,1,117,1,117,1,117, + 1,118,1,118,1,118,1,118,1,118,1,118,1,119,1,119,1,119,1,119,1,119, + 1,119,1,120,1,120,1,120,1,120,1,120,1,121,1,121,1,121,1,121,1,121, + 1,121,1,122,1,122,1,122,1,122,1,122,1,123,1,123,1,123,1,123,1,123, + 1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,123,3,123, + 1566,8,123,1,124,1,124,1,124,1,124,1,124,1,125,1,125,1,125,1,125, + 1,125,1,125,1,125,1,125,1,126,1,126,1,126,1,126,1,126,1,126,1,126, + 1,127,1,127,1,127,1,127,1,127,1,127,1,128,1,128,1,128,1,128,1,128, + 1,128,1,128,1,128,1,128,1,128,1,128,1,129,1,129,1,129,1,129,1,129, + 1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,130,1,130,1,130,1,130, + 1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,131,1,131, + 1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131, + 1,131,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132, + 1,132,1,132,1,132,1,133,1,133,1,133,1,133,1,133,1,133,1,133,1,133, + 1,133,1,133,1,133,1,133,1,133,1,133,1,134,1,134,1,134,1,134,1,134, + 1,134,1,134,1,134,1,134,1,134,1,134,1,135,1,135,1,135,1,135,1,135, + 1,135,1,135,1,135,1,135,1,135,1,135,1,136,1,136,1,136,1,136,1,136, + 1,136,1,136,1,136,1,136,1,136,1,136,1,137,1,137,1,137,1,137,1,137, + 1,137,1,137,1,137,1,137,1,137,1,137,1,138,1,138,1,138,1,138,1,138, 1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,138, - 1,138,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,139, - 1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,140,1,140,1,140,1,140, + 1,138,1,138,1,138,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,139, + 1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,140,1,140, 1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140, 1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140, 1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140, - 1,140,1,140,1,140,1,140,1,140,1,140,1,140,3,140,1793,8,140,1,141, - 1,141,1,141,1,141,1,141,1,141,1,141,1,141,1,141,1,141,1,141,1,142, - 1,142,1,142,1,142,1,142,1,142,1,142,1,142,1,142,1,142,1,142,1,142, - 1,142,1,142,1,142,1,142,1,142,1,143,1,143,1,143,1,143,1,143,1,143, + 1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,3,140,1795, + 8,140,1,141,1,141,1,141,1,141,1,141,1,141,1,141,1,141,1,141,1,141, + 1,141,1,142,1,142,1,142,1,142,1,142,1,142,1,142,1,142,1,142,1,142, + 1,142,1,142,1,142,1,142,1,142,1,142,1,142,1,143,1,143,1,143,1,143, 1,143,1,143,1,143,1,143,1,143,1,143,1,143,1,143,1,143,1,143,1,143, 1,143,1,143,1,143,1,143,1,143,1,143,1,143,1,143,1,143,1,143,1,143, - 1,143,1,143,1,143,3,143,1854,8,143,1,144,1,144,1,144,1,144,1,144, + 1,143,1,143,1,143,1,143,1,143,3,143,1856,8,143,1,144,1,144,1,144, 1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,144, - 1,144,1,144,1,144,3,144,1875,8,144,1,145,1,145,1,145,1,146,1,146, - 1,146,1,146,1,146,1,147,1,147,1,147,1,147,1,147,1,147,1,148,1,148, - 1,148,1,148,1,149,1,149,1,149,1,150,1,150,1,150,1,150,1,150,1,150, - 1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,152,1,152, - 1,152,1,152,1,152,1,152,1,152,1,153,1,153,1,153,1,153,1,153,1,153, - 1,153,1,153,1,153,1,153,1,153,1,153,3,153,1932,8,153,1,154,1,154, - 1,154,1,154,1,154,1,155,1,155,1,155,1,155,1,155,1,155,1,155,1,155, - 1,156,1,156,1,156,1,156,1,156,1,156,1,156,1,157,1,157,1,157,1,157, - 1,157,1,157,1,157,1,158,1,158,1,158,1,158,1,158,1,158,1,158,1,158, - 1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,160,1,160,1,160, - 1,160,1,160,1,160,1,160,1,161,1,161,1,161,1,161,1,161,1,162,1,162, - 1,162,1,162,1,162,1,162,1,162,1,162,1,162,1,162,1,162,1,163,1,163, - 1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,164,1,164,1,164,1,164, - 1,164,1,164,1,164,1,164,1,165,1,165,1,165,1,165,1,165,1,165,1,165, - 1,165,1,165,1,165,1,166,1,166,1,166,1,166,1,166,1,167,1,167,1,167, - 1,167,1,168,1,168,1,168,1,168,1,168,1,168,1,168,1,168,1,168,1,168, - 1,168,1,168,1,168,1,168,1,168,3,168,2051,8,168,1,169,1,169,1,169, - 1,169,1,169,1,169,1,169,1,169,1,170,1,170,1,170,1,170,1,170,1,171, - 1,171,1,171,1,171,1,171,1,171,1,171,1,171,1,171,1,171,1,171,1,171, - 1,171,1,171,1,171,1,171,3,171,2082,8,171,1,172,1,172,1,172,1,172, + 1,144,1,144,1,144,1,144,1,144,3,144,1877,8,144,1,145,1,145,1,145, + 1,146,1,146,1,146,1,146,1,146,1,147,1,147,1,147,1,147,1,147,1,147, + 1,148,1,148,1,148,1,148,1,149,1,149,1,149,1,150,1,150,1,150,1,150, + 1,150,1,150,1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,151, + 1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,153,1,153,1,153,1,153, + 1,153,1,153,1,153,1,153,1,153,1,153,1,153,1,153,3,153,1934,8,153, + 1,154,1,154,1,154,1,154,1,154,1,155,1,155,1,155,1,155,1,155,1,155, + 1,155,1,155,1,156,1,156,1,156,1,156,1,156,1,156,1,156,1,157,1,157, + 1,157,1,157,1,157,1,157,1,157,1,158,1,158,1,158,1,158,1,158,1,158, + 1,158,1,158,1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,160, + 1,160,1,160,1,160,1,160,1,160,1,160,1,161,1,161,1,161,1,161,1,161, + 1,162,1,162,1,162,1,162,1,162,1,162,1,162,1,162,1,162,1,162,1,162, + 1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,164,1,164, + 1,164,1,164,1,164,1,164,1,164,1,164,1,165,1,165,1,165,1,165,1,165, + 1,165,1,165,1,165,1,165,1,165,1,166,1,166,1,166,1,166,1,166,1,167, + 1,167,1,167,1,167,1,168,1,168,1,168,1,168,1,168,1,168,1,168,1,168, + 1,168,1,168,1,168,1,168,1,168,1,168,1,168,3,168,2053,8,168,1,169, + 1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,170,1,170,1,170,1,170, + 1,170,1,171,1,171,1,171,1,171,1,171,1,171,1,171,1,171,1,171,1,171, + 1,171,1,171,1,171,1,171,1,171,1,171,3,171,2084,8,171,1,172,1,172, 1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,172, - 1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,172,3,172,2107,8,172, + 1,172,1,172,1,172,1,172,3,172,2103,8,172,1,173,1,173,1,173,1,173, 1,173,1,173,1,173,1,173,1,173,1,173,1,173,1,173,1,173,1,173,1,173, - 1,173,1,173,1,173,1,173,1,173,1,173,1,173,1,173,1,173,1,173,1,173, - 1,173,3,173,2132,8,173,1,174,1,174,1,174,1,174,1,174,1,174,1,174, + 1,173,1,173,1,173,1,173,1,173,1,173,1,173,1,173,3,173,2128,8,173, 1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174, - 3,174,2152,8,174,1,175,1,175,1,175,1,175,1,175,1,175,1,175,1,175, + 1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174, + 1,174,3,174,2153,8,174,1,175,1,175,1,175,1,175,1,175,1,175,1,175, 1,175,1,175,1,175,1,175,1,175,1,175,1,175,1,175,1,175,1,175,1,175, - 1,175,1,175,1,175,1,175,3,175,2177,8,175,1,176,1,176,1,176,1,176, + 3,175,2173,8,175,1,176,1,176,1,176,1,176,1,176,1,176,1,176,1,176, 1,176,1,176,1,176,1,176,1,176,1,176,1,176,1,176,1,176,1,176,1,176, - 1,176,1,176,1,176,1,176,1,176,1,176,1,176,1,176,3,176,2202,8,176, + 1,176,1,176,1,176,1,176,3,176,2198,8,176,1,177,1,177,1,177,1,177, 1,177,1,177,1,177,1,177,1,177,1,177,1,177,1,177,1,177,1,177,1,177, - 1,177,1,177,1,177,1,177,1,177,1,177,1,177,1,177,1,177,1,177,3,177, - 2225,8,177,1,178,1,178,1,178,1,178,1,178,1,178,1,178,1,178,1,178, + 1,177,1,177,1,177,1,177,1,177,1,177,1,177,1,177,3,177,2223,8,177, + 1,178,1,178,1,178,1,178,1,178,1,178,1,178,1,178,1,178,1,178,1,178, 1,178,1,178,1,178,1,178,1,178,1,178,1,178,1,178,1,178,1,178,3,178, 2246,8,178,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179, - 1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,3,179,2265,8,179, - 1,180,1,180,1,180,1,180,1,180,1,180,1,180,1,180,1,180,1,180,1,180, + 1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,3,179, + 2267,8,179,1,180,1,180,1,180,1,180,1,180,1,180,1,180,1,180,1,180, 1,180,1,180,1,180,1,180,1,180,1,180,1,180,1,180,3,180,2286,8,180, 1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181, 1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,3,181,2307,8,181, 1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182, - 1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182, - 1,182,3,182,2332,8,182,1,183,1,183,1,183,1,183,1,183,1,183,1,183, + 1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182,3,182,2328,8,182, + 1,183,1,183,1,183,1,183,1,183,1,183,1,183,1,183,1,183,1,183,1,183, 1,183,1,183,1,183,1,183,1,183,1,183,1,183,1,183,1,183,1,183,1,183, 1,183,3,183,2353,8,183,1,184,1,184,1,184,1,184,1,184,1,184,1,184, 1,184,1,184,1,184,1,184,1,184,1,184,1,184,1,184,1,184,1,184,1,184, 1,184,3,184,2374,8,184,1,185,1,185,1,185,1,185,1,185,1,185,1,185, 1,185,1,185,1,185,1,185,1,185,1,185,1,185,1,185,1,185,1,185,1,185, - 1,185,1,185,3,185,2396,8,185,1,186,1,186,1,186,1,186,1,186,1,186, + 1,185,3,185,2395,8,185,1,186,1,186,1,186,1,186,1,186,1,186,1,186, 1,186,1,186,1,186,1,186,1,186,1,186,1,186,1,186,1,186,1,186,1,186, - 1,186,3,186,2416,8,186,1,187,1,187,1,187,1,187,1,187,1,187,1,187, + 1,186,1,186,3,186,2417,8,186,1,187,1,187,1,187,1,187,1,187,1,187, 1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187, - 1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187, - 1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187, - 1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,3,187,2466,8,187, + 1,187,3,187,2437,8,187,1,188,1,188,1,188,1,188,1,188,1,188,1,188, 1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188, 1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188, - 1,188,1,188,1,188,1,188,1,188,1,188,3,188,2496,8,188,1,189,1,189, + 1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188, + 1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,3,188,2487,8,188, 1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,189, - 1,189,1,189,1,189,1,189,1,189,3,189,2516,8,189,1,190,1,190,1,190, + 1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,189, + 1,189,1,189,1,189,1,189,1,189,1,189,3,189,2517,8,189,1,190,1,190, 1,190,1,190,1,190,1,190,1,190,1,190,1,190,1,190,1,190,1,190,1,190, - 1,190,1,190,1,190,1,190,1,190,1,190,1,190,1,190,1,190,1,190,1,190, - 1,190,1,190,1,190,3,190,2546,8,190,1,191,1,191,1,192,1,192,1,193, - 1,193,1,194,1,194,1,195,1,195,1,196,1,196,1,197,1,197,1,197,1,198, - 1,198,1,198,1,199,1,199,1,199,1,200,1,200,1,201,1,201,1,201,1,202, - 1,202,1,203,1,203,1,203,1,204,1,204,1,205,1,205,1,205,1,206,1,206, - 1,206,1,207,1,207,1,207,1,208,1,208,1,208,1,209,1,209,1,209,1,210, - 1,210,1,210,1,211,1,211,1,212,1,212,1,213,1,213,1,214,1,214,1,215, - 1,215,1,216,1,216,1,216,1,217,1,217,1,218,1,218,1,219,1,219,1,220, - 1,220,1,221,1,221,1,222,1,222,1,223,4,223,2625,8,223,11,223,12,223, - 2626,1,223,1,223,5,223,2631,8,223,10,223,12,223,2634,9,223,3,223, - 2636,8,223,1,223,1,223,4,223,2640,8,223,11,223,12,223,2641,3,223, - 2644,8,223,1,223,1,223,3,223,2648,8,223,1,223,4,223,2651,8,223,11, - 223,12,223,2652,3,223,2655,8,223,1,224,1,224,1,224,1,224,1,224,3, - 224,2662,8,224,1,225,1,225,1,225,1,225,5,225,2668,8,225,10,225,12, - 225,2671,9,225,1,225,1,225,1,225,1,225,1,225,5,225,2678,8,225,10, - 225,12,225,2681,9,225,1,225,3,225,2684,8,225,1,226,1,226,5,226,2688, - 8,226,10,226,12,226,2691,9,226,1,227,1,227,5,227,2695,8,227,10,227, - 12,227,2698,9,227,1,227,1,227,1,228,1,228,1,228,1,228,5,228,2706, - 8,228,10,228,12,228,2709,9,228,1,228,1,228,1,228,1,228,1,228,1,229, - 4,229,2717,8,229,11,229,12,229,2718,1,229,1,229,1,2707,0,230,1,1, + 1,190,1,190,1,190,1,190,1,190,3,190,2537,8,190,1,191,1,191,1,191, + 1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,191, + 1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,191, + 1,191,1,191,1,191,3,191,2567,8,191,1,192,1,192,1,193,1,193,1,194, + 1,194,1,195,1,195,1,196,1,196,1,197,1,197,1,198,1,198,1,198,1,199, + 1,199,1,199,1,200,1,200,1,200,1,201,1,201,1,202,1,202,1,202,1,203, + 1,203,1,204,1,204,1,204,1,205,1,205,1,206,1,206,1,206,1,207,1,207, + 1,207,1,208,1,208,1,208,1,209,1,209,1,209,1,210,1,210,1,210,1,211, + 1,211,1,211,1,212,1,212,1,213,1,213,1,214,1,214,1,215,1,215,1,216, + 1,216,1,217,1,217,1,217,1,218,1,218,1,219,1,219,1,220,1,220,1,221, + 1,221,1,222,1,222,1,223,1,223,1,224,4,224,2646,8,224,11,224,12,224, + 2647,1,224,1,224,5,224,2652,8,224,10,224,12,224,2655,9,224,3,224, + 2657,8,224,1,224,1,224,4,224,2661,8,224,11,224,12,224,2662,3,224, + 2665,8,224,1,224,1,224,3,224,2669,8,224,1,224,4,224,2672,8,224,11, + 224,12,224,2673,3,224,2676,8,224,1,225,1,225,1,225,1,225,1,225,3, + 225,2683,8,225,1,226,1,226,1,226,1,226,5,226,2689,8,226,10,226,12, + 226,2692,9,226,1,226,1,226,1,226,1,226,1,226,5,226,2699,8,226,10, + 226,12,226,2702,9,226,1,226,3,226,2705,8,226,1,227,1,227,5,227,2709, + 8,227,10,227,12,227,2712,9,227,1,228,1,228,5,228,2716,8,228,10,228, + 12,228,2719,9,228,1,228,1,228,1,229,1,229,1,229,1,229,5,229,2727, + 8,229,10,229,12,229,2730,9,229,1,229,1,229,1,229,1,229,1,229,1,230, + 4,230,2738,8,230,11,230,12,230,2739,1,230,1,230,1,2728,0,231,1,1, 3,2,5,3,7,4,9,5,11,6,13,7,15,8,17,9,19,10,21,11,23,12,25,13,27,14, 29,15,31,16,33,17,35,18,37,19,39,20,41,21,43,22,45,23,47,24,49,25, 51,26,53,27,55,28,57,29,59,30,61,31,63,32,65,33,67,34,69,35,71,36, @@ -274,800 +276,807 @@ def serializedATN(): 200,401,201,403,202,405,203,407,204,409,205,411,206,413,207,415, 208,417,209,419,210,421,211,423,212,425,213,427,214,429,215,431, 216,433,217,435,218,437,219,439,220,441,221,443,222,445,223,447, - 224,449,225,451,226,453,227,455,228,457,229,459,230,1,0,9,1,0,48, - 57,2,0,69,69,101,101,2,0,43,43,45,45,4,0,10,10,13,13,34,34,92,92, - 4,0,10,10,13,13,39,39,92,92,3,0,65,90,95,95,97,122,4,0,48,57,65, - 90,95,95,97,122,2,0,10,10,13,13,3,0,9,10,13,13,32,32,2805,0,1,1, - 0,0,0,0,3,1,0,0,0,0,5,1,0,0,0,0,7,1,0,0,0,0,9,1,0,0,0,0,11,1,0,0, - 0,0,13,1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19,1,0,0,0,0,21,1,0,0, - 0,0,23,1,0,0,0,0,25,1,0,0,0,0,27,1,0,0,0,0,29,1,0,0,0,0,31,1,0,0, - 0,0,33,1,0,0,0,0,35,1,0,0,0,0,37,1,0,0,0,0,39,1,0,0,0,0,41,1,0,0, - 0,0,43,1,0,0,0,0,45,1,0,0,0,0,47,1,0,0,0,0,49,1,0,0,0,0,51,1,0,0, - 0,0,53,1,0,0,0,0,55,1,0,0,0,0,57,1,0,0,0,0,59,1,0,0,0,0,61,1,0,0, - 0,0,63,1,0,0,0,0,65,1,0,0,0,0,67,1,0,0,0,0,69,1,0,0,0,0,71,1,0,0, - 0,0,73,1,0,0,0,0,75,1,0,0,0,0,77,1,0,0,0,0,79,1,0,0,0,0,81,1,0,0, - 0,0,83,1,0,0,0,0,85,1,0,0,0,0,87,1,0,0,0,0,89,1,0,0,0,0,91,1,0,0, - 0,0,93,1,0,0,0,0,95,1,0,0,0,0,97,1,0,0,0,0,99,1,0,0,0,0,101,1,0, - 0,0,0,103,1,0,0,0,0,105,1,0,0,0,0,107,1,0,0,0,0,109,1,0,0,0,0,111, - 1,0,0,0,0,113,1,0,0,0,0,115,1,0,0,0,0,117,1,0,0,0,0,119,1,0,0,0, - 0,121,1,0,0,0,0,123,1,0,0,0,0,125,1,0,0,0,0,127,1,0,0,0,0,129,1, - 0,0,0,0,131,1,0,0,0,0,133,1,0,0,0,0,135,1,0,0,0,0,137,1,0,0,0,0, - 139,1,0,0,0,0,141,1,0,0,0,0,143,1,0,0,0,0,145,1,0,0,0,0,147,1,0, - 0,0,0,149,1,0,0,0,0,151,1,0,0,0,0,153,1,0,0,0,0,155,1,0,0,0,0,157, - 1,0,0,0,0,159,1,0,0,0,0,161,1,0,0,0,0,163,1,0,0,0,0,165,1,0,0,0, - 0,167,1,0,0,0,0,169,1,0,0,0,0,171,1,0,0,0,0,173,1,0,0,0,0,175,1, - 0,0,0,0,177,1,0,0,0,0,179,1,0,0,0,0,181,1,0,0,0,0,183,1,0,0,0,0, - 185,1,0,0,0,0,187,1,0,0,0,0,189,1,0,0,0,0,191,1,0,0,0,0,193,1,0, - 0,0,0,195,1,0,0,0,0,197,1,0,0,0,0,199,1,0,0,0,0,201,1,0,0,0,0,203, - 1,0,0,0,0,205,1,0,0,0,0,207,1,0,0,0,0,209,1,0,0,0,0,211,1,0,0,0, - 0,213,1,0,0,0,0,215,1,0,0,0,0,217,1,0,0,0,0,219,1,0,0,0,0,221,1, - 0,0,0,0,223,1,0,0,0,0,225,1,0,0,0,0,227,1,0,0,0,0,229,1,0,0,0,0, - 231,1,0,0,0,0,233,1,0,0,0,0,235,1,0,0,0,0,237,1,0,0,0,0,239,1,0, - 0,0,0,241,1,0,0,0,0,243,1,0,0,0,0,245,1,0,0,0,0,247,1,0,0,0,0,249, - 1,0,0,0,0,251,1,0,0,0,0,253,1,0,0,0,0,255,1,0,0,0,0,257,1,0,0,0, - 0,259,1,0,0,0,0,261,1,0,0,0,0,263,1,0,0,0,0,265,1,0,0,0,0,267,1, - 0,0,0,0,269,1,0,0,0,0,271,1,0,0,0,0,273,1,0,0,0,0,275,1,0,0,0,0, - 277,1,0,0,0,0,279,1,0,0,0,0,281,1,0,0,0,0,283,1,0,0,0,0,285,1,0, - 0,0,0,287,1,0,0,0,0,289,1,0,0,0,0,291,1,0,0,0,0,293,1,0,0,0,0,295, - 1,0,0,0,0,297,1,0,0,0,0,299,1,0,0,0,0,301,1,0,0,0,0,303,1,0,0,0, - 0,305,1,0,0,0,0,307,1,0,0,0,0,309,1,0,0,0,0,311,1,0,0,0,0,313,1, - 0,0,0,0,315,1,0,0,0,0,317,1,0,0,0,0,319,1,0,0,0,0,321,1,0,0,0,0, - 323,1,0,0,0,0,325,1,0,0,0,0,327,1,0,0,0,0,329,1,0,0,0,0,331,1,0, - 0,0,0,333,1,0,0,0,0,335,1,0,0,0,0,337,1,0,0,0,0,339,1,0,0,0,0,341, - 1,0,0,0,0,343,1,0,0,0,0,345,1,0,0,0,0,347,1,0,0,0,0,349,1,0,0,0, - 0,351,1,0,0,0,0,353,1,0,0,0,0,355,1,0,0,0,0,357,1,0,0,0,0,359,1, - 0,0,0,0,361,1,0,0,0,0,363,1,0,0,0,0,365,1,0,0,0,0,367,1,0,0,0,0, - 369,1,0,0,0,0,371,1,0,0,0,0,373,1,0,0,0,0,375,1,0,0,0,0,377,1,0, - 0,0,0,379,1,0,0,0,0,381,1,0,0,0,0,383,1,0,0,0,0,385,1,0,0,0,0,387, - 1,0,0,0,0,389,1,0,0,0,0,391,1,0,0,0,0,393,1,0,0,0,0,395,1,0,0,0, - 0,397,1,0,0,0,0,399,1,0,0,0,0,401,1,0,0,0,0,403,1,0,0,0,0,405,1, - 0,0,0,0,407,1,0,0,0,0,409,1,0,0,0,0,411,1,0,0,0,0,413,1,0,0,0,0, - 415,1,0,0,0,0,417,1,0,0,0,0,419,1,0,0,0,0,421,1,0,0,0,0,423,1,0, - 0,0,0,425,1,0,0,0,0,427,1,0,0,0,0,429,1,0,0,0,0,431,1,0,0,0,0,433, - 1,0,0,0,0,435,1,0,0,0,0,437,1,0,0,0,0,439,1,0,0,0,0,441,1,0,0,0, - 0,443,1,0,0,0,0,445,1,0,0,0,0,447,1,0,0,0,0,449,1,0,0,0,0,451,1, - 0,0,0,0,453,1,0,0,0,0,455,1,0,0,0,0,457,1,0,0,0,0,459,1,0,0,0,1, - 461,1,0,0,0,3,465,1,0,0,0,5,469,1,0,0,0,7,473,1,0,0,0,9,478,1,0, - 0,0,11,483,1,0,0,0,13,488,1,0,0,0,15,494,1,0,0,0,17,499,1,0,0,0, - 19,504,1,0,0,0,21,509,1,0,0,0,23,515,1,0,0,0,25,521,1,0,0,0,27,527, - 1,0,0,0,29,531,1,0,0,0,31,536,1,0,0,0,33,539,1,0,0,0,35,543,1,0, - 0,0,37,547,1,0,0,0,39,552,1,0,0,0,41,557,1,0,0,0,43,562,1,0,0,0, - 45,567,1,0,0,0,47,573,1,0,0,0,49,579,1,0,0,0,51,585,1,0,0,0,53,590, - 1,0,0,0,55,596,1,0,0,0,57,602,1,0,0,0,59,606,1,0,0,0,61,611,1,0, - 0,0,63,617,1,0,0,0,65,621,1,0,0,0,67,626,1,0,0,0,69,632,1,0,0,0, - 71,653,1,0,0,0,73,668,1,0,0,0,75,670,1,0,0,0,77,675,1,0,0,0,79,680, - 1,0,0,0,81,691,1,0,0,0,83,697,1,0,0,0,85,702,1,0,0,0,87,711,1,0, - 0,0,89,716,1,0,0,0,91,721,1,0,0,0,93,744,1,0,0,0,95,761,1,0,0,0, - 97,763,1,0,0,0,99,779,1,0,0,0,101,792,1,0,0,0,103,794,1,0,0,0,105, - 800,1,0,0,0,107,809,1,0,0,0,109,818,1,0,0,0,111,823,1,0,0,0,113, - 828,1,0,0,0,115,833,1,0,0,0,117,837,1,0,0,0,119,842,1,0,0,0,121, - 846,1,0,0,0,123,865,1,0,0,0,125,882,1,0,0,0,127,884,1,0,0,0,129, - 893,1,0,0,0,131,897,1,0,0,0,133,904,1,0,0,0,135,908,1,0,0,0,137, - 915,1,0,0,0,139,919,1,0,0,0,141,923,1,0,0,0,143,940,1,0,0,0,145, - 942,1,0,0,0,147,949,1,0,0,0,149,954,1,0,0,0,151,961,1,0,0,0,153, - 989,1,0,0,0,155,1011,1,0,0,0,157,1028,1,0,0,0,159,1049,1,0,0,0,161, - 1064,1,0,0,0,163,1066,1,0,0,0,165,1091,1,0,0,0,167,1093,1,0,0,0, - 169,1122,1,0,0,0,171,1138,1,0,0,0,173,1140,1,0,0,0,175,1147,1,0, - 0,0,177,1155,1,0,0,0,179,1162,1,0,0,0,181,1172,1,0,0,0,183,1209, - 1,0,0,0,185,1211,1,0,0,0,187,1223,1,0,0,0,189,1259,1,0,0,0,191,1279, - 1,0,0,0,193,1281,1,0,0,0,195,1300,1,0,0,0,197,1302,1,0,0,0,199,1310, - 1,0,0,0,201,1314,1,0,0,0,203,1320,1,0,0,0,205,1327,1,0,0,0,207,1347, - 1,0,0,0,209,1371,1,0,0,0,211,1373,1,0,0,0,213,1394,1,0,0,0,215,1411, - 1,0,0,0,217,1426,1,0,0,0,219,1428,1,0,0,0,221,1435,1,0,0,0,223,1446, - 1,0,0,0,225,1456,1,0,0,0,227,1468,1,0,0,0,229,1478,1,0,0,0,231,1508, - 1,0,0,0,233,1510,1,0,0,0,235,1514,1,0,0,0,237,1520,1,0,0,0,239,1526, - 1,0,0,0,241,1532,1,0,0,0,243,1537,1,0,0,0,245,1543,1,0,0,0,247,1563, - 1,0,0,0,249,1565,1,0,0,0,251,1570,1,0,0,0,253,1578,1,0,0,0,255,1585, - 1,0,0,0,257,1591,1,0,0,0,259,1602,1,0,0,0,261,1614,1,0,0,0,263,1627, - 1,0,0,0,265,1641,1,0,0,0,267,1654,1,0,0,0,269,1668,1,0,0,0,271,1679, - 1,0,0,0,273,1690,1,0,0,0,275,1701,1,0,0,0,277,1712,1,0,0,0,279,1731, - 1,0,0,0,281,1792,1,0,0,0,283,1794,1,0,0,0,285,1805,1,0,0,0,287,1853, - 1,0,0,0,289,1874,1,0,0,0,291,1876,1,0,0,0,293,1879,1,0,0,0,295,1884, - 1,0,0,0,297,1890,1,0,0,0,299,1894,1,0,0,0,301,1897,1,0,0,0,303,1903, - 1,0,0,0,305,1912,1,0,0,0,307,1931,1,0,0,0,309,1933,1,0,0,0,311,1938, - 1,0,0,0,313,1946,1,0,0,0,315,1953,1,0,0,0,317,1960,1,0,0,0,319,1968, - 1,0,0,0,321,1976,1,0,0,0,323,1983,1,0,0,0,325,1988,1,0,0,0,327,1999, - 1,0,0,0,329,2008,1,0,0,0,331,2016,1,0,0,0,333,2026,1,0,0,0,335,2031, - 1,0,0,0,337,2050,1,0,0,0,339,2052,1,0,0,0,341,2060,1,0,0,0,343,2081, - 1,0,0,0,345,2106,1,0,0,0,347,2131,1,0,0,0,349,2151,1,0,0,0,351,2176, - 1,0,0,0,353,2201,1,0,0,0,355,2224,1,0,0,0,357,2245,1,0,0,0,359,2264, - 1,0,0,0,361,2285,1,0,0,0,363,2306,1,0,0,0,365,2331,1,0,0,0,367,2352, - 1,0,0,0,369,2373,1,0,0,0,371,2395,1,0,0,0,373,2415,1,0,0,0,375,2465, - 1,0,0,0,377,2495,1,0,0,0,379,2515,1,0,0,0,381,2545,1,0,0,0,383,2547, - 1,0,0,0,385,2549,1,0,0,0,387,2551,1,0,0,0,389,2553,1,0,0,0,391,2555, - 1,0,0,0,393,2557,1,0,0,0,395,2559,1,0,0,0,397,2562,1,0,0,0,399,2565, - 1,0,0,0,401,2568,1,0,0,0,403,2570,1,0,0,0,405,2573,1,0,0,0,407,2575, - 1,0,0,0,409,2578,1,0,0,0,411,2580,1,0,0,0,413,2583,1,0,0,0,415,2586, - 1,0,0,0,417,2589,1,0,0,0,419,2592,1,0,0,0,421,2595,1,0,0,0,423,2598, - 1,0,0,0,425,2600,1,0,0,0,427,2602,1,0,0,0,429,2604,1,0,0,0,431,2606, - 1,0,0,0,433,2608,1,0,0,0,435,2611,1,0,0,0,437,2613,1,0,0,0,439,2615, - 1,0,0,0,441,2617,1,0,0,0,443,2619,1,0,0,0,445,2621,1,0,0,0,447,2643, - 1,0,0,0,449,2661,1,0,0,0,451,2683,1,0,0,0,453,2685,1,0,0,0,455,2692, - 1,0,0,0,457,2701,1,0,0,0,459,2716,1,0,0,0,461,462,5,115,0,0,462, - 463,5,105,0,0,463,464,5,110,0,0,464,2,1,0,0,0,465,466,5,99,0,0,466, - 467,5,111,0,0,467,468,5,115,0,0,468,4,1,0,0,0,469,470,5,116,0,0, - 470,471,5,97,0,0,471,472,5,110,0,0,472,6,1,0,0,0,473,474,5,97,0, - 0,474,475,5,115,0,0,475,476,5,105,0,0,476,477,5,110,0,0,477,8,1, - 0,0,0,478,479,5,97,0,0,479,480,5,99,0,0,480,481,5,111,0,0,481,482, - 5,115,0,0,482,10,1,0,0,0,483,484,5,97,0,0,484,485,5,116,0,0,485, - 486,5,97,0,0,486,487,5,110,0,0,487,12,1,0,0,0,488,489,5,97,0,0,489, - 490,5,116,0,0,490,491,5,97,0,0,491,492,5,110,0,0,492,493,5,50,0, - 0,493,14,1,0,0,0,494,495,5,115,0,0,495,496,5,105,0,0,496,497,5,110, - 0,0,497,498,5,104,0,0,498,16,1,0,0,0,499,500,5,99,0,0,500,501,5, - 111,0,0,501,502,5,115,0,0,502,503,5,104,0,0,503,18,1,0,0,0,504,505, - 5,116,0,0,505,506,5,97,0,0,506,507,5,110,0,0,507,508,5,104,0,0,508, - 20,1,0,0,0,509,510,5,97,0,0,510,511,5,115,0,0,511,512,5,105,0,0, - 512,513,5,110,0,0,513,514,5,104,0,0,514,22,1,0,0,0,515,516,5,97, - 0,0,516,517,5,99,0,0,517,518,5,111,0,0,518,519,5,115,0,0,519,520, - 5,104,0,0,520,24,1,0,0,0,521,522,5,97,0,0,522,523,5,116,0,0,523, - 524,5,97,0,0,524,525,5,110,0,0,525,526,5,104,0,0,526,26,1,0,0,0, - 527,528,5,97,0,0,528,529,5,98,0,0,529,530,5,115,0,0,530,28,1,0,0, - 0,531,532,5,115,0,0,532,533,5,113,0,0,533,534,5,114,0,0,534,535, - 5,116,0,0,535,30,1,0,0,0,536,537,5,108,0,0,537,538,5,110,0,0,538, - 32,1,0,0,0,539,540,5,108,0,0,540,541,5,111,0,0,541,542,5,103,0,0, - 542,34,1,0,0,0,543,544,5,101,0,0,544,545,5,120,0,0,545,546,5,112, - 0,0,546,36,1,0,0,0,547,548,5,115,0,0,548,549,5,109,0,0,549,550,5, - 105,0,0,550,551,5,110,0,0,551,38,1,0,0,0,552,553,5,115,0,0,553,554, - 5,109,0,0,554,555,5,97,0,0,555,556,5,120,0,0,556,40,1,0,0,0,557, - 558,5,116,0,0,558,559,5,109,0,0,559,560,5,105,0,0,560,561,5,110, - 0,0,561,42,1,0,0,0,562,563,5,116,0,0,563,564,5,109,0,0,564,565,5, - 97,0,0,565,566,5,120,0,0,566,44,1,0,0,0,567,568,5,116,0,0,568,569, - 5,110,0,0,569,570,5,111,0,0,570,571,5,114,0,0,571,572,5,109,0,0, - 572,46,1,0,0,0,573,574,5,115,0,0,574,575,5,110,0,0,575,576,5,111, - 0,0,576,577,5,114,0,0,577,578,5,109,0,0,578,48,1,0,0,0,579,580,5, - 102,0,0,580,581,5,108,0,0,581,582,5,111,0,0,582,583,5,111,0,0,583, - 584,5,114,0,0,584,50,1,0,0,0,585,586,5,99,0,0,586,587,5,101,0,0, - 587,588,5,105,0,0,588,589,5,108,0,0,589,52,1,0,0,0,590,591,5,114, - 0,0,591,592,5,111,0,0,592,593,5,117,0,0,593,594,5,110,0,0,594,595, - 5,100,0,0,595,54,1,0,0,0,596,597,5,103,0,0,597,598,5,97,0,0,598, - 599,5,109,0,0,599,600,5,109,0,0,600,601,5,97,0,0,601,56,1,0,0,0, - 602,603,5,112,0,0,603,604,5,111,0,0,604,605,5,119,0,0,605,58,1,0, - 0,0,606,607,5,115,0,0,607,608,5,105,0,0,608,609,5,103,0,0,609,610, - 5,109,0,0,610,60,1,0,0,0,611,612,5,99,0,0,612,613,5,108,0,0,613, - 614,5,97,0,0,614,615,5,109,0,0,615,616,5,112,0,0,616,62,1,0,0,0, - 617,618,5,102,0,0,618,619,5,102,0,0,619,620,5,116,0,0,620,64,1,0, - 0,0,621,622,5,105,0,0,622,623,5,102,0,0,623,624,5,102,0,0,624,625, - 5,116,0,0,625,66,1,0,0,0,626,627,5,97,0,0,627,628,5,110,0,0,628, - 629,5,103,0,0,629,630,5,108,0,0,630,631,5,101,0,0,631,68,1,0,0,0, - 632,633,5,112,0,0,633,634,5,114,0,0,634,635,5,105,0,0,635,636,5, - 110,0,0,636,637,5,116,0,0,637,70,1,0,0,0,638,639,5,112,0,0,639,640, - 5,114,0,0,640,641,5,105,0,0,641,642,5,110,0,0,642,643,5,116,0,0, - 643,644,5,95,0,0,644,645,5,115,0,0,645,646,5,104,0,0,646,647,5,97, - 0,0,647,648,5,112,0,0,648,654,5,101,0,0,649,650,5,112,0,0,650,651, - 5,115,0,0,651,652,5,104,0,0,652,654,5,112,0,0,653,638,1,0,0,0,653, - 649,1,0,0,0,654,72,1,0,0,0,655,656,5,110,0,0,656,657,5,118,0,0,657, - 669,5,108,0,0,658,659,5,110,0,0,659,660,5,97,0,0,660,661,5,110,0, - 0,661,662,5,95,0,0,662,663,5,116,0,0,663,664,5,111,0,0,664,665,5, - 95,0,0,665,666,5,110,0,0,666,667,5,117,0,0,667,669,5,109,0,0,668, - 655,1,0,0,0,668,658,1,0,0,0,669,74,1,0,0,0,670,671,5,108,0,0,671, - 672,5,101,0,0,672,673,5,114,0,0,673,674,5,112,0,0,674,76,1,0,0,0, - 675,676,5,115,0,0,676,677,5,116,0,0,677,678,5,101,0,0,678,679,5, - 112,0,0,679,78,1,0,0,0,680,681,5,115,0,0,681,682,5,109,0,0,682,683, - 5,111,0,0,683,684,5,111,0,0,684,685,5,116,0,0,685,686,5,104,0,0, - 686,687,5,115,0,0,687,688,5,116,0,0,688,689,5,101,0,0,689,690,5, - 112,0,0,690,80,1,0,0,0,691,692,5,102,0,0,692,693,5,114,0,0,693,694, - 5,97,0,0,694,695,5,99,0,0,695,696,5,116,0,0,696,82,1,0,0,0,697,698, - 5,114,0,0,698,699,5,101,0,0,699,700,5,108,0,0,700,701,5,117,0,0, - 701,84,1,0,0,0,702,703,5,115,0,0,703,704,5,111,0,0,704,705,5,102, - 0,0,705,706,5,116,0,0,706,707,5,112,0,0,707,708,5,108,0,0,708,709, - 5,117,0,0,709,710,5,115,0,0,710,86,1,0,0,0,711,712,5,103,0,0,712, - 713,5,101,0,0,713,714,5,108,0,0,714,715,5,117,0,0,715,88,1,0,0,0, - 716,717,5,115,0,0,717,718,5,105,0,0,718,719,5,103,0,0,719,720,5, - 110,0,0,720,90,1,0,0,0,721,722,5,109,0,0,722,723,5,97,0,0,723,724, - 5,112,0,0,724,92,1,0,0,0,725,726,5,101,0,0,726,727,5,122,0,0,727, - 728,5,99,0,0,728,729,5,111,0,0,729,730,5,110,0,0,730,731,5,118,0, - 0,731,732,5,111,0,0,732,733,5,108,0,0,733,734,5,117,0,0,734,735, - 5,116,0,0,735,736,5,105,0,0,736,737,5,111,0,0,737,745,5,110,0,0, - 738,739,5,101,0,0,739,740,5,122,0,0,740,741,5,99,0,0,741,742,5,111, - 0,0,742,743,5,110,0,0,743,745,5,118,0,0,744,725,1,0,0,0,744,738, - 1,0,0,0,745,94,1,0,0,0,746,747,5,99,0,0,747,748,5,111,0,0,748,749, - 5,110,0,0,749,750,5,118,0,0,750,751,5,111,0,0,751,752,5,108,0,0, - 752,753,5,117,0,0,753,754,5,116,0,0,754,755,5,105,0,0,755,756,5, - 111,0,0,756,762,5,110,0,0,757,758,5,99,0,0,758,759,5,111,0,0,759, - 760,5,110,0,0,760,762,5,118,0,0,761,746,1,0,0,0,761,757,1,0,0,0, - 762,96,1,0,0,0,763,764,5,115,0,0,764,765,5,119,0,0,765,766,5,97, - 0,0,766,767,5,112,0,0,767,98,1,0,0,0,768,769,5,112,0,0,769,770,5, - 101,0,0,770,771,5,114,0,0,771,772,5,109,0,0,772,773,5,117,0,0,773, - 774,5,116,0,0,774,780,5,101,0,0,775,776,5,112,0,0,776,777,5,101, - 0,0,777,778,5,114,0,0,778,780,5,109,0,0,779,768,1,0,0,0,779,775, - 1,0,0,0,780,100,1,0,0,0,781,782,5,114,0,0,782,783,5,101,0,0,783, - 784,5,115,0,0,784,785,5,104,0,0,785,786,5,97,0,0,786,787,5,112,0, - 0,787,793,5,101,0,0,788,789,5,114,0,0,789,790,5,115,0,0,790,791, - 5,104,0,0,791,793,5,112,0,0,792,781,1,0,0,0,792,788,1,0,0,0,793, - 102,1,0,0,0,794,795,5,114,0,0,795,796,5,97,0,0,796,797,5,110,0,0, - 797,798,5,103,0,0,798,799,5,101,0,0,799,104,1,0,0,0,800,801,5,108, - 0,0,801,802,5,105,0,0,802,803,5,110,0,0,803,804,5,115,0,0,804,805, - 5,112,0,0,805,806,5,97,0,0,806,807,5,99,0,0,807,808,5,101,0,0,808, - 106,1,0,0,0,809,810,5,108,0,0,810,811,5,111,0,0,811,812,5,103,0, - 0,812,813,5,115,0,0,813,814,5,112,0,0,814,815,5,97,0,0,815,816,5, - 99,0,0,816,817,5,101,0,0,817,108,1,0,0,0,818,819,5,116,0,0,819,820, - 5,111,0,0,820,821,5,112,0,0,821,822,5,107,0,0,822,110,1,0,0,0,823, - 824,5,98,0,0,824,825,5,111,0,0,825,826,5,116,0,0,826,827,5,107,0, - 0,827,112,1,0,0,0,828,829,5,112,0,0,829,830,5,105,0,0,830,831,5, - 110,0,0,831,832,5,118,0,0,832,114,1,0,0,0,833,834,5,115,0,0,834, - 835,5,117,0,0,835,836,5,109,0,0,836,116,1,0,0,0,837,838,5,109,0, - 0,838,839,5,101,0,0,839,840,5,97,0,0,840,841,5,110,0,0,841,118,1, - 0,0,0,842,843,5,115,0,0,843,844,5,116,0,0,844,845,5,100,0,0,845, - 120,1,0,0,0,846,847,5,118,0,0,847,848,5,97,0,0,848,849,5,114,0,0, - 849,122,1,0,0,0,850,851,5,113,0,0,851,852,5,117,0,0,852,853,5,97, - 0,0,853,854,5,114,0,0,854,855,5,116,0,0,855,856,5,105,0,0,856,857, - 5,108,0,0,857,866,5,101,0,0,858,859,5,113,0,0,859,860,5,117,0,0, - 860,861,5,97,0,0,861,862,5,114,0,0,862,863,5,116,0,0,863,864,5,105, - 0,0,864,866,5,108,0,0,865,850,1,0,0,0,865,858,1,0,0,0,866,124,1, - 0,0,0,867,868,5,112,0,0,868,869,5,101,0,0,869,870,5,114,0,0,870, - 871,5,99,0,0,871,872,5,101,0,0,872,873,5,110,0,0,873,874,5,116,0, - 0,874,875,5,105,0,0,875,876,5,108,0,0,876,883,5,101,0,0,877,878, - 5,112,0,0,878,879,5,114,0,0,879,880,5,99,0,0,880,881,5,110,0,0,881, - 883,5,116,0,0,882,867,1,0,0,0,882,877,1,0,0,0,883,126,1,0,0,0,884, - 885,5,113,0,0,885,886,5,117,0,0,886,887,5,97,0,0,887,888,5,110,0, - 0,888,889,5,116,0,0,889,890,5,105,0,0,890,891,5,108,0,0,891,892, - 5,101,0,0,892,128,1,0,0,0,893,894,5,100,0,0,894,895,5,111,0,0,895, - 896,5,116,0,0,896,130,1,0,0,0,897,898,5,109,0,0,898,899,5,111,0, - 0,899,900,5,109,0,0,900,901,5,101,0,0,901,902,5,110,0,0,902,903, - 5,116,0,0,903,132,1,0,0,0,904,905,5,101,0,0,905,906,5,114,0,0,906, - 907,5,102,0,0,907,134,1,0,0,0,908,909,5,101,0,0,909,910,5,114,0, - 0,910,911,5,102,0,0,911,912,5,105,0,0,912,913,5,110,0,0,913,914, - 5,118,0,0,914,136,1,0,0,0,915,916,5,97,0,0,916,917,5,110,0,0,917, - 918,5,121,0,0,918,138,1,0,0,0,919,920,5,97,0,0,920,921,5,108,0,0, - 921,922,5,108,0,0,922,140,1,0,0,0,923,924,5,101,0,0,924,925,5,100, - 0,0,925,926,5,103,0,0,926,927,5,101,0,0,927,142,1,0,0,0,928,929, - 5,98,0,0,929,930,5,108,0,0,930,931,5,117,0,0,931,941,5,114,0,0,932, - 933,5,103,0,0,933,934,5,97,0,0,934,935,5,117,0,0,935,936,5,115,0, - 0,936,937,5,115,0,0,937,938,5,105,0,0,938,939,5,97,0,0,939,941,5, - 110,0,0,940,928,1,0,0,0,940,932,1,0,0,0,941,144,1,0,0,0,942,943, - 5,109,0,0,943,944,5,101,0,0,944,945,5,100,0,0,945,946,5,105,0,0, - 946,947,5,97,0,0,947,948,5,110,0,0,948,146,1,0,0,0,949,950,5,109, - 0,0,950,951,5,111,0,0,951,952,5,100,0,0,952,953,5,101,0,0,953,148, - 1,0,0,0,954,955,5,99,0,0,955,956,5,117,0,0,956,957,5,109,0,0,957, - 958,5,115,0,0,958,959,5,117,0,0,959,960,5,109,0,0,960,150,1,0,0, - 0,961,962,5,99,0,0,962,963,5,117,0,0,963,964,5,109,0,0,964,965,5, - 112,0,0,965,966,5,114,0,0,966,967,5,111,0,0,967,968,5,100,0,0,968, - 152,1,0,0,0,969,970,5,116,0,0,970,971,5,111,0,0,971,972,5,112,0, - 0,972,973,5,107,0,0,973,974,5,95,0,0,974,975,5,105,0,0,975,976,5, - 110,0,0,976,990,5,100,0,0,977,978,5,116,0,0,978,979,5,111,0,0,979, - 980,5,112,0,0,980,981,5,107,0,0,981,982,5,95,0,0,982,983,5,105,0, - 0,983,984,5,110,0,0,984,985,5,100,0,0,985,986,5,105,0,0,986,987, - 5,99,0,0,987,988,5,101,0,0,988,990,5,115,0,0,989,969,1,0,0,0,989, - 977,1,0,0,0,990,154,1,0,0,0,991,992,5,98,0,0,992,993,5,111,0,0,993, - 994,5,116,0,0,994,995,5,107,0,0,995,996,5,95,0,0,996,997,5,105,0, - 0,997,998,5,110,0,0,998,1012,5,100,0,0,999,1000,5,98,0,0,1000,1001, - 5,111,0,0,1001,1002,5,116,0,0,1002,1003,5,107,0,0,1003,1004,5,95, - 0,0,1004,1005,5,105,0,0,1005,1006,5,110,0,0,1006,1007,5,100,0,0, - 1007,1008,5,105,0,0,1008,1009,5,99,0,0,1009,1010,5,101,0,0,1010, - 1012,5,115,0,0,1011,991,1,0,0,0,1011,999,1,0,0,0,1012,156,1,0,0, - 0,1013,1014,5,99,0,0,1014,1015,5,117,0,0,1015,1016,5,98,0,0,1016, - 1017,5,105,0,0,1017,1018,5,99,0,0,1018,1019,5,95,0,0,1019,1020,5, - 101,0,0,1020,1021,5,97,0,0,1021,1022,5,115,0,0,1022,1029,5,101,0, - 0,1023,1024,5,99,0,0,1024,1025,5,117,0,0,1025,1026,5,98,0,0,1026, - 1027,5,105,0,0,1027,1029,5,99,0,0,1028,1013,1,0,0,0,1028,1023,1, - 0,0,0,1029,158,1,0,0,0,1030,1031,5,101,0,0,1031,1032,5,108,0,0,1032, - 1033,5,97,0,0,1033,1034,5,115,0,0,1034,1035,5,116,0,0,1035,1036, - 5,105,0,0,1036,1037,5,99,0,0,1037,1038,5,95,0,0,1038,1039,5,101, - 0,0,1039,1040,5,97,0,0,1040,1041,5,115,0,0,1041,1050,5,101,0,0,1042, - 1043,5,101,0,0,1043,1044,5,108,0,0,1044,1045,5,97,0,0,1045,1046, - 5,115,0,0,1046,1047,5,116,0,0,1047,1048,5,105,0,0,1048,1050,5,99, - 0,0,1049,1030,1,0,0,0,1049,1042,1,0,0,0,1050,160,1,0,0,0,1051,1052, - 5,115,0,0,1052,1053,5,105,0,0,1053,1054,5,110,0,0,1054,1055,5,101, - 0,0,1055,1056,5,95,0,0,1056,1057,5,101,0,0,1057,1058,5,97,0,0,1058, - 1059,5,115,0,0,1059,1065,5,101,0,0,1060,1061,5,115,0,0,1061,1062, - 5,105,0,0,1062,1063,5,110,0,0,1063,1065,5,101,0,0,1064,1051,1,0, - 0,0,1064,1060,1,0,0,0,1065,162,1,0,0,0,1066,1067,5,115,0,0,1067, - 1068,5,109,0,0,1068,1069,5,111,0,0,1069,1070,5,111,0,0,1070,1071, - 5,116,0,0,1071,1072,5,104,0,0,1072,1073,5,101,0,0,1073,1074,5,114, - 0,0,1074,1075,5,115,0,0,1075,1076,5,116,0,0,1076,1077,5,101,0,0, - 1077,1078,5,112,0,0,1078,164,1,0,0,0,1079,1080,5,100,0,0,1080,1081, - 5,105,0,0,1081,1082,5,115,0,0,1082,1092,5,116,0,0,1083,1084,5,100, - 0,0,1084,1085,5,105,0,0,1085,1086,5,115,0,0,1086,1087,5,116,0,0, - 1087,1088,5,97,0,0,1088,1089,5,110,0,0,1089,1090,5,99,0,0,1090,1092, - 5,101,0,0,1091,1079,1,0,0,0,1091,1083,1,0,0,0,1092,166,1,0,0,0,1093, - 1094,5,114,0,0,1094,1095,5,101,0,0,1095,1096,5,109,0,0,1096,1097, - 5,97,0,0,1097,1098,5,112,0,0,1098,168,1,0,0,0,1099,1100,5,99,0,0, - 1100,1101,5,111,0,0,1101,1102,5,115,0,0,1102,1103,5,115,0,0,1103, - 1104,5,105,0,0,1104,1123,5,109,0,0,1105,1106,5,99,0,0,1106,1107, - 5,111,0,0,1107,1108,5,115,0,0,1108,1109,5,105,0,0,1109,1110,5,110, - 0,0,1110,1111,5,101,0,0,1111,1112,5,95,0,0,1112,1113,5,115,0,0,1113, - 1114,5,105,0,0,1114,1115,5,109,0,0,1115,1116,5,105,0,0,1116,1117, - 5,108,0,0,1117,1118,5,97,0,0,1118,1119,5,114,0,0,1119,1120,5,105, - 0,0,1120,1121,5,116,0,0,1121,1123,5,121,0,0,1122,1099,1,0,0,0,1122, - 1105,1,0,0,0,1123,170,1,0,0,0,1124,1125,5,99,0,0,1125,1126,5,111, - 0,0,1126,1127,5,117,0,0,1127,1128,5,110,0,0,1128,1139,5,116,0,0, - 1129,1130,5,99,0,0,1130,1131,5,110,0,0,1131,1139,5,116,0,0,1132, - 1133,5,108,0,0,1133,1134,5,101,0,0,1134,1135,5,110,0,0,1135,1136, - 5,103,0,0,1136,1137,5,116,0,0,1137,1139,5,104,0,0,1138,1124,1,0, - 0,0,1138,1129,1,0,0,0,1138,1132,1,0,0,0,1139,172,1,0,0,0,1140,1141, - 5,114,0,0,1141,1142,5,101,0,0,1142,1143,5,112,0,0,1143,1144,5,101, - 0,0,1144,1145,5,97,0,0,1145,1146,5,116,0,0,1146,174,1,0,0,0,1147, - 1148,5,102,0,0,1148,1149,5,108,0,0,1149,1150,5,97,0,0,1150,1151, - 5,116,0,0,1151,1152,5,116,0,0,1152,1153,5,101,0,0,1153,1154,5,110, - 0,0,1154,176,1,0,0,0,1155,1156,5,97,0,0,1156,1157,5,112,0,0,1157, - 1158,5,112,0,0,1158,1159,5,101,0,0,1159,1160,5,110,0,0,1160,1161, - 5,100,0,0,1161,178,1,0,0,0,1162,1163,5,103,0,0,1163,1164,5,101,0, - 0,1164,1165,5,116,0,0,1165,1166,5,95,0,0,1166,1167,5,118,0,0,1167, - 1168,5,97,0,0,1168,1169,5,108,0,0,1169,1170,5,117,0,0,1170,1171, - 5,101,0,0,1171,180,1,0,0,0,1172,1173,5,102,0,0,1173,1174,5,108,0, - 0,1174,1175,5,111,0,0,1175,1176,5,119,0,0,1176,1177,5,95,0,0,1177, - 1178,5,97,0,0,1178,1179,5,112,0,0,1179,1180,5,112,0,0,1180,1181, - 5,108,0,0,1181,1182,5,121,0,0,1182,182,1,0,0,0,1183,1184,5,98,0, - 0,1184,1185,5,97,0,0,1185,1186,5,116,0,0,1186,1187,5,99,0,0,1187, - 1188,5,104,0,0,1188,1189,5,95,0,0,1189,1190,5,115,0,0,1190,1191, - 5,104,0,0,1191,1192,5,117,0,0,1192,1193,5,102,0,0,1193,1194,5,102, - 0,0,1194,1195,5,108,0,0,1195,1210,5,101,0,0,1196,1197,5,115,0,0, - 1197,1198,5,104,0,0,1198,1199,5,117,0,0,1199,1200,5,102,0,0,1200, - 1201,5,102,0,0,1201,1202,5,108,0,0,1202,1210,5,101,0,0,1203,1204, - 5,115,0,0,1204,1205,5,101,0,0,1205,1206,5,108,0,0,1206,1207,5,101, - 0,0,1207,1208,5,99,0,0,1208,1210,5,116,0,0,1209,1183,1,0,0,0,1209, - 1196,1,0,0,0,1209,1203,1,0,0,0,1210,184,1,0,0,0,1211,1212,5,109, - 0,0,1212,1213,5,111,0,0,1213,1214,5,116,0,0,1214,1215,5,105,0,0, - 1215,1216,5,111,0,0,1216,1217,5,110,0,0,1217,1218,5,95,0,0,1218, - 1219,5,109,0,0,1219,1220,5,97,0,0,1220,1221,5,115,0,0,1221,1222, - 5,107,0,0,1222,186,1,0,0,0,1223,1224,5,102,0,0,1224,1225,5,108,0, - 0,1225,1226,5,111,0,0,1226,1227,5,119,0,0,1227,1228,5,95,0,0,1228, - 1229,5,116,0,0,1229,1230,5,111,0,0,1230,1231,5,95,0,0,1231,1232, - 5,105,0,0,1232,1233,5,109,0,0,1233,1234,5,97,0,0,1234,1235,5,103, - 0,0,1235,1236,5,101,0,0,1236,188,1,0,0,0,1237,1238,5,102,0,0,1238, - 1239,5,108,0,0,1239,1240,5,111,0,0,1240,1241,5,119,0,0,1241,1242, - 5,95,0,0,1242,1243,5,109,0,0,1243,1244,5,97,0,0,1244,1260,5,103, - 0,0,1245,1246,5,102,0,0,1246,1247,5,108,0,0,1247,1248,5,111,0,0, - 1248,1249,5,119,0,0,1249,1250,5,95,0,0,1250,1251,5,109,0,0,1251, - 1252,5,97,0,0,1252,1253,5,103,0,0,1253,1254,5,110,0,0,1254,1255, - 5,105,0,0,1255,1256,5,116,0,0,1256,1257,5,117,0,0,1257,1258,5,100, - 0,0,1258,1260,5,101,0,0,1259,1237,1,0,0,0,1259,1245,1,0,0,0,1260, - 190,1,0,0,0,1261,1262,5,102,0,0,1262,1263,5,108,0,0,1263,1264,5, - 111,0,0,1264,1265,5,119,0,0,1265,1266,5,95,0,0,1266,1267,5,97,0, - 0,1267,1268,5,110,0,0,1268,1280,5,103,0,0,1269,1270,5,102,0,0,1270, - 1271,5,108,0,0,1271,1272,5,111,0,0,1272,1273,5,119,0,0,1273,1274, - 5,95,0,0,1274,1275,5,97,0,0,1275,1276,5,110,0,0,1276,1277,5,103, - 0,0,1277,1278,5,108,0,0,1278,1280,5,101,0,0,1279,1261,1,0,0,0,1279, - 1269,1,0,0,0,1280,192,1,0,0,0,1281,1282,5,119,0,0,1282,1283,5,104, - 0,0,1283,1284,5,101,0,0,1284,1285,5,114,0,0,1285,1286,5,101,0,0, - 1286,194,1,0,0,0,1287,1288,5,104,0,0,1288,1289,5,105,0,0,1289,1290, - 5,115,0,0,1290,1291,5,116,0,0,1291,1292,5,111,0,0,1292,1293,5,103, - 0,0,1293,1294,5,114,0,0,1294,1295,5,97,0,0,1295,1301,5,109,0,0,1296, - 1297,5,104,0,0,1297,1298,5,105,0,0,1298,1299,5,115,0,0,1299,1301, - 5,116,0,0,1300,1287,1,0,0,0,1300,1296,1,0,0,0,1301,196,1,0,0,0,1302, - 1303,5,111,0,0,1303,1304,5,118,0,0,1304,1305,5,101,0,0,1305,1306, - 5,114,0,0,1306,1307,5,108,0,0,1307,1308,5,97,0,0,1308,1309,5,121, - 0,0,1309,198,1,0,0,0,1310,1311,5,112,0,0,1311,1312,5,97,0,0,1312, - 1313,5,100,0,0,1313,200,1,0,0,0,1314,1315,5,99,0,0,1315,1316,5,114, - 0,0,1316,1317,5,111,0,0,1317,1318,5,115,0,0,1318,1319,5,115,0,0, - 1319,202,1,0,0,0,1320,1321,5,109,0,0,1321,1322,5,97,0,0,1322,1323, - 5,116,0,0,1323,1324,5,109,0,0,1324,1325,5,117,0,0,1325,1326,5,108, - 0,0,1326,204,1,0,0,0,1327,1328,5,114,0,0,1328,1329,5,105,0,0,1329, - 1330,5,102,0,0,1330,1331,5,101,0,0,1331,206,1,0,0,0,1332,1333,5, - 98,0,0,1333,1334,5,110,0,0,1334,1335,5,111,0,0,1335,1348,5,116,0, - 0,1336,1337,5,98,0,0,1337,1338,5,105,0,0,1338,1339,5,116,0,0,1339, - 1340,5,119,0,0,1340,1341,5,105,0,0,1341,1342,5,115,0,0,1342,1343, - 5,101,0,0,1343,1344,5,95,0,0,1344,1345,5,110,0,0,1345,1346,5,111, - 0,0,1346,1348,5,116,0,0,1347,1332,1,0,0,0,1347,1336,1,0,0,0,1348, - 208,1,0,0,0,1349,1350,5,98,0,0,1350,1351,5,105,0,0,1351,1352,5,116, - 0,0,1352,1353,5,99,0,0,1353,1354,5,111,0,0,1354,1355,5,117,0,0,1355, - 1356,5,110,0,0,1356,1372,5,116,0,0,1357,1358,5,112,0,0,1358,1359, - 5,111,0,0,1359,1360,5,112,0,0,1360,1361,5,99,0,0,1361,1362,5,111, - 0,0,1362,1363,5,117,0,0,1363,1364,5,110,0,0,1364,1372,5,116,0,0, - 1365,1366,5,112,0,0,1366,1367,5,111,0,0,1367,1368,5,112,0,0,1368, - 1369,5,99,0,0,1369,1370,5,110,0,0,1370,1372,5,116,0,0,1371,1349, - 1,0,0,0,1371,1357,1,0,0,0,1371,1365,1,0,0,0,1372,210,1,0,0,0,1373, - 1374,5,115,0,0,1374,1375,5,104,0,0,1375,1376,5,97,0,0,1376,1377, - 5,112,0,0,1377,1378,5,101,0,0,1378,212,1,0,0,0,1379,1380,5,98,0, - 0,1380,1381,5,97,0,0,1381,1382,5,110,0,0,1382,1395,5,100,0,0,1383, - 1384,5,98,0,0,1384,1385,5,105,0,0,1385,1386,5,116,0,0,1386,1387, - 5,119,0,0,1387,1388,5,105,0,0,1388,1389,5,115,0,0,1389,1390,5,101, - 0,0,1390,1391,5,95,0,0,1391,1392,5,97,0,0,1392,1393,5,110,0,0,1393, - 1395,5,100,0,0,1394,1379,1,0,0,0,1394,1383,1,0,0,0,1395,214,1,0, - 0,0,1396,1397,5,98,0,0,1397,1398,5,120,0,0,1398,1399,5,111,0,0,1399, - 1412,5,114,0,0,1400,1401,5,98,0,0,1401,1402,5,105,0,0,1402,1403, - 5,116,0,0,1403,1404,5,119,0,0,1404,1405,5,105,0,0,1405,1406,5,115, - 0,0,1406,1407,5,101,0,0,1407,1408,5,95,0,0,1408,1409,5,120,0,0,1409, - 1410,5,111,0,0,1410,1412,5,114,0,0,1411,1396,1,0,0,0,1411,1400,1, - 0,0,0,1412,216,1,0,0,0,1413,1414,5,98,0,0,1414,1415,5,111,0,0,1415, - 1427,5,114,0,0,1416,1417,5,98,0,0,1417,1418,5,105,0,0,1418,1419, - 5,116,0,0,1419,1420,5,119,0,0,1420,1421,5,105,0,0,1421,1422,5,115, - 0,0,1422,1423,5,101,0,0,1423,1424,5,95,0,0,1424,1425,5,111,0,0,1425, - 1427,5,114,0,0,1426,1413,1,0,0,0,1426,1416,1,0,0,0,1427,218,1,0, - 0,0,1428,1429,5,116,0,0,1429,1430,5,101,0,0,1430,1431,5,110,0,0, - 1431,1432,5,115,0,0,1432,1433,5,111,0,0,1433,1434,5,114,0,0,1434, - 220,1,0,0,0,1435,1436,5,115,0,0,1436,1437,5,116,0,0,1437,1438,5, - 97,0,0,1438,1439,5,99,0,0,1439,1440,5,107,0,0,1440,1441,5,95,0,0, - 1441,1442,5,112,0,0,1442,1443,5,117,0,0,1443,1444,5,115,0,0,1444, - 1445,5,104,0,0,1445,222,1,0,0,0,1446,1447,5,115,0,0,1447,1448,5, - 116,0,0,1448,1449,5,97,0,0,1449,1450,5,99,0,0,1450,1451,5,107,0, - 0,1451,1452,5,95,0,0,1452,1453,5,112,0,0,1453,1454,5,111,0,0,1454, - 1455,5,112,0,0,1455,224,1,0,0,0,1456,1457,5,115,0,0,1457,1458,5, - 116,0,0,1458,1459,5,97,0,0,1459,1460,5,99,0,0,1460,1461,5,107,0, - 0,1461,1462,5,95,0,0,1462,1463,5,99,0,0,1463,1464,5,108,0,0,1464, - 1465,5,101,0,0,1465,1466,5,97,0,0,1466,1467,5,114,0,0,1467,226,1, - 0,0,0,1468,1469,5,115,0,0,1469,1470,5,116,0,0,1470,1471,5,97,0,0, - 1471,1472,5,99,0,0,1472,1473,5,107,0,0,1473,1474,5,95,0,0,1474,1475, - 5,104,0,0,1475,1476,5,97,0,0,1476,1477,5,115,0,0,1477,228,1,0,0, - 0,1478,1479,5,115,0,0,1479,1480,5,116,0,0,1480,1481,5,97,0,0,1481, - 1482,5,99,0,0,1482,1483,5,107,0,0,1483,1484,5,95,0,0,1484,1485,5, - 103,0,0,1485,1486,5,101,0,0,1486,1487,5,116,0,0,1487,230,1,0,0,0, - 1488,1489,5,99,0,0,1489,1490,5,97,0,0,1490,1509,5,116,0,0,1491,1492, - 5,99,0,0,1492,1493,5,111,0,0,1493,1494,5,110,0,0,1494,1495,5,99, - 0,0,1495,1496,5,97,0,0,1496,1509,5,116,0,0,1497,1498,5,99,0,0,1498, - 1499,5,111,0,0,1499,1500,5,110,0,0,1500,1501,5,99,0,0,1501,1502, - 5,97,0,0,1502,1503,5,116,0,0,1503,1504,5,101,0,0,1504,1505,5,110, - 0,0,1505,1506,5,97,0,0,1506,1507,5,116,0,0,1507,1509,5,101,0,0,1508, - 1488,1,0,0,0,1508,1491,1,0,0,0,1508,1497,1,0,0,0,1509,232,1,0,0, - 0,1510,1511,5,105,0,0,1511,1512,5,110,0,0,1512,1513,5,116,0,0,1513, - 234,1,0,0,0,1514,1515,5,102,0,0,1515,1516,5,108,0,0,1516,1517,5, - 111,0,0,1517,1518,5,97,0,0,1518,1519,5,116,0,0,1519,236,1,0,0,0, - 1520,1521,5,117,0,0,1521,1522,5,112,0,0,1522,1523,5,112,0,0,1523, - 1524,5,101,0,0,1524,1525,5,114,0,0,1525,238,1,0,0,0,1526,1527,5, - 108,0,0,1527,1528,5,111,0,0,1528,1529,5,119,0,0,1529,1530,5,101, - 0,0,1530,1531,5,114,0,0,1531,240,1,0,0,0,1532,1533,5,116,0,0,1533, - 1534,5,114,0,0,1534,1535,5,105,0,0,1535,1536,5,109,0,0,1536,242, - 1,0,0,0,1537,1538,5,115,0,0,1538,1539,5,112,0,0,1539,1540,5,108, - 0,0,1540,1541,5,105,0,0,1541,1542,5,116,0,0,1542,244,1,0,0,0,1543, - 1544,5,106,0,0,1544,1545,5,111,0,0,1545,1546,5,105,0,0,1546,1547, - 5,110,0,0,1547,246,1,0,0,0,1548,1549,5,115,0,0,1549,1550,5,117,0, - 0,1550,1551,5,98,0,0,1551,1552,5,115,0,0,1552,1553,5,116,0,0,1553, - 1554,5,114,0,0,1554,1555,5,105,0,0,1555,1556,5,110,0,0,1556,1564, - 5,103,0,0,1557,1558,5,115,0,0,1558,1559,5,117,0,0,1559,1560,5,98, - 0,0,1560,1561,5,115,0,0,1561,1562,5,116,0,0,1562,1564,5,114,0,0, - 1563,1548,1,0,0,0,1563,1557,1,0,0,0,1564,248,1,0,0,0,1565,1566,5, - 102,0,0,1566,1567,5,105,0,0,1567,1568,5,110,0,0,1568,1569,5,100, - 0,0,1569,250,1,0,0,0,1570,1571,5,114,0,0,1571,1572,5,101,0,0,1572, - 1573,5,112,0,0,1573,1574,5,108,0,0,1574,1575,5,97,0,0,1575,1576, - 5,99,0,0,1576,1577,5,101,0,0,1577,252,1,0,0,0,1578,1579,5,100,0, - 0,1579,1580,5,105,0,0,1580,1581,5,108,0,0,1581,1582,5,97,0,0,1582, - 1583,5,116,0,0,1583,1584,5,101,0,0,1584,254,1,0,0,0,1585,1586,5, - 101,0,0,1586,1587,5,114,0,0,1587,1588,5,111,0,0,1588,1589,5,100, - 0,0,1589,1590,5,101,0,0,1590,256,1,0,0,0,1591,1592,5,109,0,0,1592, - 1593,5,111,0,0,1593,1594,5,114,0,0,1594,1595,5,112,0,0,1595,1596, - 5,104,0,0,1596,1597,5,95,0,0,1597,1598,5,111,0,0,1598,1599,5,112, - 0,0,1599,1600,5,101,0,0,1600,1601,5,110,0,0,1601,258,1,0,0,0,1602, - 1603,5,109,0,0,1603,1604,5,111,0,0,1604,1605,5,114,0,0,1605,1606, - 5,112,0,0,1606,1607,5,104,0,0,1607,1608,5,95,0,0,1608,1609,5,99, - 0,0,1609,1610,5,108,0,0,1610,1611,5,111,0,0,1611,1612,5,115,0,0, - 1612,1613,5,101,0,0,1613,260,1,0,0,0,1614,1615,5,114,0,0,1615,1616, - 5,103,0,0,1616,1617,5,98,0,0,1617,1618,5,95,0,0,1618,1619,5,116, - 0,0,1619,1620,5,111,0,0,1620,1621,5,95,0,0,1621,1622,5,111,0,0,1622, - 1623,5,107,0,0,1623,1624,5,108,0,0,1624,1625,5,97,0,0,1625,1626, - 5,98,0,0,1626,262,1,0,0,0,1627,1628,5,114,0,0,1628,1629,5,103,0, - 0,1629,1630,5,98,0,0,1630,1631,5,95,0,0,1631,1632,5,116,0,0,1632, - 1633,5,111,0,0,1633,1634,5,95,0,0,1634,1635,5,99,0,0,1635,1636,5, - 105,0,0,1636,1637,5,101,0,0,1637,1638,5,108,0,0,1638,1639,5,97,0, - 0,1639,1640,5,98,0,0,1640,264,1,0,0,0,1641,1642,5,111,0,0,1642,1643, - 5,107,0,0,1643,1644,5,108,0,0,1644,1645,5,97,0,0,1645,1646,5,98, - 0,0,1646,1647,5,95,0,0,1647,1648,5,116,0,0,1648,1649,5,111,0,0,1649, - 1650,5,95,0,0,1650,1651,5,114,0,0,1651,1652,5,103,0,0,1652,1653, - 5,98,0,0,1653,266,1,0,0,0,1654,1655,5,99,0,0,1655,1656,5,105,0,0, - 1656,1657,5,101,0,0,1657,1658,5,108,0,0,1658,1659,5,97,0,0,1659, - 1660,5,98,0,0,1660,1661,5,95,0,0,1661,1662,5,116,0,0,1662,1663,5, - 111,0,0,1663,1664,5,95,0,0,1664,1665,5,114,0,0,1665,1666,5,103,0, - 0,1666,1667,5,98,0,0,1667,268,1,0,0,0,1668,1669,5,114,0,0,1669,1670, - 5,103,0,0,1670,1671,5,98,0,0,1671,1672,5,95,0,0,1672,1673,5,116, - 0,0,1673,1674,5,111,0,0,1674,1675,5,95,0,0,1675,1676,5,104,0,0,1676, - 1677,5,115,0,0,1677,1678,5,118,0,0,1678,270,1,0,0,0,1679,1680,5, - 104,0,0,1680,1681,5,115,0,0,1681,1682,5,118,0,0,1682,1683,5,95,0, - 0,1683,1684,5,116,0,0,1684,1685,5,111,0,0,1685,1686,5,95,0,0,1686, - 1687,5,114,0,0,1687,1688,5,103,0,0,1688,1689,5,98,0,0,1689,272,1, - 0,0,0,1690,1691,5,105,0,0,1691,1692,5,110,0,0,1692,1693,5,116,0, - 0,1693,1694,5,95,0,0,1694,1695,5,116,0,0,1695,1696,5,111,0,0,1696, - 1697,5,95,0,0,1697,1698,5,114,0,0,1698,1699,5,103,0,0,1699,1700, - 5,98,0,0,1700,274,1,0,0,0,1701,1702,5,114,0,0,1702,1703,5,103,0, - 0,1703,1704,5,98,0,0,1704,1705,5,95,0,0,1705,1706,5,116,0,0,1706, - 1707,5,111,0,0,1707,1708,5,95,0,0,1708,1709,5,105,0,0,1709,1710, - 5,110,0,0,1710,1711,5,116,0,0,1711,276,1,0,0,0,1712,1713,5,105,0, - 0,1713,1714,5,110,0,0,1714,1715,5,116,0,0,1715,1716,5,101,0,0,1716, - 1717,5,114,0,0,1717,1718,5,112,0,0,1718,1719,5,111,0,0,1719,1720, - 5,108,0,0,1720,1721,5,97,0,0,1721,1722,5,116,0,0,1722,1723,5,101, - 0,0,1723,1724,5,95,0,0,1724,1725,5,108,0,0,1725,1726,5,105,0,0,1726, - 1727,5,110,0,0,1727,1728,5,101,0,0,1728,1729,5,97,0,0,1729,1730, - 5,114,0,0,1730,278,1,0,0,0,1731,1732,5,105,0,0,1732,1733,5,110,0, - 0,1733,1734,5,116,0,0,1734,1735,5,101,0,0,1735,1736,5,114,0,0,1736, - 1737,5,112,0,0,1737,1738,5,111,0,0,1738,1739,5,108,0,0,1739,1740, - 5,97,0,0,1740,1741,5,116,0,0,1741,1742,5,101,0,0,1742,1743,5,95, - 0,0,1743,1744,5,97,0,0,1744,1745,5,114,0,0,1745,1746,5,101,0,0,1746, - 1747,5,97,0,0,1747,280,1,0,0,0,1748,1749,5,105,0,0,1749,1750,5,110, - 0,0,1750,1751,5,116,0,0,1751,1752,5,101,0,0,1752,1753,5,114,0,0, - 1753,1754,5,112,0,0,1754,1755,5,111,0,0,1755,1756,5,108,0,0,1756, - 1757,5,97,0,0,1757,1758,5,116,0,0,1758,1759,5,101,0,0,1759,1760, - 5,95,0,0,1760,1761,5,110,0,0,1761,1762,5,101,0,0,1762,1763,5,97, - 0,0,1763,1764,5,114,0,0,1764,1765,5,101,0,0,1765,1766,5,115,0,0, - 1766,1793,5,116,0,0,1767,1768,5,105,0,0,1768,1769,5,110,0,0,1769, - 1770,5,116,0,0,1770,1771,5,101,0,0,1771,1772,5,114,0,0,1772,1773, - 5,112,0,0,1773,1774,5,111,0,0,1774,1775,5,108,0,0,1775,1776,5,97, - 0,0,1776,1777,5,116,0,0,1777,1778,5,101,0,0,1778,1779,5,95,0,0,1779, - 1780,5,110,0,0,1780,1781,5,101,0,0,1781,1782,5,97,0,0,1782,1783, - 5,114,0,0,1783,1784,5,101,0,0,1784,1785,5,115,0,0,1785,1786,5,116, - 0,0,1786,1787,5,95,0,0,1787,1788,5,101,0,0,1788,1789,5,120,0,0,1789, - 1790,5,97,0,0,1790,1791,5,99,0,0,1791,1793,5,116,0,0,1792,1748,1, - 0,0,0,1792,1767,1,0,0,0,1793,282,1,0,0,0,1794,1795,5,116,0,0,1795, - 1796,5,101,0,0,1796,1797,5,120,0,0,1797,1798,5,116,0,0,1798,1799, - 5,95,0,0,1799,1800,5,105,0,0,1800,1801,5,109,0,0,1801,1802,5,97, - 0,0,1802,1803,5,103,0,0,1803,1804,5,101,0,0,1804,284,1,0,0,0,1805, - 1806,5,97,0,0,1806,1807,5,115,0,0,1807,1808,5,95,0,0,1808,1809,5, - 110,0,0,1809,1810,5,101,0,0,1810,1811,5,115,0,0,1811,1812,5,116, - 0,0,1812,1813,5,101,0,0,1813,1814,5,100,0,0,1814,1815,5,95,0,0,1815, - 1816,5,116,0,0,1816,1817,5,101,0,0,1817,1818,5,110,0,0,1818,1819, - 5,115,0,0,1819,1820,5,111,0,0,1820,1821,5,114,0,0,1821,286,1,0,0, - 0,1822,1823,5,115,0,0,1823,1824,5,118,0,0,1824,1854,5,100,0,0,1825, - 1826,5,115,0,0,1826,1827,5,105,0,0,1827,1828,5,110,0,0,1828,1829, - 5,103,0,0,1829,1830,5,117,0,0,1830,1831,5,108,0,0,1831,1832,5,97, - 0,0,1832,1833,5,114,0,0,1833,1834,5,95,0,0,1834,1835,5,118,0,0,1835, - 1836,5,97,0,0,1836,1837,5,108,0,0,1837,1838,5,117,0,0,1838,1839, - 5,101,0,0,1839,1840,5,95,0,0,1840,1841,5,100,0,0,1841,1842,5,101, - 0,0,1842,1843,5,99,0,0,1843,1844,5,111,0,0,1844,1845,5,109,0,0,1845, - 1846,5,112,0,0,1846,1847,5,111,0,0,1847,1848,5,115,0,0,1848,1849, - 5,105,0,0,1849,1850,5,116,0,0,1850,1851,5,105,0,0,1851,1852,5,111, - 0,0,1852,1854,5,110,0,0,1853,1822,1,0,0,0,1853,1825,1,0,0,0,1854, - 288,1,0,0,0,1855,1856,5,100,0,0,1856,1857,5,105,0,0,1857,1858,5, - 97,0,0,1858,1859,5,103,0,0,1859,1860,5,111,0,0,1860,1861,5,110,0, - 0,1861,1862,5,97,0,0,1862,1863,5,108,0,0,1863,1864,5,95,0,0,1864, - 1865,5,109,0,0,1865,1866,5,97,0,0,1866,1867,5,116,0,0,1867,1868, - 5,114,0,0,1868,1869,5,105,0,0,1869,1875,5,120,0,0,1870,1871,5,100, - 0,0,1871,1872,5,105,0,0,1872,1873,5,97,0,0,1873,1875,5,103,0,0,1874, - 1855,1,0,0,0,1874,1870,1,0,0,0,1875,290,1,0,0,0,1876,1877,5,105, - 0,0,1877,1878,5,102,0,0,1878,292,1,0,0,0,1879,1880,5,101,0,0,1880, - 1881,5,108,0,0,1881,1882,5,115,0,0,1882,1883,5,101,0,0,1883,294, - 1,0,0,0,1884,1885,5,119,0,0,1885,1886,5,104,0,0,1886,1887,5,105, - 0,0,1887,1888,5,108,0,0,1888,1889,5,101,0,0,1889,296,1,0,0,0,1890, - 1891,5,102,0,0,1891,1892,5,111,0,0,1892,1893,5,114,0,0,1893,298, - 1,0,0,0,1894,1895,5,105,0,0,1895,1896,5,110,0,0,1896,300,1,0,0,0, - 1897,1898,5,98,0,0,1898,1899,5,114,0,0,1899,1900,5,101,0,0,1900, - 1901,5,97,0,0,1901,1902,5,107,0,0,1902,302,1,0,0,0,1903,1904,5,99, - 0,0,1904,1905,5,111,0,0,1905,1906,5,110,0,0,1906,1907,5,116,0,0, - 1907,1908,5,105,0,0,1908,1909,5,110,0,0,1909,1910,5,117,0,0,1910, - 1911,5,101,0,0,1911,304,1,0,0,0,1912,1913,5,114,0,0,1913,1914,5, - 101,0,0,1914,1915,5,116,0,0,1915,1916,5,117,0,0,1916,1917,5,114, - 0,0,1917,1918,5,110,0,0,1918,306,1,0,0,0,1919,1920,5,116,0,0,1920, - 1921,5,105,0,0,1921,1922,5,109,0,0,1922,1923,5,101,0,0,1923,1924, - 5,115,0,0,1924,1925,5,116,0,0,1925,1926,5,97,0,0,1926,1927,5,109, - 0,0,1927,1932,5,112,0,0,1928,1929,5,110,0,0,1929,1930,5,111,0,0, - 1930,1932,5,119,0,0,1931,1919,1,0,0,0,1931,1928,1,0,0,0,1932,308, - 1,0,0,0,1933,1934,5,115,0,0,1934,1935,5,111,0,0,1935,1936,5,114, - 0,0,1936,1937,5,116,0,0,1937,310,1,0,0,0,1938,1939,5,97,0,0,1939, - 1940,5,114,0,0,1940,1941,5,103,0,0,1941,1942,5,115,0,0,1942,1943, - 5,111,0,0,1943,1944,5,114,0,0,1944,1945,5,116,0,0,1945,312,1,0,0, - 0,1946,1947,5,97,0,0,1947,1948,5,114,0,0,1948,1949,5,103,0,0,1949, - 1950,5,109,0,0,1950,1951,5,105,0,0,1951,1952,5,110,0,0,1952,314, - 1,0,0,0,1953,1954,5,97,0,0,1954,1955,5,114,0,0,1955,1956,5,103,0, - 0,1956,1957,5,109,0,0,1957,1958,5,97,0,0,1958,1959,5,120,0,0,1959, - 316,1,0,0,0,1960,1961,5,115,0,0,1961,1962,5,111,0,0,1962,1963,5, - 102,0,0,1963,1964,5,116,0,0,1964,1965,5,109,0,0,1965,1966,5,97,0, - 0,1966,1967,5,120,0,0,1967,318,1,0,0,0,1968,1969,5,115,0,0,1969, - 1970,5,111,0,0,1970,1971,5,102,0,0,1971,1972,5,116,0,0,1972,1973, - 5,109,0,0,1973,1974,5,105,0,0,1974,1975,5,110,0,0,1975,320,1,0,0, - 0,1976,1977,5,117,0,0,1977,1978,5,110,0,0,1978,1979,5,105,0,0,1979, - 1980,5,113,0,0,1980,1981,5,117,0,0,1981,1982,5,101,0,0,1982,322, - 1,0,0,0,1983,1984,5,102,0,0,1984,1985,5,108,0,0,1985,1986,5,105, - 0,0,1986,1987,5,112,0,0,1987,324,1,0,0,0,1988,1989,5,115,0,0,1989, - 1990,5,116,0,0,1990,1991,5,97,0,0,1991,1992,5,114,0,0,1992,1993, - 5,116,0,0,1993,1994,5,115,0,0,1994,1995,5,119,0,0,1995,1996,5,105, - 0,0,1996,1997,5,116,0,0,1997,1998,5,104,0,0,1998,326,1,0,0,0,1999, - 2000,5,101,0,0,2000,2001,5,110,0,0,2001,2002,5,100,0,0,2002,2003, - 5,115,0,0,2003,2004,5,119,0,0,2004,2005,5,105,0,0,2005,2006,5,116, - 0,0,2006,2007,5,104,0,0,2007,328,1,0,0,0,2008,2009,5,115,0,0,2009, - 2010,5,113,0,0,2010,2011,5,117,0,0,2011,2012,5,101,0,0,2012,2013, - 5,101,0,0,2013,2014,5,122,0,0,2014,2015,5,101,0,0,2015,330,1,0,0, - 0,2016,2017,5,117,0,0,2017,2018,5,110,0,0,2018,2019,5,115,0,0,2019, - 2020,5,113,0,0,2020,2021,5,117,0,0,2021,2022,5,101,0,0,2022,2023, - 5,101,0,0,2023,2024,5,122,0,0,2024,2025,5,101,0,0,2025,332,1,0,0, - 0,2026,2027,5,114,0,0,2027,2028,5,111,0,0,2028,2029,5,108,0,0,2029, - 2030,5,108,0,0,2030,334,1,0,0,0,2031,2032,5,99,0,0,2032,2033,5,111, - 0,0,2033,2034,5,118,0,0,2034,336,1,0,0,0,2035,2036,5,99,0,0,2036, - 2037,5,111,0,0,2037,2038,5,114,0,0,2038,2051,5,114,0,0,2039,2040, - 5,99,0,0,2040,2041,5,111,0,0,2041,2042,5,114,0,0,2042,2043,5,114, - 0,0,2043,2044,5,101,0,0,2044,2045,5,108,0,0,2045,2046,5,97,0,0,2046, - 2047,5,116,0,0,2047,2048,5,105,0,0,2048,2049,5,111,0,0,2049,2051, - 5,110,0,0,2050,2035,1,0,0,0,2050,2039,1,0,0,0,2051,338,1,0,0,0,2052, - 2053,5,101,0,0,2053,2054,5,110,0,0,2054,2055,5,116,0,0,2055,2056, - 5,114,0,0,2056,2057,5,111,0,0,2057,2058,5,112,0,0,2058,2059,5,121, - 0,0,2059,340,1,0,0,0,2060,2061,5,99,0,0,2061,2062,5,114,0,0,2062, - 2063,5,111,0,0,2063,2064,5,112,0,0,2064,342,1,0,0,0,2065,2066,5, - 110,0,0,2066,2067,5,111,0,0,2067,2068,5,110,0,0,2068,2082,5,101, - 0,0,2069,2070,5,78,0,0,2070,2071,5,111,0,0,2071,2072,5,110,0,0,2072, - 2082,5,101,0,0,2073,2074,5,110,0,0,2074,2075,5,117,0,0,2075,2076, - 5,108,0,0,2076,2082,5,108,0,0,2077,2078,5,78,0,0,2078,2079,5,85, - 0,0,2079,2080,5,76,0,0,2080,2082,5,76,0,0,2081,2065,1,0,0,0,2081, - 2069,1,0,0,0,2081,2073,1,0,0,0,2081,2077,1,0,0,0,2082,344,1,0,0, - 0,2083,2084,5,110,0,0,2084,2085,5,111,0,0,2085,2086,5,105,0,0,2086, - 2087,5,115,0,0,2087,2107,5,101,0,0,2088,2089,5,114,0,0,2089,2090, - 5,97,0,0,2090,2091,5,110,0,0,2091,2092,5,100,0,0,2092,2107,5,110, - 0,0,2093,2094,5,114,0,0,2094,2095,5,97,0,0,2095,2096,5,110,0,0,2096, - 2097,5,100,0,0,2097,2098,5,111,0,0,2098,2099,5,109,0,0,2099,2100, - 5,95,0,0,2100,2101,5,110,0,0,2101,2102,5,111,0,0,2102,2103,5,114, - 0,0,2103,2104,5,109,0,0,2104,2105,5,97,0,0,2105,2107,5,108,0,0,2106, - 2083,1,0,0,0,2106,2088,1,0,0,0,2106,2093,1,0,0,0,2107,346,1,0,0, - 0,2108,2109,5,114,0,0,2109,2110,5,97,0,0,2110,2111,5,110,0,0,2111, - 2132,5,100,0,0,2112,2113,5,114,0,0,2113,2114,5,97,0,0,2114,2115, - 5,110,0,0,2115,2116,5,100,0,0,2116,2132,5,117,0,0,2117,2118,5,114, - 0,0,2118,2119,5,97,0,0,2119,2120,5,110,0,0,2120,2121,5,100,0,0,2121, - 2122,5,111,0,0,2122,2123,5,109,0,0,2123,2124,5,95,0,0,2124,2125, - 5,117,0,0,2125,2126,5,110,0,0,2126,2127,5,105,0,0,2127,2128,5,102, - 0,0,2128,2129,5,111,0,0,2129,2130,5,114,0,0,2130,2132,5,109,0,0, - 2131,2108,1,0,0,0,2131,2112,1,0,0,0,2131,2117,1,0,0,0,2132,348,1, - 0,0,0,2133,2134,5,114,0,0,2134,2135,5,97,0,0,2135,2136,5,110,0,0, - 2136,2137,5,100,0,0,2137,2152,5,99,0,0,2138,2139,5,114,0,0,2139, - 2140,5,97,0,0,2140,2141,5,110,0,0,2141,2142,5,100,0,0,2142,2143, - 5,111,0,0,2143,2144,5,109,0,0,2144,2145,5,95,0,0,2145,2146,5,99, - 0,0,2146,2147,5,97,0,0,2147,2148,5,117,0,0,2148,2149,5,99,0,0,2149, - 2150,5,104,0,0,2150,2152,5,121,0,0,2151,2133,1,0,0,0,2151,2138,1, - 0,0,0,2152,350,1,0,0,0,2153,2154,5,114,0,0,2154,2155,5,97,0,0,2155, - 2156,5,110,0,0,2156,2157,5,100,0,0,2157,2177,5,101,0,0,2158,2159, - 5,114,0,0,2159,2160,5,97,0,0,2160,2161,5,110,0,0,2161,2162,5,100, - 0,0,2162,2163,5,111,0,0,2163,2164,5,109,0,0,2164,2165,5,95,0,0,2165, - 2166,5,101,0,0,2166,2167,5,120,0,0,2167,2168,5,112,0,0,2168,2169, - 5,111,0,0,2169,2170,5,110,0,0,2170,2171,5,101,0,0,2171,2172,5,110, - 0,0,2172,2173,5,116,0,0,2173,2174,5,105,0,0,2174,2175,5,97,0,0,2175, - 2177,5,108,0,0,2176,2153,1,0,0,0,2176,2158,1,0,0,0,2177,352,1,0, - 0,0,2178,2179,5,114,0,0,2179,2180,5,97,0,0,2180,2181,5,110,0,0,2181, - 2182,5,100,0,0,2182,2183,5,108,0,0,2183,2202,5,110,0,0,2184,2185, - 5,114,0,0,2185,2186,5,97,0,0,2186,2187,5,110,0,0,2187,2188,5,100, - 0,0,2188,2189,5,111,0,0,2189,2190,5,109,0,0,2190,2191,5,95,0,0,2191, - 2192,5,108,0,0,2192,2193,5,111,0,0,2193,2194,5,103,0,0,2194,2195, - 5,95,0,0,2195,2196,5,110,0,0,2196,2197,5,111,0,0,2197,2198,5,114, - 0,0,2198,2199,5,109,0,0,2199,2200,5,97,0,0,2200,2202,5,108,0,0,2201, - 2178,1,0,0,0,2201,2184,1,0,0,0,2202,354,1,0,0,0,2203,2204,5,114, - 0,0,2204,2205,5,97,0,0,2205,2206,5,110,0,0,2206,2207,5,100,0,0,2207, - 2225,5,98,0,0,2208,2209,5,114,0,0,2209,2210,5,97,0,0,2210,2211,5, - 110,0,0,2211,2212,5,100,0,0,2212,2213,5,111,0,0,2213,2214,5,109, - 0,0,2214,2215,5,95,0,0,2215,2216,5,98,0,0,2216,2217,5,101,0,0,2217, - 2218,5,114,0,0,2218,2219,5,110,0,0,2219,2220,5,111,0,0,2220,2221, - 5,117,0,0,2221,2222,5,108,0,0,2222,2223,5,108,0,0,2223,2225,5,105, - 0,0,2224,2203,1,0,0,0,2224,2208,1,0,0,0,2225,356,1,0,0,0,2226,2227, - 5,114,0,0,2227,2228,5,97,0,0,2228,2229,5,110,0,0,2229,2230,5,100, - 0,0,2230,2246,5,112,0,0,2231,2232,5,114,0,0,2232,2233,5,97,0,0,2233, - 2234,5,110,0,0,2234,2235,5,100,0,0,2235,2236,5,111,0,0,2236,2237, - 5,109,0,0,2237,2238,5,95,0,0,2238,2239,5,112,0,0,2239,2240,5,111, - 0,0,2240,2241,5,105,0,0,2241,2242,5,115,0,0,2242,2243,5,115,0,0, - 2243,2244,5,111,0,0,2244,2246,5,110,0,0,2245,2226,1,0,0,0,2245,2231, + 224,449,225,451,226,453,227,455,228,457,229,459,230,461,231,1,0, + 9,1,0,48,57,2,0,69,69,101,101,2,0,43,43,45,45,4,0,10,10,13,13,34, + 34,92,92,4,0,10,10,13,13,39,39,92,92,3,0,65,90,95,95,97,122,4,0, + 48,57,65,90,95,95,97,122,2,0,10,10,13,13,3,0,9,10,13,13,32,32,2827, + 0,1,1,0,0,0,0,3,1,0,0,0,0,5,1,0,0,0,0,7,1,0,0,0,0,9,1,0,0,0,0,11, + 1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19,1,0,0,0,0,21, + 1,0,0,0,0,23,1,0,0,0,0,25,1,0,0,0,0,27,1,0,0,0,0,29,1,0,0,0,0,31, + 1,0,0,0,0,33,1,0,0,0,0,35,1,0,0,0,0,37,1,0,0,0,0,39,1,0,0,0,0,41, + 1,0,0,0,0,43,1,0,0,0,0,45,1,0,0,0,0,47,1,0,0,0,0,49,1,0,0,0,0,51, + 1,0,0,0,0,53,1,0,0,0,0,55,1,0,0,0,0,57,1,0,0,0,0,59,1,0,0,0,0,61, + 1,0,0,0,0,63,1,0,0,0,0,65,1,0,0,0,0,67,1,0,0,0,0,69,1,0,0,0,0,71, + 1,0,0,0,0,73,1,0,0,0,0,75,1,0,0,0,0,77,1,0,0,0,0,79,1,0,0,0,0,81, + 1,0,0,0,0,83,1,0,0,0,0,85,1,0,0,0,0,87,1,0,0,0,0,89,1,0,0,0,0,91, + 1,0,0,0,0,93,1,0,0,0,0,95,1,0,0,0,0,97,1,0,0,0,0,99,1,0,0,0,0,101, + 1,0,0,0,0,103,1,0,0,0,0,105,1,0,0,0,0,107,1,0,0,0,0,109,1,0,0,0, + 0,111,1,0,0,0,0,113,1,0,0,0,0,115,1,0,0,0,0,117,1,0,0,0,0,119,1, + 0,0,0,0,121,1,0,0,0,0,123,1,0,0,0,0,125,1,0,0,0,0,127,1,0,0,0,0, + 129,1,0,0,0,0,131,1,0,0,0,0,133,1,0,0,0,0,135,1,0,0,0,0,137,1,0, + 0,0,0,139,1,0,0,0,0,141,1,0,0,0,0,143,1,0,0,0,0,145,1,0,0,0,0,147, + 1,0,0,0,0,149,1,0,0,0,0,151,1,0,0,0,0,153,1,0,0,0,0,155,1,0,0,0, + 0,157,1,0,0,0,0,159,1,0,0,0,0,161,1,0,0,0,0,163,1,0,0,0,0,165,1, + 0,0,0,0,167,1,0,0,0,0,169,1,0,0,0,0,171,1,0,0,0,0,173,1,0,0,0,0, + 175,1,0,0,0,0,177,1,0,0,0,0,179,1,0,0,0,0,181,1,0,0,0,0,183,1,0, + 0,0,0,185,1,0,0,0,0,187,1,0,0,0,0,189,1,0,0,0,0,191,1,0,0,0,0,193, + 1,0,0,0,0,195,1,0,0,0,0,197,1,0,0,0,0,199,1,0,0,0,0,201,1,0,0,0, + 0,203,1,0,0,0,0,205,1,0,0,0,0,207,1,0,0,0,0,209,1,0,0,0,0,211,1, + 0,0,0,0,213,1,0,0,0,0,215,1,0,0,0,0,217,1,0,0,0,0,219,1,0,0,0,0, + 221,1,0,0,0,0,223,1,0,0,0,0,225,1,0,0,0,0,227,1,0,0,0,0,229,1,0, + 0,0,0,231,1,0,0,0,0,233,1,0,0,0,0,235,1,0,0,0,0,237,1,0,0,0,0,239, + 1,0,0,0,0,241,1,0,0,0,0,243,1,0,0,0,0,245,1,0,0,0,0,247,1,0,0,0, + 0,249,1,0,0,0,0,251,1,0,0,0,0,253,1,0,0,0,0,255,1,0,0,0,0,257,1, + 0,0,0,0,259,1,0,0,0,0,261,1,0,0,0,0,263,1,0,0,0,0,265,1,0,0,0,0, + 267,1,0,0,0,0,269,1,0,0,0,0,271,1,0,0,0,0,273,1,0,0,0,0,275,1,0, + 0,0,0,277,1,0,0,0,0,279,1,0,0,0,0,281,1,0,0,0,0,283,1,0,0,0,0,285, + 1,0,0,0,0,287,1,0,0,0,0,289,1,0,0,0,0,291,1,0,0,0,0,293,1,0,0,0, + 0,295,1,0,0,0,0,297,1,0,0,0,0,299,1,0,0,0,0,301,1,0,0,0,0,303,1, + 0,0,0,0,305,1,0,0,0,0,307,1,0,0,0,0,309,1,0,0,0,0,311,1,0,0,0,0, + 313,1,0,0,0,0,315,1,0,0,0,0,317,1,0,0,0,0,319,1,0,0,0,0,321,1,0, + 0,0,0,323,1,0,0,0,0,325,1,0,0,0,0,327,1,0,0,0,0,329,1,0,0,0,0,331, + 1,0,0,0,0,333,1,0,0,0,0,335,1,0,0,0,0,337,1,0,0,0,0,339,1,0,0,0, + 0,341,1,0,0,0,0,343,1,0,0,0,0,345,1,0,0,0,0,347,1,0,0,0,0,349,1, + 0,0,0,0,351,1,0,0,0,0,353,1,0,0,0,0,355,1,0,0,0,0,357,1,0,0,0,0, + 359,1,0,0,0,0,361,1,0,0,0,0,363,1,0,0,0,0,365,1,0,0,0,0,367,1,0, + 0,0,0,369,1,0,0,0,0,371,1,0,0,0,0,373,1,0,0,0,0,375,1,0,0,0,0,377, + 1,0,0,0,0,379,1,0,0,0,0,381,1,0,0,0,0,383,1,0,0,0,0,385,1,0,0,0, + 0,387,1,0,0,0,0,389,1,0,0,0,0,391,1,0,0,0,0,393,1,0,0,0,0,395,1, + 0,0,0,0,397,1,0,0,0,0,399,1,0,0,0,0,401,1,0,0,0,0,403,1,0,0,0,0, + 405,1,0,0,0,0,407,1,0,0,0,0,409,1,0,0,0,0,411,1,0,0,0,0,413,1,0, + 0,0,0,415,1,0,0,0,0,417,1,0,0,0,0,419,1,0,0,0,0,421,1,0,0,0,0,423, + 1,0,0,0,0,425,1,0,0,0,0,427,1,0,0,0,0,429,1,0,0,0,0,431,1,0,0,0, + 0,433,1,0,0,0,0,435,1,0,0,0,0,437,1,0,0,0,0,439,1,0,0,0,0,441,1, + 0,0,0,0,443,1,0,0,0,0,445,1,0,0,0,0,447,1,0,0,0,0,449,1,0,0,0,0, + 451,1,0,0,0,0,453,1,0,0,0,0,455,1,0,0,0,0,457,1,0,0,0,0,459,1,0, + 0,0,0,461,1,0,0,0,1,463,1,0,0,0,3,467,1,0,0,0,5,471,1,0,0,0,7,475, + 1,0,0,0,9,480,1,0,0,0,11,485,1,0,0,0,13,490,1,0,0,0,15,496,1,0,0, + 0,17,501,1,0,0,0,19,506,1,0,0,0,21,511,1,0,0,0,23,517,1,0,0,0,25, + 523,1,0,0,0,27,529,1,0,0,0,29,533,1,0,0,0,31,538,1,0,0,0,33,541, + 1,0,0,0,35,545,1,0,0,0,37,549,1,0,0,0,39,554,1,0,0,0,41,559,1,0, + 0,0,43,564,1,0,0,0,45,569,1,0,0,0,47,575,1,0,0,0,49,581,1,0,0,0, + 51,587,1,0,0,0,53,592,1,0,0,0,55,598,1,0,0,0,57,604,1,0,0,0,59,608, + 1,0,0,0,61,613,1,0,0,0,63,619,1,0,0,0,65,623,1,0,0,0,67,628,1,0, + 0,0,69,634,1,0,0,0,71,655,1,0,0,0,73,670,1,0,0,0,75,672,1,0,0,0, + 77,677,1,0,0,0,79,682,1,0,0,0,81,693,1,0,0,0,83,699,1,0,0,0,85,704, + 1,0,0,0,87,713,1,0,0,0,89,718,1,0,0,0,91,723,1,0,0,0,93,746,1,0, + 0,0,95,763,1,0,0,0,97,765,1,0,0,0,99,781,1,0,0,0,101,794,1,0,0,0, + 103,796,1,0,0,0,105,802,1,0,0,0,107,811,1,0,0,0,109,820,1,0,0,0, + 111,825,1,0,0,0,113,830,1,0,0,0,115,835,1,0,0,0,117,839,1,0,0,0, + 119,844,1,0,0,0,121,848,1,0,0,0,123,867,1,0,0,0,125,884,1,0,0,0, + 127,886,1,0,0,0,129,895,1,0,0,0,131,899,1,0,0,0,133,906,1,0,0,0, + 135,910,1,0,0,0,137,917,1,0,0,0,139,921,1,0,0,0,141,925,1,0,0,0, + 143,942,1,0,0,0,145,944,1,0,0,0,147,951,1,0,0,0,149,956,1,0,0,0, + 151,963,1,0,0,0,153,991,1,0,0,0,155,1013,1,0,0,0,157,1030,1,0,0, + 0,159,1051,1,0,0,0,161,1066,1,0,0,0,163,1068,1,0,0,0,165,1093,1, + 0,0,0,167,1095,1,0,0,0,169,1124,1,0,0,0,171,1140,1,0,0,0,173,1142, + 1,0,0,0,175,1149,1,0,0,0,177,1157,1,0,0,0,179,1164,1,0,0,0,181,1174, + 1,0,0,0,183,1211,1,0,0,0,185,1213,1,0,0,0,187,1225,1,0,0,0,189,1261, + 1,0,0,0,191,1281,1,0,0,0,193,1283,1,0,0,0,195,1302,1,0,0,0,197,1304, + 1,0,0,0,199,1312,1,0,0,0,201,1316,1,0,0,0,203,1322,1,0,0,0,205,1329, + 1,0,0,0,207,1349,1,0,0,0,209,1373,1,0,0,0,211,1375,1,0,0,0,213,1396, + 1,0,0,0,215,1413,1,0,0,0,217,1428,1,0,0,0,219,1430,1,0,0,0,221,1437, + 1,0,0,0,223,1448,1,0,0,0,225,1458,1,0,0,0,227,1470,1,0,0,0,229,1480, + 1,0,0,0,231,1510,1,0,0,0,233,1512,1,0,0,0,235,1516,1,0,0,0,237,1522, + 1,0,0,0,239,1528,1,0,0,0,241,1534,1,0,0,0,243,1539,1,0,0,0,245,1545, + 1,0,0,0,247,1565,1,0,0,0,249,1567,1,0,0,0,251,1572,1,0,0,0,253,1580, + 1,0,0,0,255,1587,1,0,0,0,257,1593,1,0,0,0,259,1604,1,0,0,0,261,1616, + 1,0,0,0,263,1629,1,0,0,0,265,1643,1,0,0,0,267,1656,1,0,0,0,269,1670, + 1,0,0,0,271,1681,1,0,0,0,273,1692,1,0,0,0,275,1703,1,0,0,0,277,1714, + 1,0,0,0,279,1733,1,0,0,0,281,1794,1,0,0,0,283,1796,1,0,0,0,285,1807, + 1,0,0,0,287,1855,1,0,0,0,289,1876,1,0,0,0,291,1878,1,0,0,0,293,1881, + 1,0,0,0,295,1886,1,0,0,0,297,1892,1,0,0,0,299,1896,1,0,0,0,301,1899, + 1,0,0,0,303,1905,1,0,0,0,305,1914,1,0,0,0,307,1933,1,0,0,0,309,1935, + 1,0,0,0,311,1940,1,0,0,0,313,1948,1,0,0,0,315,1955,1,0,0,0,317,1962, + 1,0,0,0,319,1970,1,0,0,0,321,1978,1,0,0,0,323,1985,1,0,0,0,325,1990, + 1,0,0,0,327,2001,1,0,0,0,329,2010,1,0,0,0,331,2018,1,0,0,0,333,2028, + 1,0,0,0,335,2033,1,0,0,0,337,2052,1,0,0,0,339,2054,1,0,0,0,341,2062, + 1,0,0,0,343,2083,1,0,0,0,345,2102,1,0,0,0,347,2127,1,0,0,0,349,2152, + 1,0,0,0,351,2172,1,0,0,0,353,2197,1,0,0,0,355,2222,1,0,0,0,357,2245, + 1,0,0,0,359,2266,1,0,0,0,361,2285,1,0,0,0,363,2306,1,0,0,0,365,2327, + 1,0,0,0,367,2352,1,0,0,0,369,2373,1,0,0,0,371,2394,1,0,0,0,373,2416, + 1,0,0,0,375,2436,1,0,0,0,377,2486,1,0,0,0,379,2516,1,0,0,0,381,2536, + 1,0,0,0,383,2566,1,0,0,0,385,2568,1,0,0,0,387,2570,1,0,0,0,389,2572, + 1,0,0,0,391,2574,1,0,0,0,393,2576,1,0,0,0,395,2578,1,0,0,0,397,2580, + 1,0,0,0,399,2583,1,0,0,0,401,2586,1,0,0,0,403,2589,1,0,0,0,405,2591, + 1,0,0,0,407,2594,1,0,0,0,409,2596,1,0,0,0,411,2599,1,0,0,0,413,2601, + 1,0,0,0,415,2604,1,0,0,0,417,2607,1,0,0,0,419,2610,1,0,0,0,421,2613, + 1,0,0,0,423,2616,1,0,0,0,425,2619,1,0,0,0,427,2621,1,0,0,0,429,2623, + 1,0,0,0,431,2625,1,0,0,0,433,2627,1,0,0,0,435,2629,1,0,0,0,437,2632, + 1,0,0,0,439,2634,1,0,0,0,441,2636,1,0,0,0,443,2638,1,0,0,0,445,2640, + 1,0,0,0,447,2642,1,0,0,0,449,2664,1,0,0,0,451,2682,1,0,0,0,453,2704, + 1,0,0,0,455,2706,1,0,0,0,457,2713,1,0,0,0,459,2722,1,0,0,0,461,2737, + 1,0,0,0,463,464,5,115,0,0,464,465,5,105,0,0,465,466,5,110,0,0,466, + 2,1,0,0,0,467,468,5,99,0,0,468,469,5,111,0,0,469,470,5,115,0,0,470, + 4,1,0,0,0,471,472,5,116,0,0,472,473,5,97,0,0,473,474,5,110,0,0,474, + 6,1,0,0,0,475,476,5,97,0,0,476,477,5,115,0,0,477,478,5,105,0,0,478, + 479,5,110,0,0,479,8,1,0,0,0,480,481,5,97,0,0,481,482,5,99,0,0,482, + 483,5,111,0,0,483,484,5,115,0,0,484,10,1,0,0,0,485,486,5,97,0,0, + 486,487,5,116,0,0,487,488,5,97,0,0,488,489,5,110,0,0,489,12,1,0, + 0,0,490,491,5,97,0,0,491,492,5,116,0,0,492,493,5,97,0,0,493,494, + 5,110,0,0,494,495,5,50,0,0,495,14,1,0,0,0,496,497,5,115,0,0,497, + 498,5,105,0,0,498,499,5,110,0,0,499,500,5,104,0,0,500,16,1,0,0,0, + 501,502,5,99,0,0,502,503,5,111,0,0,503,504,5,115,0,0,504,505,5,104, + 0,0,505,18,1,0,0,0,506,507,5,116,0,0,507,508,5,97,0,0,508,509,5, + 110,0,0,509,510,5,104,0,0,510,20,1,0,0,0,511,512,5,97,0,0,512,513, + 5,115,0,0,513,514,5,105,0,0,514,515,5,110,0,0,515,516,5,104,0,0, + 516,22,1,0,0,0,517,518,5,97,0,0,518,519,5,99,0,0,519,520,5,111,0, + 0,520,521,5,115,0,0,521,522,5,104,0,0,522,24,1,0,0,0,523,524,5,97, + 0,0,524,525,5,116,0,0,525,526,5,97,0,0,526,527,5,110,0,0,527,528, + 5,104,0,0,528,26,1,0,0,0,529,530,5,97,0,0,530,531,5,98,0,0,531,532, + 5,115,0,0,532,28,1,0,0,0,533,534,5,115,0,0,534,535,5,113,0,0,535, + 536,5,114,0,0,536,537,5,116,0,0,537,30,1,0,0,0,538,539,5,108,0,0, + 539,540,5,110,0,0,540,32,1,0,0,0,541,542,5,108,0,0,542,543,5,111, + 0,0,543,544,5,103,0,0,544,34,1,0,0,0,545,546,5,101,0,0,546,547,5, + 120,0,0,547,548,5,112,0,0,548,36,1,0,0,0,549,550,5,115,0,0,550,551, + 5,109,0,0,551,552,5,105,0,0,552,553,5,110,0,0,553,38,1,0,0,0,554, + 555,5,115,0,0,555,556,5,109,0,0,556,557,5,97,0,0,557,558,5,120,0, + 0,558,40,1,0,0,0,559,560,5,116,0,0,560,561,5,109,0,0,561,562,5,105, + 0,0,562,563,5,110,0,0,563,42,1,0,0,0,564,565,5,116,0,0,565,566,5, + 109,0,0,566,567,5,97,0,0,567,568,5,120,0,0,568,44,1,0,0,0,569,570, + 5,116,0,0,570,571,5,110,0,0,571,572,5,111,0,0,572,573,5,114,0,0, + 573,574,5,109,0,0,574,46,1,0,0,0,575,576,5,115,0,0,576,577,5,110, + 0,0,577,578,5,111,0,0,578,579,5,114,0,0,579,580,5,109,0,0,580,48, + 1,0,0,0,581,582,5,102,0,0,582,583,5,108,0,0,583,584,5,111,0,0,584, + 585,5,111,0,0,585,586,5,114,0,0,586,50,1,0,0,0,587,588,5,99,0,0, + 588,589,5,101,0,0,589,590,5,105,0,0,590,591,5,108,0,0,591,52,1,0, + 0,0,592,593,5,114,0,0,593,594,5,111,0,0,594,595,5,117,0,0,595,596, + 5,110,0,0,596,597,5,100,0,0,597,54,1,0,0,0,598,599,5,103,0,0,599, + 600,5,97,0,0,600,601,5,109,0,0,601,602,5,109,0,0,602,603,5,97,0, + 0,603,56,1,0,0,0,604,605,5,112,0,0,605,606,5,111,0,0,606,607,5,119, + 0,0,607,58,1,0,0,0,608,609,5,115,0,0,609,610,5,105,0,0,610,611,5, + 103,0,0,611,612,5,109,0,0,612,60,1,0,0,0,613,614,5,99,0,0,614,615, + 5,108,0,0,615,616,5,97,0,0,616,617,5,109,0,0,617,618,5,112,0,0,618, + 62,1,0,0,0,619,620,5,102,0,0,620,621,5,102,0,0,621,622,5,116,0,0, + 622,64,1,0,0,0,623,624,5,105,0,0,624,625,5,102,0,0,625,626,5,102, + 0,0,626,627,5,116,0,0,627,66,1,0,0,0,628,629,5,97,0,0,629,630,5, + 110,0,0,630,631,5,103,0,0,631,632,5,108,0,0,632,633,5,101,0,0,633, + 68,1,0,0,0,634,635,5,112,0,0,635,636,5,114,0,0,636,637,5,105,0,0, + 637,638,5,110,0,0,638,639,5,116,0,0,639,70,1,0,0,0,640,641,5,112, + 0,0,641,642,5,114,0,0,642,643,5,105,0,0,643,644,5,110,0,0,644,645, + 5,116,0,0,645,646,5,95,0,0,646,647,5,115,0,0,647,648,5,104,0,0,648, + 649,5,97,0,0,649,650,5,112,0,0,650,656,5,101,0,0,651,652,5,112,0, + 0,652,653,5,115,0,0,653,654,5,104,0,0,654,656,5,112,0,0,655,640, + 1,0,0,0,655,651,1,0,0,0,656,72,1,0,0,0,657,658,5,110,0,0,658,659, + 5,118,0,0,659,671,5,108,0,0,660,661,5,110,0,0,661,662,5,97,0,0,662, + 663,5,110,0,0,663,664,5,95,0,0,664,665,5,116,0,0,665,666,5,111,0, + 0,666,667,5,95,0,0,667,668,5,110,0,0,668,669,5,117,0,0,669,671,5, + 109,0,0,670,657,1,0,0,0,670,660,1,0,0,0,671,74,1,0,0,0,672,673,5, + 108,0,0,673,674,5,101,0,0,674,675,5,114,0,0,675,676,5,112,0,0,676, + 76,1,0,0,0,677,678,5,115,0,0,678,679,5,116,0,0,679,680,5,101,0,0, + 680,681,5,112,0,0,681,78,1,0,0,0,682,683,5,115,0,0,683,684,5,109, + 0,0,684,685,5,111,0,0,685,686,5,111,0,0,686,687,5,116,0,0,687,688, + 5,104,0,0,688,689,5,115,0,0,689,690,5,116,0,0,690,691,5,101,0,0, + 691,692,5,112,0,0,692,80,1,0,0,0,693,694,5,102,0,0,694,695,5,114, + 0,0,695,696,5,97,0,0,696,697,5,99,0,0,697,698,5,116,0,0,698,82,1, + 0,0,0,699,700,5,114,0,0,700,701,5,101,0,0,701,702,5,108,0,0,702, + 703,5,117,0,0,703,84,1,0,0,0,704,705,5,115,0,0,705,706,5,111,0,0, + 706,707,5,102,0,0,707,708,5,116,0,0,708,709,5,112,0,0,709,710,5, + 108,0,0,710,711,5,117,0,0,711,712,5,115,0,0,712,86,1,0,0,0,713,714, + 5,103,0,0,714,715,5,101,0,0,715,716,5,108,0,0,716,717,5,117,0,0, + 717,88,1,0,0,0,718,719,5,115,0,0,719,720,5,105,0,0,720,721,5,103, + 0,0,721,722,5,110,0,0,722,90,1,0,0,0,723,724,5,109,0,0,724,725,5, + 97,0,0,725,726,5,112,0,0,726,92,1,0,0,0,727,728,5,101,0,0,728,729, + 5,122,0,0,729,730,5,99,0,0,730,731,5,111,0,0,731,732,5,110,0,0,732, + 733,5,118,0,0,733,734,5,111,0,0,734,735,5,108,0,0,735,736,5,117, + 0,0,736,737,5,116,0,0,737,738,5,105,0,0,738,739,5,111,0,0,739,747, + 5,110,0,0,740,741,5,101,0,0,741,742,5,122,0,0,742,743,5,99,0,0,743, + 744,5,111,0,0,744,745,5,110,0,0,745,747,5,118,0,0,746,727,1,0,0, + 0,746,740,1,0,0,0,747,94,1,0,0,0,748,749,5,99,0,0,749,750,5,111, + 0,0,750,751,5,110,0,0,751,752,5,118,0,0,752,753,5,111,0,0,753,754, + 5,108,0,0,754,755,5,117,0,0,755,756,5,116,0,0,756,757,5,105,0,0, + 757,758,5,111,0,0,758,764,5,110,0,0,759,760,5,99,0,0,760,761,5,111, + 0,0,761,762,5,110,0,0,762,764,5,118,0,0,763,748,1,0,0,0,763,759, + 1,0,0,0,764,96,1,0,0,0,765,766,5,115,0,0,766,767,5,119,0,0,767,768, + 5,97,0,0,768,769,5,112,0,0,769,98,1,0,0,0,770,771,5,112,0,0,771, + 772,5,101,0,0,772,773,5,114,0,0,773,774,5,109,0,0,774,775,5,117, + 0,0,775,776,5,116,0,0,776,782,5,101,0,0,777,778,5,112,0,0,778,779, + 5,101,0,0,779,780,5,114,0,0,780,782,5,109,0,0,781,770,1,0,0,0,781, + 777,1,0,0,0,782,100,1,0,0,0,783,784,5,114,0,0,784,785,5,101,0,0, + 785,786,5,115,0,0,786,787,5,104,0,0,787,788,5,97,0,0,788,789,5,112, + 0,0,789,795,5,101,0,0,790,791,5,114,0,0,791,792,5,115,0,0,792,793, + 5,104,0,0,793,795,5,112,0,0,794,783,1,0,0,0,794,790,1,0,0,0,795, + 102,1,0,0,0,796,797,5,114,0,0,797,798,5,97,0,0,798,799,5,110,0,0, + 799,800,5,103,0,0,800,801,5,101,0,0,801,104,1,0,0,0,802,803,5,108, + 0,0,803,804,5,105,0,0,804,805,5,110,0,0,805,806,5,115,0,0,806,807, + 5,112,0,0,807,808,5,97,0,0,808,809,5,99,0,0,809,810,5,101,0,0,810, + 106,1,0,0,0,811,812,5,108,0,0,812,813,5,111,0,0,813,814,5,103,0, + 0,814,815,5,115,0,0,815,816,5,112,0,0,816,817,5,97,0,0,817,818,5, + 99,0,0,818,819,5,101,0,0,819,108,1,0,0,0,820,821,5,116,0,0,821,822, + 5,111,0,0,822,823,5,112,0,0,823,824,5,107,0,0,824,110,1,0,0,0,825, + 826,5,98,0,0,826,827,5,111,0,0,827,828,5,116,0,0,828,829,5,107,0, + 0,829,112,1,0,0,0,830,831,5,112,0,0,831,832,5,105,0,0,832,833,5, + 110,0,0,833,834,5,118,0,0,834,114,1,0,0,0,835,836,5,115,0,0,836, + 837,5,117,0,0,837,838,5,109,0,0,838,116,1,0,0,0,839,840,5,109,0, + 0,840,841,5,101,0,0,841,842,5,97,0,0,842,843,5,110,0,0,843,118,1, + 0,0,0,844,845,5,115,0,0,845,846,5,116,0,0,846,847,5,100,0,0,847, + 120,1,0,0,0,848,849,5,118,0,0,849,850,5,97,0,0,850,851,5,114,0,0, + 851,122,1,0,0,0,852,853,5,113,0,0,853,854,5,117,0,0,854,855,5,97, + 0,0,855,856,5,114,0,0,856,857,5,116,0,0,857,858,5,105,0,0,858,859, + 5,108,0,0,859,868,5,101,0,0,860,861,5,113,0,0,861,862,5,117,0,0, + 862,863,5,97,0,0,863,864,5,114,0,0,864,865,5,116,0,0,865,866,5,105, + 0,0,866,868,5,108,0,0,867,852,1,0,0,0,867,860,1,0,0,0,868,124,1, + 0,0,0,869,870,5,112,0,0,870,871,5,101,0,0,871,872,5,114,0,0,872, + 873,5,99,0,0,873,874,5,101,0,0,874,875,5,110,0,0,875,876,5,116,0, + 0,876,877,5,105,0,0,877,878,5,108,0,0,878,885,5,101,0,0,879,880, + 5,112,0,0,880,881,5,114,0,0,881,882,5,99,0,0,882,883,5,110,0,0,883, + 885,5,116,0,0,884,869,1,0,0,0,884,879,1,0,0,0,885,126,1,0,0,0,886, + 887,5,113,0,0,887,888,5,117,0,0,888,889,5,97,0,0,889,890,5,110,0, + 0,890,891,5,116,0,0,891,892,5,105,0,0,892,893,5,108,0,0,893,894, + 5,101,0,0,894,128,1,0,0,0,895,896,5,100,0,0,896,897,5,111,0,0,897, + 898,5,116,0,0,898,130,1,0,0,0,899,900,5,109,0,0,900,901,5,111,0, + 0,901,902,5,109,0,0,902,903,5,101,0,0,903,904,5,110,0,0,904,905, + 5,116,0,0,905,132,1,0,0,0,906,907,5,101,0,0,907,908,5,114,0,0,908, + 909,5,102,0,0,909,134,1,0,0,0,910,911,5,101,0,0,911,912,5,114,0, + 0,912,913,5,102,0,0,913,914,5,105,0,0,914,915,5,110,0,0,915,916, + 5,118,0,0,916,136,1,0,0,0,917,918,5,97,0,0,918,919,5,110,0,0,919, + 920,5,121,0,0,920,138,1,0,0,0,921,922,5,97,0,0,922,923,5,108,0,0, + 923,924,5,108,0,0,924,140,1,0,0,0,925,926,5,101,0,0,926,927,5,100, + 0,0,927,928,5,103,0,0,928,929,5,101,0,0,929,142,1,0,0,0,930,931, + 5,98,0,0,931,932,5,108,0,0,932,933,5,117,0,0,933,943,5,114,0,0,934, + 935,5,103,0,0,935,936,5,97,0,0,936,937,5,117,0,0,937,938,5,115,0, + 0,938,939,5,115,0,0,939,940,5,105,0,0,940,941,5,97,0,0,941,943,5, + 110,0,0,942,930,1,0,0,0,942,934,1,0,0,0,943,144,1,0,0,0,944,945, + 5,109,0,0,945,946,5,101,0,0,946,947,5,100,0,0,947,948,5,105,0,0, + 948,949,5,97,0,0,949,950,5,110,0,0,950,146,1,0,0,0,951,952,5,109, + 0,0,952,953,5,111,0,0,953,954,5,100,0,0,954,955,5,101,0,0,955,148, + 1,0,0,0,956,957,5,99,0,0,957,958,5,117,0,0,958,959,5,109,0,0,959, + 960,5,115,0,0,960,961,5,117,0,0,961,962,5,109,0,0,962,150,1,0,0, + 0,963,964,5,99,0,0,964,965,5,117,0,0,965,966,5,109,0,0,966,967,5, + 112,0,0,967,968,5,114,0,0,968,969,5,111,0,0,969,970,5,100,0,0,970, + 152,1,0,0,0,971,972,5,116,0,0,972,973,5,111,0,0,973,974,5,112,0, + 0,974,975,5,107,0,0,975,976,5,95,0,0,976,977,5,105,0,0,977,978,5, + 110,0,0,978,992,5,100,0,0,979,980,5,116,0,0,980,981,5,111,0,0,981, + 982,5,112,0,0,982,983,5,107,0,0,983,984,5,95,0,0,984,985,5,105,0, + 0,985,986,5,110,0,0,986,987,5,100,0,0,987,988,5,105,0,0,988,989, + 5,99,0,0,989,990,5,101,0,0,990,992,5,115,0,0,991,971,1,0,0,0,991, + 979,1,0,0,0,992,154,1,0,0,0,993,994,5,98,0,0,994,995,5,111,0,0,995, + 996,5,116,0,0,996,997,5,107,0,0,997,998,5,95,0,0,998,999,5,105,0, + 0,999,1000,5,110,0,0,1000,1014,5,100,0,0,1001,1002,5,98,0,0,1002, + 1003,5,111,0,0,1003,1004,5,116,0,0,1004,1005,5,107,0,0,1005,1006, + 5,95,0,0,1006,1007,5,105,0,0,1007,1008,5,110,0,0,1008,1009,5,100, + 0,0,1009,1010,5,105,0,0,1010,1011,5,99,0,0,1011,1012,5,101,0,0,1012, + 1014,5,115,0,0,1013,993,1,0,0,0,1013,1001,1,0,0,0,1014,156,1,0,0, + 0,1015,1016,5,99,0,0,1016,1017,5,117,0,0,1017,1018,5,98,0,0,1018, + 1019,5,105,0,0,1019,1020,5,99,0,0,1020,1021,5,95,0,0,1021,1022,5, + 101,0,0,1022,1023,5,97,0,0,1023,1024,5,115,0,0,1024,1031,5,101,0, + 0,1025,1026,5,99,0,0,1026,1027,5,117,0,0,1027,1028,5,98,0,0,1028, + 1029,5,105,0,0,1029,1031,5,99,0,0,1030,1015,1,0,0,0,1030,1025,1, + 0,0,0,1031,158,1,0,0,0,1032,1033,5,101,0,0,1033,1034,5,108,0,0,1034, + 1035,5,97,0,0,1035,1036,5,115,0,0,1036,1037,5,116,0,0,1037,1038, + 5,105,0,0,1038,1039,5,99,0,0,1039,1040,5,95,0,0,1040,1041,5,101, + 0,0,1041,1042,5,97,0,0,1042,1043,5,115,0,0,1043,1052,5,101,0,0,1044, + 1045,5,101,0,0,1045,1046,5,108,0,0,1046,1047,5,97,0,0,1047,1048, + 5,115,0,0,1048,1049,5,116,0,0,1049,1050,5,105,0,0,1050,1052,5,99, + 0,0,1051,1032,1,0,0,0,1051,1044,1,0,0,0,1052,160,1,0,0,0,1053,1054, + 5,115,0,0,1054,1055,5,105,0,0,1055,1056,5,110,0,0,1056,1057,5,101, + 0,0,1057,1058,5,95,0,0,1058,1059,5,101,0,0,1059,1060,5,97,0,0,1060, + 1061,5,115,0,0,1061,1067,5,101,0,0,1062,1063,5,115,0,0,1063,1064, + 5,105,0,0,1064,1065,5,110,0,0,1065,1067,5,101,0,0,1066,1053,1,0, + 0,0,1066,1062,1,0,0,0,1067,162,1,0,0,0,1068,1069,5,115,0,0,1069, + 1070,5,109,0,0,1070,1071,5,111,0,0,1071,1072,5,111,0,0,1072,1073, + 5,116,0,0,1073,1074,5,104,0,0,1074,1075,5,101,0,0,1075,1076,5,114, + 0,0,1076,1077,5,115,0,0,1077,1078,5,116,0,0,1078,1079,5,101,0,0, + 1079,1080,5,112,0,0,1080,164,1,0,0,0,1081,1082,5,100,0,0,1082,1083, + 5,105,0,0,1083,1084,5,115,0,0,1084,1094,5,116,0,0,1085,1086,5,100, + 0,0,1086,1087,5,105,0,0,1087,1088,5,115,0,0,1088,1089,5,116,0,0, + 1089,1090,5,97,0,0,1090,1091,5,110,0,0,1091,1092,5,99,0,0,1092,1094, + 5,101,0,0,1093,1081,1,0,0,0,1093,1085,1,0,0,0,1094,166,1,0,0,0,1095, + 1096,5,114,0,0,1096,1097,5,101,0,0,1097,1098,5,109,0,0,1098,1099, + 5,97,0,0,1099,1100,5,112,0,0,1100,168,1,0,0,0,1101,1102,5,99,0,0, + 1102,1103,5,111,0,0,1103,1104,5,115,0,0,1104,1105,5,115,0,0,1105, + 1106,5,105,0,0,1106,1125,5,109,0,0,1107,1108,5,99,0,0,1108,1109, + 5,111,0,0,1109,1110,5,115,0,0,1110,1111,5,105,0,0,1111,1112,5,110, + 0,0,1112,1113,5,101,0,0,1113,1114,5,95,0,0,1114,1115,5,115,0,0,1115, + 1116,5,105,0,0,1116,1117,5,109,0,0,1117,1118,5,105,0,0,1118,1119, + 5,108,0,0,1119,1120,5,97,0,0,1120,1121,5,114,0,0,1121,1122,5,105, + 0,0,1122,1123,5,116,0,0,1123,1125,5,121,0,0,1124,1101,1,0,0,0,1124, + 1107,1,0,0,0,1125,170,1,0,0,0,1126,1127,5,99,0,0,1127,1128,5,111, + 0,0,1128,1129,5,117,0,0,1129,1130,5,110,0,0,1130,1141,5,116,0,0, + 1131,1132,5,99,0,0,1132,1133,5,110,0,0,1133,1141,5,116,0,0,1134, + 1135,5,108,0,0,1135,1136,5,101,0,0,1136,1137,5,110,0,0,1137,1138, + 5,103,0,0,1138,1139,5,116,0,0,1139,1141,5,104,0,0,1140,1126,1,0, + 0,0,1140,1131,1,0,0,0,1140,1134,1,0,0,0,1141,172,1,0,0,0,1142,1143, + 5,114,0,0,1143,1144,5,101,0,0,1144,1145,5,112,0,0,1145,1146,5,101, + 0,0,1146,1147,5,97,0,0,1147,1148,5,116,0,0,1148,174,1,0,0,0,1149, + 1150,5,102,0,0,1150,1151,5,108,0,0,1151,1152,5,97,0,0,1152,1153, + 5,116,0,0,1153,1154,5,116,0,0,1154,1155,5,101,0,0,1155,1156,5,110, + 0,0,1156,176,1,0,0,0,1157,1158,5,97,0,0,1158,1159,5,112,0,0,1159, + 1160,5,112,0,0,1160,1161,5,101,0,0,1161,1162,5,110,0,0,1162,1163, + 5,100,0,0,1163,178,1,0,0,0,1164,1165,5,103,0,0,1165,1166,5,101,0, + 0,1166,1167,5,116,0,0,1167,1168,5,95,0,0,1168,1169,5,118,0,0,1169, + 1170,5,97,0,0,1170,1171,5,108,0,0,1171,1172,5,117,0,0,1172,1173, + 5,101,0,0,1173,180,1,0,0,0,1174,1175,5,102,0,0,1175,1176,5,108,0, + 0,1176,1177,5,111,0,0,1177,1178,5,119,0,0,1178,1179,5,95,0,0,1179, + 1180,5,97,0,0,1180,1181,5,112,0,0,1181,1182,5,112,0,0,1182,1183, + 5,108,0,0,1183,1184,5,121,0,0,1184,182,1,0,0,0,1185,1186,5,98,0, + 0,1186,1187,5,97,0,0,1187,1188,5,116,0,0,1188,1189,5,99,0,0,1189, + 1190,5,104,0,0,1190,1191,5,95,0,0,1191,1192,5,115,0,0,1192,1193, + 5,104,0,0,1193,1194,5,117,0,0,1194,1195,5,102,0,0,1195,1196,5,102, + 0,0,1196,1197,5,108,0,0,1197,1212,5,101,0,0,1198,1199,5,115,0,0, + 1199,1200,5,104,0,0,1200,1201,5,117,0,0,1201,1202,5,102,0,0,1202, + 1203,5,102,0,0,1203,1204,5,108,0,0,1204,1212,5,101,0,0,1205,1206, + 5,115,0,0,1206,1207,5,101,0,0,1207,1208,5,108,0,0,1208,1209,5,101, + 0,0,1209,1210,5,99,0,0,1210,1212,5,116,0,0,1211,1185,1,0,0,0,1211, + 1198,1,0,0,0,1211,1205,1,0,0,0,1212,184,1,0,0,0,1213,1214,5,109, + 0,0,1214,1215,5,111,0,0,1215,1216,5,116,0,0,1216,1217,5,105,0,0, + 1217,1218,5,111,0,0,1218,1219,5,110,0,0,1219,1220,5,95,0,0,1220, + 1221,5,109,0,0,1221,1222,5,97,0,0,1222,1223,5,115,0,0,1223,1224, + 5,107,0,0,1224,186,1,0,0,0,1225,1226,5,102,0,0,1226,1227,5,108,0, + 0,1227,1228,5,111,0,0,1228,1229,5,119,0,0,1229,1230,5,95,0,0,1230, + 1231,5,116,0,0,1231,1232,5,111,0,0,1232,1233,5,95,0,0,1233,1234, + 5,105,0,0,1234,1235,5,109,0,0,1235,1236,5,97,0,0,1236,1237,5,103, + 0,0,1237,1238,5,101,0,0,1238,188,1,0,0,0,1239,1240,5,102,0,0,1240, + 1241,5,108,0,0,1241,1242,5,111,0,0,1242,1243,5,119,0,0,1243,1244, + 5,95,0,0,1244,1245,5,109,0,0,1245,1246,5,97,0,0,1246,1262,5,103, + 0,0,1247,1248,5,102,0,0,1248,1249,5,108,0,0,1249,1250,5,111,0,0, + 1250,1251,5,119,0,0,1251,1252,5,95,0,0,1252,1253,5,109,0,0,1253, + 1254,5,97,0,0,1254,1255,5,103,0,0,1255,1256,5,110,0,0,1256,1257, + 5,105,0,0,1257,1258,5,116,0,0,1258,1259,5,117,0,0,1259,1260,5,100, + 0,0,1260,1262,5,101,0,0,1261,1239,1,0,0,0,1261,1247,1,0,0,0,1262, + 190,1,0,0,0,1263,1264,5,102,0,0,1264,1265,5,108,0,0,1265,1266,5, + 111,0,0,1266,1267,5,119,0,0,1267,1268,5,95,0,0,1268,1269,5,97,0, + 0,1269,1270,5,110,0,0,1270,1282,5,103,0,0,1271,1272,5,102,0,0,1272, + 1273,5,108,0,0,1273,1274,5,111,0,0,1274,1275,5,119,0,0,1275,1276, + 5,95,0,0,1276,1277,5,97,0,0,1277,1278,5,110,0,0,1278,1279,5,103, + 0,0,1279,1280,5,108,0,0,1280,1282,5,101,0,0,1281,1263,1,0,0,0,1281, + 1271,1,0,0,0,1282,192,1,0,0,0,1283,1284,5,119,0,0,1284,1285,5,104, + 0,0,1285,1286,5,101,0,0,1286,1287,5,114,0,0,1287,1288,5,101,0,0, + 1288,194,1,0,0,0,1289,1290,5,104,0,0,1290,1291,5,105,0,0,1291,1292, + 5,115,0,0,1292,1293,5,116,0,0,1293,1294,5,111,0,0,1294,1295,5,103, + 0,0,1295,1296,5,114,0,0,1296,1297,5,97,0,0,1297,1303,5,109,0,0,1298, + 1299,5,104,0,0,1299,1300,5,105,0,0,1300,1301,5,115,0,0,1301,1303, + 5,116,0,0,1302,1289,1,0,0,0,1302,1298,1,0,0,0,1303,196,1,0,0,0,1304, + 1305,5,111,0,0,1305,1306,5,118,0,0,1306,1307,5,101,0,0,1307,1308, + 5,114,0,0,1308,1309,5,108,0,0,1309,1310,5,97,0,0,1310,1311,5,121, + 0,0,1311,198,1,0,0,0,1312,1313,5,112,0,0,1313,1314,5,97,0,0,1314, + 1315,5,100,0,0,1315,200,1,0,0,0,1316,1317,5,99,0,0,1317,1318,5,114, + 0,0,1318,1319,5,111,0,0,1319,1320,5,115,0,0,1320,1321,5,115,0,0, + 1321,202,1,0,0,0,1322,1323,5,109,0,0,1323,1324,5,97,0,0,1324,1325, + 5,116,0,0,1325,1326,5,109,0,0,1326,1327,5,117,0,0,1327,1328,5,108, + 0,0,1328,204,1,0,0,0,1329,1330,5,114,0,0,1330,1331,5,105,0,0,1331, + 1332,5,102,0,0,1332,1333,5,101,0,0,1333,206,1,0,0,0,1334,1335,5, + 98,0,0,1335,1336,5,110,0,0,1336,1337,5,111,0,0,1337,1350,5,116,0, + 0,1338,1339,5,98,0,0,1339,1340,5,105,0,0,1340,1341,5,116,0,0,1341, + 1342,5,119,0,0,1342,1343,5,105,0,0,1343,1344,5,115,0,0,1344,1345, + 5,101,0,0,1345,1346,5,95,0,0,1346,1347,5,110,0,0,1347,1348,5,111, + 0,0,1348,1350,5,116,0,0,1349,1334,1,0,0,0,1349,1338,1,0,0,0,1350, + 208,1,0,0,0,1351,1352,5,98,0,0,1352,1353,5,105,0,0,1353,1354,5,116, + 0,0,1354,1355,5,99,0,0,1355,1356,5,111,0,0,1356,1357,5,117,0,0,1357, + 1358,5,110,0,0,1358,1374,5,116,0,0,1359,1360,5,112,0,0,1360,1361, + 5,111,0,0,1361,1362,5,112,0,0,1362,1363,5,99,0,0,1363,1364,5,111, + 0,0,1364,1365,5,117,0,0,1365,1366,5,110,0,0,1366,1374,5,116,0,0, + 1367,1368,5,112,0,0,1368,1369,5,111,0,0,1369,1370,5,112,0,0,1370, + 1371,5,99,0,0,1371,1372,5,110,0,0,1372,1374,5,116,0,0,1373,1351, + 1,0,0,0,1373,1359,1,0,0,0,1373,1367,1,0,0,0,1374,210,1,0,0,0,1375, + 1376,5,115,0,0,1376,1377,5,104,0,0,1377,1378,5,97,0,0,1378,1379, + 5,112,0,0,1379,1380,5,101,0,0,1380,212,1,0,0,0,1381,1382,5,98,0, + 0,1382,1383,5,97,0,0,1383,1384,5,110,0,0,1384,1397,5,100,0,0,1385, + 1386,5,98,0,0,1386,1387,5,105,0,0,1387,1388,5,116,0,0,1388,1389, + 5,119,0,0,1389,1390,5,105,0,0,1390,1391,5,115,0,0,1391,1392,5,101, + 0,0,1392,1393,5,95,0,0,1393,1394,5,97,0,0,1394,1395,5,110,0,0,1395, + 1397,5,100,0,0,1396,1381,1,0,0,0,1396,1385,1,0,0,0,1397,214,1,0, + 0,0,1398,1399,5,98,0,0,1399,1400,5,120,0,0,1400,1401,5,111,0,0,1401, + 1414,5,114,0,0,1402,1403,5,98,0,0,1403,1404,5,105,0,0,1404,1405, + 5,116,0,0,1405,1406,5,119,0,0,1406,1407,5,105,0,0,1407,1408,5,115, + 0,0,1408,1409,5,101,0,0,1409,1410,5,95,0,0,1410,1411,5,120,0,0,1411, + 1412,5,111,0,0,1412,1414,5,114,0,0,1413,1398,1,0,0,0,1413,1402,1, + 0,0,0,1414,216,1,0,0,0,1415,1416,5,98,0,0,1416,1417,5,111,0,0,1417, + 1429,5,114,0,0,1418,1419,5,98,0,0,1419,1420,5,105,0,0,1420,1421, + 5,116,0,0,1421,1422,5,119,0,0,1422,1423,5,105,0,0,1423,1424,5,115, + 0,0,1424,1425,5,101,0,0,1425,1426,5,95,0,0,1426,1427,5,111,0,0,1427, + 1429,5,114,0,0,1428,1415,1,0,0,0,1428,1418,1,0,0,0,1429,218,1,0, + 0,0,1430,1431,5,116,0,0,1431,1432,5,101,0,0,1432,1433,5,110,0,0, + 1433,1434,5,115,0,0,1434,1435,5,111,0,0,1435,1436,5,114,0,0,1436, + 220,1,0,0,0,1437,1438,5,115,0,0,1438,1439,5,116,0,0,1439,1440,5, + 97,0,0,1440,1441,5,99,0,0,1441,1442,5,107,0,0,1442,1443,5,95,0,0, + 1443,1444,5,112,0,0,1444,1445,5,117,0,0,1445,1446,5,115,0,0,1446, + 1447,5,104,0,0,1447,222,1,0,0,0,1448,1449,5,115,0,0,1449,1450,5, + 116,0,0,1450,1451,5,97,0,0,1451,1452,5,99,0,0,1452,1453,5,107,0, + 0,1453,1454,5,95,0,0,1454,1455,5,112,0,0,1455,1456,5,111,0,0,1456, + 1457,5,112,0,0,1457,224,1,0,0,0,1458,1459,5,115,0,0,1459,1460,5, + 116,0,0,1460,1461,5,97,0,0,1461,1462,5,99,0,0,1462,1463,5,107,0, + 0,1463,1464,5,95,0,0,1464,1465,5,99,0,0,1465,1466,5,108,0,0,1466, + 1467,5,101,0,0,1467,1468,5,97,0,0,1468,1469,5,114,0,0,1469,226,1, + 0,0,0,1470,1471,5,115,0,0,1471,1472,5,116,0,0,1472,1473,5,97,0,0, + 1473,1474,5,99,0,0,1474,1475,5,107,0,0,1475,1476,5,95,0,0,1476,1477, + 5,104,0,0,1477,1478,5,97,0,0,1478,1479,5,115,0,0,1479,228,1,0,0, + 0,1480,1481,5,115,0,0,1481,1482,5,116,0,0,1482,1483,5,97,0,0,1483, + 1484,5,99,0,0,1484,1485,5,107,0,0,1485,1486,5,95,0,0,1486,1487,5, + 103,0,0,1487,1488,5,101,0,0,1488,1489,5,116,0,0,1489,230,1,0,0,0, + 1490,1491,5,99,0,0,1491,1492,5,97,0,0,1492,1511,5,116,0,0,1493,1494, + 5,99,0,0,1494,1495,5,111,0,0,1495,1496,5,110,0,0,1496,1497,5,99, + 0,0,1497,1498,5,97,0,0,1498,1511,5,116,0,0,1499,1500,5,99,0,0,1500, + 1501,5,111,0,0,1501,1502,5,110,0,0,1502,1503,5,99,0,0,1503,1504, + 5,97,0,0,1504,1505,5,116,0,0,1505,1506,5,101,0,0,1506,1507,5,110, + 0,0,1507,1508,5,97,0,0,1508,1509,5,116,0,0,1509,1511,5,101,0,0,1510, + 1490,1,0,0,0,1510,1493,1,0,0,0,1510,1499,1,0,0,0,1511,232,1,0,0, + 0,1512,1513,5,105,0,0,1513,1514,5,110,0,0,1514,1515,5,116,0,0,1515, + 234,1,0,0,0,1516,1517,5,102,0,0,1517,1518,5,108,0,0,1518,1519,5, + 111,0,0,1519,1520,5,97,0,0,1520,1521,5,116,0,0,1521,236,1,0,0,0, + 1522,1523,5,117,0,0,1523,1524,5,112,0,0,1524,1525,5,112,0,0,1525, + 1526,5,101,0,0,1526,1527,5,114,0,0,1527,238,1,0,0,0,1528,1529,5, + 108,0,0,1529,1530,5,111,0,0,1530,1531,5,119,0,0,1531,1532,5,101, + 0,0,1532,1533,5,114,0,0,1533,240,1,0,0,0,1534,1535,5,116,0,0,1535, + 1536,5,114,0,0,1536,1537,5,105,0,0,1537,1538,5,109,0,0,1538,242, + 1,0,0,0,1539,1540,5,115,0,0,1540,1541,5,112,0,0,1541,1542,5,108, + 0,0,1542,1543,5,105,0,0,1543,1544,5,116,0,0,1544,244,1,0,0,0,1545, + 1546,5,106,0,0,1546,1547,5,111,0,0,1547,1548,5,105,0,0,1548,1549, + 5,110,0,0,1549,246,1,0,0,0,1550,1551,5,115,0,0,1551,1552,5,117,0, + 0,1552,1553,5,98,0,0,1553,1554,5,115,0,0,1554,1555,5,116,0,0,1555, + 1556,5,114,0,0,1556,1557,5,105,0,0,1557,1558,5,110,0,0,1558,1566, + 5,103,0,0,1559,1560,5,115,0,0,1560,1561,5,117,0,0,1561,1562,5,98, + 0,0,1562,1563,5,115,0,0,1563,1564,5,116,0,0,1564,1566,5,114,0,0, + 1565,1550,1,0,0,0,1565,1559,1,0,0,0,1566,248,1,0,0,0,1567,1568,5, + 102,0,0,1568,1569,5,105,0,0,1569,1570,5,110,0,0,1570,1571,5,100, + 0,0,1571,250,1,0,0,0,1572,1573,5,114,0,0,1573,1574,5,101,0,0,1574, + 1575,5,112,0,0,1575,1576,5,108,0,0,1576,1577,5,97,0,0,1577,1578, + 5,99,0,0,1578,1579,5,101,0,0,1579,252,1,0,0,0,1580,1581,5,100,0, + 0,1581,1582,5,105,0,0,1582,1583,5,108,0,0,1583,1584,5,97,0,0,1584, + 1585,5,116,0,0,1585,1586,5,101,0,0,1586,254,1,0,0,0,1587,1588,5, + 101,0,0,1588,1589,5,114,0,0,1589,1590,5,111,0,0,1590,1591,5,100, + 0,0,1591,1592,5,101,0,0,1592,256,1,0,0,0,1593,1594,5,109,0,0,1594, + 1595,5,111,0,0,1595,1596,5,114,0,0,1596,1597,5,112,0,0,1597,1598, + 5,104,0,0,1598,1599,5,95,0,0,1599,1600,5,111,0,0,1600,1601,5,112, + 0,0,1601,1602,5,101,0,0,1602,1603,5,110,0,0,1603,258,1,0,0,0,1604, + 1605,5,109,0,0,1605,1606,5,111,0,0,1606,1607,5,114,0,0,1607,1608, + 5,112,0,0,1608,1609,5,104,0,0,1609,1610,5,95,0,0,1610,1611,5,99, + 0,0,1611,1612,5,108,0,0,1612,1613,5,111,0,0,1613,1614,5,115,0,0, + 1614,1615,5,101,0,0,1615,260,1,0,0,0,1616,1617,5,114,0,0,1617,1618, + 5,103,0,0,1618,1619,5,98,0,0,1619,1620,5,95,0,0,1620,1621,5,116, + 0,0,1621,1622,5,111,0,0,1622,1623,5,95,0,0,1623,1624,5,111,0,0,1624, + 1625,5,107,0,0,1625,1626,5,108,0,0,1626,1627,5,97,0,0,1627,1628, + 5,98,0,0,1628,262,1,0,0,0,1629,1630,5,114,0,0,1630,1631,5,103,0, + 0,1631,1632,5,98,0,0,1632,1633,5,95,0,0,1633,1634,5,116,0,0,1634, + 1635,5,111,0,0,1635,1636,5,95,0,0,1636,1637,5,99,0,0,1637,1638,5, + 105,0,0,1638,1639,5,101,0,0,1639,1640,5,108,0,0,1640,1641,5,97,0, + 0,1641,1642,5,98,0,0,1642,264,1,0,0,0,1643,1644,5,111,0,0,1644,1645, + 5,107,0,0,1645,1646,5,108,0,0,1646,1647,5,97,0,0,1647,1648,5,98, + 0,0,1648,1649,5,95,0,0,1649,1650,5,116,0,0,1650,1651,5,111,0,0,1651, + 1652,5,95,0,0,1652,1653,5,114,0,0,1653,1654,5,103,0,0,1654,1655, + 5,98,0,0,1655,266,1,0,0,0,1656,1657,5,99,0,0,1657,1658,5,105,0,0, + 1658,1659,5,101,0,0,1659,1660,5,108,0,0,1660,1661,5,97,0,0,1661, + 1662,5,98,0,0,1662,1663,5,95,0,0,1663,1664,5,116,0,0,1664,1665,5, + 111,0,0,1665,1666,5,95,0,0,1666,1667,5,114,0,0,1667,1668,5,103,0, + 0,1668,1669,5,98,0,0,1669,268,1,0,0,0,1670,1671,5,114,0,0,1671,1672, + 5,103,0,0,1672,1673,5,98,0,0,1673,1674,5,95,0,0,1674,1675,5,116, + 0,0,1675,1676,5,111,0,0,1676,1677,5,95,0,0,1677,1678,5,104,0,0,1678, + 1679,5,115,0,0,1679,1680,5,118,0,0,1680,270,1,0,0,0,1681,1682,5, + 104,0,0,1682,1683,5,115,0,0,1683,1684,5,118,0,0,1684,1685,5,95,0, + 0,1685,1686,5,116,0,0,1686,1687,5,111,0,0,1687,1688,5,95,0,0,1688, + 1689,5,114,0,0,1689,1690,5,103,0,0,1690,1691,5,98,0,0,1691,272,1, + 0,0,0,1692,1693,5,105,0,0,1693,1694,5,110,0,0,1694,1695,5,116,0, + 0,1695,1696,5,95,0,0,1696,1697,5,116,0,0,1697,1698,5,111,0,0,1698, + 1699,5,95,0,0,1699,1700,5,114,0,0,1700,1701,5,103,0,0,1701,1702, + 5,98,0,0,1702,274,1,0,0,0,1703,1704,5,114,0,0,1704,1705,5,103,0, + 0,1705,1706,5,98,0,0,1706,1707,5,95,0,0,1707,1708,5,116,0,0,1708, + 1709,5,111,0,0,1709,1710,5,95,0,0,1710,1711,5,105,0,0,1711,1712, + 5,110,0,0,1712,1713,5,116,0,0,1713,276,1,0,0,0,1714,1715,5,105,0, + 0,1715,1716,5,110,0,0,1716,1717,5,116,0,0,1717,1718,5,101,0,0,1718, + 1719,5,114,0,0,1719,1720,5,112,0,0,1720,1721,5,111,0,0,1721,1722, + 5,108,0,0,1722,1723,5,97,0,0,1723,1724,5,116,0,0,1724,1725,5,101, + 0,0,1725,1726,5,95,0,0,1726,1727,5,108,0,0,1727,1728,5,105,0,0,1728, + 1729,5,110,0,0,1729,1730,5,101,0,0,1730,1731,5,97,0,0,1731,1732, + 5,114,0,0,1732,278,1,0,0,0,1733,1734,5,105,0,0,1734,1735,5,110,0, + 0,1735,1736,5,116,0,0,1736,1737,5,101,0,0,1737,1738,5,114,0,0,1738, + 1739,5,112,0,0,1739,1740,5,111,0,0,1740,1741,5,108,0,0,1741,1742, + 5,97,0,0,1742,1743,5,116,0,0,1743,1744,5,101,0,0,1744,1745,5,95, + 0,0,1745,1746,5,97,0,0,1746,1747,5,114,0,0,1747,1748,5,101,0,0,1748, + 1749,5,97,0,0,1749,280,1,0,0,0,1750,1751,5,105,0,0,1751,1752,5,110, + 0,0,1752,1753,5,116,0,0,1753,1754,5,101,0,0,1754,1755,5,114,0,0, + 1755,1756,5,112,0,0,1756,1757,5,111,0,0,1757,1758,5,108,0,0,1758, + 1759,5,97,0,0,1759,1760,5,116,0,0,1760,1761,5,101,0,0,1761,1762, + 5,95,0,0,1762,1763,5,110,0,0,1763,1764,5,101,0,0,1764,1765,5,97, + 0,0,1765,1766,5,114,0,0,1766,1767,5,101,0,0,1767,1768,5,115,0,0, + 1768,1795,5,116,0,0,1769,1770,5,105,0,0,1770,1771,5,110,0,0,1771, + 1772,5,116,0,0,1772,1773,5,101,0,0,1773,1774,5,114,0,0,1774,1775, + 5,112,0,0,1775,1776,5,111,0,0,1776,1777,5,108,0,0,1777,1778,5,97, + 0,0,1778,1779,5,116,0,0,1779,1780,5,101,0,0,1780,1781,5,95,0,0,1781, + 1782,5,110,0,0,1782,1783,5,101,0,0,1783,1784,5,97,0,0,1784,1785, + 5,114,0,0,1785,1786,5,101,0,0,1786,1787,5,115,0,0,1787,1788,5,116, + 0,0,1788,1789,5,95,0,0,1789,1790,5,101,0,0,1790,1791,5,120,0,0,1791, + 1792,5,97,0,0,1792,1793,5,99,0,0,1793,1795,5,116,0,0,1794,1750,1, + 0,0,0,1794,1769,1,0,0,0,1795,282,1,0,0,0,1796,1797,5,116,0,0,1797, + 1798,5,101,0,0,1798,1799,5,120,0,0,1799,1800,5,116,0,0,1800,1801, + 5,95,0,0,1801,1802,5,105,0,0,1802,1803,5,109,0,0,1803,1804,5,97, + 0,0,1804,1805,5,103,0,0,1805,1806,5,101,0,0,1806,284,1,0,0,0,1807, + 1808,5,97,0,0,1808,1809,5,115,0,0,1809,1810,5,95,0,0,1810,1811,5, + 110,0,0,1811,1812,5,101,0,0,1812,1813,5,115,0,0,1813,1814,5,116, + 0,0,1814,1815,5,101,0,0,1815,1816,5,100,0,0,1816,1817,5,95,0,0,1817, + 1818,5,116,0,0,1818,1819,5,101,0,0,1819,1820,5,110,0,0,1820,1821, + 5,115,0,0,1821,1822,5,111,0,0,1822,1823,5,114,0,0,1823,286,1,0,0, + 0,1824,1825,5,115,0,0,1825,1826,5,118,0,0,1826,1856,5,100,0,0,1827, + 1828,5,115,0,0,1828,1829,5,105,0,0,1829,1830,5,110,0,0,1830,1831, + 5,103,0,0,1831,1832,5,117,0,0,1832,1833,5,108,0,0,1833,1834,5,97, + 0,0,1834,1835,5,114,0,0,1835,1836,5,95,0,0,1836,1837,5,118,0,0,1837, + 1838,5,97,0,0,1838,1839,5,108,0,0,1839,1840,5,117,0,0,1840,1841, + 5,101,0,0,1841,1842,5,95,0,0,1842,1843,5,100,0,0,1843,1844,5,101, + 0,0,1844,1845,5,99,0,0,1845,1846,5,111,0,0,1846,1847,5,109,0,0,1847, + 1848,5,112,0,0,1848,1849,5,111,0,0,1849,1850,5,115,0,0,1850,1851, + 5,105,0,0,1851,1852,5,116,0,0,1852,1853,5,105,0,0,1853,1854,5,111, + 0,0,1854,1856,5,110,0,0,1855,1824,1,0,0,0,1855,1827,1,0,0,0,1856, + 288,1,0,0,0,1857,1858,5,100,0,0,1858,1859,5,105,0,0,1859,1860,5, + 97,0,0,1860,1861,5,103,0,0,1861,1862,5,111,0,0,1862,1863,5,110,0, + 0,1863,1864,5,97,0,0,1864,1865,5,108,0,0,1865,1866,5,95,0,0,1866, + 1867,5,109,0,0,1867,1868,5,97,0,0,1868,1869,5,116,0,0,1869,1870, + 5,114,0,0,1870,1871,5,105,0,0,1871,1877,5,120,0,0,1872,1873,5,100, + 0,0,1873,1874,5,105,0,0,1874,1875,5,97,0,0,1875,1877,5,103,0,0,1876, + 1857,1,0,0,0,1876,1872,1,0,0,0,1877,290,1,0,0,0,1878,1879,5,105, + 0,0,1879,1880,5,102,0,0,1880,292,1,0,0,0,1881,1882,5,101,0,0,1882, + 1883,5,108,0,0,1883,1884,5,115,0,0,1884,1885,5,101,0,0,1885,294, + 1,0,0,0,1886,1887,5,119,0,0,1887,1888,5,104,0,0,1888,1889,5,105, + 0,0,1889,1890,5,108,0,0,1890,1891,5,101,0,0,1891,296,1,0,0,0,1892, + 1893,5,102,0,0,1893,1894,5,111,0,0,1894,1895,5,114,0,0,1895,298, + 1,0,0,0,1896,1897,5,105,0,0,1897,1898,5,110,0,0,1898,300,1,0,0,0, + 1899,1900,5,98,0,0,1900,1901,5,114,0,0,1901,1902,5,101,0,0,1902, + 1903,5,97,0,0,1903,1904,5,107,0,0,1904,302,1,0,0,0,1905,1906,5,99, + 0,0,1906,1907,5,111,0,0,1907,1908,5,110,0,0,1908,1909,5,116,0,0, + 1909,1910,5,105,0,0,1910,1911,5,110,0,0,1911,1912,5,117,0,0,1912, + 1913,5,101,0,0,1913,304,1,0,0,0,1914,1915,5,114,0,0,1915,1916,5, + 101,0,0,1916,1917,5,116,0,0,1917,1918,5,117,0,0,1918,1919,5,114, + 0,0,1919,1920,5,110,0,0,1920,306,1,0,0,0,1921,1922,5,116,0,0,1922, + 1923,5,105,0,0,1923,1924,5,109,0,0,1924,1925,5,101,0,0,1925,1926, + 5,115,0,0,1926,1927,5,116,0,0,1927,1928,5,97,0,0,1928,1929,5,109, + 0,0,1929,1934,5,112,0,0,1930,1931,5,110,0,0,1931,1932,5,111,0,0, + 1932,1934,5,119,0,0,1933,1921,1,0,0,0,1933,1930,1,0,0,0,1934,308, + 1,0,0,0,1935,1936,5,115,0,0,1936,1937,5,111,0,0,1937,1938,5,114, + 0,0,1938,1939,5,116,0,0,1939,310,1,0,0,0,1940,1941,5,97,0,0,1941, + 1942,5,114,0,0,1942,1943,5,103,0,0,1943,1944,5,115,0,0,1944,1945, + 5,111,0,0,1945,1946,5,114,0,0,1946,1947,5,116,0,0,1947,312,1,0,0, + 0,1948,1949,5,97,0,0,1949,1950,5,114,0,0,1950,1951,5,103,0,0,1951, + 1952,5,109,0,0,1952,1953,5,105,0,0,1953,1954,5,110,0,0,1954,314, + 1,0,0,0,1955,1956,5,97,0,0,1956,1957,5,114,0,0,1957,1958,5,103,0, + 0,1958,1959,5,109,0,0,1959,1960,5,97,0,0,1960,1961,5,120,0,0,1961, + 316,1,0,0,0,1962,1963,5,115,0,0,1963,1964,5,111,0,0,1964,1965,5, + 102,0,0,1965,1966,5,116,0,0,1966,1967,5,109,0,0,1967,1968,5,97,0, + 0,1968,1969,5,120,0,0,1969,318,1,0,0,0,1970,1971,5,115,0,0,1971, + 1972,5,111,0,0,1972,1973,5,102,0,0,1973,1974,5,116,0,0,1974,1975, + 5,109,0,0,1975,1976,5,105,0,0,1976,1977,5,110,0,0,1977,320,1,0,0, + 0,1978,1979,5,117,0,0,1979,1980,5,110,0,0,1980,1981,5,105,0,0,1981, + 1982,5,113,0,0,1982,1983,5,117,0,0,1983,1984,5,101,0,0,1984,322, + 1,0,0,0,1985,1986,5,102,0,0,1986,1987,5,108,0,0,1987,1988,5,105, + 0,0,1988,1989,5,112,0,0,1989,324,1,0,0,0,1990,1991,5,115,0,0,1991, + 1992,5,116,0,0,1992,1993,5,97,0,0,1993,1994,5,114,0,0,1994,1995, + 5,116,0,0,1995,1996,5,115,0,0,1996,1997,5,119,0,0,1997,1998,5,105, + 0,0,1998,1999,5,116,0,0,1999,2000,5,104,0,0,2000,326,1,0,0,0,2001, + 2002,5,101,0,0,2002,2003,5,110,0,0,2003,2004,5,100,0,0,2004,2005, + 5,115,0,0,2005,2006,5,119,0,0,2006,2007,5,105,0,0,2007,2008,5,116, + 0,0,2008,2009,5,104,0,0,2009,328,1,0,0,0,2010,2011,5,115,0,0,2011, + 2012,5,113,0,0,2012,2013,5,117,0,0,2013,2014,5,101,0,0,2014,2015, + 5,101,0,0,2015,2016,5,122,0,0,2016,2017,5,101,0,0,2017,330,1,0,0, + 0,2018,2019,5,117,0,0,2019,2020,5,110,0,0,2020,2021,5,115,0,0,2021, + 2022,5,113,0,0,2022,2023,5,117,0,0,2023,2024,5,101,0,0,2024,2025, + 5,101,0,0,2025,2026,5,122,0,0,2026,2027,5,101,0,0,2027,332,1,0,0, + 0,2028,2029,5,114,0,0,2029,2030,5,111,0,0,2030,2031,5,108,0,0,2031, + 2032,5,108,0,0,2032,334,1,0,0,0,2033,2034,5,99,0,0,2034,2035,5,111, + 0,0,2035,2036,5,118,0,0,2036,336,1,0,0,0,2037,2038,5,99,0,0,2038, + 2039,5,111,0,0,2039,2040,5,114,0,0,2040,2053,5,114,0,0,2041,2042, + 5,99,0,0,2042,2043,5,111,0,0,2043,2044,5,114,0,0,2044,2045,5,114, + 0,0,2045,2046,5,101,0,0,2046,2047,5,108,0,0,2047,2048,5,97,0,0,2048, + 2049,5,116,0,0,2049,2050,5,105,0,0,2050,2051,5,111,0,0,2051,2053, + 5,110,0,0,2052,2037,1,0,0,0,2052,2041,1,0,0,0,2053,338,1,0,0,0,2054, + 2055,5,101,0,0,2055,2056,5,110,0,0,2056,2057,5,116,0,0,2057,2058, + 5,114,0,0,2058,2059,5,111,0,0,2059,2060,5,112,0,0,2060,2061,5,121, + 0,0,2061,340,1,0,0,0,2062,2063,5,99,0,0,2063,2064,5,114,0,0,2064, + 2065,5,111,0,0,2065,2066,5,112,0,0,2066,342,1,0,0,0,2067,2068,5, + 110,0,0,2068,2069,5,111,0,0,2069,2070,5,110,0,0,2070,2084,5,101, + 0,0,2071,2072,5,78,0,0,2072,2073,5,111,0,0,2073,2074,5,110,0,0,2074, + 2084,5,101,0,0,2075,2076,5,110,0,0,2076,2077,5,117,0,0,2077,2078, + 5,108,0,0,2078,2084,5,108,0,0,2079,2080,5,78,0,0,2080,2081,5,85, + 0,0,2081,2082,5,76,0,0,2082,2084,5,76,0,0,2083,2067,1,0,0,0,2083, + 2071,1,0,0,0,2083,2075,1,0,0,0,2083,2079,1,0,0,0,2084,344,1,0,0, + 0,2085,2086,5,99,0,0,2086,2087,5,111,0,0,2087,2088,5,111,0,0,2088, + 2089,5,114,0,0,2089,2090,5,100,0,0,2090,2103,5,115,0,0,2091,2092, + 5,99,0,0,2092,2093,5,111,0,0,2093,2094,5,111,0,0,2094,2095,5,114, + 0,0,2095,2096,5,100,0,0,2096,2097,5,105,0,0,2097,2098,5,110,0,0, + 2098,2099,5,97,0,0,2099,2100,5,116,0,0,2100,2101,5,101,0,0,2101, + 2103,5,115,0,0,2102,2085,1,0,0,0,2102,2091,1,0,0,0,2103,346,1,0, + 0,0,2104,2105,5,110,0,0,2105,2106,5,111,0,0,2106,2107,5,105,0,0, + 2107,2108,5,115,0,0,2108,2128,5,101,0,0,2109,2110,5,114,0,0,2110, + 2111,5,97,0,0,2111,2112,5,110,0,0,2112,2113,5,100,0,0,2113,2128, + 5,110,0,0,2114,2115,5,114,0,0,2115,2116,5,97,0,0,2116,2117,5,110, + 0,0,2117,2118,5,100,0,0,2118,2119,5,111,0,0,2119,2120,5,109,0,0, + 2120,2121,5,95,0,0,2121,2122,5,110,0,0,2122,2123,5,111,0,0,2123, + 2124,5,114,0,0,2124,2125,5,109,0,0,2125,2126,5,97,0,0,2126,2128, + 5,108,0,0,2127,2104,1,0,0,0,2127,2109,1,0,0,0,2127,2114,1,0,0,0, + 2128,348,1,0,0,0,2129,2130,5,114,0,0,2130,2131,5,97,0,0,2131,2132, + 5,110,0,0,2132,2153,5,100,0,0,2133,2134,5,114,0,0,2134,2135,5,97, + 0,0,2135,2136,5,110,0,0,2136,2137,5,100,0,0,2137,2153,5,117,0,0, + 2138,2139,5,114,0,0,2139,2140,5,97,0,0,2140,2141,5,110,0,0,2141, + 2142,5,100,0,0,2142,2143,5,111,0,0,2143,2144,5,109,0,0,2144,2145, + 5,95,0,0,2145,2146,5,117,0,0,2146,2147,5,110,0,0,2147,2148,5,105, + 0,0,2148,2149,5,102,0,0,2149,2150,5,111,0,0,2150,2151,5,114,0,0, + 2151,2153,5,109,0,0,2152,2129,1,0,0,0,2152,2133,1,0,0,0,2152,2138, + 1,0,0,0,2153,350,1,0,0,0,2154,2155,5,114,0,0,2155,2156,5,97,0,0, + 2156,2157,5,110,0,0,2157,2158,5,100,0,0,2158,2173,5,99,0,0,2159, + 2160,5,114,0,0,2160,2161,5,97,0,0,2161,2162,5,110,0,0,2162,2163, + 5,100,0,0,2163,2164,5,111,0,0,2164,2165,5,109,0,0,2165,2166,5,95, + 0,0,2166,2167,5,99,0,0,2167,2168,5,97,0,0,2168,2169,5,117,0,0,2169, + 2170,5,99,0,0,2170,2171,5,104,0,0,2171,2173,5,121,0,0,2172,2154, + 1,0,0,0,2172,2159,1,0,0,0,2173,352,1,0,0,0,2174,2175,5,114,0,0,2175, + 2176,5,97,0,0,2176,2177,5,110,0,0,2177,2178,5,100,0,0,2178,2198, + 5,101,0,0,2179,2180,5,114,0,0,2180,2181,5,97,0,0,2181,2182,5,110, + 0,0,2182,2183,5,100,0,0,2183,2184,5,111,0,0,2184,2185,5,109,0,0, + 2185,2186,5,95,0,0,2186,2187,5,101,0,0,2187,2188,5,120,0,0,2188, + 2189,5,112,0,0,2189,2190,5,111,0,0,2190,2191,5,110,0,0,2191,2192, + 5,101,0,0,2192,2193,5,110,0,0,2193,2194,5,116,0,0,2194,2195,5,105, + 0,0,2195,2196,5,97,0,0,2196,2198,5,108,0,0,2197,2174,1,0,0,0,2197, + 2179,1,0,0,0,2198,354,1,0,0,0,2199,2200,5,114,0,0,2200,2201,5,97, + 0,0,2201,2202,5,110,0,0,2202,2203,5,100,0,0,2203,2204,5,108,0,0, + 2204,2223,5,110,0,0,2205,2206,5,114,0,0,2206,2207,5,97,0,0,2207, + 2208,5,110,0,0,2208,2209,5,100,0,0,2209,2210,5,111,0,0,2210,2211, + 5,109,0,0,2211,2212,5,95,0,0,2212,2213,5,108,0,0,2213,2214,5,111, + 0,0,2214,2215,5,103,0,0,2215,2216,5,95,0,0,2216,2217,5,110,0,0,2217, + 2218,5,111,0,0,2218,2219,5,114,0,0,2219,2220,5,109,0,0,2220,2221, + 5,97,0,0,2221,2223,5,108,0,0,2222,2199,1,0,0,0,2222,2205,1,0,0,0, + 2223,356,1,0,0,0,2224,2225,5,114,0,0,2225,2226,5,97,0,0,2226,2227, + 5,110,0,0,2227,2228,5,100,0,0,2228,2246,5,98,0,0,2229,2230,5,114, + 0,0,2230,2231,5,97,0,0,2231,2232,5,110,0,0,2232,2233,5,100,0,0,2233, + 2234,5,111,0,0,2234,2235,5,109,0,0,2235,2236,5,95,0,0,2236,2237, + 5,98,0,0,2237,2238,5,101,0,0,2238,2239,5,114,0,0,2239,2240,5,110, + 0,0,2240,2241,5,111,0,0,2241,2242,5,117,0,0,2242,2243,5,108,0,0, + 2243,2244,5,108,0,0,2244,2246,5,105,0,0,2245,2224,1,0,0,0,2245,2229, 1,0,0,0,2246,358,1,0,0,0,2247,2248,5,114,0,0,2248,2249,5,97,0,0, - 2249,2250,5,110,0,0,2250,2251,5,100,0,0,2251,2265,5,103,0,0,2252, + 2249,2250,5,110,0,0,2250,2251,5,100,0,0,2251,2267,5,112,0,0,2252, 2253,5,114,0,0,2253,2254,5,97,0,0,2254,2255,5,110,0,0,2255,2256, 5,100,0,0,2256,2257,5,111,0,0,2257,2258,5,109,0,0,2258,2259,5,95, - 0,0,2259,2260,5,103,0,0,2260,2261,5,97,0,0,2261,2262,5,109,0,0,2262, - 2263,5,109,0,0,2263,2265,5,97,0,0,2264,2247,1,0,0,0,2264,2252,1, - 0,0,0,2265,360,1,0,0,0,2266,2267,5,114,0,0,2267,2268,5,97,0,0,2268, - 2269,5,110,0,0,2269,2270,5,100,0,0,2270,2271,5,98,0,0,2271,2272, - 5,101,0,0,2272,2273,5,116,0,0,2273,2286,5,97,0,0,2274,2275,5,114, - 0,0,2275,2276,5,97,0,0,2276,2277,5,110,0,0,2277,2278,5,100,0,0,2278, - 2279,5,111,0,0,2279,2280,5,109,0,0,2280,2281,5,95,0,0,2281,2282, - 5,98,0,0,2282,2283,5,101,0,0,2283,2284,5,116,0,0,2284,2286,5,97, - 0,0,2285,2266,1,0,0,0,2285,2274,1,0,0,0,2286,362,1,0,0,0,2287,2288, - 5,114,0,0,2288,2289,5,97,0,0,2289,2290,5,110,0,0,2290,2291,5,100, - 0,0,2291,2307,5,108,0,0,2292,2293,5,114,0,0,2293,2294,5,97,0,0,2294, - 2295,5,110,0,0,2295,2296,5,100,0,0,2296,2297,5,111,0,0,2297,2298, - 5,109,0,0,2298,2299,5,95,0,0,2299,2300,5,108,0,0,2300,2301,5,97, - 0,0,2301,2302,5,112,0,0,2302,2303,5,108,0,0,2303,2304,5,97,0,0,2304, - 2305,5,99,0,0,2305,2307,5,101,0,0,2306,2287,1,0,0,0,2306,2292,1, - 0,0,0,2307,364,1,0,0,0,2308,2309,5,114,0,0,2309,2310,5,97,0,0,2310, - 2311,5,110,0,0,2311,2312,5,100,0,0,2312,2313,5,103,0,0,2313,2314, - 5,117,0,0,2314,2315,5,109,0,0,2315,2316,5,98,0,0,2316,2317,5,101, - 0,0,2317,2332,5,108,0,0,2318,2319,5,114,0,0,2319,2320,5,97,0,0,2320, - 2321,5,110,0,0,2321,2322,5,100,0,0,2322,2323,5,111,0,0,2323,2324, - 5,109,0,0,2324,2325,5,95,0,0,2325,2326,5,103,0,0,2326,2327,5,117, - 0,0,2327,2328,5,109,0,0,2328,2329,5,98,0,0,2329,2330,5,101,0,0,2330, - 2332,5,108,0,0,2331,2308,1,0,0,0,2331,2318,1,0,0,0,2332,366,1,0, - 0,0,2333,2334,5,114,0,0,2334,2335,5,97,0,0,2335,2336,5,110,0,0,2336, - 2337,5,100,0,0,2337,2353,5,119,0,0,2338,2339,5,114,0,0,2339,2340, - 5,97,0,0,2340,2341,5,110,0,0,2341,2342,5,100,0,0,2342,2343,5,111, - 0,0,2343,2344,5,109,0,0,2344,2345,5,95,0,0,2345,2346,5,119,0,0,2346, - 2347,5,101,0,0,2347,2348,5,105,0,0,2348,2349,5,98,0,0,2349,2350, - 5,117,0,0,2350,2351,5,108,0,0,2351,2353,5,108,0,0,2352,2333,1,0, - 0,0,2352,2338,1,0,0,0,2353,368,1,0,0,0,2354,2355,5,114,0,0,2355, - 2356,5,97,0,0,2356,2357,5,110,0,0,2357,2358,5,100,0,0,2358,2359, - 5,99,0,0,2359,2360,5,104,0,0,2360,2361,5,105,0,0,2361,2374,5,50, - 0,0,2362,2363,5,114,0,0,2363,2364,5,97,0,0,2364,2365,5,110,0,0,2365, - 2366,5,100,0,0,2366,2367,5,111,0,0,2367,2368,5,109,0,0,2368,2369, - 5,95,0,0,2369,2370,5,99,0,0,2370,2371,5,104,0,0,2371,2372,5,105, - 0,0,2372,2374,5,50,0,0,2373,2354,1,0,0,0,2373,2362,1,0,0,0,2374, - 370,1,0,0,0,2375,2376,5,114,0,0,2376,2377,5,97,0,0,2377,2378,5,110, - 0,0,2378,2379,5,100,0,0,2379,2396,5,116,0,0,2380,2381,5,114,0,0, - 2381,2382,5,97,0,0,2382,2383,5,110,0,0,2383,2384,5,100,0,0,2384, - 2385,5,111,0,0,2385,2386,5,109,0,0,2386,2387,5,95,0,0,2387,2388, - 5,115,0,0,2388,2389,5,116,0,0,2389,2390,5,117,0,0,2390,2391,5,100, - 0,0,2391,2392,5,101,0,0,2392,2393,5,110,0,0,2393,2394,5,116,0,0, - 2394,2396,5,116,0,0,2395,2375,1,0,0,0,2395,2380,1,0,0,0,2396,372, - 1,0,0,0,2397,2398,5,112,0,0,2398,2399,5,101,0,0,2399,2400,5,114, - 0,0,2400,2401,5,108,0,0,2401,2402,5,105,0,0,2402,2416,5,110,0,0, - 2403,2404,5,112,0,0,2404,2405,5,101,0,0,2405,2406,5,114,0,0,2406, - 2407,5,108,0,0,2407,2408,5,105,0,0,2408,2409,5,110,0,0,2409,2410, - 5,95,0,0,2410,2411,5,110,0,0,2411,2412,5,111,0,0,2412,2413,5,105, - 0,0,2413,2414,5,115,0,0,2414,2416,5,101,0,0,2415,2397,1,0,0,0,2415, - 2403,1,0,0,0,2416,374,1,0,0,0,2417,2418,5,99,0,0,2418,2419,5,101, - 0,0,2419,2420,5,108,0,0,2420,2421,5,108,0,0,2421,2422,5,117,0,0, - 2422,2423,5,108,0,0,2423,2424,5,97,0,0,2424,2466,5,114,0,0,2425, - 2426,5,118,0,0,2426,2427,5,111,0,0,2427,2428,5,114,0,0,2428,2429, - 5,111,0,0,2429,2430,5,110,0,0,2430,2431,5,111,0,0,2431,2466,5,105, - 0,0,2432,2433,5,119,0,0,2433,2434,5,111,0,0,2434,2435,5,114,0,0, - 2435,2436,5,108,0,0,2436,2437,5,101,0,0,2437,2466,5,121,0,0,2438, + 0,0,2259,2260,5,112,0,0,2260,2261,5,111,0,0,2261,2262,5,105,0,0, + 2262,2263,5,115,0,0,2263,2264,5,115,0,0,2264,2265,5,111,0,0,2265, + 2267,5,110,0,0,2266,2247,1,0,0,0,2266,2252,1,0,0,0,2267,360,1,0, + 0,0,2268,2269,5,114,0,0,2269,2270,5,97,0,0,2270,2271,5,110,0,0,2271, + 2272,5,100,0,0,2272,2286,5,103,0,0,2273,2274,5,114,0,0,2274,2275, + 5,97,0,0,2275,2276,5,110,0,0,2276,2277,5,100,0,0,2277,2278,5,111, + 0,0,2278,2279,5,109,0,0,2279,2280,5,95,0,0,2280,2281,5,103,0,0,2281, + 2282,5,97,0,0,2282,2283,5,109,0,0,2283,2284,5,109,0,0,2284,2286, + 5,97,0,0,2285,2268,1,0,0,0,2285,2273,1,0,0,0,2286,362,1,0,0,0,2287, + 2288,5,114,0,0,2288,2289,5,97,0,0,2289,2290,5,110,0,0,2290,2291, + 5,100,0,0,2291,2292,5,98,0,0,2292,2293,5,101,0,0,2293,2294,5,116, + 0,0,2294,2307,5,97,0,0,2295,2296,5,114,0,0,2296,2297,5,97,0,0,2297, + 2298,5,110,0,0,2298,2299,5,100,0,0,2299,2300,5,111,0,0,2300,2301, + 5,109,0,0,2301,2302,5,95,0,0,2302,2303,5,98,0,0,2303,2304,5,101, + 0,0,2304,2305,5,116,0,0,2305,2307,5,97,0,0,2306,2287,1,0,0,0,2306, + 2295,1,0,0,0,2307,364,1,0,0,0,2308,2309,5,114,0,0,2309,2310,5,97, + 0,0,2310,2311,5,110,0,0,2311,2312,5,100,0,0,2312,2328,5,108,0,0, + 2313,2314,5,114,0,0,2314,2315,5,97,0,0,2315,2316,5,110,0,0,2316, + 2317,5,100,0,0,2317,2318,5,111,0,0,2318,2319,5,109,0,0,2319,2320, + 5,95,0,0,2320,2321,5,108,0,0,2321,2322,5,97,0,0,2322,2323,5,112, + 0,0,2323,2324,5,108,0,0,2324,2325,5,97,0,0,2325,2326,5,99,0,0,2326, + 2328,5,101,0,0,2327,2308,1,0,0,0,2327,2313,1,0,0,0,2328,366,1,0, + 0,0,2329,2330,5,114,0,0,2330,2331,5,97,0,0,2331,2332,5,110,0,0,2332, + 2333,5,100,0,0,2333,2334,5,103,0,0,2334,2335,5,117,0,0,2335,2336, + 5,109,0,0,2336,2337,5,98,0,0,2337,2338,5,101,0,0,2338,2353,5,108, + 0,0,2339,2340,5,114,0,0,2340,2341,5,97,0,0,2341,2342,5,110,0,0,2342, + 2343,5,100,0,0,2343,2344,5,111,0,0,2344,2345,5,109,0,0,2345,2346, + 5,95,0,0,2346,2347,5,103,0,0,2347,2348,5,117,0,0,2348,2349,5,109, + 0,0,2349,2350,5,98,0,0,2350,2351,5,101,0,0,2351,2353,5,108,0,0,2352, + 2329,1,0,0,0,2352,2339,1,0,0,0,2353,368,1,0,0,0,2354,2355,5,114, + 0,0,2355,2356,5,97,0,0,2356,2357,5,110,0,0,2357,2358,5,100,0,0,2358, + 2374,5,119,0,0,2359,2360,5,114,0,0,2360,2361,5,97,0,0,2361,2362, + 5,110,0,0,2362,2363,5,100,0,0,2363,2364,5,111,0,0,2364,2365,5,109, + 0,0,2365,2366,5,95,0,0,2366,2367,5,119,0,0,2367,2368,5,101,0,0,2368, + 2369,5,105,0,0,2369,2370,5,98,0,0,2370,2371,5,117,0,0,2371,2372, + 5,108,0,0,2372,2374,5,108,0,0,2373,2354,1,0,0,0,2373,2359,1,0,0, + 0,2374,370,1,0,0,0,2375,2376,5,114,0,0,2376,2377,5,97,0,0,2377,2378, + 5,110,0,0,2378,2379,5,100,0,0,2379,2380,5,99,0,0,2380,2381,5,104, + 0,0,2381,2382,5,105,0,0,2382,2395,5,50,0,0,2383,2384,5,114,0,0,2384, + 2385,5,97,0,0,2385,2386,5,110,0,0,2386,2387,5,100,0,0,2387,2388, + 5,111,0,0,2388,2389,5,109,0,0,2389,2390,5,95,0,0,2390,2391,5,99, + 0,0,2391,2392,5,104,0,0,2392,2393,5,105,0,0,2393,2395,5,50,0,0,2394, + 2375,1,0,0,0,2394,2383,1,0,0,0,2395,372,1,0,0,0,2396,2397,5,114, + 0,0,2397,2398,5,97,0,0,2398,2399,5,110,0,0,2399,2400,5,100,0,0,2400, + 2417,5,116,0,0,2401,2402,5,114,0,0,2402,2403,5,97,0,0,2403,2404, + 5,110,0,0,2404,2405,5,100,0,0,2405,2406,5,111,0,0,2406,2407,5,109, + 0,0,2407,2408,5,95,0,0,2408,2409,5,115,0,0,2409,2410,5,116,0,0,2410, + 2411,5,117,0,0,2411,2412,5,100,0,0,2412,2413,5,101,0,0,2413,2414, + 5,110,0,0,2414,2415,5,116,0,0,2415,2417,5,116,0,0,2416,2396,1,0, + 0,0,2416,2401,1,0,0,0,2417,374,1,0,0,0,2418,2419,5,112,0,0,2419, + 2420,5,101,0,0,2420,2421,5,114,0,0,2421,2422,5,108,0,0,2422,2423, + 5,105,0,0,2423,2437,5,110,0,0,2424,2425,5,112,0,0,2425,2426,5,101, + 0,0,2426,2427,5,114,0,0,2427,2428,5,108,0,0,2428,2429,5,105,0,0, + 2429,2430,5,110,0,0,2430,2431,5,95,0,0,2431,2432,5,110,0,0,2432, + 2433,5,111,0,0,2433,2434,5,105,0,0,2434,2435,5,115,0,0,2435,2437, + 5,101,0,0,2436,2418,1,0,0,0,2436,2424,1,0,0,0,2437,376,1,0,0,0,2438, 2439,5,99,0,0,2439,2440,5,101,0,0,2440,2441,5,108,0,0,2441,2442, 5,108,0,0,2442,2443,5,117,0,0,2443,2444,5,108,0,0,2444,2445,5,97, - 0,0,2445,2446,5,114,0,0,2446,2447,5,95,0,0,2447,2448,5,110,0,0,2448, - 2449,5,111,0,0,2449,2450,5,105,0,0,2450,2451,5,115,0,0,2451,2466, - 5,101,0,0,2452,2453,5,118,0,0,2453,2454,5,111,0,0,2454,2455,5,114, - 0,0,2455,2456,5,111,0,0,2456,2457,5,110,0,0,2457,2458,5,111,0,0, - 2458,2459,5,105,0,0,2459,2460,5,95,0,0,2460,2461,5,110,0,0,2461, - 2462,5,111,0,0,2462,2463,5,105,0,0,2463,2464,5,115,0,0,2464,2466, - 5,101,0,0,2465,2417,1,0,0,0,2465,2425,1,0,0,0,2465,2432,1,0,0,0, - 2465,2438,1,0,0,0,2465,2452,1,0,0,0,2466,376,1,0,0,0,2467,2468,5, - 112,0,0,2468,2469,5,108,0,0,2469,2470,5,97,0,0,2470,2471,5,115,0, - 0,2471,2472,5,109,0,0,2472,2496,5,97,0,0,2473,2474,5,116,0,0,2474, - 2475,5,117,0,0,2475,2476,5,114,0,0,2476,2477,5,98,0,0,2477,2478, - 5,117,0,0,2478,2479,5,108,0,0,2479,2480,5,101,0,0,2480,2481,5,110, - 0,0,2481,2482,5,99,0,0,2482,2496,5,101,0,0,2483,2484,5,112,0,0,2484, - 2485,5,108,0,0,2485,2486,5,97,0,0,2486,2487,5,115,0,0,2487,2488, - 5,109,0,0,2488,2489,5,97,0,0,2489,2490,5,95,0,0,2490,2491,5,110, - 0,0,2491,2492,5,111,0,0,2492,2493,5,105,0,0,2493,2494,5,115,0,0, - 2494,2496,5,101,0,0,2495,2467,1,0,0,0,2495,2473,1,0,0,0,2495,2483, - 1,0,0,0,2496,378,1,0,0,0,2497,2498,5,114,0,0,2498,2499,5,105,0,0, - 2499,2500,5,100,0,0,2500,2501,5,103,0,0,2501,2502,5,101,0,0,2502, - 2516,5,100,0,0,2503,2504,5,114,0,0,2504,2505,5,105,0,0,2505,2506, - 5,100,0,0,2506,2507,5,103,0,0,2507,2508,5,101,0,0,2508,2509,5,100, - 0,0,2509,2510,5,95,0,0,2510,2511,5,110,0,0,2511,2512,5,111,0,0,2512, - 2513,5,105,0,0,2513,2514,5,115,0,0,2514,2516,5,101,0,0,2515,2497, - 1,0,0,0,2515,2503,1,0,0,0,2516,380,1,0,0,0,2517,2518,5,100,0,0,2518, - 2519,5,111,0,0,2519,2520,5,109,0,0,2520,2521,5,97,0,0,2521,2522, - 5,105,0,0,2522,2523,5,110,0,0,2523,2524,5,95,0,0,2524,2525,5,119, - 0,0,2525,2526,5,97,0,0,2526,2527,5,114,0,0,2527,2546,5,112,0,0,2528, - 2529,5,100,0,0,2529,2530,5,111,0,0,2530,2531,5,109,0,0,2531,2532, - 5,97,0,0,2532,2533,5,105,0,0,2533,2534,5,110,0,0,2534,2535,5,95, - 0,0,2535,2536,5,119,0,0,2536,2537,5,97,0,0,2537,2538,5,114,0,0,2538, - 2539,5,112,0,0,2539,2540,5,95,0,0,2540,2541,5,110,0,0,2541,2542, - 5,111,0,0,2542,2543,5,105,0,0,2543,2544,5,115,0,0,2544,2546,5,101, - 0,0,2545,2517,1,0,0,0,2545,2528,1,0,0,0,2546,382,1,0,0,0,2547,2548, - 5,43,0,0,2548,384,1,0,0,0,2549,2550,5,45,0,0,2550,386,1,0,0,0,2551, - 2552,5,42,0,0,2552,388,1,0,0,0,2553,2554,5,47,0,0,2554,390,1,0,0, - 0,2555,2556,5,37,0,0,2556,392,1,0,0,0,2557,2558,5,94,0,0,2558,394, - 1,0,0,0,2559,2560,5,60,0,0,2560,2561,5,60,0,0,2561,396,1,0,0,0,2562, - 2563,5,62,0,0,2563,2564,5,62,0,0,2564,398,1,0,0,0,2565,2566,5,62, - 0,0,2566,2567,5,61,0,0,2567,400,1,0,0,0,2568,2569,5,62,0,0,2569, - 402,1,0,0,0,2570,2571,5,60,0,0,2571,2572,5,61,0,0,2572,404,1,0,0, - 0,2573,2574,5,60,0,0,2574,406,1,0,0,0,2575,2576,5,61,0,0,2576,2577, - 5,61,0,0,2577,408,1,0,0,0,2578,2579,5,61,0,0,2579,410,1,0,0,0,2580, - 2581,5,43,0,0,2581,2582,5,61,0,0,2582,412,1,0,0,0,2583,2584,5,45, - 0,0,2584,2585,5,61,0,0,2585,414,1,0,0,0,2586,2587,5,42,0,0,2587, - 2588,5,61,0,0,2588,416,1,0,0,0,2589,2590,5,47,0,0,2590,2591,5,61, - 0,0,2591,418,1,0,0,0,2592,2593,5,37,0,0,2593,2594,5,61,0,0,2594, - 420,1,0,0,0,2595,2596,5,33,0,0,2596,2597,5,61,0,0,2597,422,1,0,0, - 0,2598,2599,5,124,0,0,2599,424,1,0,0,0,2600,2601,5,40,0,0,2601,426, - 1,0,0,0,2602,2603,5,41,0,0,2603,428,1,0,0,0,2604,2605,5,44,0,0,2605, - 430,1,0,0,0,2606,2607,5,59,0,0,2607,432,1,0,0,0,2608,2609,5,45,0, - 0,2609,2610,5,62,0,0,2610,434,1,0,0,0,2611,2612,5,91,0,0,2612,436, - 1,0,0,0,2613,2614,5,93,0,0,2614,438,1,0,0,0,2615,2616,5,63,0,0,2616, - 440,1,0,0,0,2617,2618,5,58,0,0,2618,442,1,0,0,0,2619,2620,5,123, - 0,0,2620,444,1,0,0,0,2621,2622,5,125,0,0,2622,446,1,0,0,0,2623,2625, - 7,0,0,0,2624,2623,1,0,0,0,2625,2626,1,0,0,0,2626,2624,1,0,0,0,2626, - 2627,1,0,0,0,2627,2635,1,0,0,0,2628,2632,5,46,0,0,2629,2631,7,0, - 0,0,2630,2629,1,0,0,0,2631,2634,1,0,0,0,2632,2630,1,0,0,0,2632,2633, - 1,0,0,0,2633,2636,1,0,0,0,2634,2632,1,0,0,0,2635,2628,1,0,0,0,2635, - 2636,1,0,0,0,2636,2644,1,0,0,0,2637,2639,5,46,0,0,2638,2640,7,0, - 0,0,2639,2638,1,0,0,0,2640,2641,1,0,0,0,2641,2639,1,0,0,0,2641,2642, - 1,0,0,0,2642,2644,1,0,0,0,2643,2624,1,0,0,0,2643,2637,1,0,0,0,2644, - 2654,1,0,0,0,2645,2647,7,1,0,0,2646,2648,7,2,0,0,2647,2646,1,0,0, - 0,2647,2648,1,0,0,0,2648,2650,1,0,0,0,2649,2651,7,0,0,0,2650,2649, - 1,0,0,0,2651,2652,1,0,0,0,2652,2650,1,0,0,0,2652,2653,1,0,0,0,2653, - 2655,1,0,0,0,2654,2645,1,0,0,0,2654,2655,1,0,0,0,2655,448,1,0,0, - 0,2656,2657,5,112,0,0,2657,2662,5,105,0,0,2658,2659,5,80,0,0,2659, - 2662,5,73,0,0,2660,2662,7,1,0,0,2661,2656,1,0,0,0,2661,2658,1,0, - 0,0,2661,2660,1,0,0,0,2662,450,1,0,0,0,2663,2669,5,34,0,0,2664,2668, - 8,3,0,0,2665,2666,5,92,0,0,2666,2668,9,0,0,0,2667,2664,1,0,0,0,2667, - 2665,1,0,0,0,2668,2671,1,0,0,0,2669,2667,1,0,0,0,2669,2670,1,0,0, - 0,2670,2672,1,0,0,0,2671,2669,1,0,0,0,2672,2684,5,34,0,0,2673,2679, - 5,39,0,0,2674,2678,8,4,0,0,2675,2676,5,92,0,0,2676,2678,9,0,0,0, - 2677,2674,1,0,0,0,2677,2675,1,0,0,0,2678,2681,1,0,0,0,2679,2677, - 1,0,0,0,2679,2680,1,0,0,0,2680,2682,1,0,0,0,2681,2679,1,0,0,0,2682, - 2684,5,39,0,0,2683,2663,1,0,0,0,2683,2673,1,0,0,0,2684,452,1,0,0, - 0,2685,2689,7,5,0,0,2686,2688,7,6,0,0,2687,2686,1,0,0,0,2688,2691, - 1,0,0,0,2689,2687,1,0,0,0,2689,2690,1,0,0,0,2690,454,1,0,0,0,2691, - 2689,1,0,0,0,2692,2696,5,35,0,0,2693,2695,8,7,0,0,2694,2693,1,0, - 0,0,2695,2698,1,0,0,0,2696,2694,1,0,0,0,2696,2697,1,0,0,0,2697,2699, - 1,0,0,0,2698,2696,1,0,0,0,2699,2700,6,227,0,0,2700,456,1,0,0,0,2701, - 2702,5,47,0,0,2702,2703,5,42,0,0,2703,2707,1,0,0,0,2704,2706,9,0, - 0,0,2705,2704,1,0,0,0,2706,2709,1,0,0,0,2707,2708,1,0,0,0,2707,2705, - 1,0,0,0,2708,2710,1,0,0,0,2709,2707,1,0,0,0,2710,2711,5,42,0,0,2711, - 2712,5,47,0,0,2712,2713,1,0,0,0,2713,2714,6,228,0,0,2714,458,1,0, - 0,0,2715,2717,7,8,0,0,2716,2715,1,0,0,0,2717,2718,1,0,0,0,2718,2716, - 1,0,0,0,2718,2719,1,0,0,0,2719,2720,1,0,0,0,2720,2721,6,229,0,0, - 2721,460,1,0,0,0,72,0,653,668,744,761,779,792,865,882,940,989,1011, - 1028,1049,1064,1091,1122,1138,1209,1259,1279,1300,1347,1371,1394, - 1411,1426,1508,1563,1792,1853,1874,1931,2050,2081,2106,2131,2151, - 2176,2201,2224,2245,2264,2285,2306,2331,2352,2373,2395,2415,2465, - 2495,2515,2545,2626,2632,2635,2641,2643,2647,2652,2654,2661,2667, - 2669,2677,2679,2683,2689,2696,2707,2718,1,6,0,0 + 0,0,2445,2487,5,114,0,0,2446,2447,5,118,0,0,2447,2448,5,111,0,0, + 2448,2449,5,114,0,0,2449,2450,5,111,0,0,2450,2451,5,110,0,0,2451, + 2452,5,111,0,0,2452,2487,5,105,0,0,2453,2454,5,119,0,0,2454,2455, + 5,111,0,0,2455,2456,5,114,0,0,2456,2457,5,108,0,0,2457,2458,5,101, + 0,0,2458,2487,5,121,0,0,2459,2460,5,99,0,0,2460,2461,5,101,0,0,2461, + 2462,5,108,0,0,2462,2463,5,108,0,0,2463,2464,5,117,0,0,2464,2465, + 5,108,0,0,2465,2466,5,97,0,0,2466,2467,5,114,0,0,2467,2468,5,95, + 0,0,2468,2469,5,110,0,0,2469,2470,5,111,0,0,2470,2471,5,105,0,0, + 2471,2472,5,115,0,0,2472,2487,5,101,0,0,2473,2474,5,118,0,0,2474, + 2475,5,111,0,0,2475,2476,5,114,0,0,2476,2477,5,111,0,0,2477,2478, + 5,110,0,0,2478,2479,5,111,0,0,2479,2480,5,105,0,0,2480,2481,5,95, + 0,0,2481,2482,5,110,0,0,2482,2483,5,111,0,0,2483,2484,5,105,0,0, + 2484,2485,5,115,0,0,2485,2487,5,101,0,0,2486,2438,1,0,0,0,2486,2446, + 1,0,0,0,2486,2453,1,0,0,0,2486,2459,1,0,0,0,2486,2473,1,0,0,0,2487, + 378,1,0,0,0,2488,2489,5,112,0,0,2489,2490,5,108,0,0,2490,2491,5, + 97,0,0,2491,2492,5,115,0,0,2492,2493,5,109,0,0,2493,2517,5,97,0, + 0,2494,2495,5,116,0,0,2495,2496,5,117,0,0,2496,2497,5,114,0,0,2497, + 2498,5,98,0,0,2498,2499,5,117,0,0,2499,2500,5,108,0,0,2500,2501, + 5,101,0,0,2501,2502,5,110,0,0,2502,2503,5,99,0,0,2503,2517,5,101, + 0,0,2504,2505,5,112,0,0,2505,2506,5,108,0,0,2506,2507,5,97,0,0,2507, + 2508,5,115,0,0,2508,2509,5,109,0,0,2509,2510,5,97,0,0,2510,2511, + 5,95,0,0,2511,2512,5,110,0,0,2512,2513,5,111,0,0,2513,2514,5,105, + 0,0,2514,2515,5,115,0,0,2515,2517,5,101,0,0,2516,2488,1,0,0,0,2516, + 2494,1,0,0,0,2516,2504,1,0,0,0,2517,380,1,0,0,0,2518,2519,5,114, + 0,0,2519,2520,5,105,0,0,2520,2521,5,100,0,0,2521,2522,5,103,0,0, + 2522,2523,5,101,0,0,2523,2537,5,100,0,0,2524,2525,5,114,0,0,2525, + 2526,5,105,0,0,2526,2527,5,100,0,0,2527,2528,5,103,0,0,2528,2529, + 5,101,0,0,2529,2530,5,100,0,0,2530,2531,5,95,0,0,2531,2532,5,110, + 0,0,2532,2533,5,111,0,0,2533,2534,5,105,0,0,2534,2535,5,115,0,0, + 2535,2537,5,101,0,0,2536,2518,1,0,0,0,2536,2524,1,0,0,0,2537,382, + 1,0,0,0,2538,2539,5,100,0,0,2539,2540,5,111,0,0,2540,2541,5,109, + 0,0,2541,2542,5,97,0,0,2542,2543,5,105,0,0,2543,2544,5,110,0,0,2544, + 2545,5,95,0,0,2545,2546,5,119,0,0,2546,2547,5,97,0,0,2547,2548,5, + 114,0,0,2548,2567,5,112,0,0,2549,2550,5,100,0,0,2550,2551,5,111, + 0,0,2551,2552,5,109,0,0,2552,2553,5,97,0,0,2553,2554,5,105,0,0,2554, + 2555,5,110,0,0,2555,2556,5,95,0,0,2556,2557,5,119,0,0,2557,2558, + 5,97,0,0,2558,2559,5,114,0,0,2559,2560,5,112,0,0,2560,2561,5,95, + 0,0,2561,2562,5,110,0,0,2562,2563,5,111,0,0,2563,2564,5,105,0,0, + 2564,2565,5,115,0,0,2565,2567,5,101,0,0,2566,2538,1,0,0,0,2566,2549, + 1,0,0,0,2567,384,1,0,0,0,2568,2569,5,43,0,0,2569,386,1,0,0,0,2570, + 2571,5,45,0,0,2571,388,1,0,0,0,2572,2573,5,42,0,0,2573,390,1,0,0, + 0,2574,2575,5,47,0,0,2575,392,1,0,0,0,2576,2577,5,37,0,0,2577,394, + 1,0,0,0,2578,2579,5,94,0,0,2579,396,1,0,0,0,2580,2581,5,60,0,0,2581, + 2582,5,60,0,0,2582,398,1,0,0,0,2583,2584,5,62,0,0,2584,2585,5,62, + 0,0,2585,400,1,0,0,0,2586,2587,5,62,0,0,2587,2588,5,61,0,0,2588, + 402,1,0,0,0,2589,2590,5,62,0,0,2590,404,1,0,0,0,2591,2592,5,60,0, + 0,2592,2593,5,61,0,0,2593,406,1,0,0,0,2594,2595,5,60,0,0,2595,408, + 1,0,0,0,2596,2597,5,61,0,0,2597,2598,5,61,0,0,2598,410,1,0,0,0,2599, + 2600,5,61,0,0,2600,412,1,0,0,0,2601,2602,5,43,0,0,2602,2603,5,61, + 0,0,2603,414,1,0,0,0,2604,2605,5,45,0,0,2605,2606,5,61,0,0,2606, + 416,1,0,0,0,2607,2608,5,42,0,0,2608,2609,5,61,0,0,2609,418,1,0,0, + 0,2610,2611,5,47,0,0,2611,2612,5,61,0,0,2612,420,1,0,0,0,2613,2614, + 5,37,0,0,2614,2615,5,61,0,0,2615,422,1,0,0,0,2616,2617,5,33,0,0, + 2617,2618,5,61,0,0,2618,424,1,0,0,0,2619,2620,5,124,0,0,2620,426, + 1,0,0,0,2621,2622,5,40,0,0,2622,428,1,0,0,0,2623,2624,5,41,0,0,2624, + 430,1,0,0,0,2625,2626,5,44,0,0,2626,432,1,0,0,0,2627,2628,5,59,0, + 0,2628,434,1,0,0,0,2629,2630,5,45,0,0,2630,2631,5,62,0,0,2631,436, + 1,0,0,0,2632,2633,5,91,0,0,2633,438,1,0,0,0,2634,2635,5,93,0,0,2635, + 440,1,0,0,0,2636,2637,5,63,0,0,2637,442,1,0,0,0,2638,2639,5,58,0, + 0,2639,444,1,0,0,0,2640,2641,5,123,0,0,2641,446,1,0,0,0,2642,2643, + 5,125,0,0,2643,448,1,0,0,0,2644,2646,7,0,0,0,2645,2644,1,0,0,0,2646, + 2647,1,0,0,0,2647,2645,1,0,0,0,2647,2648,1,0,0,0,2648,2656,1,0,0, + 0,2649,2653,5,46,0,0,2650,2652,7,0,0,0,2651,2650,1,0,0,0,2652,2655, + 1,0,0,0,2653,2651,1,0,0,0,2653,2654,1,0,0,0,2654,2657,1,0,0,0,2655, + 2653,1,0,0,0,2656,2649,1,0,0,0,2656,2657,1,0,0,0,2657,2665,1,0,0, + 0,2658,2660,5,46,0,0,2659,2661,7,0,0,0,2660,2659,1,0,0,0,2661,2662, + 1,0,0,0,2662,2660,1,0,0,0,2662,2663,1,0,0,0,2663,2665,1,0,0,0,2664, + 2645,1,0,0,0,2664,2658,1,0,0,0,2665,2675,1,0,0,0,2666,2668,7,1,0, + 0,2667,2669,7,2,0,0,2668,2667,1,0,0,0,2668,2669,1,0,0,0,2669,2671, + 1,0,0,0,2670,2672,7,0,0,0,2671,2670,1,0,0,0,2672,2673,1,0,0,0,2673, + 2671,1,0,0,0,2673,2674,1,0,0,0,2674,2676,1,0,0,0,2675,2666,1,0,0, + 0,2675,2676,1,0,0,0,2676,450,1,0,0,0,2677,2678,5,112,0,0,2678,2683, + 5,105,0,0,2679,2680,5,80,0,0,2680,2683,5,73,0,0,2681,2683,7,1,0, + 0,2682,2677,1,0,0,0,2682,2679,1,0,0,0,2682,2681,1,0,0,0,2683,452, + 1,0,0,0,2684,2690,5,34,0,0,2685,2689,8,3,0,0,2686,2687,5,92,0,0, + 2687,2689,9,0,0,0,2688,2685,1,0,0,0,2688,2686,1,0,0,0,2689,2692, + 1,0,0,0,2690,2688,1,0,0,0,2690,2691,1,0,0,0,2691,2693,1,0,0,0,2692, + 2690,1,0,0,0,2693,2705,5,34,0,0,2694,2700,5,39,0,0,2695,2699,8,4, + 0,0,2696,2697,5,92,0,0,2697,2699,9,0,0,0,2698,2695,1,0,0,0,2698, + 2696,1,0,0,0,2699,2702,1,0,0,0,2700,2698,1,0,0,0,2700,2701,1,0,0, + 0,2701,2703,1,0,0,0,2702,2700,1,0,0,0,2703,2705,5,39,0,0,2704,2684, + 1,0,0,0,2704,2694,1,0,0,0,2705,454,1,0,0,0,2706,2710,7,5,0,0,2707, + 2709,7,6,0,0,2708,2707,1,0,0,0,2709,2712,1,0,0,0,2710,2708,1,0,0, + 0,2710,2711,1,0,0,0,2711,456,1,0,0,0,2712,2710,1,0,0,0,2713,2717, + 5,35,0,0,2714,2716,8,7,0,0,2715,2714,1,0,0,0,2716,2719,1,0,0,0,2717, + 2715,1,0,0,0,2717,2718,1,0,0,0,2718,2720,1,0,0,0,2719,2717,1,0,0, + 0,2720,2721,6,228,0,0,2721,458,1,0,0,0,2722,2723,5,47,0,0,2723,2724, + 5,42,0,0,2724,2728,1,0,0,0,2725,2727,9,0,0,0,2726,2725,1,0,0,0,2727, + 2730,1,0,0,0,2728,2729,1,0,0,0,2728,2726,1,0,0,0,2729,2731,1,0,0, + 0,2730,2728,1,0,0,0,2731,2732,5,42,0,0,2732,2733,5,47,0,0,2733,2734, + 1,0,0,0,2734,2735,6,229,0,0,2735,460,1,0,0,0,2736,2738,7,8,0,0,2737, + 2736,1,0,0,0,2738,2739,1,0,0,0,2739,2737,1,0,0,0,2739,2740,1,0,0, + 0,2740,2741,1,0,0,0,2741,2742,6,230,0,0,2742,462,1,0,0,0,73,0,655, + 670,746,763,781,794,867,884,942,991,1013,1030,1051,1066,1093,1124, + 1140,1211,1261,1281,1302,1349,1373,1396,1413,1428,1510,1565,1794, + 1855,1876,1933,2052,2083,2102,2127,2152,2172,2197,2222,2245,2266, + 2285,2306,2327,2352,2373,2394,2416,2436,2486,2516,2536,2566,2647, + 2653,2656,2662,2664,2668,2673,2675,2682,2688,2690,2698,2700,2704, + 2710,2717,2728,2739,1,6,0,0 ] class MathExprLexer(Lexer): @@ -1248,64 +1257,65 @@ class MathExprLexer(Lexer): ENTROPY = 170 CROP = 171 NONE = 172 - NOISE = 173 - RAND = 174 - CAUCHY = 175 - EXPONENTIAL = 176 - LOGNORMAL = 177 - BERNOULLI = 178 - POISSON = 179 - GAMMADIST = 180 - BETADIST = 181 - LAPLACEDIST = 182 - GUMBELDIST = 183 - WEIBULLDIST = 184 - CHI2DIST = 185 - STUDENTTDIST = 186 - PERLIN = 187 - CELLULAR = 188 - PLASMA = 189 - RIDGED = 190 - DOMAIN_WARP = 191 - PLUS = 192 - MINUS = 193 - MULT = 194 - DIV = 195 - MOD = 196 - POW = 197 - LSHIFT = 198 - RSHIFT = 199 - GE = 200 - GT = 201 - LE = 202 - LT = 203 - EQ = 204 - EQUEALS = 205 - PLUS_EQ = 206 - MINUS_EQ = 207 - MULT_EQ = 208 - DIV_EQ = 209 - MOD_EQ = 210 - NE = 211 - PIPE = 212 - LPAREN = 213 - RPAREN = 214 - COMMA = 215 - SEMICOLON = 216 - ARROW = 217 - LBRACKET = 218 - RBRACKET = 219 - QUESTION = 220 - COLON = 221 - LBRACE = 222 - RBRACE = 223 - NUMBER = 224 - CONSTANT = 225 - STRING = 226 - VARIABLE = 227 - SL_COMMENT = 228 - ML_COMMENT = 229 - WS = 230 + COORDS = 173 + NOISE = 174 + RAND = 175 + CAUCHY = 176 + EXPONENTIAL = 177 + LOGNORMAL = 178 + BERNOULLI = 179 + POISSON = 180 + GAMMADIST = 181 + BETADIST = 182 + LAPLACEDIST = 183 + GUMBELDIST = 184 + WEIBULLDIST = 185 + CHI2DIST = 186 + STUDENTTDIST = 187 + PERLIN = 188 + CELLULAR = 189 + PLASMA = 190 + RIDGED = 191 + DOMAIN_WARP = 192 + PLUS = 193 + MINUS = 194 + MULT = 195 + DIV = 196 + MOD = 197 + POW = 198 + LSHIFT = 199 + RSHIFT = 200 + GE = 201 + GT = 202 + LE = 203 + LT = 204 + EQ = 205 + EQUEALS = 206 + PLUS_EQ = 207 + MINUS_EQ = 208 + MULT_EQ = 209 + DIV_EQ = 210 + MOD_EQ = 211 + NE = 212 + PIPE = 213 + LPAREN = 214 + RPAREN = 215 + COMMA = 216 + SEMICOLON = 217 + ARROW = 218 + LBRACKET = 219 + RBRACKET = 220 + QUESTION = 221 + COLON = 222 + LBRACE = 223 + RBRACE = 224 + NUMBER = 225 + CONSTANT = 226 + STRING = 227 + VARIABLE = 228 + SL_COMMENT = 229 + ML_COMMENT = 230 + WS = 231 channelNames = [ u"DEFAULT_TOKEN_CHANNEL", u"HIDDEN" ] @@ -1369,16 +1379,17 @@ class MathExprLexer(Lexer): "FOR", "IN", "BREAK", "CONTINUE", "RETURN", "TIMESTAMP", "SORT", "ARGSORT", "ARGMIN", "ARGMAX", "SOFTMAX", "SOFTMIN", "UNIQUE", "FLIP", "STARTSWITH", "ENDSWITH", "SQUEEZE", "UNSQUEEZE", "ROLL", - "COV", "CORR", "ENTROPY", "CROP", "NONE", "NOISE", "RAND", "CAUCHY", - "EXPONENTIAL", "LOGNORMAL", "BERNOULLI", "POISSON", "GAMMADIST", - "BETADIST", "LAPLACEDIST", "GUMBELDIST", "WEIBULLDIST", "CHI2DIST", - "STUDENTTDIST", "PERLIN", "CELLULAR", "PLASMA", "RIDGED", "DOMAIN_WARP", - "PLUS", "MINUS", "MULT", "DIV", "MOD", "POW", "LSHIFT", "RSHIFT", - "GE", "GT", "LE", "LT", "EQ", "EQUEALS", "PLUS_EQ", "MINUS_EQ", - "MULT_EQ", "DIV_EQ", "MOD_EQ", "NE", "PIPE", "LPAREN", "RPAREN", - "COMMA", "SEMICOLON", "ARROW", "LBRACKET", "RBRACKET", "QUESTION", - "COLON", "LBRACE", "RBRACE", "NUMBER", "CONSTANT", "STRING", - "VARIABLE", "SL_COMMENT", "ML_COMMENT", "WS" ] + "COV", "CORR", "ENTROPY", "CROP", "NONE", "COORDS", "NOISE", + "RAND", "CAUCHY", "EXPONENTIAL", "LOGNORMAL", "BERNOULLI", "POISSON", + "GAMMADIST", "BETADIST", "LAPLACEDIST", "GUMBELDIST", "WEIBULLDIST", + "CHI2DIST", "STUDENTTDIST", "PERLIN", "CELLULAR", "PLASMA", + "RIDGED", "DOMAIN_WARP", "PLUS", "MINUS", "MULT", "DIV", "MOD", + "POW", "LSHIFT", "RSHIFT", "GE", "GT", "LE", "LT", "EQ", "EQUEALS", + "PLUS_EQ", "MINUS_EQ", "MULT_EQ", "DIV_EQ", "MOD_EQ", "NE", + "PIPE", "LPAREN", "RPAREN", "COMMA", "SEMICOLON", "ARROW", "LBRACKET", + "RBRACKET", "QUESTION", "COLON", "LBRACE", "RBRACE", "NUMBER", + "CONSTANT", "STRING", "VARIABLE", "SL_COMMENT", "ML_COMMENT", + "WS" ] ruleNames = [ "SIN", "COS", "TAN", "ASIN", "ACOS", "ATAN", "ATAN2", "SINH", "COSH", "TANH", "ASINH", "ACOSH", "ATANH", "ABS", @@ -1408,17 +1419,18 @@ class MathExprLexer(Lexer): "IN", "BREAK", "CONTINUE", "RETURN", "TIMESTAMP", "SORT", "ARGSORT", "ARGMIN", "ARGMAX", "SOFTMAX", "SOFTMIN", "UNIQUE", "FLIP", "STARTSWITH", "ENDSWITH", "SQUEEZE", "UNSQUEEZE", - "ROLL", "COV", "CORR", "ENTROPY", "CROP", "NONE", "NOISE", - "RAND", "CAUCHY", "EXPONENTIAL", "LOGNORMAL", "BERNOULLI", - "POISSON", "GAMMADIST", "BETADIST", "LAPLACEDIST", "GUMBELDIST", - "WEIBULLDIST", "CHI2DIST", "STUDENTTDIST", "PERLIN", "CELLULAR", - "PLASMA", "RIDGED", "DOMAIN_WARP", "PLUS", "MINUS", "MULT", - "DIV", "MOD", "POW", "LSHIFT", "RSHIFT", "GE", "GT", "LE", - "LT", "EQ", "EQUEALS", "PLUS_EQ", "MINUS_EQ", "MULT_EQ", - "DIV_EQ", "MOD_EQ", "NE", "PIPE", "LPAREN", "RPAREN", - "COMMA", "SEMICOLON", "ARROW", "LBRACKET", "RBRACKET", - "QUESTION", "COLON", "LBRACE", "RBRACE", "NUMBER", "CONSTANT", - "STRING", "VARIABLE", "SL_COMMENT", "ML_COMMENT", "WS" ] + "ROLL", "COV", "CORR", "ENTROPY", "CROP", "NONE", "COORDS", + "NOISE", "RAND", "CAUCHY", "EXPONENTIAL", "LOGNORMAL", + "BERNOULLI", "POISSON", "GAMMADIST", "BETADIST", "LAPLACEDIST", + "GUMBELDIST", "WEIBULLDIST", "CHI2DIST", "STUDENTTDIST", + "PERLIN", "CELLULAR", "PLASMA", "RIDGED", "DOMAIN_WARP", + "PLUS", "MINUS", "MULT", "DIV", "MOD", "POW", "LSHIFT", + "RSHIFT", "GE", "GT", "LE", "LT", "EQ", "EQUEALS", "PLUS_EQ", + "MINUS_EQ", "MULT_EQ", "DIV_EQ", "MOD_EQ", "NE", "PIPE", + "LPAREN", "RPAREN", "COMMA", "SEMICOLON", "ARROW", "LBRACKET", + "RBRACKET", "QUESTION", "COLON", "LBRACE", "RBRACE", "NUMBER", + "CONSTANT", "STRING", "VARIABLE", "SL_COMMENT", "ML_COMMENT", + "WS" ] grammarFileName = "MathExpr.g4" diff --git a/more_math/Parser/grammer/MathExprLexer.tokens b/more_math/Parser/grammer/MathExprLexer.tokens index 43ef2e1..4a3a884 100644 --- a/more_math/Parser/grammer/MathExprLexer.tokens +++ b/more_math/Parser/grammer/MathExprLexer.tokens @@ -170,64 +170,65 @@ CORR=169 ENTROPY=170 CROP=171 NONE=172 -NOISE=173 -RAND=174 -CAUCHY=175 -EXPONENTIAL=176 -LOGNORMAL=177 -BERNOULLI=178 -POISSON=179 -GAMMADIST=180 -BETADIST=181 -LAPLACEDIST=182 -GUMBELDIST=183 -WEIBULLDIST=184 -CHI2DIST=185 -STUDENTTDIST=186 -PERLIN=187 -CELLULAR=188 -PLASMA=189 -RIDGED=190 -DOMAIN_WARP=191 -PLUS=192 -MINUS=193 -MULT=194 -DIV=195 -MOD=196 -POW=197 -LSHIFT=198 -RSHIFT=199 -GE=200 -GT=201 -LE=202 -LT=203 -EQ=204 -EQUEALS=205 -PLUS_EQ=206 -MINUS_EQ=207 -MULT_EQ=208 -DIV_EQ=209 -MOD_EQ=210 -NE=211 -PIPE=212 -LPAREN=213 -RPAREN=214 -COMMA=215 -SEMICOLON=216 -ARROW=217 -LBRACKET=218 -RBRACKET=219 -QUESTION=220 -COLON=221 -LBRACE=222 -RBRACE=223 -NUMBER=224 -CONSTANT=225 -STRING=226 -VARIABLE=227 -SL_COMMENT=228 -ML_COMMENT=229 -WS=230 +COORDS=173 +NOISE=174 +RAND=175 +CAUCHY=176 +EXPONENTIAL=177 +LOGNORMAL=178 +BERNOULLI=179 +POISSON=180 +GAMMADIST=181 +BETADIST=182 +LAPLACEDIST=183 +GUMBELDIST=184 +WEIBULLDIST=185 +CHI2DIST=186 +STUDENTTDIST=187 +PERLIN=188 +CELLULAR=189 +PLASMA=190 +RIDGED=191 +DOMAIN_WARP=192 +PLUS=193 +MINUS=194 +MULT=195 +DIV=196 +MOD=197 +POW=198 +LSHIFT=199 +RSHIFT=200 +GE=201 +GT=202 +LE=203 +LT=204 +EQ=205 +EQUEALS=206 +PLUS_EQ=207 +MINUS_EQ=208 +MULT_EQ=209 +DIV_EQ=210 +MOD_EQ=211 +NE=212 +PIPE=213 +LPAREN=214 +RPAREN=215 +COMMA=216 +SEMICOLON=217 +ARROW=218 +LBRACKET=219 +RBRACKET=220 +QUESTION=221 +COLON=222 +LBRACE=223 +RBRACE=224 +NUMBER=225 +CONSTANT=226 +STRING=227 +VARIABLE=228 +SL_COMMENT=229 +ML_COMMENT=230 +WS=231 'sin'=1 'cos'=2 'tan'=3 @@ -366,35 +367,35 @@ WS=230 'cov'=168 'entropy'=170 'crop'=171 -'+'=192 -'-'=193 -'*'=194 -'/'=195 -'%'=196 -'^'=197 -'<<'=198 -'>>'=199 -'>='=200 -'>'=201 -'<='=202 -'<'=203 -'=='=204 -'='=205 -'+='=206 -'-='=207 -'*='=208 -'/='=209 -'%='=210 -'!='=211 -'|'=212 -'('=213 -')'=214 -','=215 -';'=216 -'->'=217 -'['=218 -']'=219 -'?'=220 -':'=221 -'{'=222 -'}'=223 +'+'=193 +'-'=194 +'*'=195 +'/'=196 +'%'=197 +'^'=198 +'<<'=199 +'>>'=200 +'>='=201 +'>'=202 +'<='=203 +'<'=204 +'=='=205 +'='=206 +'+='=207 +'-='=208 +'*='=209 +'/='=210 +'%='=211 +'!='=212 +'|'=213 +'('=214 +')'=215 +','=216 +';'=217 +'->'=218 +'['=219 +']'=220 +'?'=221 +':'=222 +'{'=223 +'}'=224 diff --git a/more_math/Parser/grammer/MathExprListener.py b/more_math/Parser/grammer/MathExprListener.py index c560cf7..f6b46b8 100644 --- a/more_math/Parser/grammer/MathExprListener.py +++ b/more_math/Parser/grammer/MathExprListener.py @@ -1934,6 +1934,15 @@ class MathExprListener(ParseTreeListener): pass + # Enter a parse tree produced by MathExprParser#CoordsFunc. + def enterCoordsFunc(self, ctx:MathExprParser.CoordsFuncContext): + pass + + # Exit a parse tree produced by MathExprParser#CoordsFunc. + def exitCoordsFunc(self, ctx:MathExprParser.CoordsFuncContext): + pass + + # Enter a parse tree produced by MathExprParser#SwapFunc. def enterSwapFunc(self, ctx:MathExprParser.SwapFuncContext): pass diff --git a/more_math/Parser/grammer/MathExprParser.py b/more_math/Parser/grammer/MathExprParser.py index 0987d18..fb392e4 100644 --- a/more_math/Parser/grammer/MathExprParser.py +++ b/more_math/Parser/grammer/MathExprParser.py @@ -10,7 +10,7 @@ else: def serializedATN(): return [ - 4,1,230,1876,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6, + 4,1,231,1887,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6, 7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7, 13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2, 20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7, @@ -123,271 +123,272 @@ def serializedATN(): 1,26,1,26,3,26,1384,8,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26, 1,26,1,26,1,26,3,26,1397,8,26,1,26,1,26,3,26,1401,8,26,1,26,1,26, 3,26,1405,8,26,1,26,1,26,3,26,1409,8,26,1,26,1,26,3,26,1413,8,26, - 1,26,1,26,3,26,1417,8,26,1,26,1,26,3,26,1421,8,26,1,27,1,27,1,27, + 1,26,1,26,3,26,1417,8,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26, + 1,26,3,26,1428,8,26,1,26,1,26,3,26,1432,8,26,1,27,1,27,1,27,1,27, 1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27, 1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27, 1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27, - 1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27, - 3,27,1478,8,27,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28, + 1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,3,27, + 1489,8,27,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28, 1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28, - 1,28,3,28,1504,8,28,3,28,1506,8,28,3,28,1508,8,28,1,28,1,28,3,28, - 1512,8,28,1,29,1,29,1,29,1,29,1,29,5,29,1519,8,29,10,29,12,29,1522, - 9,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,5,29,1531,8,29,10,29,12, - 29,1534,9,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,4,29,1543,8,29,11, - 29,12,29,1544,1,29,1,29,1,29,1,29,1,29,1,29,1,29,4,29,1554,8,29, - 11,29,12,29,1555,1,29,1,29,1,29,1,29,1,29,1,29,1,29,4,29,1565,8, - 29,11,29,12,29,1566,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29, - 1,29,1,29,1,29,1,29,1,29,3,29,1583,8,29,1,29,1,29,1,29,1,29,1,29, - 1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,4,29,1599,8,29,11,29, - 12,29,1600,1,29,1,29,3,29,1605,8,29,1,30,1,30,1,30,1,30,1,30,3,30, - 1612,8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1621,8,30,1,30, - 1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1632,8,30,1,30,1,30, - 1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1643,8,30,1,30,1,30,1,30, - 1,30,1,30,1,30,1,30,1,30,1,30,3,30,1654,8,30,1,30,1,30,1,30,1,30, - 1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1667,8,30,1,30,1,30,1,30, - 1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1680,8,30,1,30,1,30, - 1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1693,8,30,1,30, - 1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1706,8,30, - 1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1719, + 3,28,1515,8,28,3,28,1517,8,28,3,28,1519,8,28,1,28,1,28,3,28,1523, + 8,28,1,29,1,29,1,29,1,29,1,29,5,29,1530,8,29,10,29,12,29,1533,9, + 29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,5,29,1542,8,29,10,29,12,29, + 1545,9,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,4,29,1554,8,29,11,29, + 12,29,1555,1,29,1,29,1,29,1,29,1,29,1,29,1,29,4,29,1565,8,29,11, + 29,12,29,1566,1,29,1,29,1,29,1,29,1,29,1,29,1,29,4,29,1576,8,29, + 11,29,12,29,1577,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1, + 29,1,29,1,29,1,29,1,29,3,29,1594,8,29,1,29,1,29,1,29,1,29,1,29,1, + 29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,4,29,1610,8,29,11,29, + 12,29,1611,1,29,1,29,3,29,1616,8,29,1,30,1,30,1,30,1,30,1,30,3,30, + 1623,8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1632,8,30,1,30, + 1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1643,8,30,1,30,1,30, + 1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1654,8,30,1,30,1,30,1,30, + 1,30,1,30,1,30,1,30,1,30,1,30,3,30,1665,8,30,1,30,1,30,1,30,1,30, + 1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1678,8,30,1,30,1,30,1,30, + 1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1691,8,30,1,30,1,30, + 1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1704,8,30,1,30, + 1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1717,8,30, + 1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1730, 8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30, - 1732,8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30, - 3,30,1745,8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30, - 1756,8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1767, - 8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1778,8,30, - 1,30,1,30,3,30,1782,8,30,1,30,1,30,3,30,1786,8,30,1,30,1,30,1,30, - 1,30,1,30,1,30,1,30,1,30,1,30,3,30,1797,8,30,1,30,1,30,3,30,1801, - 8,30,1,30,1,30,3,30,1805,8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30, - 1,30,1,30,3,30,1816,8,30,1,30,1,30,3,30,1820,8,30,1,30,1,30,3,30, - 1824,8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1835, - 8,30,1,30,1,30,3,30,1839,8,30,1,30,1,30,3,30,1843,8,30,1,30,1,30, - 1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1858, - 8,30,1,30,1,30,3,30,1862,8,30,1,30,1,30,3,30,1866,8,30,1,30,1,30, - 3,30,1870,8,30,1,30,1,30,3,30,1874,8,30,1,30,0,5,28,30,32,34,40, + 1743,8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30, + 3,30,1756,8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30, + 1767,8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1778, + 8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1789,8,30, + 1,30,1,30,3,30,1793,8,30,1,30,1,30,3,30,1797,8,30,1,30,1,30,1,30, + 1,30,1,30,1,30,1,30,1,30,1,30,3,30,1808,8,30,1,30,1,30,3,30,1812, + 8,30,1,30,1,30,3,30,1816,8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30, + 1,30,1,30,3,30,1827,8,30,1,30,1,30,3,30,1831,8,30,1,30,1,30,3,30, + 1835,8,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1846, + 8,30,1,30,1,30,3,30,1850,8,30,1,30,1,30,3,30,1854,8,30,1,30,1,30, + 1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1869, + 8,30,1,30,1,30,3,30,1873,8,30,1,30,1,30,3,30,1877,8,30,1,30,1,30, + 3,30,1881,8,30,1,30,1,30,3,30,1885,8,30,1,30,0,5,28,30,32,34,40, 31,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42, - 44,46,48,50,52,54,56,58,60,0,1,1,0,205,210,2164,0,67,1,0,0,0,2,76, + 44,46,48,50,52,54,56,58,60,0,1,1,0,206,211,2177,0,67,1,0,0,0,2,76, 1,0,0,0,4,89,1,0,0,0,6,110,1,0,0,0,8,129,1,0,0,0,10,131,1,0,0,0, 12,140,1,0,0,0,14,146,1,0,0,0,16,154,1,0,0,0,18,163,1,0,0,0,20,166, 1,0,0,0,22,169,1,0,0,0,24,178,1,0,0,0,26,180,1,0,0,0,28,186,1,0, 0,0,30,212,1,0,0,0,32,226,1,0,0,0,34,243,1,0,0,0,36,262,1,0,0,0, 38,269,1,0,0,0,40,271,1,0,0,0,42,343,1,0,0,0,44,345,1,0,0,0,46,353, - 1,0,0,0,48,810,1,0,0,0,50,1164,1,0,0,0,52,1420,1,0,0,0,54,1477,1, - 0,0,0,56,1511,1,0,0,0,58,1604,1,0,0,0,60,1873,1,0,0,0,62,66,3,2, + 1,0,0,0,48,810,1,0,0,0,50,1164,1,0,0,0,52,1431,1,0,0,0,54,1488,1, + 0,0,0,56,1522,1,0,0,0,58,1615,1,0,0,0,60,1884,1,0,0,0,62,66,3,2, 1,0,63,66,3,4,2,0,64,66,3,8,4,0,65,62,1,0,0,0,65,63,1,0,0,0,65,64, 1,0,0,0,66,69,1,0,0,0,67,65,1,0,0,0,67,68,1,0,0,0,68,70,1,0,0,0, - 69,67,1,0,0,0,70,72,3,24,12,0,71,73,5,216,0,0,72,71,1,0,0,0,72,73, - 1,0,0,0,73,74,1,0,0,0,74,75,5,0,0,1,75,1,1,0,0,0,76,77,5,227,0,0, - 77,79,5,213,0,0,78,80,3,6,3,0,79,78,1,0,0,0,79,80,1,0,0,0,80,81, - 1,0,0,0,81,82,5,214,0,0,82,85,5,217,0,0,83,86,3,16,8,0,84,86,3,24, - 12,0,85,83,1,0,0,0,85,84,1,0,0,0,86,87,1,0,0,0,87,88,5,216,0,0,88, - 3,1,0,0,0,89,103,5,227,0,0,90,91,5,218,0,0,91,96,3,24,12,0,92,93, - 5,215,0,0,93,95,3,24,12,0,94,92,1,0,0,0,95,98,1,0,0,0,96,94,1,0, - 0,0,96,97,1,0,0,0,97,99,1,0,0,0,98,96,1,0,0,0,99,100,5,219,0,0,100, + 69,67,1,0,0,0,70,72,3,24,12,0,71,73,5,217,0,0,72,71,1,0,0,0,72,73, + 1,0,0,0,73,74,1,0,0,0,74,75,5,0,0,1,75,1,1,0,0,0,76,77,5,228,0,0, + 77,79,5,214,0,0,78,80,3,6,3,0,79,78,1,0,0,0,79,80,1,0,0,0,80,81, + 1,0,0,0,81,82,5,215,0,0,82,85,5,218,0,0,83,86,3,16,8,0,84,86,3,24, + 12,0,85,83,1,0,0,0,85,84,1,0,0,0,86,87,1,0,0,0,87,88,5,217,0,0,88, + 3,1,0,0,0,89,103,5,228,0,0,90,91,5,219,0,0,91,96,3,24,12,0,92,93, + 5,216,0,0,93,95,3,24,12,0,94,92,1,0,0,0,95,98,1,0,0,0,96,94,1,0, + 0,0,96,97,1,0,0,0,97,99,1,0,0,0,98,96,1,0,0,0,99,100,5,220,0,0,100, 102,1,0,0,0,101,90,1,0,0,0,102,105,1,0,0,0,103,101,1,0,0,0,103,104, 1,0,0,0,104,106,1,0,0,0,105,103,1,0,0,0,106,107,7,0,0,0,107,108, - 3,24,12,0,108,109,5,216,0,0,109,5,1,0,0,0,110,115,5,227,0,0,111, - 112,5,215,0,0,112,114,5,227,0,0,113,111,1,0,0,0,114,117,1,0,0,0, + 3,24,12,0,108,109,5,217,0,0,109,5,1,0,0,0,110,115,5,228,0,0,111, + 112,5,216,0,0,112,114,5,228,0,0,113,111,1,0,0,0,114,117,1,0,0,0, 115,113,1,0,0,0,115,116,1,0,0,0,116,7,1,0,0,0,117,115,1,0,0,0,118, 130,3,10,5,0,119,130,3,12,6,0,120,130,3,16,8,0,121,130,3,18,9,0, 122,130,3,20,10,0,123,130,3,22,11,0,124,130,3,4,2,0,125,130,3,14, - 7,0,126,127,3,24,12,0,127,128,5,216,0,0,128,130,1,0,0,0,129,118, + 7,0,126,127,3,24,12,0,127,128,5,217,0,0,128,130,1,0,0,0,129,118, 1,0,0,0,129,119,1,0,0,0,129,120,1,0,0,0,129,121,1,0,0,0,129,122, 1,0,0,0,129,123,1,0,0,0,129,124,1,0,0,0,129,125,1,0,0,0,129,126, - 1,0,0,0,130,9,1,0,0,0,131,132,5,146,0,0,132,133,5,213,0,0,133,134, - 3,24,12,0,134,135,5,214,0,0,135,138,3,8,4,0,136,137,5,147,0,0,137, + 1,0,0,0,130,9,1,0,0,0,131,132,5,146,0,0,132,133,5,214,0,0,133,134, + 3,24,12,0,134,135,5,215,0,0,135,138,3,8,4,0,136,137,5,147,0,0,137, 139,3,8,4,0,138,136,1,0,0,0,138,139,1,0,0,0,139,11,1,0,0,0,140,141, - 5,148,0,0,141,142,5,213,0,0,142,143,3,24,12,0,143,144,5,214,0,0, - 144,145,3,8,4,0,145,13,1,0,0,0,146,147,5,149,0,0,147,148,5,213,0, - 0,148,149,5,227,0,0,149,150,5,150,0,0,150,151,3,24,12,0,151,152, - 5,214,0,0,152,153,3,8,4,0,153,15,1,0,0,0,154,158,5,222,0,0,155,157, + 5,148,0,0,141,142,5,214,0,0,142,143,3,24,12,0,143,144,5,215,0,0, + 144,145,3,8,4,0,145,13,1,0,0,0,146,147,5,149,0,0,147,148,5,214,0, + 0,148,149,5,228,0,0,149,150,5,150,0,0,150,151,3,24,12,0,151,152, + 5,215,0,0,152,153,3,8,4,0,153,15,1,0,0,0,154,158,5,223,0,0,155,157, 3,8,4,0,156,155,1,0,0,0,157,160,1,0,0,0,158,156,1,0,0,0,158,159, - 1,0,0,0,159,161,1,0,0,0,160,158,1,0,0,0,161,162,5,223,0,0,162,17, - 1,0,0,0,163,164,5,151,0,0,164,165,5,216,0,0,165,19,1,0,0,0,166,167, - 5,152,0,0,167,168,5,216,0,0,168,21,1,0,0,0,169,171,5,153,0,0,170, + 1,0,0,0,159,161,1,0,0,0,160,158,1,0,0,0,161,162,5,224,0,0,162,17, + 1,0,0,0,163,164,5,151,0,0,164,165,5,217,0,0,165,19,1,0,0,0,166,167, + 5,152,0,0,167,168,5,217,0,0,168,21,1,0,0,0,169,171,5,153,0,0,170, 172,3,24,12,0,171,170,1,0,0,0,171,172,1,0,0,0,172,173,1,0,0,0,173, - 174,5,216,0,0,174,23,1,0,0,0,175,179,3,26,13,0,176,179,3,42,21,0, + 174,5,217,0,0,174,23,1,0,0,0,175,179,3,26,13,0,176,179,3,42,21,0, 177,179,3,28,14,0,178,175,1,0,0,0,178,176,1,0,0,0,178,177,1,0,0, - 0,179,25,1,0,0,0,180,181,3,28,14,0,181,182,5,220,0,0,182,183,3,24, - 12,0,183,184,5,221,0,0,184,185,3,24,12,0,185,27,1,0,0,0,186,187, + 0,179,25,1,0,0,0,180,181,3,28,14,0,181,182,5,221,0,0,182,183,3,24, + 12,0,183,184,5,222,0,0,184,185,3,24,12,0,185,27,1,0,0,0,186,187, 6,14,-1,0,187,188,3,30,15,0,188,209,1,0,0,0,189,190,10,7,0,0,190, - 191,5,201,0,0,191,208,3,30,15,0,192,193,10,6,0,0,193,194,5,200,0, - 0,194,208,3,30,15,0,195,196,10,5,0,0,196,197,5,203,0,0,197,208,3, - 30,15,0,198,199,10,4,0,0,199,200,5,202,0,0,200,208,3,30,15,0,201, - 202,10,3,0,0,202,203,5,204,0,0,203,208,3,30,15,0,204,205,10,2,0, - 0,205,206,5,211,0,0,206,208,3,30,15,0,207,189,1,0,0,0,207,192,1, + 191,5,202,0,0,191,208,3,30,15,0,192,193,10,6,0,0,193,194,5,201,0, + 0,194,208,3,30,15,0,195,196,10,5,0,0,196,197,5,204,0,0,197,208,3, + 30,15,0,198,199,10,4,0,0,199,200,5,203,0,0,200,208,3,30,15,0,201, + 202,10,3,0,0,202,203,5,205,0,0,203,208,3,30,15,0,204,205,10,2,0, + 0,205,206,5,212,0,0,206,208,3,30,15,0,207,189,1,0,0,0,207,192,1, 0,0,0,207,195,1,0,0,0,207,198,1,0,0,0,207,201,1,0,0,0,207,204,1, 0,0,0,208,211,1,0,0,0,209,207,1,0,0,0,209,210,1,0,0,0,210,29,1,0, 0,0,211,209,1,0,0,0,212,213,6,15,-1,0,213,214,3,32,16,0,214,223, - 1,0,0,0,215,216,10,3,0,0,216,217,5,192,0,0,217,222,3,32,16,0,218, - 219,10,2,0,0,219,220,5,193,0,0,220,222,3,32,16,0,221,215,1,0,0,0, + 1,0,0,0,215,216,10,3,0,0,216,217,5,193,0,0,217,222,3,32,16,0,218, + 219,10,2,0,0,219,220,5,194,0,0,220,222,3,32,16,0,221,215,1,0,0,0, 221,218,1,0,0,0,222,225,1,0,0,0,223,221,1,0,0,0,223,224,1,0,0,0, 224,31,1,0,0,0,225,223,1,0,0,0,226,227,6,16,-1,0,227,228,3,34,17, - 0,228,240,1,0,0,0,229,230,10,4,0,0,230,231,5,194,0,0,231,239,3,34, - 17,0,232,233,10,3,0,0,233,234,5,195,0,0,234,239,3,34,17,0,235,236, - 10,2,0,0,236,237,5,196,0,0,237,239,3,34,17,0,238,229,1,0,0,0,238, + 0,228,240,1,0,0,0,229,230,10,4,0,0,230,231,5,195,0,0,231,239,3,34, + 17,0,232,233,10,3,0,0,233,234,5,196,0,0,234,239,3,34,17,0,235,236, + 10,2,0,0,236,237,5,197,0,0,237,239,3,34,17,0,238,229,1,0,0,0,238, 232,1,0,0,0,238,235,1,0,0,0,239,242,1,0,0,0,240,238,1,0,0,0,240, 241,1,0,0,0,241,33,1,0,0,0,242,240,1,0,0,0,243,244,6,17,-1,0,244, - 245,3,36,18,0,245,254,1,0,0,0,246,247,10,3,0,0,247,248,5,198,0,0, - 248,253,3,36,18,0,249,250,10,2,0,0,250,251,5,199,0,0,251,253,3,36, + 245,3,36,18,0,245,254,1,0,0,0,246,247,10,3,0,0,247,248,5,199,0,0, + 248,253,3,36,18,0,249,250,10,2,0,0,250,251,5,200,0,0,251,253,3,36, 18,0,252,246,1,0,0,0,252,249,1,0,0,0,253,256,1,0,0,0,254,252,1,0, 0,0,254,255,1,0,0,0,255,35,1,0,0,0,256,254,1,0,0,0,257,258,3,38, - 19,0,258,259,5,197,0,0,259,260,3,36,18,0,260,263,1,0,0,0,261,263, + 19,0,258,259,5,198,0,0,259,260,3,36,18,0,260,263,1,0,0,0,261,263, 3,38,19,0,262,257,1,0,0,0,262,261,1,0,0,0,263,37,1,0,0,0,264,265, - 5,192,0,0,265,270,3,38,19,0,266,267,5,193,0,0,267,270,3,38,19,0, + 5,193,0,0,265,270,3,38,19,0,266,267,5,194,0,0,267,270,3,38,19,0, 268,270,3,40,20,0,269,264,1,0,0,0,269,266,1,0,0,0,269,268,1,0,0, 0,270,39,1,0,0,0,271,272,6,20,-1,0,272,273,3,42,21,0,273,288,1,0, - 0,0,274,275,10,2,0,0,275,276,5,218,0,0,276,281,3,24,12,0,277,278, - 5,215,0,0,278,280,3,24,12,0,279,277,1,0,0,0,280,283,1,0,0,0,281, + 0,0,274,275,10,2,0,0,275,276,5,219,0,0,276,281,3,24,12,0,277,278, + 5,216,0,0,278,280,3,24,12,0,279,277,1,0,0,0,280,283,1,0,0,0,281, 279,1,0,0,0,281,282,1,0,0,0,282,284,1,0,0,0,283,281,1,0,0,0,284, - 285,5,219,0,0,285,287,1,0,0,0,286,274,1,0,0,0,287,290,1,0,0,0,288, + 285,5,220,0,0,285,287,1,0,0,0,286,274,1,0,0,0,287,290,1,0,0,0,288, 286,1,0,0,0,288,289,1,0,0,0,289,41,1,0,0,0,290,288,1,0,0,0,291,344, 3,46,23,0,292,344,3,48,24,0,293,344,3,50,25,0,294,344,3,52,26,0, 295,344,3,54,27,0,296,344,3,56,28,0,297,344,3,58,29,0,298,344,3, - 60,30,0,299,344,5,227,0,0,300,344,5,224,0,0,301,344,5,225,0,0,302, - 344,5,226,0,0,303,304,5,213,0,0,304,305,3,6,3,0,305,306,5,214,0, - 0,306,309,5,217,0,0,307,310,3,16,8,0,308,310,3,24,12,0,309,307,1, - 0,0,0,309,308,1,0,0,0,310,344,1,0,0,0,311,312,5,213,0,0,312,313, - 3,24,12,0,313,314,5,214,0,0,314,344,1,0,0,0,315,316,5,213,0,0,316, - 317,3,24,12,0,317,318,5,214,0,0,318,344,1,0,0,0,319,320,5,212,0, - 0,320,321,3,24,12,0,321,322,5,212,0,0,322,344,1,0,0,0,323,324,5, - 218,0,0,324,329,3,24,12,0,325,326,5,215,0,0,326,328,3,24,12,0,327, + 60,30,0,299,344,5,228,0,0,300,344,5,225,0,0,301,344,5,226,0,0,302, + 344,5,227,0,0,303,304,5,214,0,0,304,305,3,6,3,0,305,306,5,215,0, + 0,306,309,5,218,0,0,307,310,3,16,8,0,308,310,3,24,12,0,309,307,1, + 0,0,0,309,308,1,0,0,0,310,344,1,0,0,0,311,312,5,214,0,0,312,313, + 3,24,12,0,313,314,5,215,0,0,314,344,1,0,0,0,315,316,5,214,0,0,316, + 317,3,24,12,0,317,318,5,215,0,0,318,344,1,0,0,0,319,320,5,213,0, + 0,320,321,3,24,12,0,321,322,5,213,0,0,322,344,1,0,0,0,323,324,5, + 219,0,0,324,329,3,24,12,0,325,326,5,216,0,0,326,328,3,24,12,0,327, 325,1,0,0,0,328,331,1,0,0,0,329,327,1,0,0,0,329,330,1,0,0,0,330, - 332,1,0,0,0,331,329,1,0,0,0,332,333,5,219,0,0,333,344,1,0,0,0,334, - 335,5,227,0,0,335,337,5,213,0,0,336,338,3,44,22,0,337,336,1,0,0, - 0,337,338,1,0,0,0,338,339,1,0,0,0,339,344,5,214,0,0,340,344,5,172, + 332,1,0,0,0,331,329,1,0,0,0,332,333,5,220,0,0,333,344,1,0,0,0,334, + 335,5,228,0,0,335,337,5,214,0,0,336,338,3,44,22,0,337,336,1,0,0, + 0,337,338,1,0,0,0,338,339,1,0,0,0,339,344,5,215,0,0,340,344,5,172, 0,0,341,344,5,151,0,0,342,344,5,152,0,0,343,291,1,0,0,0,343,292, 1,0,0,0,343,293,1,0,0,0,343,294,1,0,0,0,343,295,1,0,0,0,343,296, 1,0,0,0,343,297,1,0,0,0,343,298,1,0,0,0,343,299,1,0,0,0,343,300, 1,0,0,0,343,301,1,0,0,0,343,302,1,0,0,0,343,303,1,0,0,0,343,311, 1,0,0,0,343,315,1,0,0,0,343,319,1,0,0,0,343,323,1,0,0,0,343,334, 1,0,0,0,343,340,1,0,0,0,343,341,1,0,0,0,343,342,1,0,0,0,344,43,1, - 0,0,0,345,350,3,24,12,0,346,347,5,215,0,0,347,349,3,24,12,0,348, + 0,0,0,345,350,3,24,12,0,346,347,5,216,0,0,347,349,3,24,12,0,348, 346,1,0,0,0,349,352,1,0,0,0,350,348,1,0,0,0,350,351,1,0,0,0,351, - 45,1,0,0,0,352,350,1,0,0,0,353,354,5,154,0,0,354,355,5,213,0,0,355, - 356,5,214,0,0,356,47,1,0,0,0,357,358,5,1,0,0,358,359,5,213,0,0,359, - 360,3,24,12,0,360,361,5,214,0,0,361,811,1,0,0,0,362,363,5,2,0,0, - 363,364,5,213,0,0,364,365,3,24,12,0,365,366,5,214,0,0,366,811,1, - 0,0,0,367,368,5,3,0,0,368,369,5,213,0,0,369,370,3,24,12,0,370,371, - 5,214,0,0,371,811,1,0,0,0,372,373,5,4,0,0,373,374,5,213,0,0,374, - 375,3,24,12,0,375,376,5,214,0,0,376,811,1,0,0,0,377,378,5,5,0,0, - 378,379,5,213,0,0,379,380,3,24,12,0,380,381,5,214,0,0,381,811,1, - 0,0,0,382,383,5,6,0,0,383,384,5,213,0,0,384,385,3,24,12,0,385,386, - 5,214,0,0,386,811,1,0,0,0,387,388,5,8,0,0,388,389,5,213,0,0,389, - 390,3,24,12,0,390,391,5,214,0,0,391,811,1,0,0,0,392,393,5,9,0,0, - 393,394,5,213,0,0,394,395,3,24,12,0,395,396,5,214,0,0,396,811,1, - 0,0,0,397,398,5,10,0,0,398,399,5,213,0,0,399,400,3,24,12,0,400,401, - 5,214,0,0,401,811,1,0,0,0,402,403,5,11,0,0,403,404,5,213,0,0,404, - 405,3,24,12,0,405,406,5,214,0,0,406,811,1,0,0,0,407,408,5,12,0,0, - 408,409,5,213,0,0,409,410,3,24,12,0,410,411,5,214,0,0,411,811,1, - 0,0,0,412,413,5,13,0,0,413,414,5,213,0,0,414,415,3,24,12,0,415,416, - 5,214,0,0,416,811,1,0,0,0,417,418,5,14,0,0,418,419,5,213,0,0,419, - 420,3,24,12,0,420,421,5,214,0,0,421,811,1,0,0,0,422,423,5,15,0,0, - 423,424,5,213,0,0,424,425,3,24,12,0,425,426,5,214,0,0,426,811,1, - 0,0,0,427,428,5,16,0,0,428,429,5,213,0,0,429,430,3,24,12,0,430,431, - 5,214,0,0,431,811,1,0,0,0,432,433,5,17,0,0,433,434,5,213,0,0,434, - 435,3,24,12,0,435,436,5,214,0,0,436,811,1,0,0,0,437,438,5,18,0,0, - 438,439,5,213,0,0,439,440,3,24,12,0,440,441,5,214,0,0,441,811,1, - 0,0,0,442,443,5,23,0,0,443,444,5,213,0,0,444,445,3,24,12,0,445,446, - 5,214,0,0,446,811,1,0,0,0,447,448,5,25,0,0,448,449,5,213,0,0,449, - 450,3,24,12,0,450,451,5,214,0,0,451,811,1,0,0,0,452,453,5,26,0,0, - 453,454,5,213,0,0,454,455,3,24,12,0,455,456,5,214,0,0,456,811,1, - 0,0,0,457,458,5,27,0,0,458,459,5,213,0,0,459,460,3,24,12,0,460,461, - 5,214,0,0,461,811,1,0,0,0,462,463,5,28,0,0,463,464,5,213,0,0,464, - 465,3,24,12,0,465,466,5,214,0,0,466,811,1,0,0,0,467,468,5,30,0,0, - 468,469,5,213,0,0,469,470,3,24,12,0,470,471,5,214,0,0,471,811,1, - 0,0,0,472,473,5,34,0,0,473,474,5,213,0,0,474,475,3,24,12,0,475,476, - 5,214,0,0,476,811,1,0,0,0,477,478,5,35,0,0,478,479,5,213,0,0,479, - 480,3,24,12,0,480,481,5,214,0,0,481,811,1,0,0,0,482,483,5,41,0,0, - 483,484,5,213,0,0,484,485,3,24,12,0,485,486,5,214,0,0,486,811,1, - 0,0,0,487,488,5,42,0,0,488,489,5,213,0,0,489,490,3,24,12,0,490,491, - 5,214,0,0,491,811,1,0,0,0,492,493,5,43,0,0,493,494,5,213,0,0,494, - 495,3,24,12,0,495,496,5,214,0,0,496,811,1,0,0,0,497,498,5,44,0,0, - 498,499,5,213,0,0,499,500,3,24,12,0,500,501,5,214,0,0,501,811,1, - 0,0,0,502,503,5,45,0,0,503,504,5,213,0,0,504,505,3,24,12,0,505,506, - 5,214,0,0,506,811,1,0,0,0,507,508,5,36,0,0,508,509,5,213,0,0,509, - 510,3,24,12,0,510,511,5,214,0,0,511,811,1,0,0,0,512,513,5,57,0,0, - 513,514,5,213,0,0,514,515,3,24,12,0,515,516,5,214,0,0,516,811,1, - 0,0,0,517,518,5,58,0,0,518,519,5,213,0,0,519,522,3,24,12,0,520,521, - 5,215,0,0,521,523,3,24,12,0,522,520,1,0,0,0,522,523,1,0,0,0,523, - 524,1,0,0,0,524,525,5,214,0,0,525,811,1,0,0,0,526,527,5,59,0,0,527, - 528,5,213,0,0,528,529,3,24,12,0,529,530,5,214,0,0,530,811,1,0,0, - 0,531,532,5,60,0,0,532,533,5,213,0,0,533,534,3,24,12,0,534,535,5, - 214,0,0,535,811,1,0,0,0,536,537,5,61,0,0,537,538,5,213,0,0,538,539, - 3,24,12,0,539,540,5,214,0,0,540,811,1,0,0,0,541,542,5,155,0,0,542, - 543,5,213,0,0,543,544,3,24,12,0,544,545,5,214,0,0,545,811,1,0,0, - 0,546,547,5,69,0,0,547,548,5,213,0,0,548,549,3,24,12,0,549,550,5, - 214,0,0,550,811,1,0,0,0,551,552,5,70,0,0,552,553,5,213,0,0,553,554, - 3,24,12,0,554,555,5,214,0,0,555,811,1,0,0,0,556,557,5,71,0,0,557, - 558,5,213,0,0,558,561,3,24,12,0,559,560,5,215,0,0,560,562,3,24,12, - 0,561,559,1,0,0,0,561,562,1,0,0,0,562,563,1,0,0,0,563,564,5,214, - 0,0,564,811,1,0,0,0,565,566,5,73,0,0,566,567,5,213,0,0,567,568,3, - 24,12,0,568,569,5,214,0,0,569,811,1,0,0,0,570,571,5,74,0,0,571,572, - 5,213,0,0,572,573,3,24,12,0,573,574,5,214,0,0,574,811,1,0,0,0,575, - 576,5,75,0,0,576,577,5,213,0,0,577,580,3,24,12,0,578,579,5,215,0, + 45,1,0,0,0,352,350,1,0,0,0,353,354,5,154,0,0,354,355,5,214,0,0,355, + 356,5,215,0,0,356,47,1,0,0,0,357,358,5,1,0,0,358,359,5,214,0,0,359, + 360,3,24,12,0,360,361,5,215,0,0,361,811,1,0,0,0,362,363,5,2,0,0, + 363,364,5,214,0,0,364,365,3,24,12,0,365,366,5,215,0,0,366,811,1, + 0,0,0,367,368,5,3,0,0,368,369,5,214,0,0,369,370,3,24,12,0,370,371, + 5,215,0,0,371,811,1,0,0,0,372,373,5,4,0,0,373,374,5,214,0,0,374, + 375,3,24,12,0,375,376,5,215,0,0,376,811,1,0,0,0,377,378,5,5,0,0, + 378,379,5,214,0,0,379,380,3,24,12,0,380,381,5,215,0,0,381,811,1, + 0,0,0,382,383,5,6,0,0,383,384,5,214,0,0,384,385,3,24,12,0,385,386, + 5,215,0,0,386,811,1,0,0,0,387,388,5,8,0,0,388,389,5,214,0,0,389, + 390,3,24,12,0,390,391,5,215,0,0,391,811,1,0,0,0,392,393,5,9,0,0, + 393,394,5,214,0,0,394,395,3,24,12,0,395,396,5,215,0,0,396,811,1, + 0,0,0,397,398,5,10,0,0,398,399,5,214,0,0,399,400,3,24,12,0,400,401, + 5,215,0,0,401,811,1,0,0,0,402,403,5,11,0,0,403,404,5,214,0,0,404, + 405,3,24,12,0,405,406,5,215,0,0,406,811,1,0,0,0,407,408,5,12,0,0, + 408,409,5,214,0,0,409,410,3,24,12,0,410,411,5,215,0,0,411,811,1, + 0,0,0,412,413,5,13,0,0,413,414,5,214,0,0,414,415,3,24,12,0,415,416, + 5,215,0,0,416,811,1,0,0,0,417,418,5,14,0,0,418,419,5,214,0,0,419, + 420,3,24,12,0,420,421,5,215,0,0,421,811,1,0,0,0,422,423,5,15,0,0, + 423,424,5,214,0,0,424,425,3,24,12,0,425,426,5,215,0,0,426,811,1, + 0,0,0,427,428,5,16,0,0,428,429,5,214,0,0,429,430,3,24,12,0,430,431, + 5,215,0,0,431,811,1,0,0,0,432,433,5,17,0,0,433,434,5,214,0,0,434, + 435,3,24,12,0,435,436,5,215,0,0,436,811,1,0,0,0,437,438,5,18,0,0, + 438,439,5,214,0,0,439,440,3,24,12,0,440,441,5,215,0,0,441,811,1, + 0,0,0,442,443,5,23,0,0,443,444,5,214,0,0,444,445,3,24,12,0,445,446, + 5,215,0,0,446,811,1,0,0,0,447,448,5,25,0,0,448,449,5,214,0,0,449, + 450,3,24,12,0,450,451,5,215,0,0,451,811,1,0,0,0,452,453,5,26,0,0, + 453,454,5,214,0,0,454,455,3,24,12,0,455,456,5,215,0,0,456,811,1, + 0,0,0,457,458,5,27,0,0,458,459,5,214,0,0,459,460,3,24,12,0,460,461, + 5,215,0,0,461,811,1,0,0,0,462,463,5,28,0,0,463,464,5,214,0,0,464, + 465,3,24,12,0,465,466,5,215,0,0,466,811,1,0,0,0,467,468,5,30,0,0, + 468,469,5,214,0,0,469,470,3,24,12,0,470,471,5,215,0,0,471,811,1, + 0,0,0,472,473,5,34,0,0,473,474,5,214,0,0,474,475,3,24,12,0,475,476, + 5,215,0,0,476,811,1,0,0,0,477,478,5,35,0,0,478,479,5,214,0,0,479, + 480,3,24,12,0,480,481,5,215,0,0,481,811,1,0,0,0,482,483,5,41,0,0, + 483,484,5,214,0,0,484,485,3,24,12,0,485,486,5,215,0,0,486,811,1, + 0,0,0,487,488,5,42,0,0,488,489,5,214,0,0,489,490,3,24,12,0,490,491, + 5,215,0,0,491,811,1,0,0,0,492,493,5,43,0,0,493,494,5,214,0,0,494, + 495,3,24,12,0,495,496,5,215,0,0,496,811,1,0,0,0,497,498,5,44,0,0, + 498,499,5,214,0,0,499,500,3,24,12,0,500,501,5,215,0,0,501,811,1, + 0,0,0,502,503,5,45,0,0,503,504,5,214,0,0,504,505,3,24,12,0,505,506, + 5,215,0,0,506,811,1,0,0,0,507,508,5,36,0,0,508,509,5,214,0,0,509, + 510,3,24,12,0,510,511,5,215,0,0,511,811,1,0,0,0,512,513,5,57,0,0, + 513,514,5,214,0,0,514,515,3,24,12,0,515,516,5,215,0,0,516,811,1, + 0,0,0,517,518,5,58,0,0,518,519,5,214,0,0,519,522,3,24,12,0,520,521, + 5,216,0,0,521,523,3,24,12,0,522,520,1,0,0,0,522,523,1,0,0,0,523, + 524,1,0,0,0,524,525,5,215,0,0,525,811,1,0,0,0,526,527,5,59,0,0,527, + 528,5,214,0,0,528,529,3,24,12,0,529,530,5,215,0,0,530,811,1,0,0, + 0,531,532,5,60,0,0,532,533,5,214,0,0,533,534,3,24,12,0,534,535,5, + 215,0,0,535,811,1,0,0,0,536,537,5,61,0,0,537,538,5,214,0,0,538,539, + 3,24,12,0,539,540,5,215,0,0,540,811,1,0,0,0,541,542,5,155,0,0,542, + 543,5,214,0,0,543,544,3,24,12,0,544,545,5,215,0,0,545,811,1,0,0, + 0,546,547,5,69,0,0,547,548,5,214,0,0,548,549,3,24,12,0,549,550,5, + 215,0,0,550,811,1,0,0,0,551,552,5,70,0,0,552,553,5,214,0,0,553,554, + 3,24,12,0,554,555,5,215,0,0,555,811,1,0,0,0,556,557,5,71,0,0,557, + 558,5,214,0,0,558,561,3,24,12,0,559,560,5,216,0,0,560,562,3,24,12, + 0,561,559,1,0,0,0,561,562,1,0,0,0,562,563,1,0,0,0,563,564,5,215, + 0,0,564,811,1,0,0,0,565,566,5,73,0,0,566,567,5,214,0,0,567,568,3, + 24,12,0,568,569,5,215,0,0,569,811,1,0,0,0,570,571,5,74,0,0,571,572, + 5,214,0,0,572,573,3,24,12,0,573,574,5,215,0,0,574,811,1,0,0,0,575, + 576,5,75,0,0,576,577,5,214,0,0,577,580,3,24,12,0,578,579,5,216,0, 0,579,581,3,24,12,0,580,578,1,0,0,0,580,581,1,0,0,0,581,582,1,0, - 0,0,582,583,5,214,0,0,583,811,1,0,0,0,584,585,5,86,0,0,585,586,5, - 213,0,0,586,587,3,24,12,0,587,588,5,214,0,0,588,811,1,0,0,0,589, - 590,5,87,0,0,590,591,5,213,0,0,591,592,3,24,12,0,592,593,5,215,0, - 0,593,596,3,24,12,0,594,595,5,215,0,0,595,597,3,24,12,0,596,594, - 1,0,0,0,596,597,1,0,0,0,597,598,1,0,0,0,598,599,5,214,0,0,599,811, - 1,0,0,0,600,601,5,76,0,0,601,602,5,213,0,0,602,603,3,24,12,0,603, - 604,5,214,0,0,604,811,1,0,0,0,605,606,5,112,0,0,606,607,5,213,0, - 0,607,608,3,24,12,0,608,609,5,214,0,0,609,811,1,0,0,0,610,611,5, - 113,0,0,611,612,5,213,0,0,612,613,3,24,12,0,613,614,5,214,0,0,614, - 811,1,0,0,0,615,616,5,114,0,0,616,617,5,213,0,0,617,618,3,24,12, - 0,618,619,5,214,0,0,619,811,1,0,0,0,620,621,5,115,0,0,621,622,5, - 213,0,0,622,623,3,24,12,0,623,624,5,214,0,0,624,811,1,0,0,0,625, - 626,5,156,0,0,626,627,5,213,0,0,627,634,3,24,12,0,628,629,5,215, - 0,0,629,632,3,24,12,0,630,631,5,215,0,0,631,633,3,24,12,0,632,630, + 0,0,582,583,5,215,0,0,583,811,1,0,0,0,584,585,5,86,0,0,585,586,5, + 214,0,0,586,587,3,24,12,0,587,588,5,215,0,0,588,811,1,0,0,0,589, + 590,5,87,0,0,590,591,5,214,0,0,591,592,3,24,12,0,592,593,5,216,0, + 0,593,596,3,24,12,0,594,595,5,216,0,0,595,597,3,24,12,0,596,594, + 1,0,0,0,596,597,1,0,0,0,597,598,1,0,0,0,598,599,5,215,0,0,599,811, + 1,0,0,0,600,601,5,76,0,0,601,602,5,214,0,0,602,603,3,24,12,0,603, + 604,5,215,0,0,604,811,1,0,0,0,605,606,5,112,0,0,606,607,5,214,0, + 0,607,608,3,24,12,0,608,609,5,215,0,0,609,811,1,0,0,0,610,611,5, + 113,0,0,611,612,5,214,0,0,612,613,3,24,12,0,613,614,5,215,0,0,614, + 811,1,0,0,0,615,616,5,114,0,0,616,617,5,214,0,0,617,618,3,24,12, + 0,618,619,5,215,0,0,619,811,1,0,0,0,620,621,5,115,0,0,621,622,5, + 214,0,0,622,623,3,24,12,0,623,624,5,215,0,0,624,811,1,0,0,0,625, + 626,5,156,0,0,626,627,5,214,0,0,627,634,3,24,12,0,628,629,5,216, + 0,0,629,632,3,24,12,0,630,631,5,216,0,0,631,633,3,24,12,0,632,630, 1,0,0,0,632,633,1,0,0,0,633,635,1,0,0,0,634,628,1,0,0,0,634,635, - 1,0,0,0,635,636,1,0,0,0,636,637,5,214,0,0,637,811,1,0,0,0,638,639, - 5,157,0,0,639,640,5,213,0,0,640,643,3,24,12,0,641,642,5,215,0,0, + 1,0,0,0,635,636,1,0,0,0,636,637,5,215,0,0,637,811,1,0,0,0,638,639, + 5,157,0,0,639,640,5,214,0,0,640,643,3,24,12,0,641,642,5,216,0,0, 642,644,3,24,12,0,643,641,1,0,0,0,643,644,1,0,0,0,644,645,1,0,0, - 0,645,646,5,214,0,0,646,811,1,0,0,0,647,648,5,158,0,0,648,649,5, - 213,0,0,649,652,3,24,12,0,650,651,5,215,0,0,651,653,3,24,12,0,652, - 650,1,0,0,0,652,653,1,0,0,0,653,654,1,0,0,0,654,655,5,214,0,0,655, - 811,1,0,0,0,656,657,5,159,0,0,657,658,5,213,0,0,658,661,3,24,12, - 0,659,660,5,215,0,0,660,662,3,24,12,0,661,659,1,0,0,0,661,662,1, - 0,0,0,662,663,1,0,0,0,663,664,5,214,0,0,664,811,1,0,0,0,665,666, - 5,160,0,0,666,667,5,213,0,0,667,670,3,24,12,0,668,669,5,215,0,0, + 0,645,646,5,215,0,0,646,811,1,0,0,0,647,648,5,158,0,0,648,649,5, + 214,0,0,649,652,3,24,12,0,650,651,5,216,0,0,651,653,3,24,12,0,652, + 650,1,0,0,0,652,653,1,0,0,0,653,654,1,0,0,0,654,655,5,215,0,0,655, + 811,1,0,0,0,656,657,5,159,0,0,657,658,5,214,0,0,658,661,3,24,12, + 0,659,660,5,216,0,0,660,662,3,24,12,0,661,659,1,0,0,0,661,662,1, + 0,0,0,662,663,1,0,0,0,663,664,5,215,0,0,664,811,1,0,0,0,665,666, + 5,160,0,0,666,667,5,214,0,0,667,670,3,24,12,0,668,669,5,216,0,0, 669,671,3,24,12,0,670,668,1,0,0,0,670,671,1,0,0,0,671,672,1,0,0, - 0,672,673,5,214,0,0,673,811,1,0,0,0,674,675,5,67,0,0,675,676,5,213, - 0,0,676,677,3,24,12,0,677,678,5,214,0,0,678,811,1,0,0,0,679,680, - 5,68,0,0,680,681,5,213,0,0,681,682,3,24,12,0,682,683,5,214,0,0,683, - 811,1,0,0,0,684,685,5,161,0,0,685,686,5,213,0,0,686,687,3,24,12, - 0,687,688,5,214,0,0,688,811,1,0,0,0,689,690,5,88,0,0,690,691,5,213, - 0,0,691,692,3,24,12,0,692,693,5,214,0,0,693,811,1,0,0,0,694,695, - 5,93,0,0,695,696,5,213,0,0,696,697,3,24,12,0,697,698,5,214,0,0,698, - 811,1,0,0,0,699,700,5,94,0,0,700,701,5,213,0,0,701,702,3,24,12,0, - 702,703,5,214,0,0,703,811,1,0,0,0,704,705,5,104,0,0,705,706,5,213, - 0,0,706,707,3,24,12,0,707,708,5,214,0,0,708,811,1,0,0,0,709,710, - 5,105,0,0,710,711,5,213,0,0,711,712,3,24,12,0,712,713,5,214,0,0, - 713,811,1,0,0,0,714,715,5,106,0,0,715,716,5,213,0,0,716,717,3,24, - 12,0,717,718,5,214,0,0,718,811,1,0,0,0,719,720,5,119,0,0,720,721, - 5,213,0,0,721,722,3,24,12,0,722,723,5,214,0,0,723,811,1,0,0,0,724, - 725,5,120,0,0,725,726,5,213,0,0,726,727,3,24,12,0,727,728,5,214, - 0,0,728,811,1,0,0,0,729,730,5,121,0,0,730,731,5,213,0,0,731,732, - 3,24,12,0,732,733,5,214,0,0,733,811,1,0,0,0,734,735,5,170,0,0,735, - 736,5,213,0,0,736,737,3,24,12,0,737,738,5,214,0,0,738,811,1,0,0, - 0,739,740,5,32,0,0,740,741,5,213,0,0,741,742,3,24,12,0,742,743,5, - 214,0,0,743,811,1,0,0,0,744,745,5,127,0,0,745,746,5,213,0,0,746, - 749,3,24,12,0,747,748,5,215,0,0,748,750,3,24,12,0,749,747,1,0,0, - 0,749,750,1,0,0,0,750,751,1,0,0,0,751,752,5,214,0,0,752,811,1,0, - 0,0,753,754,5,128,0,0,754,755,5,213,0,0,755,758,3,24,12,0,756,757, - 5,215,0,0,757,759,3,24,12,0,758,756,1,0,0,0,758,759,1,0,0,0,759, - 760,1,0,0,0,760,761,5,214,0,0,761,811,1,0,0,0,762,763,5,129,0,0, - 763,764,5,213,0,0,764,767,3,24,12,0,765,766,5,215,0,0,766,768,3, + 0,672,673,5,215,0,0,673,811,1,0,0,0,674,675,5,67,0,0,675,676,5,214, + 0,0,676,677,3,24,12,0,677,678,5,215,0,0,678,811,1,0,0,0,679,680, + 5,68,0,0,680,681,5,214,0,0,681,682,3,24,12,0,682,683,5,215,0,0,683, + 811,1,0,0,0,684,685,5,161,0,0,685,686,5,214,0,0,686,687,3,24,12, + 0,687,688,5,215,0,0,688,811,1,0,0,0,689,690,5,88,0,0,690,691,5,214, + 0,0,691,692,3,24,12,0,692,693,5,215,0,0,693,811,1,0,0,0,694,695, + 5,93,0,0,695,696,5,214,0,0,696,697,3,24,12,0,697,698,5,215,0,0,698, + 811,1,0,0,0,699,700,5,94,0,0,700,701,5,214,0,0,701,702,3,24,12,0, + 702,703,5,215,0,0,703,811,1,0,0,0,704,705,5,104,0,0,705,706,5,214, + 0,0,706,707,3,24,12,0,707,708,5,215,0,0,708,811,1,0,0,0,709,710, + 5,105,0,0,710,711,5,214,0,0,711,712,3,24,12,0,712,713,5,215,0,0, + 713,811,1,0,0,0,714,715,5,106,0,0,715,716,5,214,0,0,716,717,3,24, + 12,0,717,718,5,215,0,0,718,811,1,0,0,0,719,720,5,119,0,0,720,721, + 5,214,0,0,721,722,3,24,12,0,722,723,5,215,0,0,723,811,1,0,0,0,724, + 725,5,120,0,0,725,726,5,214,0,0,726,727,3,24,12,0,727,728,5,215, + 0,0,728,811,1,0,0,0,729,730,5,121,0,0,730,731,5,214,0,0,731,732, + 3,24,12,0,732,733,5,215,0,0,733,811,1,0,0,0,734,735,5,170,0,0,735, + 736,5,214,0,0,736,737,3,24,12,0,737,738,5,215,0,0,738,811,1,0,0, + 0,739,740,5,32,0,0,740,741,5,214,0,0,741,742,3,24,12,0,742,743,5, + 215,0,0,743,811,1,0,0,0,744,745,5,127,0,0,745,746,5,214,0,0,746, + 749,3,24,12,0,747,748,5,216,0,0,748,750,3,24,12,0,749,747,1,0,0, + 0,749,750,1,0,0,0,750,751,1,0,0,0,751,752,5,215,0,0,752,811,1,0, + 0,0,753,754,5,128,0,0,754,755,5,214,0,0,755,758,3,24,12,0,756,757, + 5,216,0,0,757,759,3,24,12,0,758,756,1,0,0,0,758,759,1,0,0,0,759, + 760,1,0,0,0,760,761,5,215,0,0,761,811,1,0,0,0,762,763,5,129,0,0, + 763,764,5,214,0,0,764,767,3,24,12,0,765,766,5,216,0,0,766,768,3, 24,12,0,767,765,1,0,0,0,767,768,1,0,0,0,768,769,1,0,0,0,769,770, - 5,214,0,0,770,811,1,0,0,0,771,772,5,130,0,0,772,773,5,213,0,0,773, - 776,3,24,12,0,774,775,5,215,0,0,775,777,3,24,12,0,776,774,1,0,0, - 0,776,777,1,0,0,0,777,778,1,0,0,0,778,779,5,214,0,0,779,811,1,0, - 0,0,780,781,5,117,0,0,781,782,5,213,0,0,782,783,3,24,12,0,783,784, - 5,214,0,0,784,811,1,0,0,0,785,786,5,118,0,0,786,787,5,213,0,0,787, - 788,3,24,12,0,788,789,5,214,0,0,789,811,1,0,0,0,790,791,5,95,0,0, - 791,792,5,213,0,0,792,793,3,24,12,0,793,794,5,214,0,0,794,811,1, - 0,0,0,795,796,5,96,0,0,796,797,5,213,0,0,797,798,3,24,12,0,798,799, - 5,214,0,0,799,811,1,0,0,0,800,801,5,143,0,0,801,802,5,213,0,0,802, - 803,3,24,12,0,803,804,5,214,0,0,804,811,1,0,0,0,805,806,5,144,0, - 0,806,807,5,213,0,0,807,808,3,24,12,0,808,809,5,214,0,0,809,811, + 5,215,0,0,770,811,1,0,0,0,771,772,5,130,0,0,772,773,5,214,0,0,773, + 776,3,24,12,0,774,775,5,216,0,0,775,777,3,24,12,0,776,774,1,0,0, + 0,776,777,1,0,0,0,777,778,1,0,0,0,778,779,5,215,0,0,779,811,1,0, + 0,0,780,781,5,117,0,0,781,782,5,214,0,0,782,783,3,24,12,0,783,784, + 5,215,0,0,784,811,1,0,0,0,785,786,5,118,0,0,786,787,5,214,0,0,787, + 788,3,24,12,0,788,789,5,215,0,0,789,811,1,0,0,0,790,791,5,95,0,0, + 791,792,5,214,0,0,792,793,3,24,12,0,793,794,5,215,0,0,794,811,1, + 0,0,0,795,796,5,96,0,0,796,797,5,214,0,0,797,798,3,24,12,0,798,799, + 5,215,0,0,799,811,1,0,0,0,800,801,5,143,0,0,801,802,5,214,0,0,802, + 803,3,24,12,0,803,804,5,215,0,0,804,811,1,0,0,0,805,806,5,144,0, + 0,806,807,5,214,0,0,807,808,3,24,12,0,808,809,5,215,0,0,809,811, 1,0,0,0,810,357,1,0,0,0,810,362,1,0,0,0,810,367,1,0,0,0,810,372, 1,0,0,0,810,377,1,0,0,0,810,382,1,0,0,0,810,387,1,0,0,0,810,392, 1,0,0,0,810,397,1,0,0,0,810,402,1,0,0,0,810,407,1,0,0,0,810,412, @@ -408,109 +409,109 @@ def serializedATN(): 1,0,0,0,810,739,1,0,0,0,810,744,1,0,0,0,810,753,1,0,0,0,810,762, 1,0,0,0,810,771,1,0,0,0,810,780,1,0,0,0,810,785,1,0,0,0,810,790, 1,0,0,0,810,795,1,0,0,0,810,800,1,0,0,0,810,805,1,0,0,0,811,49,1, - 0,0,0,812,813,5,29,0,0,813,814,5,213,0,0,814,815,3,24,12,0,815,816, - 5,215,0,0,816,817,3,24,12,0,817,818,5,214,0,0,818,1165,1,0,0,0,819, - 820,5,7,0,0,820,821,5,213,0,0,821,822,3,24,12,0,822,823,5,215,0, - 0,823,824,3,24,12,0,824,825,5,214,0,0,825,1165,1,0,0,0,826,827,5, - 21,0,0,827,828,5,213,0,0,828,829,3,24,12,0,829,830,5,215,0,0,830, - 831,3,24,12,0,831,832,5,214,0,0,832,1165,1,0,0,0,833,834,5,22,0, - 0,834,835,5,213,0,0,835,836,3,24,12,0,836,837,5,215,0,0,837,838, - 3,24,12,0,838,839,5,214,0,0,839,1165,1,0,0,0,840,841,5,24,0,0,841, - 842,5,213,0,0,842,845,3,24,12,0,843,844,5,215,0,0,844,846,3,24,12, - 0,845,843,1,0,0,0,845,846,1,0,0,0,846,847,1,0,0,0,847,848,5,214, - 0,0,848,1165,1,0,0,0,849,850,5,39,0,0,850,851,5,213,0,0,851,852, - 3,24,12,0,852,853,5,215,0,0,853,854,3,24,12,0,854,855,5,214,0,0, - 855,1165,1,0,0,0,856,857,5,55,0,0,857,858,5,213,0,0,858,859,3,24, - 12,0,859,860,5,215,0,0,860,861,3,24,12,0,861,862,5,214,0,0,862,1165, - 1,0,0,0,863,864,5,56,0,0,864,865,5,213,0,0,865,866,3,24,12,0,866, - 867,5,215,0,0,867,868,3,24,12,0,868,869,5,214,0,0,869,1165,1,0,0, - 0,870,871,5,62,0,0,871,872,5,213,0,0,872,873,3,24,12,0,873,874,5, - 215,0,0,874,875,3,24,12,0,875,876,5,214,0,0,876,1165,1,0,0,0,877, - 878,5,63,0,0,878,879,5,213,0,0,879,880,3,24,12,0,880,881,5,215,0, - 0,881,882,3,24,12,0,882,883,5,214,0,0,883,1165,1,0,0,0,884,885,5, - 64,0,0,885,886,5,213,0,0,886,887,3,24,12,0,887,888,5,215,0,0,888, - 889,3,24,12,0,889,890,5,214,0,0,890,1165,1,0,0,0,891,892,5,65,0, - 0,892,893,5,213,0,0,893,894,3,24,12,0,894,895,5,215,0,0,895,896, - 3,24,12,0,896,897,5,214,0,0,897,1165,1,0,0,0,898,899,5,85,0,0,899, - 900,5,213,0,0,900,901,3,24,12,0,901,902,5,215,0,0,902,903,3,24,12, - 0,903,904,5,214,0,0,904,1165,1,0,0,0,905,906,5,163,0,0,906,907,5, - 213,0,0,907,908,3,24,12,0,908,909,5,215,0,0,909,910,3,24,12,0,910, - 911,5,214,0,0,911,1165,1,0,0,0,912,913,5,164,0,0,913,914,5,213,0, - 0,914,915,3,24,12,0,915,916,5,215,0,0,916,917,3,24,12,0,917,918, - 5,214,0,0,918,1165,1,0,0,0,919,920,5,162,0,0,920,921,5,213,0,0,921, - 922,3,24,12,0,922,923,5,215,0,0,923,924,3,24,12,0,924,925,5,214, - 0,0,925,1165,1,0,0,0,926,927,5,168,0,0,927,928,5,213,0,0,928,929, - 3,24,12,0,929,930,5,215,0,0,930,931,3,24,12,0,931,932,5,214,0,0, - 932,1165,1,0,0,0,933,934,5,169,0,0,934,935,5,213,0,0,935,936,3,24, - 12,0,936,937,5,215,0,0,937,938,3,24,12,0,938,939,5,214,0,0,939,1165, - 1,0,0,0,940,941,5,89,0,0,941,942,5,213,0,0,942,943,3,24,12,0,943, - 944,5,215,0,0,944,945,3,24,12,0,945,946,5,214,0,0,946,1165,1,0,0, - 0,947,948,5,50,0,0,948,949,5,213,0,0,949,950,3,24,12,0,950,951,5, - 215,0,0,951,952,3,24,12,0,952,953,5,214,0,0,953,1165,1,0,0,0,954, - 955,5,72,0,0,955,956,5,213,0,0,956,957,3,24,12,0,957,958,5,215,0, - 0,958,961,3,24,12,0,959,960,5,215,0,0,960,962,3,24,12,0,961,959, - 1,0,0,0,961,962,1,0,0,0,962,963,1,0,0,0,963,964,5,214,0,0,964,1165, - 1,0,0,0,965,966,5,77,0,0,966,967,5,213,0,0,967,968,3,24,12,0,968, - 969,5,215,0,0,969,970,3,24,12,0,970,971,5,214,0,0,971,1165,1,0,0, - 0,972,973,5,78,0,0,973,974,5,213,0,0,974,975,3,24,12,0,975,976,5, - 215,0,0,976,977,3,24,12,0,977,978,5,214,0,0,978,1165,1,0,0,0,979, - 980,5,92,0,0,980,981,5,213,0,0,981,982,3,24,12,0,982,983,5,215,0, - 0,983,984,3,24,12,0,984,985,5,214,0,0,985,1165,1,0,0,0,986,987,5, - 111,0,0,987,988,5,213,0,0,988,989,3,24,12,0,989,990,5,215,0,0,990, - 991,3,24,12,0,991,992,5,214,0,0,992,1165,1,0,0,0,993,994,5,90,0, - 0,994,995,5,213,0,0,995,996,3,24,12,0,996,997,5,215,0,0,997,998, - 3,24,12,0,998,999,5,214,0,0,999,1165,1,0,0,0,1000,1001,5,110,0,0, - 1001,1002,5,213,0,0,1002,1009,3,40,20,0,1003,1004,5,215,0,0,1004, - 1007,3,24,12,0,1005,1006,5,215,0,0,1006,1008,3,24,12,0,1007,1005, + 0,0,0,812,813,5,29,0,0,813,814,5,214,0,0,814,815,3,24,12,0,815,816, + 5,216,0,0,816,817,3,24,12,0,817,818,5,215,0,0,818,1165,1,0,0,0,819, + 820,5,7,0,0,820,821,5,214,0,0,821,822,3,24,12,0,822,823,5,216,0, + 0,823,824,3,24,12,0,824,825,5,215,0,0,825,1165,1,0,0,0,826,827,5, + 21,0,0,827,828,5,214,0,0,828,829,3,24,12,0,829,830,5,216,0,0,830, + 831,3,24,12,0,831,832,5,215,0,0,832,1165,1,0,0,0,833,834,5,22,0, + 0,834,835,5,214,0,0,835,836,3,24,12,0,836,837,5,216,0,0,837,838, + 3,24,12,0,838,839,5,215,0,0,839,1165,1,0,0,0,840,841,5,24,0,0,841, + 842,5,214,0,0,842,845,3,24,12,0,843,844,5,216,0,0,844,846,3,24,12, + 0,845,843,1,0,0,0,845,846,1,0,0,0,846,847,1,0,0,0,847,848,5,215, + 0,0,848,1165,1,0,0,0,849,850,5,39,0,0,850,851,5,214,0,0,851,852, + 3,24,12,0,852,853,5,216,0,0,853,854,3,24,12,0,854,855,5,215,0,0, + 855,1165,1,0,0,0,856,857,5,55,0,0,857,858,5,214,0,0,858,859,3,24, + 12,0,859,860,5,216,0,0,860,861,3,24,12,0,861,862,5,215,0,0,862,1165, + 1,0,0,0,863,864,5,56,0,0,864,865,5,214,0,0,865,866,3,24,12,0,866, + 867,5,216,0,0,867,868,3,24,12,0,868,869,5,215,0,0,869,1165,1,0,0, + 0,870,871,5,62,0,0,871,872,5,214,0,0,872,873,3,24,12,0,873,874,5, + 216,0,0,874,875,3,24,12,0,875,876,5,215,0,0,876,1165,1,0,0,0,877, + 878,5,63,0,0,878,879,5,214,0,0,879,880,3,24,12,0,880,881,5,216,0, + 0,881,882,3,24,12,0,882,883,5,215,0,0,883,1165,1,0,0,0,884,885,5, + 64,0,0,885,886,5,214,0,0,886,887,3,24,12,0,887,888,5,216,0,0,888, + 889,3,24,12,0,889,890,5,215,0,0,890,1165,1,0,0,0,891,892,5,65,0, + 0,892,893,5,214,0,0,893,894,3,24,12,0,894,895,5,216,0,0,895,896, + 3,24,12,0,896,897,5,215,0,0,897,1165,1,0,0,0,898,899,5,85,0,0,899, + 900,5,214,0,0,900,901,3,24,12,0,901,902,5,216,0,0,902,903,3,24,12, + 0,903,904,5,215,0,0,904,1165,1,0,0,0,905,906,5,163,0,0,906,907,5, + 214,0,0,907,908,3,24,12,0,908,909,5,216,0,0,909,910,3,24,12,0,910, + 911,5,215,0,0,911,1165,1,0,0,0,912,913,5,164,0,0,913,914,5,214,0, + 0,914,915,3,24,12,0,915,916,5,216,0,0,916,917,3,24,12,0,917,918, + 5,215,0,0,918,1165,1,0,0,0,919,920,5,162,0,0,920,921,5,214,0,0,921, + 922,3,24,12,0,922,923,5,216,0,0,923,924,3,24,12,0,924,925,5,215, + 0,0,925,1165,1,0,0,0,926,927,5,168,0,0,927,928,5,214,0,0,928,929, + 3,24,12,0,929,930,5,216,0,0,930,931,3,24,12,0,931,932,5,215,0,0, + 932,1165,1,0,0,0,933,934,5,169,0,0,934,935,5,214,0,0,935,936,3,24, + 12,0,936,937,5,216,0,0,937,938,3,24,12,0,938,939,5,215,0,0,939,1165, + 1,0,0,0,940,941,5,89,0,0,941,942,5,214,0,0,942,943,3,24,12,0,943, + 944,5,216,0,0,944,945,3,24,12,0,945,946,5,215,0,0,946,1165,1,0,0, + 0,947,948,5,50,0,0,948,949,5,214,0,0,949,950,3,24,12,0,950,951,5, + 216,0,0,951,952,3,24,12,0,952,953,5,215,0,0,953,1165,1,0,0,0,954, + 955,5,72,0,0,955,956,5,214,0,0,956,957,3,24,12,0,957,958,5,216,0, + 0,958,961,3,24,12,0,959,960,5,216,0,0,960,962,3,24,12,0,961,959, + 1,0,0,0,961,962,1,0,0,0,962,963,1,0,0,0,963,964,5,215,0,0,964,1165, + 1,0,0,0,965,966,5,77,0,0,966,967,5,214,0,0,967,968,3,24,12,0,968, + 969,5,216,0,0,969,970,3,24,12,0,970,971,5,215,0,0,971,1165,1,0,0, + 0,972,973,5,78,0,0,973,974,5,214,0,0,974,975,3,24,12,0,975,976,5, + 216,0,0,976,977,3,24,12,0,977,978,5,215,0,0,978,1165,1,0,0,0,979, + 980,5,92,0,0,980,981,5,214,0,0,981,982,3,24,12,0,982,983,5,216,0, + 0,983,984,3,24,12,0,984,985,5,215,0,0,985,1165,1,0,0,0,986,987,5, + 111,0,0,987,988,5,214,0,0,988,989,3,24,12,0,989,990,5,216,0,0,990, + 991,3,24,12,0,991,992,5,215,0,0,992,1165,1,0,0,0,993,994,5,90,0, + 0,994,995,5,214,0,0,995,996,3,24,12,0,996,997,5,216,0,0,997,998, + 3,24,12,0,998,999,5,215,0,0,999,1165,1,0,0,0,1000,1001,5,110,0,0, + 1001,1002,5,214,0,0,1002,1009,3,40,20,0,1003,1004,5,216,0,0,1004, + 1007,3,24,12,0,1005,1006,5,216,0,0,1006,1008,3,24,12,0,1007,1005, 1,0,0,0,1007,1008,1,0,0,0,1008,1010,1,0,0,0,1009,1003,1,0,0,0,1009, - 1010,1,0,0,0,1010,1011,1,0,0,0,1011,1012,5,214,0,0,1012,1165,1,0, - 0,0,1013,1014,5,100,0,0,1014,1015,5,213,0,0,1015,1016,3,24,12,0, - 1016,1017,5,215,0,0,1017,1018,3,24,12,0,1018,1019,5,214,0,0,1019, - 1165,1,0,0,0,1020,1021,5,101,0,0,1021,1022,5,213,0,0,1022,1023,3, - 24,12,0,1023,1024,5,215,0,0,1024,1025,3,24,12,0,1025,1026,5,214, - 0,0,1026,1165,1,0,0,0,1027,1028,5,102,0,0,1028,1029,5,213,0,0,1029, - 1030,3,24,12,0,1030,1031,5,215,0,0,1031,1032,3,24,12,0,1032,1033, - 5,214,0,0,1033,1165,1,0,0,0,1034,1035,5,91,0,0,1035,1036,5,213,0, - 0,1036,1037,3,24,12,0,1037,1038,5,215,0,0,1038,1039,3,24,12,0,1039, - 1040,5,214,0,0,1040,1165,1,0,0,0,1041,1042,5,103,0,0,1042,1043,5, - 213,0,0,1043,1044,3,24,12,0,1044,1045,5,215,0,0,1045,1056,3,24,12, - 0,1046,1047,5,215,0,0,1047,1054,3,24,12,0,1048,1049,5,215,0,0,1049, - 1052,3,24,12,0,1050,1051,5,215,0,0,1051,1053,3,24,12,0,1052,1050, + 1010,1,0,0,0,1010,1011,1,0,0,0,1011,1012,5,215,0,0,1012,1165,1,0, + 0,0,1013,1014,5,100,0,0,1014,1015,5,214,0,0,1015,1016,3,24,12,0, + 1016,1017,5,216,0,0,1017,1018,3,24,12,0,1018,1019,5,215,0,0,1019, + 1165,1,0,0,0,1020,1021,5,101,0,0,1021,1022,5,214,0,0,1022,1023,3, + 24,12,0,1023,1024,5,216,0,0,1024,1025,3,24,12,0,1025,1026,5,215, + 0,0,1026,1165,1,0,0,0,1027,1028,5,102,0,0,1028,1029,5,214,0,0,1029, + 1030,3,24,12,0,1030,1031,5,216,0,0,1031,1032,3,24,12,0,1032,1033, + 5,215,0,0,1033,1165,1,0,0,0,1034,1035,5,91,0,0,1035,1036,5,214,0, + 0,1036,1037,3,24,12,0,1037,1038,5,216,0,0,1038,1039,3,24,12,0,1039, + 1040,5,215,0,0,1040,1165,1,0,0,0,1041,1042,5,103,0,0,1042,1043,5, + 214,0,0,1043,1044,3,24,12,0,1044,1045,5,216,0,0,1045,1056,3,24,12, + 0,1046,1047,5,216,0,0,1047,1054,3,24,12,0,1048,1049,5,216,0,0,1049, + 1052,3,24,12,0,1050,1051,5,216,0,0,1051,1053,3,24,12,0,1052,1050, 1,0,0,0,1052,1053,1,0,0,0,1053,1055,1,0,0,0,1054,1048,1,0,0,0,1054, 1055,1,0,0,0,1055,1057,1,0,0,0,1056,1046,1,0,0,0,1056,1057,1,0,0, - 0,1057,1058,1,0,0,0,1058,1059,5,214,0,0,1059,1165,1,0,0,0,1060,1061, - 5,107,0,0,1061,1062,5,213,0,0,1062,1063,3,24,12,0,1063,1064,5,215, - 0,0,1064,1065,3,24,12,0,1065,1066,5,214,0,0,1066,1165,1,0,0,0,1067, - 1068,5,108,0,0,1068,1069,5,213,0,0,1069,1070,3,24,12,0,1070,1071, - 5,215,0,0,1071,1072,3,24,12,0,1072,1073,5,214,0,0,1073,1165,1,0, - 0,0,1074,1075,5,109,0,0,1075,1076,5,213,0,0,1076,1077,3,24,12,0, - 1077,1078,5,215,0,0,1078,1079,3,24,12,0,1079,1080,5,214,0,0,1080, - 1165,1,0,0,0,1081,1082,5,122,0,0,1082,1083,5,213,0,0,1083,1086,3, - 24,12,0,1084,1085,5,215,0,0,1085,1087,3,24,12,0,1086,1084,1,0,0, - 0,1086,1087,1,0,0,0,1087,1088,1,0,0,0,1088,1089,5,214,0,0,1089,1165, - 1,0,0,0,1090,1091,5,123,0,0,1091,1092,5,213,0,0,1092,1095,3,24,12, - 0,1093,1094,5,215,0,0,1094,1096,3,24,12,0,1095,1093,1,0,0,0,1095, - 1096,1,0,0,0,1096,1097,1,0,0,0,1097,1098,5,214,0,0,1098,1165,1,0, - 0,0,1099,1100,5,124,0,0,1100,1101,5,213,0,0,1101,1102,3,24,12,0, - 1102,1103,5,215,0,0,1103,1106,3,24,12,0,1104,1105,5,215,0,0,1105, + 0,1057,1058,1,0,0,0,1058,1059,5,215,0,0,1059,1165,1,0,0,0,1060,1061, + 5,107,0,0,1061,1062,5,214,0,0,1062,1063,3,24,12,0,1063,1064,5,216, + 0,0,1064,1065,3,24,12,0,1065,1066,5,215,0,0,1066,1165,1,0,0,0,1067, + 1068,5,108,0,0,1068,1069,5,214,0,0,1069,1070,3,24,12,0,1070,1071, + 5,216,0,0,1071,1072,3,24,12,0,1072,1073,5,215,0,0,1073,1165,1,0, + 0,0,1074,1075,5,109,0,0,1075,1076,5,214,0,0,1076,1077,3,24,12,0, + 1077,1078,5,216,0,0,1078,1079,3,24,12,0,1079,1080,5,215,0,0,1080, + 1165,1,0,0,0,1081,1082,5,122,0,0,1082,1083,5,214,0,0,1083,1086,3, + 24,12,0,1084,1085,5,216,0,0,1085,1087,3,24,12,0,1086,1084,1,0,0, + 0,1086,1087,1,0,0,0,1087,1088,1,0,0,0,1088,1089,5,215,0,0,1089,1165, + 1,0,0,0,1090,1091,5,123,0,0,1091,1092,5,214,0,0,1092,1095,3,24,12, + 0,1093,1094,5,216,0,0,1094,1096,3,24,12,0,1095,1093,1,0,0,0,1095, + 1096,1,0,0,0,1096,1097,1,0,0,0,1097,1098,5,215,0,0,1098,1165,1,0, + 0,0,1099,1100,5,124,0,0,1100,1101,5,214,0,0,1101,1102,3,24,12,0, + 1102,1103,5,216,0,0,1103,1106,3,24,12,0,1104,1105,5,216,0,0,1105, 1107,3,24,12,0,1106,1104,1,0,0,0,1106,1107,1,0,0,0,1107,1108,1,0, - 0,0,1108,1109,5,214,0,0,1109,1165,1,0,0,0,1110,1111,5,125,0,0,1111, - 1112,5,213,0,0,1112,1113,3,24,12,0,1113,1114,5,215,0,0,1114,1115, - 3,24,12,0,1115,1116,5,214,0,0,1116,1165,1,0,0,0,1117,1118,5,126, - 0,0,1118,1119,5,213,0,0,1119,1120,3,24,12,0,1120,1121,5,215,0,0, - 1121,1122,3,24,12,0,1122,1123,5,215,0,0,1123,1124,3,24,12,0,1124, - 1125,5,214,0,0,1125,1165,1,0,0,0,1126,1127,5,137,0,0,1127,1128,5, - 213,0,0,1128,1129,3,24,12,0,1129,1130,5,214,0,0,1130,1165,1,0,0, - 0,1131,1132,5,138,0,0,1132,1133,5,213,0,0,1133,1139,3,24,12,0,1134, - 1135,5,215,0,0,1135,1136,3,24,12,0,1136,1137,5,215,0,0,1137,1138, + 0,0,1108,1109,5,215,0,0,1109,1165,1,0,0,0,1110,1111,5,125,0,0,1111, + 1112,5,214,0,0,1112,1113,3,24,12,0,1113,1114,5,216,0,0,1114,1115, + 3,24,12,0,1115,1116,5,215,0,0,1116,1165,1,0,0,0,1117,1118,5,126, + 0,0,1118,1119,5,214,0,0,1119,1120,3,24,12,0,1120,1121,5,216,0,0, + 1121,1122,3,24,12,0,1122,1123,5,216,0,0,1123,1124,3,24,12,0,1124, + 1125,5,215,0,0,1125,1165,1,0,0,0,1126,1127,5,137,0,0,1127,1128,5, + 214,0,0,1128,1129,3,24,12,0,1129,1130,5,215,0,0,1130,1165,1,0,0, + 0,1131,1132,5,138,0,0,1132,1133,5,214,0,0,1133,1139,3,24,12,0,1134, + 1135,5,216,0,0,1135,1136,3,24,12,0,1136,1137,5,216,0,0,1137,1138, 3,24,12,0,1138,1140,1,0,0,0,1139,1134,1,0,0,0,1139,1140,1,0,0,0, - 1140,1141,1,0,0,0,1141,1142,5,214,0,0,1142,1165,1,0,0,0,1143,1144, - 5,139,0,0,1144,1145,5,213,0,0,1145,1146,3,24,12,0,1146,1147,5,215, - 0,0,1147,1148,3,24,12,0,1148,1149,5,214,0,0,1149,1165,1,0,0,0,1150, - 1151,5,140,0,0,1151,1152,5,213,0,0,1152,1153,3,24,12,0,1153,1154, - 5,215,0,0,1154,1155,3,24,12,0,1155,1156,5,214,0,0,1156,1165,1,0, - 0,0,1157,1158,5,141,0,0,1158,1159,5,213,0,0,1159,1160,3,24,12,0, - 1160,1161,5,215,0,0,1161,1162,3,24,12,0,1162,1163,5,214,0,0,1163, + 1140,1141,1,0,0,0,1141,1142,5,215,0,0,1142,1165,1,0,0,0,1143,1144, + 5,139,0,0,1144,1145,5,214,0,0,1145,1146,3,24,12,0,1146,1147,5,216, + 0,0,1147,1148,3,24,12,0,1148,1149,5,215,0,0,1149,1165,1,0,0,0,1150, + 1151,5,140,0,0,1151,1152,5,214,0,0,1152,1153,3,24,12,0,1153,1154, + 5,216,0,0,1154,1155,3,24,12,0,1155,1156,5,215,0,0,1156,1165,1,0, + 0,0,1157,1158,5,141,0,0,1158,1159,5,214,0,0,1159,1160,3,24,12,0, + 1160,1161,5,216,0,0,1161,1162,3,24,12,0,1162,1163,5,215,0,0,1163, 1165,1,0,0,0,1164,812,1,0,0,0,1164,819,1,0,0,0,1164,826,1,0,0,0, 1164,833,1,0,0,0,1164,840,1,0,0,0,1164,849,1,0,0,0,1164,856,1,0, 0,0,1164,863,1,0,0,0,1164,870,1,0,0,0,1164,877,1,0,0,0,1164,884, @@ -523,256 +524,260 @@ def serializedATN(): 1,0,0,0,1164,1074,1,0,0,0,1164,1081,1,0,0,0,1164,1090,1,0,0,0,1164, 1099,1,0,0,0,1164,1110,1,0,0,0,1164,1117,1,0,0,0,1164,1126,1,0,0, 0,1164,1131,1,0,0,0,1164,1143,1,0,0,0,1164,1150,1,0,0,0,1164,1157, - 1,0,0,0,1165,51,1,0,0,0,1166,1167,5,31,0,0,1167,1168,5,213,0,0,1168, - 1169,3,24,12,0,1169,1170,5,215,0,0,1170,1171,3,24,12,0,1171,1172, - 5,215,0,0,1172,1173,3,24,12,0,1173,1174,5,214,0,0,1174,1421,1,0, - 0,0,1175,1176,5,38,0,0,1176,1177,5,213,0,0,1177,1178,3,24,12,0,1178, - 1179,5,215,0,0,1179,1180,3,24,12,0,1180,1181,5,215,0,0,1181,1182, - 3,24,12,0,1182,1183,5,214,0,0,1183,1421,1,0,0,0,1184,1185,5,40,0, - 0,1185,1186,5,213,0,0,1186,1187,3,24,12,0,1187,1188,5,215,0,0,1188, - 1189,3,24,12,0,1189,1190,5,215,0,0,1190,1191,3,24,12,0,1191,1192, - 5,214,0,0,1192,1421,1,0,0,0,1193,1194,5,52,0,0,1194,1195,5,213,0, - 0,1195,1196,3,24,12,0,1196,1197,5,215,0,0,1197,1198,3,24,12,0,1198, - 1199,5,215,0,0,1199,1200,3,24,12,0,1200,1201,5,214,0,0,1201,1421, - 1,0,0,0,1202,1203,5,66,0,0,1203,1204,5,213,0,0,1204,1205,3,24,12, - 0,1205,1206,5,215,0,0,1206,1207,3,24,12,0,1207,1208,5,215,0,0,1208, - 1209,3,24,12,0,1209,1210,5,214,0,0,1210,1421,1,0,0,0,1211,1212,5, - 79,0,0,1212,1213,5,213,0,0,1213,1214,3,24,12,0,1214,1215,5,215,0, - 0,1215,1216,3,24,12,0,1216,1217,5,215,0,0,1217,1218,3,24,12,0,1218, - 1219,5,214,0,0,1219,1421,1,0,0,0,1220,1221,5,80,0,0,1221,1222,5, - 213,0,0,1222,1223,3,24,12,0,1223,1224,5,215,0,0,1224,1225,3,24,12, - 0,1225,1226,5,215,0,0,1226,1227,3,24,12,0,1227,1228,5,214,0,0,1228, - 1421,1,0,0,0,1229,1230,5,81,0,0,1230,1231,5,213,0,0,1231,1232,3, - 24,12,0,1232,1233,5,215,0,0,1233,1234,3,24,12,0,1234,1235,5,215, - 0,0,1235,1236,3,24,12,0,1236,1237,5,214,0,0,1237,1421,1,0,0,0,1238, - 1239,5,82,0,0,1239,1240,5,213,0,0,1240,1241,3,24,12,0,1241,1242, - 5,215,0,0,1242,1243,3,24,12,0,1243,1244,5,215,0,0,1244,1245,3,24, - 12,0,1245,1246,5,214,0,0,1246,1421,1,0,0,0,1247,1248,5,171,0,0,1248, - 1249,5,213,0,0,1249,1250,3,24,12,0,1250,1251,5,215,0,0,1251,1252, - 3,24,12,0,1252,1253,5,215,0,0,1253,1254,3,24,12,0,1254,1255,5,214, - 0,0,1255,1421,1,0,0,0,1256,1257,5,33,0,0,1257,1258,5,213,0,0,1258, - 1261,3,24,12,0,1259,1260,5,215,0,0,1260,1262,3,24,12,0,1261,1259, - 1,0,0,0,1261,1262,1,0,0,0,1262,1263,1,0,0,0,1263,1264,5,214,0,0, - 1264,1421,1,0,0,0,1265,1266,5,99,0,0,1266,1267,5,213,0,0,1267,1268, - 3,24,12,0,1268,1269,5,215,0,0,1269,1270,3,24,12,0,1270,1271,5,215, - 0,0,1271,1274,3,24,12,0,1272,1273,5,215,0,0,1273,1275,3,24,12,0, + 1,0,0,0,1165,51,1,0,0,0,1166,1167,5,31,0,0,1167,1168,5,214,0,0,1168, + 1169,3,24,12,0,1169,1170,5,216,0,0,1170,1171,3,24,12,0,1171,1172, + 5,216,0,0,1172,1173,3,24,12,0,1173,1174,5,215,0,0,1174,1432,1,0, + 0,0,1175,1176,5,38,0,0,1176,1177,5,214,0,0,1177,1178,3,24,12,0,1178, + 1179,5,216,0,0,1179,1180,3,24,12,0,1180,1181,5,216,0,0,1181,1182, + 3,24,12,0,1182,1183,5,215,0,0,1183,1432,1,0,0,0,1184,1185,5,40,0, + 0,1185,1186,5,214,0,0,1186,1187,3,24,12,0,1187,1188,5,216,0,0,1188, + 1189,3,24,12,0,1189,1190,5,216,0,0,1190,1191,3,24,12,0,1191,1192, + 5,215,0,0,1192,1432,1,0,0,0,1193,1194,5,52,0,0,1194,1195,5,214,0, + 0,1195,1196,3,24,12,0,1196,1197,5,216,0,0,1197,1198,3,24,12,0,1198, + 1199,5,216,0,0,1199,1200,3,24,12,0,1200,1201,5,215,0,0,1201,1432, + 1,0,0,0,1202,1203,5,66,0,0,1203,1204,5,214,0,0,1204,1205,3,24,12, + 0,1205,1206,5,216,0,0,1206,1207,3,24,12,0,1207,1208,5,216,0,0,1208, + 1209,3,24,12,0,1209,1210,5,215,0,0,1210,1432,1,0,0,0,1211,1212,5, + 79,0,0,1212,1213,5,214,0,0,1213,1214,3,24,12,0,1214,1215,5,216,0, + 0,1215,1216,3,24,12,0,1216,1217,5,216,0,0,1217,1218,3,24,12,0,1218, + 1219,5,215,0,0,1219,1432,1,0,0,0,1220,1221,5,80,0,0,1221,1222,5, + 214,0,0,1222,1223,3,24,12,0,1223,1224,5,216,0,0,1224,1225,3,24,12, + 0,1225,1226,5,216,0,0,1226,1227,3,24,12,0,1227,1228,5,215,0,0,1228, + 1432,1,0,0,0,1229,1230,5,81,0,0,1230,1231,5,214,0,0,1231,1232,3, + 24,12,0,1232,1233,5,216,0,0,1233,1234,3,24,12,0,1234,1235,5,216, + 0,0,1235,1236,3,24,12,0,1236,1237,5,215,0,0,1237,1432,1,0,0,0,1238, + 1239,5,82,0,0,1239,1240,5,214,0,0,1240,1241,3,24,12,0,1241,1242, + 5,216,0,0,1242,1243,3,24,12,0,1243,1244,5,216,0,0,1244,1245,3,24, + 12,0,1245,1246,5,215,0,0,1246,1432,1,0,0,0,1247,1248,5,171,0,0,1248, + 1249,5,214,0,0,1249,1250,3,24,12,0,1250,1251,5,216,0,0,1251,1252, + 3,24,12,0,1252,1253,5,216,0,0,1253,1254,3,24,12,0,1254,1255,5,215, + 0,0,1255,1432,1,0,0,0,1256,1257,5,33,0,0,1257,1258,5,214,0,0,1258, + 1261,3,24,12,0,1259,1260,5,216,0,0,1260,1262,3,24,12,0,1261,1259, + 1,0,0,0,1261,1262,1,0,0,0,1262,1263,1,0,0,0,1263,1264,5,215,0,0, + 1264,1432,1,0,0,0,1265,1266,5,99,0,0,1266,1267,5,214,0,0,1267,1268, + 3,24,12,0,1268,1269,5,216,0,0,1269,1270,3,24,12,0,1270,1271,5,216, + 0,0,1271,1274,3,24,12,0,1272,1273,5,216,0,0,1273,1275,3,24,12,0, 1274,1272,1,0,0,0,1274,1275,1,0,0,0,1275,1276,1,0,0,0,1276,1277, - 5,214,0,0,1277,1421,1,0,0,0,1278,1279,5,53,0,0,1279,1280,5,213,0, - 0,1280,1281,3,24,12,0,1281,1282,5,215,0,0,1282,1283,3,24,12,0,1283, - 1284,5,215,0,0,1284,1285,3,24,12,0,1285,1286,5,214,0,0,1286,1421, - 1,0,0,0,1287,1288,5,167,0,0,1288,1289,5,213,0,0,1289,1290,3,24,12, - 0,1290,1291,5,215,0,0,1291,1294,3,24,12,0,1292,1293,5,215,0,0,1293, + 5,215,0,0,1277,1432,1,0,0,0,1278,1279,5,53,0,0,1279,1280,5,214,0, + 0,1280,1281,3,24,12,0,1281,1282,5,216,0,0,1282,1283,3,24,12,0,1283, + 1284,5,216,0,0,1284,1285,3,24,12,0,1285,1286,5,215,0,0,1286,1432, + 1,0,0,0,1287,1288,5,167,0,0,1288,1289,5,214,0,0,1289,1290,3,24,12, + 0,1290,1291,5,216,0,0,1291,1294,3,24,12,0,1292,1293,5,216,0,0,1293, 1295,3,24,12,0,1294,1292,1,0,0,0,1294,1295,1,0,0,0,1295,1296,1,0, - 0,0,1296,1297,5,214,0,0,1297,1421,1,0,0,0,1298,1299,5,131,0,0,1299, - 1300,5,213,0,0,1300,1306,3,24,12,0,1301,1302,5,215,0,0,1302,1303, - 3,24,12,0,1303,1304,5,215,0,0,1304,1305,3,24,12,0,1305,1307,1,0, + 0,0,1296,1297,5,215,0,0,1297,1432,1,0,0,0,1298,1299,5,131,0,0,1299, + 1300,5,214,0,0,1300,1306,3,24,12,0,1301,1302,5,216,0,0,1302,1303, + 3,24,12,0,1303,1304,5,216,0,0,1304,1305,3,24,12,0,1305,1307,1,0, 0,0,1306,1301,1,0,0,0,1306,1307,1,0,0,0,1307,1308,1,0,0,0,1308,1309, - 5,214,0,0,1309,1421,1,0,0,0,1310,1311,5,132,0,0,1311,1312,5,213, - 0,0,1312,1318,3,24,12,0,1313,1314,5,215,0,0,1314,1315,3,24,12,0, - 1315,1316,5,215,0,0,1316,1317,3,24,12,0,1317,1319,1,0,0,0,1318,1313, - 1,0,0,0,1318,1319,1,0,0,0,1319,1320,1,0,0,0,1320,1321,5,214,0,0, - 1321,1421,1,0,0,0,1322,1323,5,135,0,0,1323,1324,5,213,0,0,1324,1330, - 3,24,12,0,1325,1326,5,215,0,0,1326,1327,3,24,12,0,1327,1328,5,215, + 5,215,0,0,1309,1432,1,0,0,0,1310,1311,5,132,0,0,1311,1312,5,214, + 0,0,1312,1318,3,24,12,0,1313,1314,5,216,0,0,1314,1315,3,24,12,0, + 1315,1316,5,216,0,0,1316,1317,3,24,12,0,1317,1319,1,0,0,0,1318,1313, + 1,0,0,0,1318,1319,1,0,0,0,1319,1320,1,0,0,0,1320,1321,5,215,0,0, + 1321,1432,1,0,0,0,1322,1323,5,135,0,0,1323,1324,5,214,0,0,1324,1330, + 3,24,12,0,1325,1326,5,216,0,0,1326,1327,3,24,12,0,1327,1328,5,216, 0,0,1328,1329,3,24,12,0,1329,1331,1,0,0,0,1330,1325,1,0,0,0,1330, - 1331,1,0,0,0,1331,1334,1,0,0,0,1332,1333,5,215,0,0,1333,1335,3,24, + 1331,1,0,0,0,1331,1334,1,0,0,0,1332,1333,5,216,0,0,1333,1335,3,24, 12,0,1334,1332,1,0,0,0,1334,1335,1,0,0,0,1335,1336,1,0,0,0,1336, - 1337,5,214,0,0,1337,1421,1,0,0,0,1338,1339,5,136,0,0,1339,1340,5, - 213,0,0,1340,1346,3,24,12,0,1341,1342,5,215,0,0,1342,1343,3,24,12, - 0,1343,1344,5,215,0,0,1344,1345,3,24,12,0,1345,1347,1,0,0,0,1346, - 1341,1,0,0,0,1346,1347,1,0,0,0,1347,1350,1,0,0,0,1348,1349,5,215, + 1337,5,215,0,0,1337,1432,1,0,0,0,1338,1339,5,136,0,0,1339,1340,5, + 214,0,0,1340,1346,3,24,12,0,1341,1342,5,216,0,0,1342,1343,3,24,12, + 0,1343,1344,5,216,0,0,1344,1345,3,24,12,0,1345,1347,1,0,0,0,1346, + 1341,1,0,0,0,1346,1347,1,0,0,0,1347,1350,1,0,0,0,1348,1349,5,216, 0,0,1349,1351,3,24,12,0,1350,1348,1,0,0,0,1350,1351,1,0,0,0,1351, - 1352,1,0,0,0,1352,1353,5,214,0,0,1353,1421,1,0,0,0,1354,1355,5,97, - 0,0,1355,1356,5,213,0,0,1356,1357,3,24,12,0,1357,1358,5,215,0,0, - 1358,1359,3,24,12,0,1359,1360,5,215,0,0,1360,1361,3,24,12,0,1361, - 1362,5,214,0,0,1362,1421,1,0,0,0,1363,1364,5,133,0,0,1364,1365,5, - 213,0,0,1365,1371,3,24,12,0,1366,1367,5,215,0,0,1367,1368,3,24,12, - 0,1368,1369,5,215,0,0,1369,1370,3,24,12,0,1370,1372,1,0,0,0,1371, - 1366,1,0,0,0,1371,1372,1,0,0,0,1372,1373,1,0,0,0,1373,1374,5,214, - 0,0,1374,1421,1,0,0,0,1375,1376,5,134,0,0,1376,1377,5,213,0,0,1377, - 1383,3,24,12,0,1378,1379,5,215,0,0,1379,1380,3,24,12,0,1380,1381, - 5,215,0,0,1381,1382,3,24,12,0,1382,1384,1,0,0,0,1383,1378,1,0,0, - 0,1383,1384,1,0,0,0,1384,1385,1,0,0,0,1385,1386,5,214,0,0,1386,1421, - 1,0,0,0,1387,1388,5,142,0,0,1388,1389,5,213,0,0,1389,1390,3,24,12, - 0,1390,1391,5,215,0,0,1391,1392,3,24,12,0,1392,1393,5,215,0,0,1393, - 1396,3,24,12,0,1394,1395,5,215,0,0,1395,1397,3,24,12,0,1396,1394, - 1,0,0,0,1396,1397,1,0,0,0,1397,1400,1,0,0,0,1398,1399,5,215,0,0, + 1352,1,0,0,0,1352,1353,5,215,0,0,1353,1432,1,0,0,0,1354,1355,5,97, + 0,0,1355,1356,5,214,0,0,1356,1357,3,24,12,0,1357,1358,5,216,0,0, + 1358,1359,3,24,12,0,1359,1360,5,216,0,0,1360,1361,3,24,12,0,1361, + 1362,5,215,0,0,1362,1432,1,0,0,0,1363,1364,5,133,0,0,1364,1365,5, + 214,0,0,1365,1371,3,24,12,0,1366,1367,5,216,0,0,1367,1368,3,24,12, + 0,1368,1369,5,216,0,0,1369,1370,3,24,12,0,1370,1372,1,0,0,0,1371, + 1366,1,0,0,0,1371,1372,1,0,0,0,1372,1373,1,0,0,0,1373,1374,5,215, + 0,0,1374,1432,1,0,0,0,1375,1376,5,134,0,0,1376,1377,5,214,0,0,1377, + 1383,3,24,12,0,1378,1379,5,216,0,0,1379,1380,3,24,12,0,1380,1381, + 5,216,0,0,1381,1382,3,24,12,0,1382,1384,1,0,0,0,1383,1378,1,0,0, + 0,1383,1384,1,0,0,0,1384,1385,1,0,0,0,1385,1386,5,215,0,0,1386,1432, + 1,0,0,0,1387,1388,5,142,0,0,1388,1389,5,214,0,0,1389,1390,3,24,12, + 0,1390,1391,5,216,0,0,1391,1392,3,24,12,0,1392,1393,5,216,0,0,1393, + 1396,3,24,12,0,1394,1395,5,216,0,0,1395,1397,3,24,12,0,1396,1394, + 1,0,0,0,1396,1397,1,0,0,0,1397,1400,1,0,0,0,1398,1399,5,216,0,0, 1399,1401,3,24,12,0,1400,1398,1,0,0,0,1400,1401,1,0,0,0,1401,1404, - 1,0,0,0,1402,1403,5,215,0,0,1403,1405,3,24,12,0,1404,1402,1,0,0, - 0,1404,1405,1,0,0,0,1405,1408,1,0,0,0,1406,1407,5,215,0,0,1407,1409, + 1,0,0,0,1402,1403,5,216,0,0,1403,1405,3,24,12,0,1404,1402,1,0,0, + 0,1404,1405,1,0,0,0,1405,1408,1,0,0,0,1406,1407,5,216,0,0,1407,1409, 3,24,12,0,1408,1406,1,0,0,0,1408,1409,1,0,0,0,1409,1412,1,0,0,0, - 1410,1411,5,215,0,0,1411,1413,3,24,12,0,1412,1410,1,0,0,0,1412,1413, - 1,0,0,0,1413,1416,1,0,0,0,1414,1415,5,215,0,0,1415,1417,3,24,12, + 1410,1411,5,216,0,0,1411,1413,3,24,12,0,1412,1410,1,0,0,0,1412,1413, + 1,0,0,0,1413,1416,1,0,0,0,1414,1415,5,216,0,0,1415,1417,3,24,12, 0,1416,1414,1,0,0,0,1416,1417,1,0,0,0,1417,1418,1,0,0,0,1418,1419, - 5,214,0,0,1419,1421,1,0,0,0,1420,1166,1,0,0,0,1420,1175,1,0,0,0, - 1420,1184,1,0,0,0,1420,1193,1,0,0,0,1420,1202,1,0,0,0,1420,1211, - 1,0,0,0,1420,1220,1,0,0,0,1420,1229,1,0,0,0,1420,1238,1,0,0,0,1420, - 1247,1,0,0,0,1420,1256,1,0,0,0,1420,1265,1,0,0,0,1420,1278,1,0,0, - 0,1420,1287,1,0,0,0,1420,1298,1,0,0,0,1420,1310,1,0,0,0,1420,1322, - 1,0,0,0,1420,1338,1,0,0,0,1420,1354,1,0,0,0,1420,1363,1,0,0,0,1420, - 1375,1,0,0,0,1420,1387,1,0,0,0,1421,53,1,0,0,0,1422,1423,5,49,0, - 0,1423,1424,5,213,0,0,1424,1425,3,24,12,0,1425,1426,5,215,0,0,1426, - 1427,3,24,12,0,1427,1428,5,215,0,0,1428,1429,3,24,12,0,1429,1430, - 5,215,0,0,1430,1431,3,24,12,0,1431,1432,5,214,0,0,1432,1478,1,0, - 0,0,1433,1434,5,37,0,0,1434,1435,5,213,0,0,1435,1436,3,24,12,0,1436, - 1437,5,215,0,0,1437,1438,3,24,12,0,1438,1439,5,215,0,0,1439,1440, - 3,24,12,0,1440,1441,5,215,0,0,1441,1442,3,24,12,0,1442,1443,5,214, - 0,0,1443,1478,1,0,0,0,1444,1445,5,54,0,0,1445,1446,5,213,0,0,1446, - 1447,3,24,12,0,1447,1448,5,215,0,0,1448,1449,3,24,12,0,1449,1450, - 5,215,0,0,1450,1451,3,24,12,0,1451,1452,5,215,0,0,1452,1453,3,24, - 12,0,1453,1454,5,214,0,0,1454,1478,1,0,0,0,1455,1456,5,83,0,0,1456, - 1457,5,213,0,0,1457,1458,3,24,12,0,1458,1459,5,215,0,0,1459,1460, - 3,24,12,0,1460,1461,5,215,0,0,1461,1462,3,24,12,0,1462,1463,5,215, - 0,0,1463,1464,3,24,12,0,1464,1465,5,214,0,0,1465,1478,1,0,0,0,1466, - 1467,5,98,0,0,1467,1468,5,213,0,0,1468,1469,3,24,12,0,1469,1470, - 5,215,0,0,1470,1471,3,24,12,0,1471,1472,5,215,0,0,1472,1473,3,24, - 12,0,1473,1474,5,215,0,0,1474,1475,3,24,12,0,1475,1476,5,214,0,0, - 1476,1478,1,0,0,0,1477,1422,1,0,0,0,1477,1433,1,0,0,0,1477,1444, - 1,0,0,0,1477,1455,1,0,0,0,1477,1466,1,0,0,0,1478,55,1,0,0,0,1479, - 1480,5,84,0,0,1480,1481,5,213,0,0,1481,1482,3,24,12,0,1482,1483, - 5,215,0,0,1483,1484,3,24,12,0,1484,1485,5,215,0,0,1485,1486,3,24, - 12,0,1486,1487,5,215,0,0,1487,1488,3,24,12,0,1488,1489,5,215,0,0, - 1489,1490,3,24,12,0,1490,1491,5,214,0,0,1491,1512,1,0,0,0,1492,1493, - 5,145,0,0,1493,1494,5,213,0,0,1494,1495,3,24,12,0,1495,1496,5,215, - 0,0,1496,1507,3,24,12,0,1497,1498,5,215,0,0,1498,1505,3,24,12,0, - 1499,1500,5,215,0,0,1500,1503,3,24,12,0,1501,1502,5,215,0,0,1502, - 1504,3,24,12,0,1503,1501,1,0,0,0,1503,1504,1,0,0,0,1504,1506,1,0, - 0,0,1505,1499,1,0,0,0,1505,1506,1,0,0,0,1506,1508,1,0,0,0,1507,1497, - 1,0,0,0,1507,1508,1,0,0,0,1508,1509,1,0,0,0,1509,1510,5,214,0,0, - 1510,1512,1,0,0,0,1511,1479,1,0,0,0,1511,1492,1,0,0,0,1512,57,1, - 0,0,0,1513,1514,5,19,0,0,1514,1515,5,213,0,0,1515,1520,3,24,12,0, - 1516,1517,5,215,0,0,1517,1519,3,24,12,0,1518,1516,1,0,0,0,1519,1522, - 1,0,0,0,1520,1518,1,0,0,0,1520,1521,1,0,0,0,1521,1523,1,0,0,0,1522, - 1520,1,0,0,0,1523,1524,5,214,0,0,1524,1605,1,0,0,0,1525,1526,5,20, - 0,0,1526,1527,5,213,0,0,1527,1532,3,24,12,0,1528,1529,5,215,0,0, - 1529,1531,3,24,12,0,1530,1528,1,0,0,0,1531,1534,1,0,0,0,1532,1530, - 1,0,0,0,1532,1533,1,0,0,0,1533,1535,1,0,0,0,1534,1532,1,0,0,0,1535, - 1536,5,214,0,0,1536,1605,1,0,0,0,1537,1538,5,46,0,0,1538,1539,5, - 213,0,0,1539,1542,3,24,12,0,1540,1541,5,215,0,0,1541,1543,3,24,12, - 0,1542,1540,1,0,0,0,1543,1544,1,0,0,0,1544,1542,1,0,0,0,1544,1545, - 1,0,0,0,1545,1546,1,0,0,0,1546,1547,5,214,0,0,1547,1605,1,0,0,0, - 1548,1549,5,47,0,0,1549,1550,5,213,0,0,1550,1553,3,24,12,0,1551, - 1552,5,215,0,0,1552,1554,3,24,12,0,1553,1551,1,0,0,0,1554,1555,1, - 0,0,0,1555,1553,1,0,0,0,1555,1556,1,0,0,0,1556,1557,1,0,0,0,1557, - 1558,5,214,0,0,1558,1605,1,0,0,0,1559,1560,5,48,0,0,1560,1561,5, - 213,0,0,1561,1564,3,24,12,0,1562,1563,5,215,0,0,1563,1565,3,24,12, - 0,1564,1562,1,0,0,0,1565,1566,1,0,0,0,1566,1564,1,0,0,0,1566,1567, - 1,0,0,0,1567,1568,1,0,0,0,1568,1569,5,214,0,0,1569,1605,1,0,0,0, - 1570,1571,5,51,0,0,1571,1572,5,213,0,0,1572,1573,3,24,12,0,1573, - 1574,5,215,0,0,1574,1575,3,24,12,0,1575,1576,5,214,0,0,1576,1605, - 1,0,0,0,1577,1578,5,165,0,0,1578,1579,5,213,0,0,1579,1582,3,24,12, - 0,1580,1581,5,215,0,0,1581,1583,3,24,12,0,1582,1580,1,0,0,0,1582, - 1583,1,0,0,0,1583,1584,1,0,0,0,1584,1585,5,214,0,0,1585,1605,1,0, - 0,0,1586,1587,5,166,0,0,1587,1588,5,213,0,0,1588,1589,3,24,12,0, - 1589,1590,5,215,0,0,1590,1591,3,24,12,0,1591,1592,5,214,0,0,1592, - 1605,1,0,0,0,1593,1594,5,116,0,0,1594,1595,5,213,0,0,1595,1598,3, - 24,12,0,1596,1597,5,215,0,0,1597,1599,3,24,12,0,1598,1596,1,0,0, - 0,1599,1600,1,0,0,0,1600,1598,1,0,0,0,1600,1601,1,0,0,0,1601,1602, - 1,0,0,0,1602,1603,5,214,0,0,1603,1605,1,0,0,0,1604,1513,1,0,0,0, - 1604,1525,1,0,0,0,1604,1537,1,0,0,0,1604,1548,1,0,0,0,1604,1559, - 1,0,0,0,1604,1570,1,0,0,0,1604,1577,1,0,0,0,1604,1586,1,0,0,0,1604, - 1593,1,0,0,0,1605,59,1,0,0,0,1606,1607,5,173,0,0,1607,1608,5,213, - 0,0,1608,1611,3,24,12,0,1609,1610,5,215,0,0,1610,1612,3,24,12,0, - 1611,1609,1,0,0,0,1611,1612,1,0,0,0,1612,1613,1,0,0,0,1613,1614, - 5,214,0,0,1614,1874,1,0,0,0,1615,1616,5,174,0,0,1616,1617,5,213, - 0,0,1617,1620,3,24,12,0,1618,1619,5,215,0,0,1619,1621,3,24,12,0, - 1620,1618,1,0,0,0,1620,1621,1,0,0,0,1621,1622,1,0,0,0,1622,1623, - 5,214,0,0,1623,1874,1,0,0,0,1624,1625,5,176,0,0,1625,1626,5,213, - 0,0,1626,1627,3,24,12,0,1627,1628,5,215,0,0,1628,1631,3,24,12,0, - 1629,1630,5,215,0,0,1630,1632,3,24,12,0,1631,1629,1,0,0,0,1631,1632, - 1,0,0,0,1632,1633,1,0,0,0,1633,1634,5,214,0,0,1634,1874,1,0,0,0, - 1635,1636,5,178,0,0,1636,1637,5,213,0,0,1637,1638,3,24,12,0,1638, - 1639,5,215,0,0,1639,1642,3,24,12,0,1640,1641,5,215,0,0,1641,1643, - 3,24,12,0,1642,1640,1,0,0,0,1642,1643,1,0,0,0,1643,1644,1,0,0,0, - 1644,1645,5,214,0,0,1645,1874,1,0,0,0,1646,1647,5,179,0,0,1647,1648, - 5,213,0,0,1648,1649,3,24,12,0,1649,1650,5,215,0,0,1650,1653,3,24, - 12,0,1651,1652,5,215,0,0,1652,1654,3,24,12,0,1653,1651,1,0,0,0,1653, - 1654,1,0,0,0,1654,1655,1,0,0,0,1655,1656,5,214,0,0,1656,1874,1,0, - 0,0,1657,1658,5,175,0,0,1658,1659,5,213,0,0,1659,1660,3,24,12,0, - 1660,1661,5,215,0,0,1661,1662,3,24,12,0,1662,1663,5,215,0,0,1663, - 1666,3,24,12,0,1664,1665,5,215,0,0,1665,1667,3,24,12,0,1666,1664, - 1,0,0,0,1666,1667,1,0,0,0,1667,1668,1,0,0,0,1668,1669,5,214,0,0, - 1669,1874,1,0,0,0,1670,1671,5,177,0,0,1671,1672,5,213,0,0,1672,1673, - 3,24,12,0,1673,1674,5,215,0,0,1674,1675,3,24,12,0,1675,1676,5,215, - 0,0,1676,1679,3,24,12,0,1677,1678,5,215,0,0,1678,1680,3,24,12,0, - 1679,1677,1,0,0,0,1679,1680,1,0,0,0,1680,1681,1,0,0,0,1681,1682, - 5,214,0,0,1682,1874,1,0,0,0,1683,1684,5,180,0,0,1684,1685,5,213, - 0,0,1685,1686,3,24,12,0,1686,1687,5,215,0,0,1687,1688,3,24,12,0, - 1688,1689,5,215,0,0,1689,1692,3,24,12,0,1690,1691,5,215,0,0,1691, - 1693,3,24,12,0,1692,1690,1,0,0,0,1692,1693,1,0,0,0,1693,1694,1,0, - 0,0,1694,1695,5,214,0,0,1695,1874,1,0,0,0,1696,1697,5,181,0,0,1697, - 1698,5,213,0,0,1698,1699,3,24,12,0,1699,1700,5,215,0,0,1700,1701, - 3,24,12,0,1701,1702,5,215,0,0,1702,1705,3,24,12,0,1703,1704,5,215, - 0,0,1704,1706,3,24,12,0,1705,1703,1,0,0,0,1705,1706,1,0,0,0,1706, - 1707,1,0,0,0,1707,1708,5,214,0,0,1708,1874,1,0,0,0,1709,1710,5,182, - 0,0,1710,1711,5,213,0,0,1711,1712,3,24,12,0,1712,1713,5,215,0,0, - 1713,1714,3,24,12,0,1714,1715,5,215,0,0,1715,1718,3,24,12,0,1716, - 1717,5,215,0,0,1717,1719,3,24,12,0,1718,1716,1,0,0,0,1718,1719,1, - 0,0,0,1719,1720,1,0,0,0,1720,1721,5,214,0,0,1721,1874,1,0,0,0,1722, - 1723,5,183,0,0,1723,1724,5,213,0,0,1724,1725,3,24,12,0,1725,1726, - 5,215,0,0,1726,1727,3,24,12,0,1727,1728,5,215,0,0,1728,1731,3,24, - 12,0,1729,1730,5,215,0,0,1730,1732,3,24,12,0,1731,1729,1,0,0,0,1731, - 1732,1,0,0,0,1732,1733,1,0,0,0,1733,1734,5,214,0,0,1734,1874,1,0, - 0,0,1735,1736,5,184,0,0,1736,1737,5,213,0,0,1737,1738,3,24,12,0, - 1738,1739,5,215,0,0,1739,1740,3,24,12,0,1740,1741,5,215,0,0,1741, - 1744,3,24,12,0,1742,1743,5,215,0,0,1743,1745,3,24,12,0,1744,1742, - 1,0,0,0,1744,1745,1,0,0,0,1745,1746,1,0,0,0,1746,1747,5,214,0,0, - 1747,1874,1,0,0,0,1748,1749,5,185,0,0,1749,1750,5,213,0,0,1750,1751, - 3,24,12,0,1751,1752,5,215,0,0,1752,1755,3,24,12,0,1753,1754,5,215, - 0,0,1754,1756,3,24,12,0,1755,1753,1,0,0,0,1755,1756,1,0,0,0,1756, - 1757,1,0,0,0,1757,1758,5,214,0,0,1758,1874,1,0,0,0,1759,1760,5,186, - 0,0,1760,1761,5,213,0,0,1761,1762,3,24,12,0,1762,1763,5,215,0,0, - 1763,1766,3,24,12,0,1764,1765,5,215,0,0,1765,1767,3,24,12,0,1766, - 1764,1,0,0,0,1766,1767,1,0,0,0,1767,1768,1,0,0,0,1768,1769,5,214, - 0,0,1769,1874,1,0,0,0,1770,1771,5,187,0,0,1771,1772,5,213,0,0,1772, - 1773,3,24,12,0,1773,1774,5,215,0,0,1774,1777,3,24,12,0,1775,1776, - 5,215,0,0,1776,1778,3,24,12,0,1777,1775,1,0,0,0,1777,1778,1,0,0, - 0,1778,1781,1,0,0,0,1779,1780,5,215,0,0,1780,1782,3,24,12,0,1781, - 1779,1,0,0,0,1781,1782,1,0,0,0,1782,1785,1,0,0,0,1783,1784,5,215, - 0,0,1784,1786,3,24,12,0,1785,1783,1,0,0,0,1785,1786,1,0,0,0,1786, - 1787,1,0,0,0,1787,1788,5,214,0,0,1788,1874,1,0,0,0,1789,1790,5,188, - 0,0,1790,1791,5,213,0,0,1791,1792,3,24,12,0,1792,1793,5,215,0,0, - 1793,1796,3,24,12,0,1794,1795,5,215,0,0,1795,1797,3,24,12,0,1796, - 1794,1,0,0,0,1796,1797,1,0,0,0,1797,1800,1,0,0,0,1798,1799,5,215, - 0,0,1799,1801,3,24,12,0,1800,1798,1,0,0,0,1800,1801,1,0,0,0,1801, - 1804,1,0,0,0,1802,1803,5,215,0,0,1803,1805,3,24,12,0,1804,1802,1, - 0,0,0,1804,1805,1,0,0,0,1805,1806,1,0,0,0,1806,1807,5,214,0,0,1807, - 1874,1,0,0,0,1808,1809,5,189,0,0,1809,1810,5,213,0,0,1810,1811,3, - 24,12,0,1811,1812,5,215,0,0,1812,1815,3,24,12,0,1813,1814,5,215, - 0,0,1814,1816,3,24,12,0,1815,1813,1,0,0,0,1815,1816,1,0,0,0,1816, - 1819,1,0,0,0,1817,1818,5,215,0,0,1818,1820,3,24,12,0,1819,1817,1, - 0,0,0,1819,1820,1,0,0,0,1820,1823,1,0,0,0,1821,1822,5,215,0,0,1822, - 1824,3,24,12,0,1823,1821,1,0,0,0,1823,1824,1,0,0,0,1824,1825,1,0, - 0,0,1825,1826,5,214,0,0,1826,1874,1,0,0,0,1827,1828,5,190,0,0,1828, - 1829,5,213,0,0,1829,1830,3,24,12,0,1830,1831,5,215,0,0,1831,1834, - 3,24,12,0,1832,1833,5,215,0,0,1833,1835,3,24,12,0,1834,1832,1,0, - 0,0,1834,1835,1,0,0,0,1835,1838,1,0,0,0,1836,1837,5,215,0,0,1837, - 1839,3,24,12,0,1838,1836,1,0,0,0,1838,1839,1,0,0,0,1839,1842,1,0, - 0,0,1840,1841,5,215,0,0,1841,1843,3,24,12,0,1842,1840,1,0,0,0,1842, - 1843,1,0,0,0,1843,1844,1,0,0,0,1844,1845,5,214,0,0,1845,1874,1,0, - 0,0,1846,1847,5,191,0,0,1847,1848,5,213,0,0,1848,1849,3,24,12,0, - 1849,1850,5,215,0,0,1850,1851,3,24,12,0,1851,1852,5,215,0,0,1852, - 1853,3,24,12,0,1853,1854,5,215,0,0,1854,1857,3,24,12,0,1855,1856, - 5,215,0,0,1856,1858,3,24,12,0,1857,1855,1,0,0,0,1857,1858,1,0,0, - 0,1858,1861,1,0,0,0,1859,1860,5,215,0,0,1860,1862,3,24,12,0,1861, - 1859,1,0,0,0,1861,1862,1,0,0,0,1862,1865,1,0,0,0,1863,1864,5,215, - 0,0,1864,1866,3,24,12,0,1865,1863,1,0,0,0,1865,1866,1,0,0,0,1866, - 1869,1,0,0,0,1867,1868,5,215,0,0,1868,1870,3,24,12,0,1869,1867,1, - 0,0,0,1869,1870,1,0,0,0,1870,1871,1,0,0,0,1871,1872,5,214,0,0,1872, - 1874,1,0,0,0,1873,1606,1,0,0,0,1873,1615,1,0,0,0,1873,1624,1,0,0, - 0,1873,1635,1,0,0,0,1873,1646,1,0,0,0,1873,1657,1,0,0,0,1873,1670, - 1,0,0,0,1873,1683,1,0,0,0,1873,1696,1,0,0,0,1873,1709,1,0,0,0,1873, - 1722,1,0,0,0,1873,1735,1,0,0,0,1873,1748,1,0,0,0,1873,1759,1,0,0, - 0,1873,1770,1,0,0,0,1873,1789,1,0,0,0,1873,1808,1,0,0,0,1873,1827, - 1,0,0,0,1873,1846,1,0,0,0,1874,61,1,0,0,0,119,65,67,72,79,85,96, + 5,215,0,0,1419,1432,1,0,0,0,1420,1421,5,173,0,0,1421,1422,5,214, + 0,0,1422,1423,3,24,12,0,1423,1424,5,216,0,0,1424,1427,3,24,12,0, + 1425,1426,5,216,0,0,1426,1428,3,24,12,0,1427,1425,1,0,0,0,1427,1428, + 1,0,0,0,1428,1429,1,0,0,0,1429,1430,5,215,0,0,1430,1432,1,0,0,0, + 1431,1166,1,0,0,0,1431,1175,1,0,0,0,1431,1184,1,0,0,0,1431,1193, + 1,0,0,0,1431,1202,1,0,0,0,1431,1211,1,0,0,0,1431,1220,1,0,0,0,1431, + 1229,1,0,0,0,1431,1238,1,0,0,0,1431,1247,1,0,0,0,1431,1256,1,0,0, + 0,1431,1265,1,0,0,0,1431,1278,1,0,0,0,1431,1287,1,0,0,0,1431,1298, + 1,0,0,0,1431,1310,1,0,0,0,1431,1322,1,0,0,0,1431,1338,1,0,0,0,1431, + 1354,1,0,0,0,1431,1363,1,0,0,0,1431,1375,1,0,0,0,1431,1387,1,0,0, + 0,1431,1420,1,0,0,0,1432,53,1,0,0,0,1433,1434,5,49,0,0,1434,1435, + 5,214,0,0,1435,1436,3,24,12,0,1436,1437,5,216,0,0,1437,1438,3,24, + 12,0,1438,1439,5,216,0,0,1439,1440,3,24,12,0,1440,1441,5,216,0,0, + 1441,1442,3,24,12,0,1442,1443,5,215,0,0,1443,1489,1,0,0,0,1444,1445, + 5,37,0,0,1445,1446,5,214,0,0,1446,1447,3,24,12,0,1447,1448,5,216, + 0,0,1448,1449,3,24,12,0,1449,1450,5,216,0,0,1450,1451,3,24,12,0, + 1451,1452,5,216,0,0,1452,1453,3,24,12,0,1453,1454,5,215,0,0,1454, + 1489,1,0,0,0,1455,1456,5,54,0,0,1456,1457,5,214,0,0,1457,1458,3, + 24,12,0,1458,1459,5,216,0,0,1459,1460,3,24,12,0,1460,1461,5,216, + 0,0,1461,1462,3,24,12,0,1462,1463,5,216,0,0,1463,1464,3,24,12,0, + 1464,1465,5,215,0,0,1465,1489,1,0,0,0,1466,1467,5,83,0,0,1467,1468, + 5,214,0,0,1468,1469,3,24,12,0,1469,1470,5,216,0,0,1470,1471,3,24, + 12,0,1471,1472,5,216,0,0,1472,1473,3,24,12,0,1473,1474,5,216,0,0, + 1474,1475,3,24,12,0,1475,1476,5,215,0,0,1476,1489,1,0,0,0,1477,1478, + 5,98,0,0,1478,1479,5,214,0,0,1479,1480,3,24,12,0,1480,1481,5,216, + 0,0,1481,1482,3,24,12,0,1482,1483,5,216,0,0,1483,1484,3,24,12,0, + 1484,1485,5,216,0,0,1485,1486,3,24,12,0,1486,1487,5,215,0,0,1487, + 1489,1,0,0,0,1488,1433,1,0,0,0,1488,1444,1,0,0,0,1488,1455,1,0,0, + 0,1488,1466,1,0,0,0,1488,1477,1,0,0,0,1489,55,1,0,0,0,1490,1491, + 5,84,0,0,1491,1492,5,214,0,0,1492,1493,3,24,12,0,1493,1494,5,216, + 0,0,1494,1495,3,24,12,0,1495,1496,5,216,0,0,1496,1497,3,24,12,0, + 1497,1498,5,216,0,0,1498,1499,3,24,12,0,1499,1500,5,216,0,0,1500, + 1501,3,24,12,0,1501,1502,5,215,0,0,1502,1523,1,0,0,0,1503,1504,5, + 145,0,0,1504,1505,5,214,0,0,1505,1506,3,24,12,0,1506,1507,5,216, + 0,0,1507,1518,3,24,12,0,1508,1509,5,216,0,0,1509,1516,3,24,12,0, + 1510,1511,5,216,0,0,1511,1514,3,24,12,0,1512,1513,5,216,0,0,1513, + 1515,3,24,12,0,1514,1512,1,0,0,0,1514,1515,1,0,0,0,1515,1517,1,0, + 0,0,1516,1510,1,0,0,0,1516,1517,1,0,0,0,1517,1519,1,0,0,0,1518,1508, + 1,0,0,0,1518,1519,1,0,0,0,1519,1520,1,0,0,0,1520,1521,5,215,0,0, + 1521,1523,1,0,0,0,1522,1490,1,0,0,0,1522,1503,1,0,0,0,1523,57,1, + 0,0,0,1524,1525,5,19,0,0,1525,1526,5,214,0,0,1526,1531,3,24,12,0, + 1527,1528,5,216,0,0,1528,1530,3,24,12,0,1529,1527,1,0,0,0,1530,1533, + 1,0,0,0,1531,1529,1,0,0,0,1531,1532,1,0,0,0,1532,1534,1,0,0,0,1533, + 1531,1,0,0,0,1534,1535,5,215,0,0,1535,1616,1,0,0,0,1536,1537,5,20, + 0,0,1537,1538,5,214,0,0,1538,1543,3,24,12,0,1539,1540,5,216,0,0, + 1540,1542,3,24,12,0,1541,1539,1,0,0,0,1542,1545,1,0,0,0,1543,1541, + 1,0,0,0,1543,1544,1,0,0,0,1544,1546,1,0,0,0,1545,1543,1,0,0,0,1546, + 1547,5,215,0,0,1547,1616,1,0,0,0,1548,1549,5,46,0,0,1549,1550,5, + 214,0,0,1550,1553,3,24,12,0,1551,1552,5,216,0,0,1552,1554,3,24,12, + 0,1553,1551,1,0,0,0,1554,1555,1,0,0,0,1555,1553,1,0,0,0,1555,1556, + 1,0,0,0,1556,1557,1,0,0,0,1557,1558,5,215,0,0,1558,1616,1,0,0,0, + 1559,1560,5,47,0,0,1560,1561,5,214,0,0,1561,1564,3,24,12,0,1562, + 1563,5,216,0,0,1563,1565,3,24,12,0,1564,1562,1,0,0,0,1565,1566,1, + 0,0,0,1566,1564,1,0,0,0,1566,1567,1,0,0,0,1567,1568,1,0,0,0,1568, + 1569,5,215,0,0,1569,1616,1,0,0,0,1570,1571,5,48,0,0,1571,1572,5, + 214,0,0,1572,1575,3,24,12,0,1573,1574,5,216,0,0,1574,1576,3,24,12, + 0,1575,1573,1,0,0,0,1576,1577,1,0,0,0,1577,1575,1,0,0,0,1577,1578, + 1,0,0,0,1578,1579,1,0,0,0,1579,1580,5,215,0,0,1580,1616,1,0,0,0, + 1581,1582,5,51,0,0,1582,1583,5,214,0,0,1583,1584,3,24,12,0,1584, + 1585,5,216,0,0,1585,1586,3,24,12,0,1586,1587,5,215,0,0,1587,1616, + 1,0,0,0,1588,1589,5,165,0,0,1589,1590,5,214,0,0,1590,1593,3,24,12, + 0,1591,1592,5,216,0,0,1592,1594,3,24,12,0,1593,1591,1,0,0,0,1593, + 1594,1,0,0,0,1594,1595,1,0,0,0,1595,1596,5,215,0,0,1596,1616,1,0, + 0,0,1597,1598,5,166,0,0,1598,1599,5,214,0,0,1599,1600,3,24,12,0, + 1600,1601,5,216,0,0,1601,1602,3,24,12,0,1602,1603,5,215,0,0,1603, + 1616,1,0,0,0,1604,1605,5,116,0,0,1605,1606,5,214,0,0,1606,1609,3, + 24,12,0,1607,1608,5,216,0,0,1608,1610,3,24,12,0,1609,1607,1,0,0, + 0,1610,1611,1,0,0,0,1611,1609,1,0,0,0,1611,1612,1,0,0,0,1612,1613, + 1,0,0,0,1613,1614,5,215,0,0,1614,1616,1,0,0,0,1615,1524,1,0,0,0, + 1615,1536,1,0,0,0,1615,1548,1,0,0,0,1615,1559,1,0,0,0,1615,1570, + 1,0,0,0,1615,1581,1,0,0,0,1615,1588,1,0,0,0,1615,1597,1,0,0,0,1615, + 1604,1,0,0,0,1616,59,1,0,0,0,1617,1618,5,174,0,0,1618,1619,5,214, + 0,0,1619,1622,3,24,12,0,1620,1621,5,216,0,0,1621,1623,3,24,12,0, + 1622,1620,1,0,0,0,1622,1623,1,0,0,0,1623,1624,1,0,0,0,1624,1625, + 5,215,0,0,1625,1885,1,0,0,0,1626,1627,5,175,0,0,1627,1628,5,214, + 0,0,1628,1631,3,24,12,0,1629,1630,5,216,0,0,1630,1632,3,24,12,0, + 1631,1629,1,0,0,0,1631,1632,1,0,0,0,1632,1633,1,0,0,0,1633,1634, + 5,215,0,0,1634,1885,1,0,0,0,1635,1636,5,177,0,0,1636,1637,5,214, + 0,0,1637,1638,3,24,12,0,1638,1639,5,216,0,0,1639,1642,3,24,12,0, + 1640,1641,5,216,0,0,1641,1643,3,24,12,0,1642,1640,1,0,0,0,1642,1643, + 1,0,0,0,1643,1644,1,0,0,0,1644,1645,5,215,0,0,1645,1885,1,0,0,0, + 1646,1647,5,179,0,0,1647,1648,5,214,0,0,1648,1649,3,24,12,0,1649, + 1650,5,216,0,0,1650,1653,3,24,12,0,1651,1652,5,216,0,0,1652,1654, + 3,24,12,0,1653,1651,1,0,0,0,1653,1654,1,0,0,0,1654,1655,1,0,0,0, + 1655,1656,5,215,0,0,1656,1885,1,0,0,0,1657,1658,5,180,0,0,1658,1659, + 5,214,0,0,1659,1660,3,24,12,0,1660,1661,5,216,0,0,1661,1664,3,24, + 12,0,1662,1663,5,216,0,0,1663,1665,3,24,12,0,1664,1662,1,0,0,0,1664, + 1665,1,0,0,0,1665,1666,1,0,0,0,1666,1667,5,215,0,0,1667,1885,1,0, + 0,0,1668,1669,5,176,0,0,1669,1670,5,214,0,0,1670,1671,3,24,12,0, + 1671,1672,5,216,0,0,1672,1673,3,24,12,0,1673,1674,5,216,0,0,1674, + 1677,3,24,12,0,1675,1676,5,216,0,0,1676,1678,3,24,12,0,1677,1675, + 1,0,0,0,1677,1678,1,0,0,0,1678,1679,1,0,0,0,1679,1680,5,215,0,0, + 1680,1885,1,0,0,0,1681,1682,5,178,0,0,1682,1683,5,214,0,0,1683,1684, + 3,24,12,0,1684,1685,5,216,0,0,1685,1686,3,24,12,0,1686,1687,5,216, + 0,0,1687,1690,3,24,12,0,1688,1689,5,216,0,0,1689,1691,3,24,12,0, + 1690,1688,1,0,0,0,1690,1691,1,0,0,0,1691,1692,1,0,0,0,1692,1693, + 5,215,0,0,1693,1885,1,0,0,0,1694,1695,5,181,0,0,1695,1696,5,214, + 0,0,1696,1697,3,24,12,0,1697,1698,5,216,0,0,1698,1699,3,24,12,0, + 1699,1700,5,216,0,0,1700,1703,3,24,12,0,1701,1702,5,216,0,0,1702, + 1704,3,24,12,0,1703,1701,1,0,0,0,1703,1704,1,0,0,0,1704,1705,1,0, + 0,0,1705,1706,5,215,0,0,1706,1885,1,0,0,0,1707,1708,5,182,0,0,1708, + 1709,5,214,0,0,1709,1710,3,24,12,0,1710,1711,5,216,0,0,1711,1712, + 3,24,12,0,1712,1713,5,216,0,0,1713,1716,3,24,12,0,1714,1715,5,216, + 0,0,1715,1717,3,24,12,0,1716,1714,1,0,0,0,1716,1717,1,0,0,0,1717, + 1718,1,0,0,0,1718,1719,5,215,0,0,1719,1885,1,0,0,0,1720,1721,5,183, + 0,0,1721,1722,5,214,0,0,1722,1723,3,24,12,0,1723,1724,5,216,0,0, + 1724,1725,3,24,12,0,1725,1726,5,216,0,0,1726,1729,3,24,12,0,1727, + 1728,5,216,0,0,1728,1730,3,24,12,0,1729,1727,1,0,0,0,1729,1730,1, + 0,0,0,1730,1731,1,0,0,0,1731,1732,5,215,0,0,1732,1885,1,0,0,0,1733, + 1734,5,184,0,0,1734,1735,5,214,0,0,1735,1736,3,24,12,0,1736,1737, + 5,216,0,0,1737,1738,3,24,12,0,1738,1739,5,216,0,0,1739,1742,3,24, + 12,0,1740,1741,5,216,0,0,1741,1743,3,24,12,0,1742,1740,1,0,0,0,1742, + 1743,1,0,0,0,1743,1744,1,0,0,0,1744,1745,5,215,0,0,1745,1885,1,0, + 0,0,1746,1747,5,185,0,0,1747,1748,5,214,0,0,1748,1749,3,24,12,0, + 1749,1750,5,216,0,0,1750,1751,3,24,12,0,1751,1752,5,216,0,0,1752, + 1755,3,24,12,0,1753,1754,5,216,0,0,1754,1756,3,24,12,0,1755,1753, + 1,0,0,0,1755,1756,1,0,0,0,1756,1757,1,0,0,0,1757,1758,5,215,0,0, + 1758,1885,1,0,0,0,1759,1760,5,186,0,0,1760,1761,5,214,0,0,1761,1762, + 3,24,12,0,1762,1763,5,216,0,0,1763,1766,3,24,12,0,1764,1765,5,216, + 0,0,1765,1767,3,24,12,0,1766,1764,1,0,0,0,1766,1767,1,0,0,0,1767, + 1768,1,0,0,0,1768,1769,5,215,0,0,1769,1885,1,0,0,0,1770,1771,5,187, + 0,0,1771,1772,5,214,0,0,1772,1773,3,24,12,0,1773,1774,5,216,0,0, + 1774,1777,3,24,12,0,1775,1776,5,216,0,0,1776,1778,3,24,12,0,1777, + 1775,1,0,0,0,1777,1778,1,0,0,0,1778,1779,1,0,0,0,1779,1780,5,215, + 0,0,1780,1885,1,0,0,0,1781,1782,5,188,0,0,1782,1783,5,214,0,0,1783, + 1784,3,24,12,0,1784,1785,5,216,0,0,1785,1788,3,24,12,0,1786,1787, + 5,216,0,0,1787,1789,3,24,12,0,1788,1786,1,0,0,0,1788,1789,1,0,0, + 0,1789,1792,1,0,0,0,1790,1791,5,216,0,0,1791,1793,3,24,12,0,1792, + 1790,1,0,0,0,1792,1793,1,0,0,0,1793,1796,1,0,0,0,1794,1795,5,216, + 0,0,1795,1797,3,24,12,0,1796,1794,1,0,0,0,1796,1797,1,0,0,0,1797, + 1798,1,0,0,0,1798,1799,5,215,0,0,1799,1885,1,0,0,0,1800,1801,5,189, + 0,0,1801,1802,5,214,0,0,1802,1803,3,24,12,0,1803,1804,5,216,0,0, + 1804,1807,3,24,12,0,1805,1806,5,216,0,0,1806,1808,3,24,12,0,1807, + 1805,1,0,0,0,1807,1808,1,0,0,0,1808,1811,1,0,0,0,1809,1810,5,216, + 0,0,1810,1812,3,24,12,0,1811,1809,1,0,0,0,1811,1812,1,0,0,0,1812, + 1815,1,0,0,0,1813,1814,5,216,0,0,1814,1816,3,24,12,0,1815,1813,1, + 0,0,0,1815,1816,1,0,0,0,1816,1817,1,0,0,0,1817,1818,5,215,0,0,1818, + 1885,1,0,0,0,1819,1820,5,190,0,0,1820,1821,5,214,0,0,1821,1822,3, + 24,12,0,1822,1823,5,216,0,0,1823,1826,3,24,12,0,1824,1825,5,216, + 0,0,1825,1827,3,24,12,0,1826,1824,1,0,0,0,1826,1827,1,0,0,0,1827, + 1830,1,0,0,0,1828,1829,5,216,0,0,1829,1831,3,24,12,0,1830,1828,1, + 0,0,0,1830,1831,1,0,0,0,1831,1834,1,0,0,0,1832,1833,5,216,0,0,1833, + 1835,3,24,12,0,1834,1832,1,0,0,0,1834,1835,1,0,0,0,1835,1836,1,0, + 0,0,1836,1837,5,215,0,0,1837,1885,1,0,0,0,1838,1839,5,191,0,0,1839, + 1840,5,214,0,0,1840,1841,3,24,12,0,1841,1842,5,216,0,0,1842,1845, + 3,24,12,0,1843,1844,5,216,0,0,1844,1846,3,24,12,0,1845,1843,1,0, + 0,0,1845,1846,1,0,0,0,1846,1849,1,0,0,0,1847,1848,5,216,0,0,1848, + 1850,3,24,12,0,1849,1847,1,0,0,0,1849,1850,1,0,0,0,1850,1853,1,0, + 0,0,1851,1852,5,216,0,0,1852,1854,3,24,12,0,1853,1851,1,0,0,0,1853, + 1854,1,0,0,0,1854,1855,1,0,0,0,1855,1856,5,215,0,0,1856,1885,1,0, + 0,0,1857,1858,5,192,0,0,1858,1859,5,214,0,0,1859,1860,3,24,12,0, + 1860,1861,5,216,0,0,1861,1862,3,24,12,0,1862,1863,5,216,0,0,1863, + 1864,3,24,12,0,1864,1865,5,216,0,0,1865,1868,3,24,12,0,1866,1867, + 5,216,0,0,1867,1869,3,24,12,0,1868,1866,1,0,0,0,1868,1869,1,0,0, + 0,1869,1872,1,0,0,0,1870,1871,5,216,0,0,1871,1873,3,24,12,0,1872, + 1870,1,0,0,0,1872,1873,1,0,0,0,1873,1876,1,0,0,0,1874,1875,5,216, + 0,0,1875,1877,3,24,12,0,1876,1874,1,0,0,0,1876,1877,1,0,0,0,1877, + 1880,1,0,0,0,1878,1879,5,216,0,0,1879,1881,3,24,12,0,1880,1878,1, + 0,0,0,1880,1881,1,0,0,0,1881,1882,1,0,0,0,1882,1883,5,215,0,0,1883, + 1885,1,0,0,0,1884,1617,1,0,0,0,1884,1626,1,0,0,0,1884,1635,1,0,0, + 0,1884,1646,1,0,0,0,1884,1657,1,0,0,0,1884,1668,1,0,0,0,1884,1681, + 1,0,0,0,1884,1694,1,0,0,0,1884,1707,1,0,0,0,1884,1720,1,0,0,0,1884, + 1733,1,0,0,0,1884,1746,1,0,0,0,1884,1759,1,0,0,0,1884,1770,1,0,0, + 0,1884,1781,1,0,0,0,1884,1800,1,0,0,0,1884,1819,1,0,0,0,1884,1838, + 1,0,0,0,1884,1857,1,0,0,0,1885,61,1,0,0,0,120,65,67,72,79,85,96, 103,115,129,138,158,171,178,207,209,221,223,238,240,252,254,262, 269,281,288,309,329,337,343,350,522,561,580,596,632,634,643,652, 661,670,749,758,767,776,810,845,961,1007,1009,1052,1054,1056,1086, 1095,1106,1139,1164,1261,1274,1294,1306,1318,1330,1334,1346,1350, - 1371,1383,1396,1400,1404,1408,1412,1416,1420,1477,1503,1505,1507, - 1511,1520,1532,1544,1555,1566,1582,1600,1604,1611,1620,1631,1642, - 1653,1666,1679,1692,1705,1718,1731,1744,1755,1766,1777,1781,1785, - 1796,1800,1804,1815,1819,1823,1834,1838,1842,1857,1861,1865,1869, - 1873 + 1371,1383,1396,1400,1404,1408,1412,1416,1427,1431,1488,1514,1516, + 1518,1522,1531,1543,1555,1566,1577,1593,1611,1615,1622,1631,1642, + 1653,1664,1677,1690,1703,1716,1729,1742,1755,1766,1777,1788,1792, + 1796,1807,1811,1815,1826,1830,1834,1845,1849,1853,1868,1872,1876, + 1880,1884 ] class MathExprParser ( Parser ): @@ -826,12 +831,12 @@ class MathExprParser ( Parser ): "", "", "", "", "", "", "", "", "", "", "", "", - "", "", "", "'+'", "'-'", - "'*'", "'/'", "'%'", "'^'", "'<<'", "'>>'", "'>='", - "'>'", "'<='", "'<'", "'=='", "'='", "'+='", "'-='", - "'*='", "'/='", "'%='", "'!='", "'|'", "'('", "')'", - "','", "';'", "'->'", "'['", "']'", "'?'", "':'", "'{'", - "'}'" ] + "", "", "", "", + "'+'", "'-'", "'*'", "'/'", "'%'", "'^'", "'<<'", "'>>'", + "'>='", "'>'", "'<='", "'<'", "'=='", "'='", "'+='", + "'-='", "'*='", "'/='", "'%='", "'!='", "'|'", "'('", + "')'", "','", "';'", "'->'", "'['", "']'", "'?'", "':'", + "'{'", "'}'" ] symbolicNames = [ "", "SIN", "COS", "TAN", "ASIN", "ACOS", "ATAN", "ATAN2", "SINH", "COSH", "TANH", "ASINH", @@ -864,8 +869,8 @@ class MathExprParser ( Parser ): "TIMESTAMP", "SORT", "ARGSORT", "ARGMIN", "ARGMAX", "SOFTMAX", "SOFTMIN", "UNIQUE", "FLIP", "STARTSWITH", "ENDSWITH", "SQUEEZE", "UNSQUEEZE", "ROLL", "COV", - "CORR", "ENTROPY", "CROP", "NONE", "NOISE", "RAND", - "CAUCHY", "EXPONENTIAL", "LOGNORMAL", "BERNOULLI", + "CORR", "ENTROPY", "CROP", "NONE", "COORDS", "NOISE", + "RAND", "CAUCHY", "EXPONENTIAL", "LOGNORMAL", "BERNOULLI", "POISSON", "GAMMADIST", "BETADIST", "LAPLACEDIST", "GUMBELDIST", "WEIBULLDIST", "CHI2DIST", "STUDENTTDIST", "PERLIN", "CELLULAR", "PLASMA", "RIDGED", "DOMAIN_WARP", @@ -1089,64 +1094,65 @@ class MathExprParser ( Parser ): ENTROPY=170 CROP=171 NONE=172 - NOISE=173 - RAND=174 - CAUCHY=175 - EXPONENTIAL=176 - LOGNORMAL=177 - BERNOULLI=178 - POISSON=179 - GAMMADIST=180 - BETADIST=181 - LAPLACEDIST=182 - GUMBELDIST=183 - WEIBULLDIST=184 - CHI2DIST=185 - STUDENTTDIST=186 - PERLIN=187 - CELLULAR=188 - PLASMA=189 - RIDGED=190 - DOMAIN_WARP=191 - PLUS=192 - MINUS=193 - MULT=194 - DIV=195 - MOD=196 - POW=197 - LSHIFT=198 - RSHIFT=199 - GE=200 - GT=201 - LE=202 - LT=203 - EQ=204 - EQUEALS=205 - PLUS_EQ=206 - MINUS_EQ=207 - MULT_EQ=208 - DIV_EQ=209 - MOD_EQ=210 - NE=211 - PIPE=212 - LPAREN=213 - RPAREN=214 - COMMA=215 - SEMICOLON=216 - ARROW=217 - LBRACKET=218 - RBRACKET=219 - QUESTION=220 - COLON=221 - LBRACE=222 - RBRACE=223 - NUMBER=224 - CONSTANT=225 - STRING=226 - VARIABLE=227 - SL_COMMENT=228 - ML_COMMENT=229 - WS=230 + COORDS=173 + NOISE=174 + RAND=175 + CAUCHY=176 + EXPONENTIAL=177 + LOGNORMAL=178 + BERNOULLI=179 + POISSON=180 + GAMMADIST=181 + BETADIST=182 + LAPLACEDIST=183 + GUMBELDIST=184 + WEIBULLDIST=185 + CHI2DIST=186 + STUDENTTDIST=187 + PERLIN=188 + CELLULAR=189 + PLASMA=190 + RIDGED=191 + DOMAIN_WARP=192 + PLUS=193 + MINUS=194 + MULT=195 + DIV=196 + MOD=197 + POW=198 + LSHIFT=199 + RSHIFT=200 + GE=201 + GT=202 + LE=203 + LT=204 + EQ=205 + EQUEALS=206 + PLUS_EQ=207 + MINUS_EQ=208 + MULT_EQ=209 + DIV_EQ=210 + MOD_EQ=211 + NE=212 + PIPE=213 + LPAREN=214 + RPAREN=215 + COMMA=216 + SEMICOLON=217 + ARROW=218 + LBRACKET=219 + RBRACKET=220 + QUESTION=221 + COLON=222 + LBRACE=223 + RBRACE=224 + NUMBER=225 + CONSTANT=226 + STRING=227 + VARIABLE=228 + SL_COMMENT=229 + ML_COMMENT=230 + WS=231 def __init__(self, input:TokenStream, output:TextIO = sys.stdout): super().__init__(input, output) @@ -1255,7 +1261,7 @@ class MathExprParser ( Parser ): self.state = 72 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==216: + if _la==217: self.state = 71 self.match(MathExprParser.SEMICOLON) @@ -1345,7 +1351,7 @@ class MathExprParser ( Parser ): self.state = 79 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==227: + if _la==228: self.state = 78 self.paramList() @@ -1357,11 +1363,11 @@ class MathExprParser ( Parser ): self.state = 85 self._errHandler.sync(self) token = self._input.LA(1) - if token in [222]: + if token in [223]: self.state = 83 self.block() pass - elif token in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 151, 152, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 212, 213, 218, 224, 225, 226, 227]: + elif token in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 151, 152, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 213, 214, 219, 225, 226, 227, 228]: self.state = 84 self.expr() pass @@ -1467,7 +1473,7 @@ class MathExprParser ( Parser ): self.state = 103 self._errHandler.sync(self) _la = self._input.LA(1) - while _la==218: + while _la==219: self.state = 90 self.match(MathExprParser.LBRACKET) self.state = 91 @@ -1475,7 +1481,7 @@ class MathExprParser ( Parser ): self.state = 96 self._errHandler.sync(self) _la = self._input.LA(1) - while _la==215: + while _la==216: self.state = 92 self.match(MathExprParser.COMMA) self.state = 93 @@ -1492,7 +1498,7 @@ class MathExprParser ( Parser ): self.state = 106 _la = self._input.LA(1) - if not(((((_la - 205)) & ~0x3f) == 0 and ((1 << (_la - 205)) & 63) != 0)): + if not(((((_la - 206)) & ~0x3f) == 0 and ((1 << (_la - 206)) & 63) != 0)): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) @@ -1561,7 +1567,7 @@ class MathExprParser ( Parser ): self.state = 115 self._errHandler.sync(self) _la = self._input.LA(1) - while _la==215: + while _la==216: self.state = 111 self.match(MathExprParser.COMMA) self.state = 112 @@ -2192,7 +2198,7 @@ class MathExprParser ( Parser ): self.state = 158 self._errHandler.sync(self) _la = self._input.LA(1) - while (((_la) & ~0x3f) == 0 and ((1 << _la) & -2) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & -1) != 0) or ((((_la - 128)) & ~0x3f) == 0 and ((1 << (_la - 128)) & -4718593) != 0) or ((((_la - 192)) & ~0x3f) == 0 and ((1 << (_la - 192)) & 65568505859) != 0): + while (((_la) & ~0x3f) == 0 and ((1 << _la) & -2) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & -1) != 0) or ((((_la - 128)) & ~0x3f) == 0 and ((1 << (_la - 128)) & -4718593) != 0) or ((((_la - 192)) & ~0x3f) == 0 and ((1 << (_la - 192)) & 131137011719) != 0): self.state = 155 self.stmt() self.state = 160 @@ -2363,7 +2369,7 @@ class MathExprParser ( Parser ): self.state = 171 self._errHandler.sync(self) _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & -2) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & -1) != 0) or ((((_la - 128)) & ~0x3f) == 0 and ((1 << (_la - 128)) & -41680897) != 0) or ((((_la - 192)) & ~0x3f) == 0 and ((1 << (_la - 192)) & 64494764035) != 0): + if (((_la) & ~0x3f) == 0 and ((1 << _la) & -2) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & -1) != 0) or ((((_la - 128)) & ~0x3f) == 0 and ((1 << (_la - 128)) & -41680897) != 0) or ((((_la - 192)) & ~0x3f) == 0 and ((1 << (_la - 192)) & 128989528071) != 0): self.state = 170 self.expr() @@ -3638,7 +3644,7 @@ class MathExprParser ( Parser ): self.state = 269 self._errHandler.sync(self) token = self._input.LA(1) - if token in [192]: + if token in [193]: localctx = MathExprParser.UnaryPlusContext(self, localctx) self.enterOuterAlt(localctx, 1) self.state = 264 @@ -3646,7 +3652,7 @@ class MathExprParser ( Parser ): self.state = 265 self.unaryExpr() pass - elif token in [193]: + elif token in [194]: localctx = MathExprParser.UnaryMinusContext(self, localctx) self.enterOuterAlt(localctx, 2) self.state = 266 @@ -3654,7 +3660,7 @@ class MathExprParser ( Parser ): self.state = 267 self.unaryExpr() pass - elif token in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 151, 152, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 212, 213, 218, 224, 225, 226, 227]: + elif token in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 151, 152, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 213, 214, 219, 225, 226, 227, 228]: localctx = MathExprParser.ToIndexContext(self, localctx) self.enterOuterAlt(localctx, 3) self.state = 268 @@ -3792,7 +3798,7 @@ class MathExprParser ( Parser ): self.state = 281 self._errHandler.sync(self) _la = self._input.LA(1) - while _la==215: + while _la==216: self.state = 277 self.match(MathExprParser.COMMA) self.state = 278 @@ -4473,11 +4479,11 @@ class MathExprParser ( Parser ): self.state = 309 self._errHandler.sync(self) token = self._input.LA(1) - if token in [222]: + if token in [223]: self.state = 307 self.block() pass - elif token in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 151, 152, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 212, 213, 218, 224, 225, 226, 227]: + elif token in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 151, 152, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 213, 214, 219, 225, 226, 227, 228]: self.state = 308 self.expr() pass @@ -4529,7 +4535,7 @@ class MathExprParser ( Parser ): self.state = 329 self._errHandler.sync(self) _la = self._input.LA(1) - while _la==215: + while _la==216: self.state = 325 self.match(MathExprParser.COMMA) self.state = 326 @@ -4552,7 +4558,7 @@ class MathExprParser ( Parser ): self.state = 337 self._errHandler.sync(self) _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & -2) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & -1) != 0) or ((((_la - 128)) & ~0x3f) == 0 and ((1 << (_la - 128)) & -41680897) != 0) or ((((_la - 192)) & ~0x3f) == 0 and ((1 << (_la - 192)) & 64494764035) != 0): + if (((_la) & ~0x3f) == 0 and ((1 << _la) & -2) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & -1) != 0) or ((((_la - 128)) & ~0x3f) == 0 and ((1 << (_la - 128)) & -41680897) != 0) or ((((_la - 192)) & ~0x3f) == 0 and ((1 << (_la - 192)) & 128989528071) != 0): self.state = 336 self.exprList() @@ -4644,7 +4650,7 @@ class MathExprParser ( Parser ): self.state = 350 self._errHandler.sync(self) _la = self._input.LA(1) - while _la==215: + while _la==216: self.state = 346 self.match(MathExprParser.COMMA) self.state = 347 @@ -7673,7 +7679,7 @@ class MathExprParser ( Parser ): self.state = 522 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 520 self.match(MathExprParser.COMMA) self.state = 521 @@ -7767,7 +7773,7 @@ class MathExprParser ( Parser ): self.state = 561 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 559 self.match(MathExprParser.COMMA) self.state = 560 @@ -7813,7 +7819,7 @@ class MathExprParser ( Parser ): self.state = 580 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 578 self.match(MathExprParser.COMMA) self.state = 579 @@ -7851,7 +7857,7 @@ class MathExprParser ( Parser ): self.state = 596 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 594 self.match(MathExprParser.COMMA) self.state = 595 @@ -7933,7 +7939,7 @@ class MathExprParser ( Parser ): self.state = 634 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 628 self.match(MathExprParser.COMMA) self.state = 629 @@ -7941,7 +7947,7 @@ class MathExprParser ( Parser ): self.state = 632 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 630 self.match(MathExprParser.COMMA) self.state = 631 @@ -7965,7 +7971,7 @@ class MathExprParser ( Parser ): self.state = 643 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 641 self.match(MathExprParser.COMMA) self.state = 642 @@ -7987,7 +7993,7 @@ class MathExprParser ( Parser ): self.state = 652 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 650 self.match(MathExprParser.COMMA) self.state = 651 @@ -8009,7 +8015,7 @@ class MathExprParser ( Parser ): self.state = 661 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 659 self.match(MathExprParser.COMMA) self.state = 660 @@ -8031,7 +8037,7 @@ class MathExprParser ( Parser ): self.state = 670 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 668 self.match(MathExprParser.COMMA) self.state = 669 @@ -8221,7 +8227,7 @@ class MathExprParser ( Parser ): self.state = 749 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 747 self.match(MathExprParser.COMMA) self.state = 748 @@ -8243,7 +8249,7 @@ class MathExprParser ( Parser ): self.state = 758 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 756 self.match(MathExprParser.COMMA) self.state = 757 @@ -8265,7 +8271,7 @@ class MathExprParser ( Parser ): self.state = 767 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 765 self.match(MathExprParser.COMMA) self.state = 766 @@ -8287,7 +8293,7 @@ class MathExprParser ( Parser ): self.state = 776 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 774 self.match(MathExprParser.COMMA) self.state = 775 @@ -10120,7 +10126,7 @@ class MathExprParser ( Parser ): self.state = 845 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 843 self.match(MathExprParser.COMMA) self.state = 844 @@ -10386,7 +10392,7 @@ class MathExprParser ( Parser ): self.state = 961 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 959 self.match(MathExprParser.COMMA) self.state = 960 @@ -10488,7 +10494,7 @@ class MathExprParser ( Parser ): self.state = 1009 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 1003 self.match(MathExprParser.COMMA) self.state = 1004 @@ -10496,7 +10502,7 @@ class MathExprParser ( Parser ): self.state = 1007 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 1005 self.match(MathExprParser.COMMA) self.state = 1006 @@ -10588,7 +10594,7 @@ class MathExprParser ( Parser ): self.state = 1056 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 1046 self.match(MathExprParser.COMMA) self.state = 1047 @@ -10596,7 +10602,7 @@ class MathExprParser ( Parser ): self.state = 1054 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 1048 self.match(MathExprParser.COMMA) self.state = 1049 @@ -10604,7 +10610,7 @@ class MathExprParser ( Parser ): self.state = 1052 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 1050 self.match(MathExprParser.COMMA) self.state = 1051 @@ -10678,7 +10684,7 @@ class MathExprParser ( Parser ): self.state = 1086 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 1084 self.match(MathExprParser.COMMA) self.state = 1085 @@ -10700,7 +10706,7 @@ class MathExprParser ( Parser ): self.state = 1095 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 1093 self.match(MathExprParser.COMMA) self.state = 1094 @@ -10726,7 +10732,7 @@ class MathExprParser ( Parser ): self.state = 1106 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 1104 self.match(MathExprParser.COMMA) self.state = 1105 @@ -10796,7 +10802,7 @@ class MathExprParser ( Parser ): self.state = 1139 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 1134 self.match(MathExprParser.COMMA) self.state = 1135 @@ -11160,6 +11166,45 @@ class MathExprParser ( Parser ): return visitor.visitChildren(self) + class CoordsFuncContext(Func3Context): + + def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func3Context + super().__init__(parser) + self.copyFrom(ctx) + + def COORDS(self): + return self.getToken(MathExprParser.COORDS, 0) + def LPAREN(self): + return self.getToken(MathExprParser.LPAREN, 0) + def expr(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(MathExprParser.ExprContext) + else: + return self.getTypedRuleContext(MathExprParser.ExprContext,i) + + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(MathExprParser.COMMA) + else: + return self.getToken(MathExprParser.COMMA, i) + def RPAREN(self): + return self.getToken(MathExprParser.RPAREN, 0) + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterCoordsFunc" ): + listener.enterCoordsFunc(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitCoordsFunc" ): + listener.exitCoordsFunc(self) + + def accept(self, visitor:ParseTreeVisitor): + if hasattr( visitor, "visitCoordsFunc" ): + return visitor.visitCoordsFunc(self) + else: + return visitor.visitChildren(self) + + class LinspaceFuncContext(Func3Context): def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func3Context @@ -11749,7 +11794,7 @@ class MathExprParser ( Parser ): self.enterRule(localctx, 52, self.RULE_func3) self._la = 0 # Token type try: - self.state = 1420 + self.state = 1431 self._errHandler.sync(self) token = self._input.LA(1) if token in [31]: @@ -11964,7 +12009,7 @@ class MathExprParser ( Parser ): self.state = 1261 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 1259 self.match(MathExprParser.COMMA) self.state = 1260 @@ -11994,7 +12039,7 @@ class MathExprParser ( Parser ): self.state = 1274 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 1272 self.match(MathExprParser.COMMA) self.state = 1273 @@ -12040,7 +12085,7 @@ class MathExprParser ( Parser ): self.state = 1294 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 1292 self.match(MathExprParser.COMMA) self.state = 1293 @@ -12062,7 +12107,7 @@ class MathExprParser ( Parser ): self.state = 1306 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 1301 self.match(MathExprParser.COMMA) self.state = 1302 @@ -12088,7 +12133,7 @@ class MathExprParser ( Parser ): self.state = 1318 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 1313 self.match(MathExprParser.COMMA) self.state = 1314 @@ -12128,7 +12173,7 @@ class MathExprParser ( Parser ): self.state = 1334 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 1332 self.match(MathExprParser.COMMA) self.state = 1333 @@ -12164,7 +12209,7 @@ class MathExprParser ( Parser ): self.state = 1350 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 1348 self.match(MathExprParser.COMMA) self.state = 1349 @@ -12206,7 +12251,7 @@ class MathExprParser ( Parser ): self.state = 1371 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 1366 self.match(MathExprParser.COMMA) self.state = 1367 @@ -12232,7 +12277,7 @@ class MathExprParser ( Parser ): self.state = 1383 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 1378 self.match(MathExprParser.COMMA) self.state = 1379 @@ -12316,7 +12361,7 @@ class MathExprParser ( Parser ): self.state = 1416 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 1414 self.match(MathExprParser.COMMA) self.state = 1415 @@ -12326,6 +12371,32 @@ class MathExprParser ( Parser ): self.state = 1418 self.match(MathExprParser.RPAREN) pass + elif token in [173]: + localctx = MathExprParser.CoordsFuncContext(self, localctx) + self.enterOuterAlt(localctx, 23) + self.state = 1420 + self.match(MathExprParser.COORDS) + self.state = 1421 + self.match(MathExprParser.LPAREN) + self.state = 1422 + self.expr() + self.state = 1423 + self.match(MathExprParser.COMMA) + self.state = 1424 + self.expr() + self.state = 1427 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==216: + self.state = 1425 + self.match(MathExprParser.COMMA) + self.state = 1426 + self.expr() + + + self.state = 1429 + self.match(MathExprParser.RPAREN) + pass else: raise NoViableAltException(self) @@ -12556,38 +12627,14 @@ class MathExprParser ( Parser ): localctx = MathExprParser.Func4Context(self, self._ctx, self.state) self.enterRule(localctx, 54, self.RULE_func4) try: - self.state = 1477 + self.state = 1488 self._errHandler.sync(self) token = self._input.LA(1) if token in [49]: localctx = MathExprParser.SwapFuncContext(self, localctx) self.enterOuterAlt(localctx, 1) - self.state = 1422 - self.match(MathExprParser.SWAP) - self.state = 1423 - self.match(MathExprParser.LPAREN) - self.state = 1424 - self.expr() - self.state = 1425 - self.match(MathExprParser.COMMA) - self.state = 1426 - self.expr() - self.state = 1427 - self.match(MathExprParser.COMMA) - self.state = 1428 - self.expr() - self.state = 1429 - self.match(MathExprParser.COMMA) - self.state = 1430 - self.expr() - self.state = 1431 - self.match(MathExprParser.RPAREN) - pass - elif token in [37]: - localctx = MathExprParser.NvlFuncContext(self, localctx) - self.enterOuterAlt(localctx, 2) self.state = 1433 - self.match(MathExprParser.NVL) + self.match(MathExprParser.SWAP) self.state = 1434 self.match(MathExprParser.LPAREN) self.state = 1435 @@ -12607,11 +12654,11 @@ class MathExprParser ( Parser ): self.state = 1442 self.match(MathExprParser.RPAREN) pass - elif token in [54]: - localctx = MathExprParser.LogspaceFuncContext(self, localctx) - self.enterOuterAlt(localctx, 3) + elif token in [37]: + localctx = MathExprParser.NvlFuncContext(self, localctx) + self.enterOuterAlt(localctx, 2) self.state = 1444 - self.match(MathExprParser.LOGSPACE) + self.match(MathExprParser.NVL) self.state = 1445 self.match(MathExprParser.LPAREN) self.state = 1446 @@ -12631,11 +12678,11 @@ class MathExprParser ( Parser ): self.state = 1453 self.match(MathExprParser.RPAREN) pass - elif token in [83]: - localctx = MathExprParser.DistFuncContext(self, localctx) - self.enterOuterAlt(localctx, 4) + elif token in [54]: + localctx = MathExprParser.LogspaceFuncContext(self, localctx) + self.enterOuterAlt(localctx, 3) self.state = 1455 - self.match(MathExprParser.DIST) + self.match(MathExprParser.LOGSPACE) self.state = 1456 self.match(MathExprParser.LPAREN) self.state = 1457 @@ -12655,11 +12702,11 @@ class MathExprParser ( Parser ): self.state = 1464 self.match(MathExprParser.RPAREN) pass - elif token in [98]: - localctx = MathExprParser.HistogramFuncContext(self, localctx) - self.enterOuterAlt(localctx, 5) + elif token in [83]: + localctx = MathExprParser.DistFuncContext(self, localctx) + self.enterOuterAlt(localctx, 4) self.state = 1466 - self.match(MathExprParser.HISTOGRAM) + self.match(MathExprParser.DIST) self.state = 1467 self.match(MathExprParser.LPAREN) self.state = 1468 @@ -12679,6 +12726,30 @@ class MathExprParser ( Parser ): self.state = 1475 self.match(MathExprParser.RPAREN) pass + elif token in [98]: + localctx = MathExprParser.HistogramFuncContext(self, localctx) + self.enterOuterAlt(localctx, 5) + self.state = 1477 + self.match(MathExprParser.HISTOGRAM) + self.state = 1478 + self.match(MathExprParser.LPAREN) + self.state = 1479 + self.expr() + self.state = 1480 + self.match(MathExprParser.COMMA) + self.state = 1481 + self.expr() + self.state = 1482 + self.match(MathExprParser.COMMA) + self.state = 1483 + self.expr() + self.state = 1484 + self.match(MathExprParser.COMMA) + self.state = 1485 + self.expr() + self.state = 1486 + self.match(MathExprParser.RPAREN) + pass else: raise NoViableAltException(self) @@ -12793,73 +12864,73 @@ class MathExprParser ( Parser ): self.enterRule(localctx, 56, self.RULE_func5) self._la = 0 # Token type try: - self.state = 1511 + self.state = 1522 self._errHandler.sync(self) token = self._input.LA(1) if token in [84]: localctx = MathExprParser.RemapFuncContext(self, localctx) self.enterOuterAlt(localctx, 1) - self.state = 1479 - self.match(MathExprParser.REMAP) - self.state = 1480 - self.match(MathExprParser.LPAREN) - self.state = 1481 - self.expr() - self.state = 1482 - self.match(MathExprParser.COMMA) - self.state = 1483 - self.expr() - self.state = 1484 - self.match(MathExprParser.COMMA) - self.state = 1485 - self.expr() - self.state = 1486 - self.match(MathExprParser.COMMA) - self.state = 1487 - self.expr() - self.state = 1488 - self.match(MathExprParser.COMMA) - self.state = 1489 - self.expr() self.state = 1490 - self.match(MathExprParser.RPAREN) - pass - elif token in [145]: - localctx = MathExprParser.DiagonalMatrixFuncContext(self, localctx) - self.enterOuterAlt(localctx, 2) - self.state = 1492 - self.match(MathExprParser.DIAG) - self.state = 1493 + self.match(MathExprParser.REMAP) + self.state = 1491 self.match(MathExprParser.LPAREN) + self.state = 1492 + self.expr() + self.state = 1493 + self.match(MathExprParser.COMMA) self.state = 1494 self.expr() self.state = 1495 self.match(MathExprParser.COMMA) self.state = 1496 self.expr() + self.state = 1497 + self.match(MathExprParser.COMMA) + self.state = 1498 + self.expr() + self.state = 1499 + self.match(MathExprParser.COMMA) + self.state = 1500 + self.expr() + self.state = 1501 + self.match(MathExprParser.RPAREN) + pass + elif token in [145]: + localctx = MathExprParser.DiagonalMatrixFuncContext(self, localctx) + self.enterOuterAlt(localctx, 2) + self.state = 1503 + self.match(MathExprParser.DIAG) + self.state = 1504 + self.match(MathExprParser.LPAREN) + self.state = 1505 + self.expr() + self.state = 1506 + self.match(MathExprParser.COMMA) self.state = 1507 + self.expr() + self.state = 1518 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: - self.state = 1497 + if _la==216: + self.state = 1508 self.match(MathExprParser.COMMA) - self.state = 1498 + self.state = 1509 self.expr() - self.state = 1505 + self.state = 1516 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: - self.state = 1499 + if _la==216: + self.state = 1510 self.match(MathExprParser.COMMA) - self.state = 1500 + self.state = 1511 self.expr() - self.state = 1503 + self.state = 1514 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: - self.state = 1501 + if _la==216: + self.state = 1512 self.match(MathExprParser.COMMA) - self.state = 1502 + self.state = 1513 self.expr() @@ -12867,7 +12938,7 @@ class MathExprParser ( Parser ): - self.state = 1509 + self.state = 1520 self.match(MathExprParser.RPAREN) pass else: @@ -13248,88 +13319,62 @@ class MathExprParser ( Parser ): self.enterRule(localctx, 58, self.RULE_funcN) self._la = 0 # Token type try: - self.state = 1604 + self.state = 1615 self._errHandler.sync(self) token = self._input.LA(1) if token in [19]: localctx = MathExprParser.SMinFuncContext(self, localctx) self.enterOuterAlt(localctx, 1) - self.state = 1513 + self.state = 1524 self.match(MathExprParser.SMIN) - self.state = 1514 + self.state = 1525 self.match(MathExprParser.LPAREN) - self.state = 1515 + self.state = 1526 self.expr() - self.state = 1520 + self.state = 1531 self._errHandler.sync(self) _la = self._input.LA(1) - while _la==215: - self.state = 1516 + while _la==216: + self.state = 1527 self.match(MathExprParser.COMMA) - self.state = 1517 + self.state = 1528 self.expr() - self.state = 1522 + self.state = 1533 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 1523 + self.state = 1534 self.match(MathExprParser.RPAREN) pass elif token in [20]: localctx = MathExprParser.SMaxFuncContext(self, localctx) self.enterOuterAlt(localctx, 2) - self.state = 1525 + self.state = 1536 self.match(MathExprParser.SMAX) - self.state = 1526 + self.state = 1537 self.match(MathExprParser.LPAREN) - self.state = 1527 + self.state = 1538 self.expr() - self.state = 1532 + self.state = 1543 self._errHandler.sync(self) _la = self._input.LA(1) - while _la==215: - self.state = 1528 + while _la==216: + self.state = 1539 self.match(MathExprParser.COMMA) - self.state = 1529 + self.state = 1540 self.expr() - self.state = 1534 + self.state = 1545 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 1535 + self.state = 1546 self.match(MathExprParser.RPAREN) pass elif token in [46]: localctx = MathExprParser.MapFuncContext(self, localctx) self.enterOuterAlt(localctx, 3) - self.state = 1537 - self.match(MathExprParser.MAP) - self.state = 1538 - self.match(MathExprParser.LPAREN) - self.state = 1539 - self.expr() - self.state = 1542 - self._errHandler.sync(self) - _la = self._input.LA(1) - while True: - self.state = 1540 - self.match(MathExprParser.COMMA) - self.state = 1541 - self.expr() - self.state = 1544 - self._errHandler.sync(self) - _la = self._input.LA(1) - if not (_la==215): - break - - self.state = 1546 - self.match(MathExprParser.RPAREN) - pass - elif token in [47]: - localctx = MathExprParser.EzConvFuncContext(self, localctx) - self.enterOuterAlt(localctx, 4) self.state = 1548 - self.match(MathExprParser.EZCONV) + self.match(MathExprParser.MAP) self.state = 1549 self.match(MathExprParser.LPAREN) self.state = 1550 @@ -13345,17 +13390,17 @@ class MathExprParser ( Parser ): self.state = 1555 self._errHandler.sync(self) _la = self._input.LA(1) - if not (_la==215): + if not (_la==216): break self.state = 1557 self.match(MathExprParser.RPAREN) pass - elif token in [48]: - localctx = MathExprParser.ConvFuncContext(self, localctx) - self.enterOuterAlt(localctx, 5) + elif token in [47]: + localctx = MathExprParser.EzConvFuncContext(self, localctx) + self.enterOuterAlt(localctx, 4) self.state = 1559 - self.match(MathExprParser.CONV) + self.match(MathExprParser.EZCONV) self.state = 1560 self.match(MathExprParser.LPAREN) self.state = 1561 @@ -13371,90 +13416,116 @@ class MathExprParser ( Parser ): self.state = 1566 self._errHandler.sync(self) _la = self._input.LA(1) - if not (_la==215): + if not (_la==216): break self.state = 1568 self.match(MathExprParser.RPAREN) pass - elif token in [51]: - localctx = MathExprParser.ReshapeFuncContext(self, localctx) - self.enterOuterAlt(localctx, 6) + elif token in [48]: + localctx = MathExprParser.ConvFuncContext(self, localctx) + self.enterOuterAlt(localctx, 5) self.state = 1570 - self.match(MathExprParser.RESHAPE) + self.match(MathExprParser.CONV) self.state = 1571 self.match(MathExprParser.LPAREN) self.state = 1572 self.expr() - self.state = 1573 - self.match(MathExprParser.COMMA) - self.state = 1574 + self.state = 1575 + self._errHandler.sync(self) + _la = self._input.LA(1) + while True: + self.state = 1573 + self.match(MathExprParser.COMMA) + self.state = 1574 + self.expr() + self.state = 1577 + self._errHandler.sync(self) + _la = self._input.LA(1) + if not (_la==216): + break + + self.state = 1579 + self.match(MathExprParser.RPAREN) + pass + elif token in [51]: + localctx = MathExprParser.ReshapeFuncContext(self, localctx) + self.enterOuterAlt(localctx, 6) + self.state = 1581 + self.match(MathExprParser.RESHAPE) + self.state = 1582 + self.match(MathExprParser.LPAREN) + self.state = 1583 self.expr() - self.state = 1575 + self.state = 1584 + self.match(MathExprParser.COMMA) + self.state = 1585 + self.expr() + self.state = 1586 self.match(MathExprParser.RPAREN) pass elif token in [165]: localctx = MathExprParser.SqueezeFuncContext(self, localctx) self.enterOuterAlt(localctx, 7) - self.state = 1577 + self.state = 1588 self.match(MathExprParser.SQUEEZE) - self.state = 1578 + self.state = 1589 self.match(MathExprParser.LPAREN) - self.state = 1579 + self.state = 1590 self.expr() - self.state = 1582 + self.state = 1593 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: - self.state = 1580 + if _la==216: + self.state = 1591 self.match(MathExprParser.COMMA) - self.state = 1581 + self.state = 1592 self.expr() - self.state = 1584 + self.state = 1595 self.match(MathExprParser.RPAREN) pass elif token in [166]: localctx = MathExprParser.UnsqueezeFuncContext(self, localctx) self.enterOuterAlt(localctx, 8) - self.state = 1586 + self.state = 1597 self.match(MathExprParser.UNSQUEEZE) - self.state = 1587 + self.state = 1598 self.match(MathExprParser.LPAREN) - self.state = 1588 + self.state = 1599 self.expr() - self.state = 1589 + self.state = 1600 self.match(MathExprParser.COMMA) - self.state = 1590 + self.state = 1601 self.expr() - self.state = 1591 + self.state = 1602 self.match(MathExprParser.RPAREN) pass elif token in [116]: localctx = MathExprParser.ConcatFuncContext(self, localctx) self.enterOuterAlt(localctx, 9) - self.state = 1593 + self.state = 1604 self.match(MathExprParser.CONCAT) - self.state = 1594 + self.state = 1605 self.match(MathExprParser.LPAREN) - self.state = 1595 + self.state = 1606 self.expr() - self.state = 1598 + self.state = 1609 self._errHandler.sync(self) _la = self._input.LA(1) while True: - self.state = 1596 + self.state = 1607 self.match(MathExprParser.COMMA) - self.state = 1597 + self.state = 1608 self.expr() - self.state = 1600 + self.state = 1611 self._errHandler.sync(self) _la = self._input.LA(1) - if not (_la==215): + if not (_la==216): break - self.state = 1602 + self.state = 1613 self.match(MathExprParser.RPAREN) pass else: @@ -14228,70 +14299,44 @@ class MathExprParser ( Parser ): self.enterRule(localctx, 60, self.RULE_funcNoise) self._la = 0 # Token type try: - self.state = 1873 + self.state = 1884 self._errHandler.sync(self) token = self._input.LA(1) - if token in [173]: + if token in [174]: localctx = MathExprParser.NoiseFuncContext(self, localctx) self.enterOuterAlt(localctx, 1) - self.state = 1606 + self.state = 1617 self.match(MathExprParser.NOISE) - self.state = 1607 + self.state = 1618 self.match(MathExprParser.LPAREN) - self.state = 1608 + self.state = 1619 self.expr() - self.state = 1611 + self.state = 1622 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: - self.state = 1609 + if _la==216: + self.state = 1620 self.match(MathExprParser.COMMA) - self.state = 1610 + self.state = 1621 self.expr() - self.state = 1613 + self.state = 1624 self.match(MathExprParser.RPAREN) pass - elif token in [174]: + elif token in [175]: localctx = MathExprParser.RandFuncContext(self, localctx) self.enterOuterAlt(localctx, 2) - self.state = 1615 - self.match(MathExprParser.RAND) - self.state = 1616 - self.match(MathExprParser.LPAREN) - self.state = 1617 - self.expr() - self.state = 1620 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==215: - self.state = 1618 - self.match(MathExprParser.COMMA) - self.state = 1619 - self.expr() - - - self.state = 1622 - self.match(MathExprParser.RPAREN) - pass - elif token in [176]: - localctx = MathExprParser.ExponentialFuncContext(self, localctx) - self.enterOuterAlt(localctx, 3) - self.state = 1624 - self.match(MathExprParser.EXPONENTIAL) - self.state = 1625 - self.match(MathExprParser.LPAREN) self.state = 1626 - self.expr() + self.match(MathExprParser.RAND) self.state = 1627 - self.match(MathExprParser.COMMA) + self.match(MathExprParser.LPAREN) self.state = 1628 self.expr() self.state = 1631 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 1629 self.match(MathExprParser.COMMA) self.state = 1630 @@ -14301,11 +14346,11 @@ class MathExprParser ( Parser ): self.state = 1633 self.match(MathExprParser.RPAREN) pass - elif token in [178]: - localctx = MathExprParser.BernoulliFuncContext(self, localctx) - self.enterOuterAlt(localctx, 4) + elif token in [177]: + localctx = MathExprParser.ExponentialFuncContext(self, localctx) + self.enterOuterAlt(localctx, 3) self.state = 1635 - self.match(MathExprParser.BERNOULLI) + self.match(MathExprParser.EXPONENTIAL) self.state = 1636 self.match(MathExprParser.LPAREN) self.state = 1637 @@ -14317,7 +14362,7 @@ class MathExprParser ( Parser ): self.state = 1642 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 1640 self.match(MathExprParser.COMMA) self.state = 1641 @@ -14328,10 +14373,10 @@ class MathExprParser ( Parser ): self.match(MathExprParser.RPAREN) pass elif token in [179]: - localctx = MathExprParser.PoissonFuncContext(self, localctx) - self.enterOuterAlt(localctx, 5) + localctx = MathExprParser.BernoulliFuncContext(self, localctx) + self.enterOuterAlt(localctx, 4) self.state = 1646 - self.match(MathExprParser.POISSON) + self.match(MathExprParser.BERNOULLI) self.state = 1647 self.match(MathExprParser.LPAREN) self.state = 1648 @@ -14343,7 +14388,7 @@ class MathExprParser ( Parser ): self.state = 1653 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 1651 self.match(MathExprParser.COMMA) self.state = 1652 @@ -14353,11 +14398,11 @@ class MathExprParser ( Parser ): self.state = 1655 self.match(MathExprParser.RPAREN) pass - elif token in [175]: - localctx = MathExprParser.CauchyFuncContext(self, localctx) - self.enterOuterAlt(localctx, 6) + elif token in [180]: + localctx = MathExprParser.PoissonFuncContext(self, localctx) + self.enterOuterAlt(localctx, 5) self.state = 1657 - self.match(MathExprParser.CAUCHY) + self.match(MathExprParser.POISSON) self.state = 1658 self.match(MathExprParser.LPAREN) self.state = 1659 @@ -14366,210 +14411,210 @@ class MathExprParser ( Parser ): self.match(MathExprParser.COMMA) self.state = 1661 self.expr() - self.state = 1662 - self.match(MathExprParser.COMMA) - self.state = 1663 - self.expr() - self.state = 1666 + self.state = 1664 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: - self.state = 1664 + if _la==216: + self.state = 1662 self.match(MathExprParser.COMMA) - self.state = 1665 + self.state = 1663 self.expr() - self.state = 1668 + self.state = 1666 self.match(MathExprParser.RPAREN) pass - elif token in [177]: - localctx = MathExprParser.LogNormalFuncContext(self, localctx) - self.enterOuterAlt(localctx, 7) - self.state = 1670 - self.match(MathExprParser.LOGNORMAL) - self.state = 1671 + elif token in [176]: + localctx = MathExprParser.CauchyFuncContext(self, localctx) + self.enterOuterAlt(localctx, 6) + self.state = 1668 + self.match(MathExprParser.CAUCHY) + self.state = 1669 self.match(MathExprParser.LPAREN) + self.state = 1670 + self.expr() + self.state = 1671 + self.match(MathExprParser.COMMA) self.state = 1672 self.expr() self.state = 1673 self.match(MathExprParser.COMMA) self.state = 1674 self.expr() - self.state = 1675 - self.match(MathExprParser.COMMA) - self.state = 1676 - self.expr() - self.state = 1679 + self.state = 1677 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: - self.state = 1677 + if _la==216: + self.state = 1675 self.match(MathExprParser.COMMA) - self.state = 1678 + self.state = 1676 self.expr() - self.state = 1681 + self.state = 1679 self.match(MathExprParser.RPAREN) pass - elif token in [180]: - localctx = MathExprParser.GammaDistFuncContext(self, localctx) - self.enterOuterAlt(localctx, 8) - self.state = 1683 - self.match(MathExprParser.GAMMADIST) - self.state = 1684 + elif token in [178]: + localctx = MathExprParser.LogNormalFuncContext(self, localctx) + self.enterOuterAlt(localctx, 7) + self.state = 1681 + self.match(MathExprParser.LOGNORMAL) + self.state = 1682 self.match(MathExprParser.LPAREN) + self.state = 1683 + self.expr() + self.state = 1684 + self.match(MathExprParser.COMMA) self.state = 1685 self.expr() self.state = 1686 self.match(MathExprParser.COMMA) self.state = 1687 self.expr() - self.state = 1688 - self.match(MathExprParser.COMMA) - self.state = 1689 - self.expr() - self.state = 1692 + self.state = 1690 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: - self.state = 1690 + if _la==216: + self.state = 1688 self.match(MathExprParser.COMMA) - self.state = 1691 + self.state = 1689 self.expr() - self.state = 1694 + self.state = 1692 self.match(MathExprParser.RPAREN) pass elif token in [181]: - localctx = MathExprParser.BetaDistFuncContext(self, localctx) - self.enterOuterAlt(localctx, 9) - self.state = 1696 - self.match(MathExprParser.BETADIST) - self.state = 1697 + localctx = MathExprParser.GammaDistFuncContext(self, localctx) + self.enterOuterAlt(localctx, 8) + self.state = 1694 + self.match(MathExprParser.GAMMADIST) + self.state = 1695 self.match(MathExprParser.LPAREN) + self.state = 1696 + self.expr() + self.state = 1697 + self.match(MathExprParser.COMMA) self.state = 1698 self.expr() self.state = 1699 self.match(MathExprParser.COMMA) self.state = 1700 self.expr() - self.state = 1701 - self.match(MathExprParser.COMMA) - self.state = 1702 - self.expr() - self.state = 1705 + self.state = 1703 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: - self.state = 1703 + if _la==216: + self.state = 1701 self.match(MathExprParser.COMMA) - self.state = 1704 + self.state = 1702 self.expr() - self.state = 1707 + self.state = 1705 self.match(MathExprParser.RPAREN) pass elif token in [182]: - localctx = MathExprParser.LaplaceDistFuncContext(self, localctx) - self.enterOuterAlt(localctx, 10) - self.state = 1709 - self.match(MathExprParser.LAPLACEDIST) - self.state = 1710 + localctx = MathExprParser.BetaDistFuncContext(self, localctx) + self.enterOuterAlt(localctx, 9) + self.state = 1707 + self.match(MathExprParser.BETADIST) + self.state = 1708 self.match(MathExprParser.LPAREN) + self.state = 1709 + self.expr() + self.state = 1710 + self.match(MathExprParser.COMMA) self.state = 1711 self.expr() self.state = 1712 self.match(MathExprParser.COMMA) self.state = 1713 self.expr() - self.state = 1714 - self.match(MathExprParser.COMMA) - self.state = 1715 - self.expr() - self.state = 1718 + self.state = 1716 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: - self.state = 1716 + if _la==216: + self.state = 1714 self.match(MathExprParser.COMMA) - self.state = 1717 + self.state = 1715 self.expr() - self.state = 1720 + self.state = 1718 self.match(MathExprParser.RPAREN) pass elif token in [183]: - localctx = MathExprParser.GumbelDistFuncContext(self, localctx) - self.enterOuterAlt(localctx, 11) - self.state = 1722 - self.match(MathExprParser.GUMBELDIST) - self.state = 1723 + localctx = MathExprParser.LaplaceDistFuncContext(self, localctx) + self.enterOuterAlt(localctx, 10) + self.state = 1720 + self.match(MathExprParser.LAPLACEDIST) + self.state = 1721 self.match(MathExprParser.LPAREN) + self.state = 1722 + self.expr() + self.state = 1723 + self.match(MathExprParser.COMMA) self.state = 1724 self.expr() self.state = 1725 self.match(MathExprParser.COMMA) self.state = 1726 self.expr() - self.state = 1727 - self.match(MathExprParser.COMMA) - self.state = 1728 - self.expr() - self.state = 1731 + self.state = 1729 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: - self.state = 1729 + if _la==216: + self.state = 1727 self.match(MathExprParser.COMMA) - self.state = 1730 + self.state = 1728 self.expr() - self.state = 1733 + self.state = 1731 self.match(MathExprParser.RPAREN) pass elif token in [184]: - localctx = MathExprParser.WeibullDistFuncContext(self, localctx) - self.enterOuterAlt(localctx, 12) - self.state = 1735 - self.match(MathExprParser.WEIBULLDIST) - self.state = 1736 + localctx = MathExprParser.GumbelDistFuncContext(self, localctx) + self.enterOuterAlt(localctx, 11) + self.state = 1733 + self.match(MathExprParser.GUMBELDIST) + self.state = 1734 self.match(MathExprParser.LPAREN) + self.state = 1735 + self.expr() + self.state = 1736 + self.match(MathExprParser.COMMA) self.state = 1737 self.expr() self.state = 1738 self.match(MathExprParser.COMMA) self.state = 1739 self.expr() - self.state = 1740 - self.match(MathExprParser.COMMA) - self.state = 1741 - self.expr() - self.state = 1744 + self.state = 1742 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: - self.state = 1742 + if _la==216: + self.state = 1740 self.match(MathExprParser.COMMA) - self.state = 1743 + self.state = 1741 self.expr() - self.state = 1746 + self.state = 1744 self.match(MathExprParser.RPAREN) pass elif token in [185]: - localctx = MathExprParser.Chi2DistFuncContext(self, localctx) - self.enterOuterAlt(localctx, 13) - self.state = 1748 - self.match(MathExprParser.CHI2DIST) - self.state = 1749 + localctx = MathExprParser.WeibullDistFuncContext(self, localctx) + self.enterOuterAlt(localctx, 12) + self.state = 1746 + self.match(MathExprParser.WEIBULLDIST) + self.state = 1747 self.match(MathExprParser.LPAREN) + self.state = 1748 + self.expr() + self.state = 1749 + self.match(MathExprParser.COMMA) self.state = 1750 self.expr() self.state = 1751 @@ -14579,7 +14624,7 @@ class MathExprParser ( Parser ): self.state = 1755 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 1753 self.match(MathExprParser.COMMA) self.state = 1754 @@ -14590,10 +14635,10 @@ class MathExprParser ( Parser ): self.match(MathExprParser.RPAREN) pass elif token in [186]: - localctx = MathExprParser.StudentTDistFuncContext(self, localctx) - self.enterOuterAlt(localctx, 14) + localctx = MathExprParser.Chi2DistFuncContext(self, localctx) + self.enterOuterAlt(localctx, 13) self.state = 1759 - self.match(MathExprParser.STUDENTTDIST) + self.match(MathExprParser.CHI2DIST) self.state = 1760 self.match(MathExprParser.LPAREN) self.state = 1761 @@ -14605,7 +14650,7 @@ class MathExprParser ( Parser ): self.state = 1766 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: + if _la==216: self.state = 1764 self.match(MathExprParser.COMMA) self.state = 1765 @@ -14616,10 +14661,10 @@ class MathExprParser ( Parser ): self.match(MathExprParser.RPAREN) pass elif token in [187]: - localctx = MathExprParser.PerlinFuncContext(self, localctx) - self.enterOuterAlt(localctx, 15) + localctx = MathExprParser.StudentTDistFuncContext(self, localctx) + self.enterOuterAlt(localctx, 14) self.state = 1770 - self.match(MathExprParser.PERLIN) + self.match(MathExprParser.STUDENTTDIST) self.state = 1771 self.match(MathExprParser.LPAREN) self.state = 1772 @@ -14630,237 +14675,263 @@ class MathExprParser ( Parser ): self.expr() self.state = 1777 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,102,self._ctx) - if la_ == 1: + _la = self._input.LA(1) + if _la==216: self.state = 1775 self.match(MathExprParser.COMMA) self.state = 1776 self.expr() - self.state = 1781 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,103,self._ctx) - if la_ == 1: - self.state = 1779 - self.match(MathExprParser.COMMA) - self.state = 1780 - self.expr() - - - self.state = 1785 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==215: - self.state = 1783 - self.match(MathExprParser.COMMA) - self.state = 1784 - self.expr() - - - self.state = 1787 + self.state = 1779 self.match(MathExprParser.RPAREN) pass elif token in [188]: - localctx = MathExprParser.CellularFuncContext(self, localctx) - self.enterOuterAlt(localctx, 16) - self.state = 1789 - self.match(MathExprParser.CELLULAR) - self.state = 1790 + localctx = MathExprParser.PerlinFuncContext(self, localctx) + self.enterOuterAlt(localctx, 15) + self.state = 1781 + self.match(MathExprParser.PERLIN) + self.state = 1782 self.match(MathExprParser.LPAREN) - self.state = 1791 + self.state = 1783 self.expr() - self.state = 1792 + self.state = 1784 self.match(MathExprParser.COMMA) - self.state = 1793 + self.state = 1785 self.expr() + self.state = 1788 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,103,self._ctx) + if la_ == 1: + self.state = 1786 + self.match(MathExprParser.COMMA) + self.state = 1787 + self.expr() + + + self.state = 1792 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,104,self._ctx) + if la_ == 1: + self.state = 1790 + self.match(MathExprParser.COMMA) + self.state = 1791 + self.expr() + + self.state = 1796 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,105,self._ctx) - if la_ == 1: + _la = self._input.LA(1) + if _la==216: self.state = 1794 self.match(MathExprParser.COMMA) self.state = 1795 self.expr() - self.state = 1800 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,106,self._ctx) - if la_ == 1: - self.state = 1798 - self.match(MathExprParser.COMMA) - self.state = 1799 - self.expr() - - - self.state = 1804 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==215: - self.state = 1802 - self.match(MathExprParser.COMMA) - self.state = 1803 - self.expr() - - - self.state = 1806 + self.state = 1798 self.match(MathExprParser.RPAREN) pass elif token in [189]: - localctx = MathExprParser.PlasmaFuncContext(self, localctx) - self.enterOuterAlt(localctx, 17) - self.state = 1808 - self.match(MathExprParser.PLASMA) - self.state = 1809 + localctx = MathExprParser.CellularFuncContext(self, localctx) + self.enterOuterAlt(localctx, 16) + self.state = 1800 + self.match(MathExprParser.CELLULAR) + self.state = 1801 self.match(MathExprParser.LPAREN) - self.state = 1810 + self.state = 1802 self.expr() - self.state = 1811 + self.state = 1803 self.match(MathExprParser.COMMA) - self.state = 1812 + self.state = 1804 self.expr() + self.state = 1807 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,106,self._ctx) + if la_ == 1: + self.state = 1805 + self.match(MathExprParser.COMMA) + self.state = 1806 + self.expr() + + + self.state = 1811 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,107,self._ctx) + if la_ == 1: + self.state = 1809 + self.match(MathExprParser.COMMA) + self.state = 1810 + self.expr() + + self.state = 1815 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,108,self._ctx) - if la_ == 1: + _la = self._input.LA(1) + if _la==216: self.state = 1813 self.match(MathExprParser.COMMA) self.state = 1814 self.expr() - self.state = 1819 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,109,self._ctx) - if la_ == 1: - self.state = 1817 - self.match(MathExprParser.COMMA) - self.state = 1818 - self.expr() - - - self.state = 1823 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==215: - self.state = 1821 - self.match(MathExprParser.COMMA) - self.state = 1822 - self.expr() - - - self.state = 1825 + self.state = 1817 self.match(MathExprParser.RPAREN) pass elif token in [190]: - localctx = MathExprParser.RidgedFuncContext(self, localctx) - self.enterOuterAlt(localctx, 18) - self.state = 1827 - self.match(MathExprParser.RIDGED) - self.state = 1828 + localctx = MathExprParser.PlasmaFuncContext(self, localctx) + self.enterOuterAlt(localctx, 17) + self.state = 1819 + self.match(MathExprParser.PLASMA) + self.state = 1820 self.match(MathExprParser.LPAREN) - self.state = 1829 + self.state = 1821 self.expr() - self.state = 1830 + self.state = 1822 self.match(MathExprParser.COMMA) - self.state = 1831 + self.state = 1823 self.expr() + self.state = 1826 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,109,self._ctx) + if la_ == 1: + self.state = 1824 + self.match(MathExprParser.COMMA) + self.state = 1825 + self.expr() + + + self.state = 1830 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,110,self._ctx) + if la_ == 1: + self.state = 1828 + self.match(MathExprParser.COMMA) + self.state = 1829 + self.expr() + + self.state = 1834 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,111,self._ctx) - if la_ == 1: + _la = self._input.LA(1) + if _la==216: self.state = 1832 self.match(MathExprParser.COMMA) self.state = 1833 self.expr() - self.state = 1838 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,112,self._ctx) - if la_ == 1: - self.state = 1836 - self.match(MathExprParser.COMMA) - self.state = 1837 - self.expr() - - - self.state = 1842 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==215: - self.state = 1840 - self.match(MathExprParser.COMMA) - self.state = 1841 - self.expr() - - - self.state = 1844 + self.state = 1836 self.match(MathExprParser.RPAREN) pass elif token in [191]: - localctx = MathExprParser.DomainWarpFuncContext(self, localctx) - self.enterOuterAlt(localctx, 19) - self.state = 1846 - self.match(MathExprParser.DOMAIN_WARP) - self.state = 1847 + localctx = MathExprParser.RidgedFuncContext(self, localctx) + self.enterOuterAlt(localctx, 18) + self.state = 1838 + self.match(MathExprParser.RIDGED) + self.state = 1839 self.match(MathExprParser.LPAREN) - self.state = 1848 + self.state = 1840 self.expr() - self.state = 1849 + self.state = 1841 self.match(MathExprParser.COMMA) - self.state = 1850 + self.state = 1842 self.expr() - self.state = 1851 - self.match(MathExprParser.COMMA) - self.state = 1852 - self.expr() - self.state = 1853 - self.match(MathExprParser.COMMA) - self.state = 1854 - self.expr() - self.state = 1857 + self.state = 1845 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,114,self._ctx) + la_ = self._interp.adaptivePredict(self._input,112,self._ctx) if la_ == 1: - self.state = 1855 + self.state = 1843 self.match(MathExprParser.COMMA) - self.state = 1856 + self.state = 1844 self.expr() + self.state = 1849 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,113,self._ctx) + if la_ == 1: + self.state = 1847 + self.match(MathExprParser.COMMA) + self.state = 1848 + self.expr() + + + self.state = 1853 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==216: + self.state = 1851 + self.match(MathExprParser.COMMA) + self.state = 1852 + self.expr() + + + self.state = 1855 + self.match(MathExprParser.RPAREN) + pass + elif token in [192]: + localctx = MathExprParser.DomainWarpFuncContext(self, localctx) + self.enterOuterAlt(localctx, 19) + self.state = 1857 + self.match(MathExprParser.DOMAIN_WARP) + self.state = 1858 + self.match(MathExprParser.LPAREN) + self.state = 1859 + self.expr() + self.state = 1860 + self.match(MathExprParser.COMMA) self.state = 1861 + self.expr() + self.state = 1862 + self.match(MathExprParser.COMMA) + self.state = 1863 + self.expr() + self.state = 1864 + self.match(MathExprParser.COMMA) + self.state = 1865 + self.expr() + self.state = 1868 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,115,self._ctx) if la_ == 1: - self.state = 1859 + self.state = 1866 self.match(MathExprParser.COMMA) - self.state = 1860 + self.state = 1867 self.expr() - self.state = 1865 + self.state = 1872 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,116,self._ctx) if la_ == 1: - self.state = 1863 + self.state = 1870 self.match(MathExprParser.COMMA) - self.state = 1864 + self.state = 1871 self.expr() - self.state = 1869 + self.state = 1876 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,117,self._ctx) + if la_ == 1: + self.state = 1874 + self.match(MathExprParser.COMMA) + self.state = 1875 + self.expr() + + + self.state = 1880 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==215: - self.state = 1867 + if _la==216: + self.state = 1878 self.match(MathExprParser.COMMA) - self.state = 1868 + self.state = 1879 self.expr() - self.state = 1871 + self.state = 1882 self.match(MathExprParser.RPAREN) pass else: diff --git a/more_math/Parser/grammer/MathExprVisitor.py b/more_math/Parser/grammer/MathExprVisitor.py index c5a0eba..b3e7e80 100644 --- a/more_math/Parser/grammer/MathExprVisitor.py +++ b/more_math/Parser/grammer/MathExprVisitor.py @@ -1079,6 +1079,11 @@ class MathExprVisitor(ParseTreeVisitor): return self.visitChildren(ctx) + # Visit a parse tree produced by MathExprParser#CoordsFunc. + def visitCoordsFunc(self, ctx:MathExprParser.CoordsFuncContext): + return self.visitChildren(ctx) + + # Visit a parse tree produced by MathExprParser#SwapFunc. def visitSwapFunc(self, ctx:MathExprParser.SwapFuncContext): return self.visitChildren(ctx) diff --git a/more_math/Parser/inbuilt_symbols.py b/more_math/Parser/inbuilt_symbols.py index 929073b..c63442b 100644 --- a/more_math/Parser/inbuilt_symbols.py +++ b/more_math/Parser/inbuilt_symbols.py @@ -6,7 +6,7 @@ INBUILT_CONSTANTS = { 'e', 'pi' } INBUILT_FUNCTIONS = { -'abs', 'acos', 'acosh', 'all', 'angle', 'any', 'append', 'argmax', 'argmin', 'argsort', 'as_nested_tensor', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'band', 'batch_shuffle', 'bitcount', 'bitwise_and', 'bitwise_not', 'bitwise_or', 'bitwise_xor', 'blur', 'bnot', 'bor', 'botk', 'botk_ind', 'botk_indices', 'bxor', 'cat', 'ceil', 'cellular', 'cellular_noise', 'cielab_to_rgb', 'clamp', 'cnt', 'concat', 'concatenate', 'conv', 'convolution', 'corr', 'correlation', 'cos', 'cosh', 'cosine_similarity', 'cossim', 'count', 'cov', 'crop', 'cross', 'cubic', 'cubic_ease', 'cumprod', 'cumsum', 'diag', 'diagonal_matrix', 'dilate', 'dist', 'distance', 'domain_warp', 'domain_warp_noise', 'dot', 'edge', 'elastic', 'elastic_ease', 'endswith', 'entropy', 'erf', 'erfinv', 'erode', 'exp', 'ezconv', 'ezconvolution', 'fft', 'find', 'flatten', 'flip', 'float', 'floor', 'flow_ang', 'flow_angle', 'flow_apply', 'flow_mag', 'flow_magnitude', 'flow_to_image', 'fract', 'gamma', 'gaussian', 'gelu', 'get_value', 'hist', 'histogram', 'hsv_to_rgb', 'ifft', 'int', 'int_to_rgb', 'interpolate_area', 'interpolate_linear', 'interpolate_nearest', 'interpolate_nearest_exact', 'join', 'length', 'lerp', 'linspace', 'ln', 'log', 'logspace', 'lower', 'map', 'matmul', 'mean', 'median', 'mode', 'moment', 'morph_close', 'morph_open', 'motion_mask', 'nan_to_num', 'noise', 'now', 'nvl', 'oklab_to_rgb', 'overlay', 'pad', 'percentile', 'perlin', 'perlin_noise', 'perm', 'permute', 'pinv', 'plasma', 'plasma_noise', 'popcnt', 'popcount', 'pow', 'prcnt', 'print', 'print_shape', 'pshp', 'quantile', 'quartil', 'quartile', 'rand', 'randb', 'randbeta', 'randc', 'rande', 'randg', 'randgumbel', 'randchi2', 'randl', 'randln', 'randn', 'random_bernoulli', 'random_beta', 'random_cauchy', 'random_exponential', 'random_gamma', 'random_gumbel', 'random_chi2', 'random_laplace', 'random_log_normal', 'random_normal', 'random_poisson', 'random_studentt', 'random_uniform', 'random_weibull', 'randp', 'randt', 'randu', 'randw', 'range', 'relu', 'remap', 'repeat', 'replace', 'reshape', 'rgb_to_cielab', 'rgb_to_hsv', 'rgb_to_int', 'rgb_to_oklab', 'ridged', 'ridged_noise', 'rife', 'roll', 'round', 'rshp', 'select', 'shape', 'shuffle', 'sigm', 'sign', 'sin', 'sine', 'sine_ease', 'singular_value_decomposition', 'sinh', 'smax', 'smin', 'smootherstep', 'smoothstep', 'snorm', 'softmax', 'softmin', 'softplus', 'sort', 'split', 'sqrt', 'squeeze', 'stack_clear', 'stack_get', 'stack_has', 'stack_pop', 'stack_push', 'startswith', 'std', 'step', 'substr', 'substring', 'sum', 'svd', 'swap', 'tan', 'tanh', 'tensor', 'text_image', 'timestamp', 'tmax', 'tmin', 'tnorm', 'topk', 'topk_ind', 'topk_indices', 'trim', 'turbulence', 'unique', 'unsqueeze', 'upper', 'var', 'voronoi', 'voronoi_noise', 'where', 'worley' +'abs', 'acos', 'acosh', 'all', 'angle', 'any', 'append', 'argmax', 'argmin', 'argsort', 'as_nested_tensor', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'band', 'batch_shuffle', 'bitcount', 'bitwise_and', 'bitwise_not', 'bitwise_or', 'bitwise_xor', 'blur', 'bnot', 'bor', 'botk', 'botk_ind', 'botk_indices', 'bxor', 'cat', 'ceil', 'cellular', 'cellular_noise', 'cielab_to_rgb', 'clamp', 'cnt', 'concat', 'concatenate', 'conv', 'convolution', 'coordinates', 'coords', 'corr', 'correlation', 'cos', 'cosh', 'cosine_similarity', 'cossim', 'count', 'cov', 'crop', 'cross', 'cubic', 'cubic_ease', 'cumprod', 'cumsum', 'diag', 'diagonal_matrix', 'dilate', 'dist', 'distance', 'domain_warp', 'domain_warp_noise', 'dot', 'edge', 'elastic', 'elastic_ease', 'endswith', 'entropy', 'erf', 'erfinv', 'erode', 'exp', 'ezconv', 'ezconvolution', 'fft', 'find', 'flatten', 'flip', 'float', 'floor', 'flow_ang', 'flow_angle', 'flow_apply', 'flow_mag', 'flow_magnitude', 'flow_to_image', 'fract', 'gamma', 'gaussian', 'gelu', 'get_value', 'hist', 'histogram', 'hsv_to_rgb', 'ifft', 'int', 'int_to_rgb', 'interpolate_area', 'interpolate_linear', 'interpolate_nearest', 'interpolate_nearest_exact', 'join', 'length', 'lerp', 'linspace', 'ln', 'log', 'logspace', 'lower', 'map', 'matmul', 'mean', 'median', 'mode', 'moment', 'morph_close', 'morph_open', 'motion_mask', 'nan_to_num', 'noise', 'now', 'nvl', 'oklab_to_rgb', 'overlay', 'pad', 'percentile', 'perlin', 'perlin_noise', 'perm', 'permute', 'pinv', 'plasma', 'plasma_noise', 'popcnt', 'popcount', 'pow', 'prcnt', 'print', 'print_shape', 'pshp', 'quantile', 'quartil', 'quartile', 'rand', 'randb', 'randbeta', 'randc', 'rande', 'randg', 'randgumbel', 'randchi2', 'randl', 'randln', 'randn', 'random_bernoulli', 'random_beta', 'random_cauchy', 'random_exponential', 'random_gamma', 'random_gumbel', 'random_chi2', 'random_laplace', 'random_log_normal', 'random_normal', 'random_poisson', 'random_studentt', 'random_uniform', 'random_weibull', 'randp', 'randt', 'randu', 'randw', 'range', 'relu', 'remap', 'repeat', 'replace', 'reshape', 'rgb_to_cielab', 'rgb_to_hsv', 'rgb_to_int', 'rgb_to_oklab', 'ridged', 'ridged_noise', 'rife', 'roll', 'round', 'rshp', 'select', 'shape', 'shuffle', 'sigm', 'sign', 'sin', 'sine', 'sine_ease', 'singular_value_decomposition', 'sinh', 'smax', 'smin', 'smootherstep', 'smoothstep', 'snorm', 'softmax', 'softmin', 'softplus', 'sort', 'split', 'sqrt', 'squeeze', 'stack_clear', 'stack_get', 'stack_has', 'stack_pop', 'stack_push', 'startswith', 'std', 'step', 'substr', 'substring', 'sum', 'svd', 'swap', 'tan', 'tanh', 'tensor', 'text_image', 'timestamp', 'tmax', 'tmin', 'tnorm', 'topk', 'topk_ind', 'topk_indices', 'trim', 'turbulence', 'unique', 'unsqueeze', 'upper', 'var', 'voronoi', 'voronoi_noise', 'where', 'worley' } INBUILT_FUNCTION_META = { @@ -51,6 +51,8 @@ INBUILT_FUNCTION_META = { 'concatenate': {'min_args': 2, 'max_args': None, 'snippet': 'concatenate()', 'description': 'concatenate(x1, x2, ..., dim) - concatenates tensors along the specified dimension'}, 'conv': {'min_args': 2, 'max_args': None, 'snippet': 'conv()', 'description': 'convolution(tensor, [kernel_sizes...], kernel) - applies convolution with kernel. Expects [batch,channel, ...]'}, 'convolution': {'min_args': 2, 'max_args': None, 'snippet': 'convolution()', 'description': 'convolution(tensor, [kernel_sizes...], kernel) - applies convolution with kernel. Expects [batch,channel, ...]'}, + 'coordinates': {'min_args': 2, 'max_args': 3, 'snippet': 'coordinates()', 'description': 'coords(shape, dim, [dtype]) - generates a tensor with the specified shape whose values are the coordinates of each element along the specified dimension. The dtype can be specified to control the data type of the output tensor.'}, + 'coords': {'min_args': 2, 'max_args': 3, 'snippet': 'coords()', 'description': 'coords(shape, dim, [dtype]) - generates a tensor with the specified shape whose values are the coordinates of each element along the specified dimension. The dtype can be specified to control the data type of the output tensor.'}, 'corr': {'min_args': 2, 'max_args': 2, 'snippet': 'corr()', 'description': 'correlation(x, y) - computes the correlation between x and y'}, 'correlation': {'min_args': 2, 'max_args': 2, 'snippet': 'correlation()', 'description': 'correlation(x, y) - computes the correlation between x and y'}, 'cos': {'min_args': 1, 'max_args': 1, 'snippet': 'cos()', 'description': 'cos(x) - applies cosinus function to value or each element of value'}, diff --git a/more_math/Parser/legacy/MathExpr.interp b/more_math/Parser/legacy/MathExpr.interp index b49f613..3941141 100644 --- a/more_math/Parser/legacy/MathExpr.interp +++ b/more_math/Parser/legacy/MathExpr.interp @@ -191,6 +191,7 @@ null null null null +null '+' '-' '*' @@ -405,6 +406,7 @@ CORR ENTROPY CROP NONE +COORDS NOISE RAND CAUCHY @@ -499,4 +501,4 @@ funcNoise atn: -[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 232, 1878, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 3, 2, 3, 2, 3, 2, 7, 2, 68, 10, 2, 12, 2, 14, 2, 71, 11, 2, 3, 2, 3, 2, 5, 2, 75, 10, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 5, 3, 82, 10, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 88, 10, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 7, 4, 97, 10, 4, 12, 4, 14, 4, 100, 11, 4, 3, 4, 3, 4, 7, 4, 104, 10, 4, 12, 4, 14, 4, 107, 11, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 7, 5, 116, 10, 5, 12, 5, 14, 5, 119, 11, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 5, 6, 132, 10, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 5, 7, 141, 10, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 7, 10, 159, 10, 10, 12, 10, 14, 10, 162, 11, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 5, 13, 174, 10, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 5, 14, 181, 10, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 7, 16, 210, 10, 16, 12, 16, 14, 16, 213, 11, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 7, 17, 224, 10, 17, 12, 17, 14, 17, 227, 11, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 7, 18, 241, 10, 18, 12, 18, 14, 18, 244, 11, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 7, 19, 255, 10, 19, 12, 19, 14, 19, 258, 11, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 5, 20, 265, 10, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 5, 21, 272, 10, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 7, 22, 282, 10, 22, 12, 22, 14, 22, 285, 11, 22, 3, 22, 3, 22, 7, 22, 289, 10, 22, 12, 22, 14, 22, 292, 11, 22, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 5, 23, 312, 10, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 7, 23, 330, 10, 23, 12, 23, 14, 23, 333, 11, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 5, 23, 340, 10, 23, 3, 23, 3, 23, 3, 23, 3, 23, 5, 23, 346, 10, 23, 3, 24, 3, 24, 3, 24, 7, 24, 351, 10, 24, 12, 24, 14, 24, 354, 11, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 525, 10, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 564, 10, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 583, 10, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 599, 10, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 635, 10, 26, 5, 26, 637, 10, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 646, 10, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 655, 10, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 664, 10, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 673, 10, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 752, 10, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 761, 10, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 770, 10, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 779, 10, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 813, 10, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 5, 27, 848, 10, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 5, 27, 964, 10, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 5, 27, 1010, 10, 27, 5, 27, 1012, 10, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 5, 27, 1055, 10, 27, 5, 27, 1057, 10, 27, 5, 27, 1059, 10, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 5, 27, 1089, 10, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 5, 27, 1098, 10, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 5, 27, 1109, 10, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 5, 27, 1142, 10, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 5, 27, 1167, 10, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 5, 28, 1264, 10, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 5, 28, 1277, 10, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 5, 28, 1297, 10, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 5, 28, 1309, 10, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 5, 28, 1321, 10, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 5, 28, 1333, 10, 28, 3, 28, 3, 28, 5, 28, 1337, 10, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 5, 28, 1349, 10, 28, 3, 28, 3, 28, 5, 28, 1353, 10, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 5, 28, 1374, 10, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 5, 28, 1386, 10, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 5, 28, 1399, 10, 28, 3, 28, 3, 28, 5, 28, 1403, 10, 28, 3, 28, 3, 28, 5, 28, 1407, 10, 28, 3, 28, 3, 28, 5, 28, 1411, 10, 28, 3, 28, 3, 28, 5, 28, 1415, 10, 28, 3, 28, 3, 28, 5, 28, 1419, 10, 28, 3, 28, 3, 28, 5, 28, 1423, 10, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 5, 29, 1480, 10, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 5, 30, 1506, 10, 30, 5, 30, 1508, 10, 30, 5, 30, 1510, 10, 30, 3, 30, 3, 30, 5, 30, 1514, 10, 30, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 7, 31, 1521, 10, 31, 12, 31, 14, 31, 1524, 11, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 7, 31, 1533, 10, 31, 12, 31, 14, 31, 1536, 11, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 6, 31, 1545, 10, 31, 13, 31, 14, 31, 1546, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 6, 31, 1556, 10, 31, 13, 31, 14, 31, 1557, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 6, 31, 1567, 10, 31, 13, 31, 14, 31, 1568, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 5, 31, 1585, 10, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 6, 31, 1601, 10, 31, 13, 31, 14, 31, 1602, 3, 31, 3, 31, 5, 31, 1607, 10, 31, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1614, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1623, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1634, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1645, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1656, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1669, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1682, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1695, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1708, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1721, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1734, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1747, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1758, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1769, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1780, 10, 32, 3, 32, 3, 32, 5, 32, 1784, 10, 32, 3, 32, 3, 32, 5, 32, 1788, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1799, 10, 32, 3, 32, 3, 32, 5, 32, 1803, 10, 32, 3, 32, 3, 32, 5, 32, 1807, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1818, 10, 32, 3, 32, 3, 32, 5, 32, 1822, 10, 32, 3, 32, 3, 32, 5, 32, 1826, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1837, 10, 32, 3, 32, 3, 32, 5, 32, 1841, 10, 32, 3, 32, 3, 32, 5, 32, 1845, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1860, 10, 32, 3, 32, 3, 32, 5, 32, 1864, 10, 32, 3, 32, 3, 32, 5, 32, 1868, 10, 32, 3, 32, 3, 32, 5, 32, 1872, 10, 32, 3, 32, 3, 32, 5, 32, 1876, 10, 32, 3, 32, 2, 7, 30, 32, 34, 36, 42, 33, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 2, 3, 3, 2, 207, 212, 2, 2166, 2, 69, 3, 2, 2, 2, 4, 78, 3, 2, 2, 2, 6, 91, 3, 2, 2, 2, 8, 112, 3, 2, 2, 2, 10, 131, 3, 2, 2, 2, 12, 133, 3, 2, 2, 2, 14, 142, 3, 2, 2, 2, 16, 148, 3, 2, 2, 2, 18, 156, 3, 2, 2, 2, 20, 165, 3, 2, 2, 2, 22, 168, 3, 2, 2, 2, 24, 171, 3, 2, 2, 2, 26, 180, 3, 2, 2, 2, 28, 182, 3, 2, 2, 2, 30, 188, 3, 2, 2, 2, 32, 214, 3, 2, 2, 2, 34, 228, 3, 2, 2, 2, 36, 245, 3, 2, 2, 2, 38, 264, 3, 2, 2, 2, 40, 271, 3, 2, 2, 2, 42, 273, 3, 2, 2, 2, 44, 345, 3, 2, 2, 2, 46, 347, 3, 2, 2, 2, 48, 355, 3, 2, 2, 2, 50, 812, 3, 2, 2, 2, 52, 1166, 3, 2, 2, 2, 54, 1422, 3, 2, 2, 2, 56, 1479, 3, 2, 2, 2, 58, 1513, 3, 2, 2, 2, 60, 1606, 3, 2, 2, 2, 62, 1875, 3, 2, 2, 2, 64, 68, 5, 4, 3, 2, 65, 68, 5, 6, 4, 2, 66, 68, 5, 10, 6, 2, 67, 64, 3, 2, 2, 2, 67, 65, 3, 2, 2, 2, 67, 66, 3, 2, 2, 2, 68, 71, 3, 2, 2, 2, 69, 67, 3, 2, 2, 2, 69, 70, 3, 2, 2, 2, 70, 72, 3, 2, 2, 2, 71, 69, 3, 2, 2, 2, 72, 74, 5, 26, 14, 2, 73, 75, 7, 218, 2, 2, 74, 73, 3, 2, 2, 2, 74, 75, 3, 2, 2, 2, 75, 76, 3, 2, 2, 2, 76, 77, 7, 2, 2, 3, 77, 3, 3, 2, 2, 2, 78, 79, 7, 229, 2, 2, 79, 81, 7, 215, 2, 2, 80, 82, 5, 8, 5, 2, 81, 80, 3, 2, 2, 2, 81, 82, 3, 2, 2, 2, 82, 83, 3, 2, 2, 2, 83, 84, 7, 216, 2, 2, 84, 87, 7, 219, 2, 2, 85, 88, 5, 18, 10, 2, 86, 88, 5, 26, 14, 2, 87, 85, 3, 2, 2, 2, 87, 86, 3, 2, 2, 2, 88, 89, 3, 2, 2, 2, 89, 90, 7, 218, 2, 2, 90, 5, 3, 2, 2, 2, 91, 105, 7, 229, 2, 2, 92, 93, 7, 220, 2, 2, 93, 98, 5, 26, 14, 2, 94, 95, 7, 217, 2, 2, 95, 97, 5, 26, 14, 2, 96, 94, 3, 2, 2, 2, 97, 100, 3, 2, 2, 2, 98, 96, 3, 2, 2, 2, 98, 99, 3, 2, 2, 2, 99, 101, 3, 2, 2, 2, 100, 98, 3, 2, 2, 2, 101, 102, 7, 221, 2, 2, 102, 104, 3, 2, 2, 2, 103, 92, 3, 2, 2, 2, 104, 107, 3, 2, 2, 2, 105, 103, 3, 2, 2, 2, 105, 106, 3, 2, 2, 2, 106, 108, 3, 2, 2, 2, 107, 105, 3, 2, 2, 2, 108, 109, 9, 2, 2, 2, 109, 110, 5, 26, 14, 2, 110, 111, 7, 218, 2, 2, 111, 7, 3, 2, 2, 2, 112, 117, 7, 229, 2, 2, 113, 114, 7, 217, 2, 2, 114, 116, 7, 229, 2, 2, 115, 113, 3, 2, 2, 2, 116, 119, 3, 2, 2, 2, 117, 115, 3, 2, 2, 2, 117, 118, 3, 2, 2, 2, 118, 9, 3, 2, 2, 2, 119, 117, 3, 2, 2, 2, 120, 132, 5, 12, 7, 2, 121, 132, 5, 14, 8, 2, 122, 132, 5, 18, 10, 2, 123, 132, 5, 20, 11, 2, 124, 132, 5, 22, 12, 2, 125, 132, 5, 24, 13, 2, 126, 132, 5, 6, 4, 2, 127, 132, 5, 16, 9, 2, 128, 129, 5, 26, 14, 2, 129, 130, 7, 218, 2, 2, 130, 132, 3, 2, 2, 2, 131, 120, 3, 2, 2, 2, 131, 121, 3, 2, 2, 2, 131, 122, 3, 2, 2, 2, 131, 123, 3, 2, 2, 2, 131, 124, 3, 2, 2, 2, 131, 125, 3, 2, 2, 2, 131, 126, 3, 2, 2, 2, 131, 127, 3, 2, 2, 2, 131, 128, 3, 2, 2, 2, 132, 11, 3, 2, 2, 2, 133, 134, 7, 148, 2, 2, 134, 135, 7, 215, 2, 2, 135, 136, 5, 26, 14, 2, 136, 137, 7, 216, 2, 2, 137, 140, 5, 10, 6, 2, 138, 139, 7, 149, 2, 2, 139, 141, 5, 10, 6, 2, 140, 138, 3, 2, 2, 2, 140, 141, 3, 2, 2, 2, 141, 13, 3, 2, 2, 2, 142, 143, 7, 150, 2, 2, 143, 144, 7, 215, 2, 2, 144, 145, 5, 26, 14, 2, 145, 146, 7, 216, 2, 2, 146, 147, 5, 10, 6, 2, 147, 15, 3, 2, 2, 2, 148, 149, 7, 151, 2, 2, 149, 150, 7, 215, 2, 2, 150, 151, 7, 229, 2, 2, 151, 152, 7, 152, 2, 2, 152, 153, 5, 26, 14, 2, 153, 154, 7, 216, 2, 2, 154, 155, 5, 10, 6, 2, 155, 17, 3, 2, 2, 2, 156, 160, 7, 224, 2, 2, 157, 159, 5, 10, 6, 2, 158, 157, 3, 2, 2, 2, 159, 162, 3, 2, 2, 2, 160, 158, 3, 2, 2, 2, 160, 161, 3, 2, 2, 2, 161, 163, 3, 2, 2, 2, 162, 160, 3, 2, 2, 2, 163, 164, 7, 225, 2, 2, 164, 19, 3, 2, 2, 2, 165, 166, 7, 153, 2, 2, 166, 167, 7, 218, 2, 2, 167, 21, 3, 2, 2, 2, 168, 169, 7, 154, 2, 2, 169, 170, 7, 218, 2, 2, 170, 23, 3, 2, 2, 2, 171, 173, 7, 155, 2, 2, 172, 174, 5, 26, 14, 2, 173, 172, 3, 2, 2, 2, 173, 174, 3, 2, 2, 2, 174, 175, 3, 2, 2, 2, 175, 176, 7, 218, 2, 2, 176, 25, 3, 2, 2, 2, 177, 181, 5, 28, 15, 2, 178, 181, 5, 44, 23, 2, 179, 181, 5, 30, 16, 2, 180, 177, 3, 2, 2, 2, 180, 178, 3, 2, 2, 2, 180, 179, 3, 2, 2, 2, 181, 27, 3, 2, 2, 2, 182, 183, 5, 30, 16, 2, 183, 184, 7, 222, 2, 2, 184, 185, 5, 26, 14, 2, 185, 186, 7, 223, 2, 2, 186, 187, 5, 26, 14, 2, 187, 29, 3, 2, 2, 2, 188, 189, 8, 16, 1, 2, 189, 190, 5, 32, 17, 2, 190, 211, 3, 2, 2, 2, 191, 192, 12, 9, 2, 2, 192, 193, 7, 203, 2, 2, 193, 210, 5, 32, 17, 2, 194, 195, 12, 8, 2, 2, 195, 196, 7, 202, 2, 2, 196, 210, 5, 32, 17, 2, 197, 198, 12, 7, 2, 2, 198, 199, 7, 205, 2, 2, 199, 210, 5, 32, 17, 2, 200, 201, 12, 6, 2, 2, 201, 202, 7, 204, 2, 2, 202, 210, 5, 32, 17, 2, 203, 204, 12, 5, 2, 2, 204, 205, 7, 206, 2, 2, 205, 210, 5, 32, 17, 2, 206, 207, 12, 4, 2, 2, 207, 208, 7, 213, 2, 2, 208, 210, 5, 32, 17, 2, 209, 191, 3, 2, 2, 2, 209, 194, 3, 2, 2, 2, 209, 197, 3, 2, 2, 2, 209, 200, 3, 2, 2, 2, 209, 203, 3, 2, 2, 2, 209, 206, 3, 2, 2, 2, 210, 213, 3, 2, 2, 2, 211, 209, 3, 2, 2, 2, 211, 212, 3, 2, 2, 2, 212, 31, 3, 2, 2, 2, 213, 211, 3, 2, 2, 2, 214, 215, 8, 17, 1, 2, 215, 216, 5, 34, 18, 2, 216, 225, 3, 2, 2, 2, 217, 218, 12, 5, 2, 2, 218, 219, 7, 194, 2, 2, 219, 224, 5, 34, 18, 2, 220, 221, 12, 4, 2, 2, 221, 222, 7, 195, 2, 2, 222, 224, 5, 34, 18, 2, 223, 217, 3, 2, 2, 2, 223, 220, 3, 2, 2, 2, 224, 227, 3, 2, 2, 2, 225, 223, 3, 2, 2, 2, 225, 226, 3, 2, 2, 2, 226, 33, 3, 2, 2, 2, 227, 225, 3, 2, 2, 2, 228, 229, 8, 18, 1, 2, 229, 230, 5, 36, 19, 2, 230, 242, 3, 2, 2, 2, 231, 232, 12, 6, 2, 2, 232, 233, 7, 196, 2, 2, 233, 241, 5, 36, 19, 2, 234, 235, 12, 5, 2, 2, 235, 236, 7, 197, 2, 2, 236, 241, 5, 36, 19, 2, 237, 238, 12, 4, 2, 2, 238, 239, 7, 198, 2, 2, 239, 241, 5, 36, 19, 2, 240, 231, 3, 2, 2, 2, 240, 234, 3, 2, 2, 2, 240, 237, 3, 2, 2, 2, 241, 244, 3, 2, 2, 2, 242, 240, 3, 2, 2, 2, 242, 243, 3, 2, 2, 2, 243, 35, 3, 2, 2, 2, 244, 242, 3, 2, 2, 2, 245, 246, 8, 19, 1, 2, 246, 247, 5, 38, 20, 2, 247, 256, 3, 2, 2, 2, 248, 249, 12, 5, 2, 2, 249, 250, 7, 200, 2, 2, 250, 255, 5, 38, 20, 2, 251, 252, 12, 4, 2, 2, 252, 253, 7, 201, 2, 2, 253, 255, 5, 38, 20, 2, 254, 248, 3, 2, 2, 2, 254, 251, 3, 2, 2, 2, 255, 258, 3, 2, 2, 2, 256, 254, 3, 2, 2, 2, 256, 257, 3, 2, 2, 2, 257, 37, 3, 2, 2, 2, 258, 256, 3, 2, 2, 2, 259, 260, 5, 40, 21, 2, 260, 261, 7, 199, 2, 2, 261, 262, 5, 38, 20, 2, 262, 265, 3, 2, 2, 2, 263, 265, 5, 40, 21, 2, 264, 259, 3, 2, 2, 2, 264, 263, 3, 2, 2, 2, 265, 39, 3, 2, 2, 2, 266, 267, 7, 194, 2, 2, 267, 272, 5, 40, 21, 2, 268, 269, 7, 195, 2, 2, 269, 272, 5, 40, 21, 2, 270, 272, 5, 42, 22, 2, 271, 266, 3, 2, 2, 2, 271, 268, 3, 2, 2, 2, 271, 270, 3, 2, 2, 2, 272, 41, 3, 2, 2, 2, 273, 274, 8, 22, 1, 2, 274, 275, 5, 44, 23, 2, 275, 290, 3, 2, 2, 2, 276, 277, 12, 4, 2, 2, 277, 278, 7, 220, 2, 2, 278, 283, 5, 26, 14, 2, 279, 280, 7, 217, 2, 2, 280, 282, 5, 26, 14, 2, 281, 279, 3, 2, 2, 2, 282, 285, 3, 2, 2, 2, 283, 281, 3, 2, 2, 2, 283, 284, 3, 2, 2, 2, 284, 286, 3, 2, 2, 2, 285, 283, 3, 2, 2, 2, 286, 287, 7, 221, 2, 2, 287, 289, 3, 2, 2, 2, 288, 276, 3, 2, 2, 2, 289, 292, 3, 2, 2, 2, 290, 288, 3, 2, 2, 2, 290, 291, 3, 2, 2, 2, 291, 43, 3, 2, 2, 2, 292, 290, 3, 2, 2, 2, 293, 346, 5, 48, 25, 2, 294, 346, 5, 50, 26, 2, 295, 346, 5, 52, 27, 2, 296, 346, 5, 54, 28, 2, 297, 346, 5, 56, 29, 2, 298, 346, 5, 58, 30, 2, 299, 346, 5, 60, 31, 2, 300, 346, 5, 62, 32, 2, 301, 346, 7, 229, 2, 2, 302, 346, 7, 226, 2, 2, 303, 346, 7, 227, 2, 2, 304, 346, 7, 228, 2, 2, 305, 306, 7, 215, 2, 2, 306, 307, 5, 8, 5, 2, 307, 308, 7, 216, 2, 2, 308, 311, 7, 219, 2, 2, 309, 312, 5, 18, 10, 2, 310, 312, 5, 26, 14, 2, 311, 309, 3, 2, 2, 2, 311, 310, 3, 2, 2, 2, 312, 346, 3, 2, 2, 2, 313, 314, 7, 215, 2, 2, 314, 315, 5, 26, 14, 2, 315, 316, 7, 216, 2, 2, 316, 346, 3, 2, 2, 2, 317, 318, 7, 215, 2, 2, 318, 319, 5, 26, 14, 2, 319, 320, 7, 216, 2, 2, 320, 346, 3, 2, 2, 2, 321, 322, 7, 214, 2, 2, 322, 323, 5, 26, 14, 2, 323, 324, 7, 214, 2, 2, 324, 346, 3, 2, 2, 2, 325, 326, 7, 220, 2, 2, 326, 331, 5, 26, 14, 2, 327, 328, 7, 217, 2, 2, 328, 330, 5, 26, 14, 2, 329, 327, 3, 2, 2, 2, 330, 333, 3, 2, 2, 2, 331, 329, 3, 2, 2, 2, 331, 332, 3, 2, 2, 2, 332, 334, 3, 2, 2, 2, 333, 331, 3, 2, 2, 2, 334, 335, 7, 221, 2, 2, 335, 346, 3, 2, 2, 2, 336, 337, 7, 229, 2, 2, 337, 339, 7, 215, 2, 2, 338, 340, 5, 46, 24, 2, 339, 338, 3, 2, 2, 2, 339, 340, 3, 2, 2, 2, 340, 341, 3, 2, 2, 2, 341, 346, 7, 216, 2, 2, 342, 346, 7, 174, 2, 2, 343, 346, 7, 153, 2, 2, 344, 346, 7, 154, 2, 2, 345, 293, 3, 2, 2, 2, 345, 294, 3, 2, 2, 2, 345, 295, 3, 2, 2, 2, 345, 296, 3, 2, 2, 2, 345, 297, 3, 2, 2, 2, 345, 298, 3, 2, 2, 2, 345, 299, 3, 2, 2, 2, 345, 300, 3, 2, 2, 2, 345, 301, 3, 2, 2, 2, 345, 302, 3, 2, 2, 2, 345, 303, 3, 2, 2, 2, 345, 304, 3, 2, 2, 2, 345, 305, 3, 2, 2, 2, 345, 313, 3, 2, 2, 2, 345, 317, 3, 2, 2, 2, 345, 321, 3, 2, 2, 2, 345, 325, 3, 2, 2, 2, 345, 336, 3, 2, 2, 2, 345, 342, 3, 2, 2, 2, 345, 343, 3, 2, 2, 2, 345, 344, 3, 2, 2, 2, 346, 45, 3, 2, 2, 2, 347, 352, 5, 26, 14, 2, 348, 349, 7, 217, 2, 2, 349, 351, 5, 26, 14, 2, 350, 348, 3, 2, 2, 2, 351, 354, 3, 2, 2, 2, 352, 350, 3, 2, 2, 2, 352, 353, 3, 2, 2, 2, 353, 47, 3, 2, 2, 2, 354, 352, 3, 2, 2, 2, 355, 356, 7, 156, 2, 2, 356, 357, 7, 215, 2, 2, 357, 358, 7, 216, 2, 2, 358, 49, 3, 2, 2, 2, 359, 360, 7, 3, 2, 2, 360, 361, 7, 215, 2, 2, 361, 362, 5, 26, 14, 2, 362, 363, 7, 216, 2, 2, 363, 813, 3, 2, 2, 2, 364, 365, 7, 4, 2, 2, 365, 366, 7, 215, 2, 2, 366, 367, 5, 26, 14, 2, 367, 368, 7, 216, 2, 2, 368, 813, 3, 2, 2, 2, 369, 370, 7, 5, 2, 2, 370, 371, 7, 215, 2, 2, 371, 372, 5, 26, 14, 2, 372, 373, 7, 216, 2, 2, 373, 813, 3, 2, 2, 2, 374, 375, 7, 6, 2, 2, 375, 376, 7, 215, 2, 2, 376, 377, 5, 26, 14, 2, 377, 378, 7, 216, 2, 2, 378, 813, 3, 2, 2, 2, 379, 380, 7, 7, 2, 2, 380, 381, 7, 215, 2, 2, 381, 382, 5, 26, 14, 2, 382, 383, 7, 216, 2, 2, 383, 813, 3, 2, 2, 2, 384, 385, 7, 8, 2, 2, 385, 386, 7, 215, 2, 2, 386, 387, 5, 26, 14, 2, 387, 388, 7, 216, 2, 2, 388, 813, 3, 2, 2, 2, 389, 390, 7, 10, 2, 2, 390, 391, 7, 215, 2, 2, 391, 392, 5, 26, 14, 2, 392, 393, 7, 216, 2, 2, 393, 813, 3, 2, 2, 2, 394, 395, 7, 11, 2, 2, 395, 396, 7, 215, 2, 2, 396, 397, 5, 26, 14, 2, 397, 398, 7, 216, 2, 2, 398, 813, 3, 2, 2, 2, 399, 400, 7, 12, 2, 2, 400, 401, 7, 215, 2, 2, 401, 402, 5, 26, 14, 2, 402, 403, 7, 216, 2, 2, 403, 813, 3, 2, 2, 2, 404, 405, 7, 13, 2, 2, 405, 406, 7, 215, 2, 2, 406, 407, 5, 26, 14, 2, 407, 408, 7, 216, 2, 2, 408, 813, 3, 2, 2, 2, 409, 410, 7, 14, 2, 2, 410, 411, 7, 215, 2, 2, 411, 412, 5, 26, 14, 2, 412, 413, 7, 216, 2, 2, 413, 813, 3, 2, 2, 2, 414, 415, 7, 15, 2, 2, 415, 416, 7, 215, 2, 2, 416, 417, 5, 26, 14, 2, 417, 418, 7, 216, 2, 2, 418, 813, 3, 2, 2, 2, 419, 420, 7, 16, 2, 2, 420, 421, 7, 215, 2, 2, 421, 422, 5, 26, 14, 2, 422, 423, 7, 216, 2, 2, 423, 813, 3, 2, 2, 2, 424, 425, 7, 17, 2, 2, 425, 426, 7, 215, 2, 2, 426, 427, 5, 26, 14, 2, 427, 428, 7, 216, 2, 2, 428, 813, 3, 2, 2, 2, 429, 430, 7, 18, 2, 2, 430, 431, 7, 215, 2, 2, 431, 432, 5, 26, 14, 2, 432, 433, 7, 216, 2, 2, 433, 813, 3, 2, 2, 2, 434, 435, 7, 19, 2, 2, 435, 436, 7, 215, 2, 2, 436, 437, 5, 26, 14, 2, 437, 438, 7, 216, 2, 2, 438, 813, 3, 2, 2, 2, 439, 440, 7, 20, 2, 2, 440, 441, 7, 215, 2, 2, 441, 442, 5, 26, 14, 2, 442, 443, 7, 216, 2, 2, 443, 813, 3, 2, 2, 2, 444, 445, 7, 25, 2, 2, 445, 446, 7, 215, 2, 2, 446, 447, 5, 26, 14, 2, 447, 448, 7, 216, 2, 2, 448, 813, 3, 2, 2, 2, 449, 450, 7, 27, 2, 2, 450, 451, 7, 215, 2, 2, 451, 452, 5, 26, 14, 2, 452, 453, 7, 216, 2, 2, 453, 813, 3, 2, 2, 2, 454, 455, 7, 28, 2, 2, 455, 456, 7, 215, 2, 2, 456, 457, 5, 26, 14, 2, 457, 458, 7, 216, 2, 2, 458, 813, 3, 2, 2, 2, 459, 460, 7, 29, 2, 2, 460, 461, 7, 215, 2, 2, 461, 462, 5, 26, 14, 2, 462, 463, 7, 216, 2, 2, 463, 813, 3, 2, 2, 2, 464, 465, 7, 30, 2, 2, 465, 466, 7, 215, 2, 2, 466, 467, 5, 26, 14, 2, 467, 468, 7, 216, 2, 2, 468, 813, 3, 2, 2, 2, 469, 470, 7, 32, 2, 2, 470, 471, 7, 215, 2, 2, 471, 472, 5, 26, 14, 2, 472, 473, 7, 216, 2, 2, 473, 813, 3, 2, 2, 2, 474, 475, 7, 36, 2, 2, 475, 476, 7, 215, 2, 2, 476, 477, 5, 26, 14, 2, 477, 478, 7, 216, 2, 2, 478, 813, 3, 2, 2, 2, 479, 480, 7, 37, 2, 2, 480, 481, 7, 215, 2, 2, 481, 482, 5, 26, 14, 2, 482, 483, 7, 216, 2, 2, 483, 813, 3, 2, 2, 2, 484, 485, 7, 43, 2, 2, 485, 486, 7, 215, 2, 2, 486, 487, 5, 26, 14, 2, 487, 488, 7, 216, 2, 2, 488, 813, 3, 2, 2, 2, 489, 490, 7, 44, 2, 2, 490, 491, 7, 215, 2, 2, 491, 492, 5, 26, 14, 2, 492, 493, 7, 216, 2, 2, 493, 813, 3, 2, 2, 2, 494, 495, 7, 45, 2, 2, 495, 496, 7, 215, 2, 2, 496, 497, 5, 26, 14, 2, 497, 498, 7, 216, 2, 2, 498, 813, 3, 2, 2, 2, 499, 500, 7, 46, 2, 2, 500, 501, 7, 215, 2, 2, 501, 502, 5, 26, 14, 2, 502, 503, 7, 216, 2, 2, 503, 813, 3, 2, 2, 2, 504, 505, 7, 47, 2, 2, 505, 506, 7, 215, 2, 2, 506, 507, 5, 26, 14, 2, 507, 508, 7, 216, 2, 2, 508, 813, 3, 2, 2, 2, 509, 510, 7, 38, 2, 2, 510, 511, 7, 215, 2, 2, 511, 512, 5, 26, 14, 2, 512, 513, 7, 216, 2, 2, 513, 813, 3, 2, 2, 2, 514, 515, 7, 59, 2, 2, 515, 516, 7, 215, 2, 2, 516, 517, 5, 26, 14, 2, 517, 518, 7, 216, 2, 2, 518, 813, 3, 2, 2, 2, 519, 520, 7, 60, 2, 2, 520, 521, 7, 215, 2, 2, 521, 524, 5, 26, 14, 2, 522, 523, 7, 217, 2, 2, 523, 525, 5, 26, 14, 2, 524, 522, 3, 2, 2, 2, 524, 525, 3, 2, 2, 2, 525, 526, 3, 2, 2, 2, 526, 527, 7, 216, 2, 2, 527, 813, 3, 2, 2, 2, 528, 529, 7, 61, 2, 2, 529, 530, 7, 215, 2, 2, 530, 531, 5, 26, 14, 2, 531, 532, 7, 216, 2, 2, 532, 813, 3, 2, 2, 2, 533, 534, 7, 62, 2, 2, 534, 535, 7, 215, 2, 2, 535, 536, 5, 26, 14, 2, 536, 537, 7, 216, 2, 2, 537, 813, 3, 2, 2, 2, 538, 539, 7, 63, 2, 2, 539, 540, 7, 215, 2, 2, 540, 541, 5, 26, 14, 2, 541, 542, 7, 216, 2, 2, 542, 813, 3, 2, 2, 2, 543, 544, 7, 157, 2, 2, 544, 545, 7, 215, 2, 2, 545, 546, 5, 26, 14, 2, 546, 547, 7, 216, 2, 2, 547, 813, 3, 2, 2, 2, 548, 549, 7, 71, 2, 2, 549, 550, 7, 215, 2, 2, 550, 551, 5, 26, 14, 2, 551, 552, 7, 216, 2, 2, 552, 813, 3, 2, 2, 2, 553, 554, 7, 72, 2, 2, 554, 555, 7, 215, 2, 2, 555, 556, 5, 26, 14, 2, 556, 557, 7, 216, 2, 2, 557, 813, 3, 2, 2, 2, 558, 559, 7, 73, 2, 2, 559, 560, 7, 215, 2, 2, 560, 563, 5, 26, 14, 2, 561, 562, 7, 217, 2, 2, 562, 564, 5, 26, 14, 2, 563, 561, 3, 2, 2, 2, 563, 564, 3, 2, 2, 2, 564, 565, 3, 2, 2, 2, 565, 566, 7, 216, 2, 2, 566, 813, 3, 2, 2, 2, 567, 568, 7, 75, 2, 2, 568, 569, 7, 215, 2, 2, 569, 570, 5, 26, 14, 2, 570, 571, 7, 216, 2, 2, 571, 813, 3, 2, 2, 2, 572, 573, 7, 76, 2, 2, 573, 574, 7, 215, 2, 2, 574, 575, 5, 26, 14, 2, 575, 576, 7, 216, 2, 2, 576, 813, 3, 2, 2, 2, 577, 578, 7, 77, 2, 2, 578, 579, 7, 215, 2, 2, 579, 582, 5, 26, 14, 2, 580, 581, 7, 217, 2, 2, 581, 583, 5, 26, 14, 2, 582, 580, 3, 2, 2, 2, 582, 583, 3, 2, 2, 2, 583, 584, 3, 2, 2, 2, 584, 585, 7, 216, 2, 2, 585, 813, 3, 2, 2, 2, 586, 587, 7, 88, 2, 2, 587, 588, 7, 215, 2, 2, 588, 589, 5, 26, 14, 2, 589, 590, 7, 216, 2, 2, 590, 813, 3, 2, 2, 2, 591, 592, 7, 89, 2, 2, 592, 593, 7, 215, 2, 2, 593, 594, 5, 26, 14, 2, 594, 595, 7, 217, 2, 2, 595, 598, 5, 26, 14, 2, 596, 597, 7, 217, 2, 2, 597, 599, 5, 26, 14, 2, 598, 596, 3, 2, 2, 2, 598, 599, 3, 2, 2, 2, 599, 600, 3, 2, 2, 2, 600, 601, 7, 216, 2, 2, 601, 813, 3, 2, 2, 2, 602, 603, 7, 78, 2, 2, 603, 604, 7, 215, 2, 2, 604, 605, 5, 26, 14, 2, 605, 606, 7, 216, 2, 2, 606, 813, 3, 2, 2, 2, 607, 608, 7, 114, 2, 2, 608, 609, 7, 215, 2, 2, 609, 610, 5, 26, 14, 2, 610, 611, 7, 216, 2, 2, 611, 813, 3, 2, 2, 2, 612, 613, 7, 115, 2, 2, 613, 614, 7, 215, 2, 2, 614, 615, 5, 26, 14, 2, 615, 616, 7, 216, 2, 2, 616, 813, 3, 2, 2, 2, 617, 618, 7, 116, 2, 2, 618, 619, 7, 215, 2, 2, 619, 620, 5, 26, 14, 2, 620, 621, 7, 216, 2, 2, 621, 813, 3, 2, 2, 2, 622, 623, 7, 117, 2, 2, 623, 624, 7, 215, 2, 2, 624, 625, 5, 26, 14, 2, 625, 626, 7, 216, 2, 2, 626, 813, 3, 2, 2, 2, 627, 628, 7, 158, 2, 2, 628, 629, 7, 215, 2, 2, 629, 636, 5, 26, 14, 2, 630, 631, 7, 217, 2, 2, 631, 634, 5, 26, 14, 2, 632, 633, 7, 217, 2, 2, 633, 635, 5, 26, 14, 2, 634, 632, 3, 2, 2, 2, 634, 635, 3, 2, 2, 2, 635, 637, 3, 2, 2, 2, 636, 630, 3, 2, 2, 2, 636, 637, 3, 2, 2, 2, 637, 638, 3, 2, 2, 2, 638, 639, 7, 216, 2, 2, 639, 813, 3, 2, 2, 2, 640, 641, 7, 159, 2, 2, 641, 642, 7, 215, 2, 2, 642, 645, 5, 26, 14, 2, 643, 644, 7, 217, 2, 2, 644, 646, 5, 26, 14, 2, 645, 643, 3, 2, 2, 2, 645, 646, 3, 2, 2, 2, 646, 647, 3, 2, 2, 2, 647, 648, 7, 216, 2, 2, 648, 813, 3, 2, 2, 2, 649, 650, 7, 160, 2, 2, 650, 651, 7, 215, 2, 2, 651, 654, 5, 26, 14, 2, 652, 653, 7, 217, 2, 2, 653, 655, 5, 26, 14, 2, 654, 652, 3, 2, 2, 2, 654, 655, 3, 2, 2, 2, 655, 656, 3, 2, 2, 2, 656, 657, 7, 216, 2, 2, 657, 813, 3, 2, 2, 2, 658, 659, 7, 161, 2, 2, 659, 660, 7, 215, 2, 2, 660, 663, 5, 26, 14, 2, 661, 662, 7, 217, 2, 2, 662, 664, 5, 26, 14, 2, 663, 661, 3, 2, 2, 2, 663, 664, 3, 2, 2, 2, 664, 665, 3, 2, 2, 2, 665, 666, 7, 216, 2, 2, 666, 813, 3, 2, 2, 2, 667, 668, 7, 162, 2, 2, 668, 669, 7, 215, 2, 2, 669, 672, 5, 26, 14, 2, 670, 671, 7, 217, 2, 2, 671, 673, 5, 26, 14, 2, 672, 670, 3, 2, 2, 2, 672, 673, 3, 2, 2, 2, 673, 674, 3, 2, 2, 2, 674, 675, 7, 216, 2, 2, 675, 813, 3, 2, 2, 2, 676, 677, 7, 69, 2, 2, 677, 678, 7, 215, 2, 2, 678, 679, 5, 26, 14, 2, 679, 680, 7, 216, 2, 2, 680, 813, 3, 2, 2, 2, 681, 682, 7, 70, 2, 2, 682, 683, 7, 215, 2, 2, 683, 684, 5, 26, 14, 2, 684, 685, 7, 216, 2, 2, 685, 813, 3, 2, 2, 2, 686, 687, 7, 163, 2, 2, 687, 688, 7, 215, 2, 2, 688, 689, 5, 26, 14, 2, 689, 690, 7, 216, 2, 2, 690, 813, 3, 2, 2, 2, 691, 692, 7, 90, 2, 2, 692, 693, 7, 215, 2, 2, 693, 694, 5, 26, 14, 2, 694, 695, 7, 216, 2, 2, 695, 813, 3, 2, 2, 2, 696, 697, 7, 95, 2, 2, 697, 698, 7, 215, 2, 2, 698, 699, 5, 26, 14, 2, 699, 700, 7, 216, 2, 2, 700, 813, 3, 2, 2, 2, 701, 702, 7, 96, 2, 2, 702, 703, 7, 215, 2, 2, 703, 704, 5, 26, 14, 2, 704, 705, 7, 216, 2, 2, 705, 813, 3, 2, 2, 2, 706, 707, 7, 106, 2, 2, 707, 708, 7, 215, 2, 2, 708, 709, 5, 26, 14, 2, 709, 710, 7, 216, 2, 2, 710, 813, 3, 2, 2, 2, 711, 712, 7, 107, 2, 2, 712, 713, 7, 215, 2, 2, 713, 714, 5, 26, 14, 2, 714, 715, 7, 216, 2, 2, 715, 813, 3, 2, 2, 2, 716, 717, 7, 108, 2, 2, 717, 718, 7, 215, 2, 2, 718, 719, 5, 26, 14, 2, 719, 720, 7, 216, 2, 2, 720, 813, 3, 2, 2, 2, 721, 722, 7, 121, 2, 2, 722, 723, 7, 215, 2, 2, 723, 724, 5, 26, 14, 2, 724, 725, 7, 216, 2, 2, 725, 813, 3, 2, 2, 2, 726, 727, 7, 122, 2, 2, 727, 728, 7, 215, 2, 2, 728, 729, 5, 26, 14, 2, 729, 730, 7, 216, 2, 2, 730, 813, 3, 2, 2, 2, 731, 732, 7, 123, 2, 2, 732, 733, 7, 215, 2, 2, 733, 734, 5, 26, 14, 2, 734, 735, 7, 216, 2, 2, 735, 813, 3, 2, 2, 2, 736, 737, 7, 172, 2, 2, 737, 738, 7, 215, 2, 2, 738, 739, 5, 26, 14, 2, 739, 740, 7, 216, 2, 2, 740, 813, 3, 2, 2, 2, 741, 742, 7, 34, 2, 2, 742, 743, 7, 215, 2, 2, 743, 744, 5, 26, 14, 2, 744, 745, 7, 216, 2, 2, 745, 813, 3, 2, 2, 2, 746, 747, 7, 129, 2, 2, 747, 748, 7, 215, 2, 2, 748, 751, 5, 26, 14, 2, 749, 750, 7, 217, 2, 2, 750, 752, 5, 26, 14, 2, 751, 749, 3, 2, 2, 2, 751, 752, 3, 2, 2, 2, 752, 753, 3, 2, 2, 2, 753, 754, 7, 216, 2, 2, 754, 813, 3, 2, 2, 2, 755, 756, 7, 130, 2, 2, 756, 757, 7, 215, 2, 2, 757, 760, 5, 26, 14, 2, 758, 759, 7, 217, 2, 2, 759, 761, 5, 26, 14, 2, 760, 758, 3, 2, 2, 2, 760, 761, 3, 2, 2, 2, 761, 762, 3, 2, 2, 2, 762, 763, 7, 216, 2, 2, 763, 813, 3, 2, 2, 2, 764, 765, 7, 131, 2, 2, 765, 766, 7, 215, 2, 2, 766, 769, 5, 26, 14, 2, 767, 768, 7, 217, 2, 2, 768, 770, 5, 26, 14, 2, 769, 767, 3, 2, 2, 2, 769, 770, 3, 2, 2, 2, 770, 771, 3, 2, 2, 2, 771, 772, 7, 216, 2, 2, 772, 813, 3, 2, 2, 2, 773, 774, 7, 132, 2, 2, 774, 775, 7, 215, 2, 2, 775, 778, 5, 26, 14, 2, 776, 777, 7, 217, 2, 2, 777, 779, 5, 26, 14, 2, 778, 776, 3, 2, 2, 2, 778, 779, 3, 2, 2, 2, 779, 780, 3, 2, 2, 2, 780, 781, 7, 216, 2, 2, 781, 813, 3, 2, 2, 2, 782, 783, 7, 119, 2, 2, 783, 784, 7, 215, 2, 2, 784, 785, 5, 26, 14, 2, 785, 786, 7, 216, 2, 2, 786, 813, 3, 2, 2, 2, 787, 788, 7, 120, 2, 2, 788, 789, 7, 215, 2, 2, 789, 790, 5, 26, 14, 2, 790, 791, 7, 216, 2, 2, 791, 813, 3, 2, 2, 2, 792, 793, 7, 97, 2, 2, 793, 794, 7, 215, 2, 2, 794, 795, 5, 26, 14, 2, 795, 796, 7, 216, 2, 2, 796, 813, 3, 2, 2, 2, 797, 798, 7, 98, 2, 2, 798, 799, 7, 215, 2, 2, 799, 800, 5, 26, 14, 2, 800, 801, 7, 216, 2, 2, 801, 813, 3, 2, 2, 2, 802, 803, 7, 145, 2, 2, 803, 804, 7, 215, 2, 2, 804, 805, 5, 26, 14, 2, 805, 806, 7, 216, 2, 2, 806, 813, 3, 2, 2, 2, 807, 808, 7, 146, 2, 2, 808, 809, 7, 215, 2, 2, 809, 810, 5, 26, 14, 2, 810, 811, 7, 216, 2, 2, 811, 813, 3, 2, 2, 2, 812, 359, 3, 2, 2, 2, 812, 364, 3, 2, 2, 2, 812, 369, 3, 2, 2, 2, 812, 374, 3, 2, 2, 2, 812, 379, 3, 2, 2, 2, 812, 384, 3, 2, 2, 2, 812, 389, 3, 2, 2, 2, 812, 394, 3, 2, 2, 2, 812, 399, 3, 2, 2, 2, 812, 404, 3, 2, 2, 2, 812, 409, 3, 2, 2, 2, 812, 414, 3, 2, 2, 2, 812, 419, 3, 2, 2, 2, 812, 424, 3, 2, 2, 2, 812, 429, 3, 2, 2, 2, 812, 434, 3, 2, 2, 2, 812, 439, 3, 2, 2, 2, 812, 444, 3, 2, 2, 2, 812, 449, 3, 2, 2, 2, 812, 454, 3, 2, 2, 2, 812, 459, 3, 2, 2, 2, 812, 464, 3, 2, 2, 2, 812, 469, 3, 2, 2, 2, 812, 474, 3, 2, 2, 2, 812, 479, 3, 2, 2, 2, 812, 484, 3, 2, 2, 2, 812, 489, 3, 2, 2, 2, 812, 494, 3, 2, 2, 2, 812, 499, 3, 2, 2, 2, 812, 504, 3, 2, 2, 2, 812, 509, 3, 2, 2, 2, 812, 514, 3, 2, 2, 2, 812, 519, 3, 2, 2, 2, 812, 528, 3, 2, 2, 2, 812, 533, 3, 2, 2, 2, 812, 538, 3, 2, 2, 2, 812, 543, 3, 2, 2, 2, 812, 548, 3, 2, 2, 2, 812, 553, 3, 2, 2, 2, 812, 558, 3, 2, 2, 2, 812, 567, 3, 2, 2, 2, 812, 572, 3, 2, 2, 2, 812, 577, 3, 2, 2, 2, 812, 586, 3, 2, 2, 2, 812, 591, 3, 2, 2, 2, 812, 602, 3, 2, 2, 2, 812, 607, 3, 2, 2, 2, 812, 612, 3, 2, 2, 2, 812, 617, 3, 2, 2, 2, 812, 622, 3, 2, 2, 2, 812, 627, 3, 2, 2, 2, 812, 640, 3, 2, 2, 2, 812, 649, 3, 2, 2, 2, 812, 658, 3, 2, 2, 2, 812, 667, 3, 2, 2, 2, 812, 676, 3, 2, 2, 2, 812, 681, 3, 2, 2, 2, 812, 686, 3, 2, 2, 2, 812, 691, 3, 2, 2, 2, 812, 696, 3, 2, 2, 2, 812, 701, 3, 2, 2, 2, 812, 706, 3, 2, 2, 2, 812, 711, 3, 2, 2, 2, 812, 716, 3, 2, 2, 2, 812, 721, 3, 2, 2, 2, 812, 726, 3, 2, 2, 2, 812, 731, 3, 2, 2, 2, 812, 736, 3, 2, 2, 2, 812, 741, 3, 2, 2, 2, 812, 746, 3, 2, 2, 2, 812, 755, 3, 2, 2, 2, 812, 764, 3, 2, 2, 2, 812, 773, 3, 2, 2, 2, 812, 782, 3, 2, 2, 2, 812, 787, 3, 2, 2, 2, 812, 792, 3, 2, 2, 2, 812, 797, 3, 2, 2, 2, 812, 802, 3, 2, 2, 2, 812, 807, 3, 2, 2, 2, 813, 51, 3, 2, 2, 2, 814, 815, 7, 31, 2, 2, 815, 816, 7, 215, 2, 2, 816, 817, 5, 26, 14, 2, 817, 818, 7, 217, 2, 2, 818, 819, 5, 26, 14, 2, 819, 820, 7, 216, 2, 2, 820, 1167, 3, 2, 2, 2, 821, 822, 7, 9, 2, 2, 822, 823, 7, 215, 2, 2, 823, 824, 5, 26, 14, 2, 824, 825, 7, 217, 2, 2, 825, 826, 5, 26, 14, 2, 826, 827, 7, 216, 2, 2, 827, 1167, 3, 2, 2, 2, 828, 829, 7, 23, 2, 2, 829, 830, 7, 215, 2, 2, 830, 831, 5, 26, 14, 2, 831, 832, 7, 217, 2, 2, 832, 833, 5, 26, 14, 2, 833, 834, 7, 216, 2, 2, 834, 1167, 3, 2, 2, 2, 835, 836, 7, 24, 2, 2, 836, 837, 7, 215, 2, 2, 837, 838, 5, 26, 14, 2, 838, 839, 7, 217, 2, 2, 839, 840, 5, 26, 14, 2, 840, 841, 7, 216, 2, 2, 841, 1167, 3, 2, 2, 2, 842, 843, 7, 26, 2, 2, 843, 844, 7, 215, 2, 2, 844, 847, 5, 26, 14, 2, 845, 846, 7, 217, 2, 2, 846, 848, 5, 26, 14, 2, 847, 845, 3, 2, 2, 2, 847, 848, 3, 2, 2, 2, 848, 849, 3, 2, 2, 2, 849, 850, 7, 216, 2, 2, 850, 1167, 3, 2, 2, 2, 851, 852, 7, 41, 2, 2, 852, 853, 7, 215, 2, 2, 853, 854, 5, 26, 14, 2, 854, 855, 7, 217, 2, 2, 855, 856, 5, 26, 14, 2, 856, 857, 7, 216, 2, 2, 857, 1167, 3, 2, 2, 2, 858, 859, 7, 57, 2, 2, 859, 860, 7, 215, 2, 2, 860, 861, 5, 26, 14, 2, 861, 862, 7, 217, 2, 2, 862, 863, 5, 26, 14, 2, 863, 864, 7, 216, 2, 2, 864, 1167, 3, 2, 2, 2, 865, 866, 7, 58, 2, 2, 866, 867, 7, 215, 2, 2, 867, 868, 5, 26, 14, 2, 868, 869, 7, 217, 2, 2, 869, 870, 5, 26, 14, 2, 870, 871, 7, 216, 2, 2, 871, 1167, 3, 2, 2, 2, 872, 873, 7, 64, 2, 2, 873, 874, 7, 215, 2, 2, 874, 875, 5, 26, 14, 2, 875, 876, 7, 217, 2, 2, 876, 877, 5, 26, 14, 2, 877, 878, 7, 216, 2, 2, 878, 1167, 3, 2, 2, 2, 879, 880, 7, 65, 2, 2, 880, 881, 7, 215, 2, 2, 881, 882, 5, 26, 14, 2, 882, 883, 7, 217, 2, 2, 883, 884, 5, 26, 14, 2, 884, 885, 7, 216, 2, 2, 885, 1167, 3, 2, 2, 2, 886, 887, 7, 66, 2, 2, 887, 888, 7, 215, 2, 2, 888, 889, 5, 26, 14, 2, 889, 890, 7, 217, 2, 2, 890, 891, 5, 26, 14, 2, 891, 892, 7, 216, 2, 2, 892, 1167, 3, 2, 2, 2, 893, 894, 7, 67, 2, 2, 894, 895, 7, 215, 2, 2, 895, 896, 5, 26, 14, 2, 896, 897, 7, 217, 2, 2, 897, 898, 5, 26, 14, 2, 898, 899, 7, 216, 2, 2, 899, 1167, 3, 2, 2, 2, 900, 901, 7, 87, 2, 2, 901, 902, 7, 215, 2, 2, 902, 903, 5, 26, 14, 2, 903, 904, 7, 217, 2, 2, 904, 905, 5, 26, 14, 2, 905, 906, 7, 216, 2, 2, 906, 1167, 3, 2, 2, 2, 907, 908, 7, 165, 2, 2, 908, 909, 7, 215, 2, 2, 909, 910, 5, 26, 14, 2, 910, 911, 7, 217, 2, 2, 911, 912, 5, 26, 14, 2, 912, 913, 7, 216, 2, 2, 913, 1167, 3, 2, 2, 2, 914, 915, 7, 166, 2, 2, 915, 916, 7, 215, 2, 2, 916, 917, 5, 26, 14, 2, 917, 918, 7, 217, 2, 2, 918, 919, 5, 26, 14, 2, 919, 920, 7, 216, 2, 2, 920, 1167, 3, 2, 2, 2, 921, 922, 7, 164, 2, 2, 922, 923, 7, 215, 2, 2, 923, 924, 5, 26, 14, 2, 924, 925, 7, 217, 2, 2, 925, 926, 5, 26, 14, 2, 926, 927, 7, 216, 2, 2, 927, 1167, 3, 2, 2, 2, 928, 929, 7, 170, 2, 2, 929, 930, 7, 215, 2, 2, 930, 931, 5, 26, 14, 2, 931, 932, 7, 217, 2, 2, 932, 933, 5, 26, 14, 2, 933, 934, 7, 216, 2, 2, 934, 1167, 3, 2, 2, 2, 935, 936, 7, 171, 2, 2, 936, 937, 7, 215, 2, 2, 937, 938, 5, 26, 14, 2, 938, 939, 7, 217, 2, 2, 939, 940, 5, 26, 14, 2, 940, 941, 7, 216, 2, 2, 941, 1167, 3, 2, 2, 2, 942, 943, 7, 91, 2, 2, 943, 944, 7, 215, 2, 2, 944, 945, 5, 26, 14, 2, 945, 946, 7, 217, 2, 2, 946, 947, 5, 26, 14, 2, 947, 948, 7, 216, 2, 2, 948, 1167, 3, 2, 2, 2, 949, 950, 7, 52, 2, 2, 950, 951, 7, 215, 2, 2, 951, 952, 5, 26, 14, 2, 952, 953, 7, 217, 2, 2, 953, 954, 5, 26, 14, 2, 954, 955, 7, 216, 2, 2, 955, 1167, 3, 2, 2, 2, 956, 957, 7, 74, 2, 2, 957, 958, 7, 215, 2, 2, 958, 959, 5, 26, 14, 2, 959, 960, 7, 217, 2, 2, 960, 963, 5, 26, 14, 2, 961, 962, 7, 217, 2, 2, 962, 964, 5, 26, 14, 2, 963, 961, 3, 2, 2, 2, 963, 964, 3, 2, 2, 2, 964, 965, 3, 2, 2, 2, 965, 966, 7, 216, 2, 2, 966, 1167, 3, 2, 2, 2, 967, 968, 7, 79, 2, 2, 968, 969, 7, 215, 2, 2, 969, 970, 5, 26, 14, 2, 970, 971, 7, 217, 2, 2, 971, 972, 5, 26, 14, 2, 972, 973, 7, 216, 2, 2, 973, 1167, 3, 2, 2, 2, 974, 975, 7, 80, 2, 2, 975, 976, 7, 215, 2, 2, 976, 977, 5, 26, 14, 2, 977, 978, 7, 217, 2, 2, 978, 979, 5, 26, 14, 2, 979, 980, 7, 216, 2, 2, 980, 1167, 3, 2, 2, 2, 981, 982, 7, 94, 2, 2, 982, 983, 7, 215, 2, 2, 983, 984, 5, 26, 14, 2, 984, 985, 7, 217, 2, 2, 985, 986, 5, 26, 14, 2, 986, 987, 7, 216, 2, 2, 987, 1167, 3, 2, 2, 2, 988, 989, 7, 113, 2, 2, 989, 990, 7, 215, 2, 2, 990, 991, 5, 26, 14, 2, 991, 992, 7, 217, 2, 2, 992, 993, 5, 26, 14, 2, 993, 994, 7, 216, 2, 2, 994, 1167, 3, 2, 2, 2, 995, 996, 7, 92, 2, 2, 996, 997, 7, 215, 2, 2, 997, 998, 5, 26, 14, 2, 998, 999, 7, 217, 2, 2, 999, 1000, 5, 26, 14, 2, 1000, 1001, 7, 216, 2, 2, 1001, 1167, 3, 2, 2, 2, 1002, 1003, 7, 112, 2, 2, 1003, 1004, 7, 215, 2, 2, 1004, 1011, 5, 42, 22, 2, 1005, 1006, 7, 217, 2, 2, 1006, 1009, 5, 26, 14, 2, 1007, 1008, 7, 217, 2, 2, 1008, 1010, 5, 26, 14, 2, 1009, 1007, 3, 2, 2, 2, 1009, 1010, 3, 2, 2, 2, 1010, 1012, 3, 2, 2, 2, 1011, 1005, 3, 2, 2, 2, 1011, 1012, 3, 2, 2, 2, 1012, 1013, 3, 2, 2, 2, 1013, 1014, 7, 216, 2, 2, 1014, 1167, 3, 2, 2, 2, 1015, 1016, 7, 102, 2, 2, 1016, 1017, 7, 215, 2, 2, 1017, 1018, 5, 26, 14, 2, 1018, 1019, 7, 217, 2, 2, 1019, 1020, 5, 26, 14, 2, 1020, 1021, 7, 216, 2, 2, 1021, 1167, 3, 2, 2, 2, 1022, 1023, 7, 103, 2, 2, 1023, 1024, 7, 215, 2, 2, 1024, 1025, 5, 26, 14, 2, 1025, 1026, 7, 217, 2, 2, 1026, 1027, 5, 26, 14, 2, 1027, 1028, 7, 216, 2, 2, 1028, 1167, 3, 2, 2, 2, 1029, 1030, 7, 104, 2, 2, 1030, 1031, 7, 215, 2, 2, 1031, 1032, 5, 26, 14, 2, 1032, 1033, 7, 217, 2, 2, 1033, 1034, 5, 26, 14, 2, 1034, 1035, 7, 216, 2, 2, 1035, 1167, 3, 2, 2, 2, 1036, 1037, 7, 93, 2, 2, 1037, 1038, 7, 215, 2, 2, 1038, 1039, 5, 26, 14, 2, 1039, 1040, 7, 217, 2, 2, 1040, 1041, 5, 26, 14, 2, 1041, 1042, 7, 216, 2, 2, 1042, 1167, 3, 2, 2, 2, 1043, 1044, 7, 105, 2, 2, 1044, 1045, 7, 215, 2, 2, 1045, 1046, 5, 26, 14, 2, 1046, 1047, 7, 217, 2, 2, 1047, 1058, 5, 26, 14, 2, 1048, 1049, 7, 217, 2, 2, 1049, 1056, 5, 26, 14, 2, 1050, 1051, 7, 217, 2, 2, 1051, 1054, 5, 26, 14, 2, 1052, 1053, 7, 217, 2, 2, 1053, 1055, 5, 26, 14, 2, 1054, 1052, 3, 2, 2, 2, 1054, 1055, 3, 2, 2, 2, 1055, 1057, 3, 2, 2, 2, 1056, 1050, 3, 2, 2, 2, 1056, 1057, 3, 2, 2, 2, 1057, 1059, 3, 2, 2, 2, 1058, 1048, 3, 2, 2, 2, 1058, 1059, 3, 2, 2, 2, 1059, 1060, 3, 2, 2, 2, 1060, 1061, 7, 216, 2, 2, 1061, 1167, 3, 2, 2, 2, 1062, 1063, 7, 109, 2, 2, 1063, 1064, 7, 215, 2, 2, 1064, 1065, 5, 26, 14, 2, 1065, 1066, 7, 217, 2, 2, 1066, 1067, 5, 26, 14, 2, 1067, 1068, 7, 216, 2, 2, 1068, 1167, 3, 2, 2, 2, 1069, 1070, 7, 110, 2, 2, 1070, 1071, 7, 215, 2, 2, 1071, 1072, 5, 26, 14, 2, 1072, 1073, 7, 217, 2, 2, 1073, 1074, 5, 26, 14, 2, 1074, 1075, 7, 216, 2, 2, 1075, 1167, 3, 2, 2, 2, 1076, 1077, 7, 111, 2, 2, 1077, 1078, 7, 215, 2, 2, 1078, 1079, 5, 26, 14, 2, 1079, 1080, 7, 217, 2, 2, 1080, 1081, 5, 26, 14, 2, 1081, 1082, 7, 216, 2, 2, 1082, 1167, 3, 2, 2, 2, 1083, 1084, 7, 124, 2, 2, 1084, 1085, 7, 215, 2, 2, 1085, 1088, 5, 26, 14, 2, 1086, 1087, 7, 217, 2, 2, 1087, 1089, 5, 26, 14, 2, 1088, 1086, 3, 2, 2, 2, 1088, 1089, 3, 2, 2, 2, 1089, 1090, 3, 2, 2, 2, 1090, 1091, 7, 216, 2, 2, 1091, 1167, 3, 2, 2, 2, 1092, 1093, 7, 125, 2, 2, 1093, 1094, 7, 215, 2, 2, 1094, 1097, 5, 26, 14, 2, 1095, 1096, 7, 217, 2, 2, 1096, 1098, 5, 26, 14, 2, 1097, 1095, 3, 2, 2, 2, 1097, 1098, 3, 2, 2, 2, 1098, 1099, 3, 2, 2, 2, 1099, 1100, 7, 216, 2, 2, 1100, 1167, 3, 2, 2, 2, 1101, 1102, 7, 126, 2, 2, 1102, 1103, 7, 215, 2, 2, 1103, 1104, 5, 26, 14, 2, 1104, 1105, 7, 217, 2, 2, 1105, 1108, 5, 26, 14, 2, 1106, 1107, 7, 217, 2, 2, 1107, 1109, 5, 26, 14, 2, 1108, 1106, 3, 2, 2, 2, 1108, 1109, 3, 2, 2, 2, 1109, 1110, 3, 2, 2, 2, 1110, 1111, 7, 216, 2, 2, 1111, 1167, 3, 2, 2, 2, 1112, 1113, 7, 127, 2, 2, 1113, 1114, 7, 215, 2, 2, 1114, 1115, 5, 26, 14, 2, 1115, 1116, 7, 217, 2, 2, 1116, 1117, 5, 26, 14, 2, 1117, 1118, 7, 216, 2, 2, 1118, 1167, 3, 2, 2, 2, 1119, 1120, 7, 128, 2, 2, 1120, 1121, 7, 215, 2, 2, 1121, 1122, 5, 26, 14, 2, 1122, 1123, 7, 217, 2, 2, 1123, 1124, 5, 26, 14, 2, 1124, 1125, 7, 217, 2, 2, 1125, 1126, 5, 26, 14, 2, 1126, 1127, 7, 216, 2, 2, 1127, 1167, 3, 2, 2, 2, 1128, 1129, 7, 139, 2, 2, 1129, 1130, 7, 215, 2, 2, 1130, 1131, 5, 26, 14, 2, 1131, 1132, 7, 216, 2, 2, 1132, 1167, 3, 2, 2, 2, 1133, 1134, 7, 140, 2, 2, 1134, 1135, 7, 215, 2, 2, 1135, 1141, 5, 26, 14, 2, 1136, 1137, 7, 217, 2, 2, 1137, 1138, 5, 26, 14, 2, 1138, 1139, 7, 217, 2, 2, 1139, 1140, 5, 26, 14, 2, 1140, 1142, 3, 2, 2, 2, 1141, 1136, 3, 2, 2, 2, 1141, 1142, 3, 2, 2, 2, 1142, 1143, 3, 2, 2, 2, 1143, 1144, 7, 216, 2, 2, 1144, 1167, 3, 2, 2, 2, 1145, 1146, 7, 141, 2, 2, 1146, 1147, 7, 215, 2, 2, 1147, 1148, 5, 26, 14, 2, 1148, 1149, 7, 217, 2, 2, 1149, 1150, 5, 26, 14, 2, 1150, 1151, 7, 216, 2, 2, 1151, 1167, 3, 2, 2, 2, 1152, 1153, 7, 142, 2, 2, 1153, 1154, 7, 215, 2, 2, 1154, 1155, 5, 26, 14, 2, 1155, 1156, 7, 217, 2, 2, 1156, 1157, 5, 26, 14, 2, 1157, 1158, 7, 216, 2, 2, 1158, 1167, 3, 2, 2, 2, 1159, 1160, 7, 143, 2, 2, 1160, 1161, 7, 215, 2, 2, 1161, 1162, 5, 26, 14, 2, 1162, 1163, 7, 217, 2, 2, 1163, 1164, 5, 26, 14, 2, 1164, 1165, 7, 216, 2, 2, 1165, 1167, 3, 2, 2, 2, 1166, 814, 3, 2, 2, 2, 1166, 821, 3, 2, 2, 2, 1166, 828, 3, 2, 2, 2, 1166, 835, 3, 2, 2, 2, 1166, 842, 3, 2, 2, 2, 1166, 851, 3, 2, 2, 2, 1166, 858, 3, 2, 2, 2, 1166, 865, 3, 2, 2, 2, 1166, 872, 3, 2, 2, 2, 1166, 879, 3, 2, 2, 2, 1166, 886, 3, 2, 2, 2, 1166, 893, 3, 2, 2, 2, 1166, 900, 3, 2, 2, 2, 1166, 907, 3, 2, 2, 2, 1166, 914, 3, 2, 2, 2, 1166, 921, 3, 2, 2, 2, 1166, 928, 3, 2, 2, 2, 1166, 935, 3, 2, 2, 2, 1166, 942, 3, 2, 2, 2, 1166, 949, 3, 2, 2, 2, 1166, 956, 3, 2, 2, 2, 1166, 967, 3, 2, 2, 2, 1166, 974, 3, 2, 2, 2, 1166, 981, 3, 2, 2, 2, 1166, 988, 3, 2, 2, 2, 1166, 995, 3, 2, 2, 2, 1166, 1002, 3, 2, 2, 2, 1166, 1015, 3, 2, 2, 2, 1166, 1022, 3, 2, 2, 2, 1166, 1029, 3, 2, 2, 2, 1166, 1036, 3, 2, 2, 2, 1166, 1043, 3, 2, 2, 2, 1166, 1062, 3, 2, 2, 2, 1166, 1069, 3, 2, 2, 2, 1166, 1076, 3, 2, 2, 2, 1166, 1083, 3, 2, 2, 2, 1166, 1092, 3, 2, 2, 2, 1166, 1101, 3, 2, 2, 2, 1166, 1112, 3, 2, 2, 2, 1166, 1119, 3, 2, 2, 2, 1166, 1128, 3, 2, 2, 2, 1166, 1133, 3, 2, 2, 2, 1166, 1145, 3, 2, 2, 2, 1166, 1152, 3, 2, 2, 2, 1166, 1159, 3, 2, 2, 2, 1167, 53, 3, 2, 2, 2, 1168, 1169, 7, 33, 2, 2, 1169, 1170, 7, 215, 2, 2, 1170, 1171, 5, 26, 14, 2, 1171, 1172, 7, 217, 2, 2, 1172, 1173, 5, 26, 14, 2, 1173, 1174, 7, 217, 2, 2, 1174, 1175, 5, 26, 14, 2, 1175, 1176, 7, 216, 2, 2, 1176, 1423, 3, 2, 2, 2, 1177, 1178, 7, 40, 2, 2, 1178, 1179, 7, 215, 2, 2, 1179, 1180, 5, 26, 14, 2, 1180, 1181, 7, 217, 2, 2, 1181, 1182, 5, 26, 14, 2, 1182, 1183, 7, 217, 2, 2, 1183, 1184, 5, 26, 14, 2, 1184, 1185, 7, 216, 2, 2, 1185, 1423, 3, 2, 2, 2, 1186, 1187, 7, 42, 2, 2, 1187, 1188, 7, 215, 2, 2, 1188, 1189, 5, 26, 14, 2, 1189, 1190, 7, 217, 2, 2, 1190, 1191, 5, 26, 14, 2, 1191, 1192, 7, 217, 2, 2, 1192, 1193, 5, 26, 14, 2, 1193, 1194, 7, 216, 2, 2, 1194, 1423, 3, 2, 2, 2, 1195, 1196, 7, 54, 2, 2, 1196, 1197, 7, 215, 2, 2, 1197, 1198, 5, 26, 14, 2, 1198, 1199, 7, 217, 2, 2, 1199, 1200, 5, 26, 14, 2, 1200, 1201, 7, 217, 2, 2, 1201, 1202, 5, 26, 14, 2, 1202, 1203, 7, 216, 2, 2, 1203, 1423, 3, 2, 2, 2, 1204, 1205, 7, 68, 2, 2, 1205, 1206, 7, 215, 2, 2, 1206, 1207, 5, 26, 14, 2, 1207, 1208, 7, 217, 2, 2, 1208, 1209, 5, 26, 14, 2, 1209, 1210, 7, 217, 2, 2, 1210, 1211, 5, 26, 14, 2, 1211, 1212, 7, 216, 2, 2, 1212, 1423, 3, 2, 2, 2, 1213, 1214, 7, 81, 2, 2, 1214, 1215, 7, 215, 2, 2, 1215, 1216, 5, 26, 14, 2, 1216, 1217, 7, 217, 2, 2, 1217, 1218, 5, 26, 14, 2, 1218, 1219, 7, 217, 2, 2, 1219, 1220, 5, 26, 14, 2, 1220, 1221, 7, 216, 2, 2, 1221, 1423, 3, 2, 2, 2, 1222, 1223, 7, 82, 2, 2, 1223, 1224, 7, 215, 2, 2, 1224, 1225, 5, 26, 14, 2, 1225, 1226, 7, 217, 2, 2, 1226, 1227, 5, 26, 14, 2, 1227, 1228, 7, 217, 2, 2, 1228, 1229, 5, 26, 14, 2, 1229, 1230, 7, 216, 2, 2, 1230, 1423, 3, 2, 2, 2, 1231, 1232, 7, 83, 2, 2, 1232, 1233, 7, 215, 2, 2, 1233, 1234, 5, 26, 14, 2, 1234, 1235, 7, 217, 2, 2, 1235, 1236, 5, 26, 14, 2, 1236, 1237, 7, 217, 2, 2, 1237, 1238, 5, 26, 14, 2, 1238, 1239, 7, 216, 2, 2, 1239, 1423, 3, 2, 2, 2, 1240, 1241, 7, 84, 2, 2, 1241, 1242, 7, 215, 2, 2, 1242, 1243, 5, 26, 14, 2, 1243, 1244, 7, 217, 2, 2, 1244, 1245, 5, 26, 14, 2, 1245, 1246, 7, 217, 2, 2, 1246, 1247, 5, 26, 14, 2, 1247, 1248, 7, 216, 2, 2, 1248, 1423, 3, 2, 2, 2, 1249, 1250, 7, 173, 2, 2, 1250, 1251, 7, 215, 2, 2, 1251, 1252, 5, 26, 14, 2, 1252, 1253, 7, 217, 2, 2, 1253, 1254, 5, 26, 14, 2, 1254, 1255, 7, 217, 2, 2, 1255, 1256, 5, 26, 14, 2, 1256, 1257, 7, 216, 2, 2, 1257, 1423, 3, 2, 2, 2, 1258, 1259, 7, 35, 2, 2, 1259, 1260, 7, 215, 2, 2, 1260, 1263, 5, 26, 14, 2, 1261, 1262, 7, 217, 2, 2, 1262, 1264, 5, 26, 14, 2, 1263, 1261, 3, 2, 2, 2, 1263, 1264, 3, 2, 2, 2, 1264, 1265, 3, 2, 2, 2, 1265, 1266, 7, 216, 2, 2, 1266, 1423, 3, 2, 2, 2, 1267, 1268, 7, 101, 2, 2, 1268, 1269, 7, 215, 2, 2, 1269, 1270, 5, 26, 14, 2, 1270, 1271, 7, 217, 2, 2, 1271, 1272, 5, 26, 14, 2, 1272, 1273, 7, 217, 2, 2, 1273, 1276, 5, 26, 14, 2, 1274, 1275, 7, 217, 2, 2, 1275, 1277, 5, 26, 14, 2, 1276, 1274, 3, 2, 2, 2, 1276, 1277, 3, 2, 2, 2, 1277, 1278, 3, 2, 2, 2, 1278, 1279, 7, 216, 2, 2, 1279, 1423, 3, 2, 2, 2, 1280, 1281, 7, 55, 2, 2, 1281, 1282, 7, 215, 2, 2, 1282, 1283, 5, 26, 14, 2, 1283, 1284, 7, 217, 2, 2, 1284, 1285, 5, 26, 14, 2, 1285, 1286, 7, 217, 2, 2, 1286, 1287, 5, 26, 14, 2, 1287, 1288, 7, 216, 2, 2, 1288, 1423, 3, 2, 2, 2, 1289, 1290, 7, 169, 2, 2, 1290, 1291, 7, 215, 2, 2, 1291, 1292, 5, 26, 14, 2, 1292, 1293, 7, 217, 2, 2, 1293, 1296, 5, 26, 14, 2, 1294, 1295, 7, 217, 2, 2, 1295, 1297, 5, 26, 14, 2, 1296, 1294, 3, 2, 2, 2, 1296, 1297, 3, 2, 2, 2, 1297, 1298, 3, 2, 2, 2, 1298, 1299, 7, 216, 2, 2, 1299, 1423, 3, 2, 2, 2, 1300, 1301, 7, 133, 2, 2, 1301, 1302, 7, 215, 2, 2, 1302, 1308, 5, 26, 14, 2, 1303, 1304, 7, 217, 2, 2, 1304, 1305, 5, 26, 14, 2, 1305, 1306, 7, 217, 2, 2, 1306, 1307, 5, 26, 14, 2, 1307, 1309, 3, 2, 2, 2, 1308, 1303, 3, 2, 2, 2, 1308, 1309, 3, 2, 2, 2, 1309, 1310, 3, 2, 2, 2, 1310, 1311, 7, 216, 2, 2, 1311, 1423, 3, 2, 2, 2, 1312, 1313, 7, 134, 2, 2, 1313, 1314, 7, 215, 2, 2, 1314, 1320, 5, 26, 14, 2, 1315, 1316, 7, 217, 2, 2, 1316, 1317, 5, 26, 14, 2, 1317, 1318, 7, 217, 2, 2, 1318, 1319, 5, 26, 14, 2, 1319, 1321, 3, 2, 2, 2, 1320, 1315, 3, 2, 2, 2, 1320, 1321, 3, 2, 2, 2, 1321, 1322, 3, 2, 2, 2, 1322, 1323, 7, 216, 2, 2, 1323, 1423, 3, 2, 2, 2, 1324, 1325, 7, 137, 2, 2, 1325, 1326, 7, 215, 2, 2, 1326, 1332, 5, 26, 14, 2, 1327, 1328, 7, 217, 2, 2, 1328, 1329, 5, 26, 14, 2, 1329, 1330, 7, 217, 2, 2, 1330, 1331, 5, 26, 14, 2, 1331, 1333, 3, 2, 2, 2, 1332, 1327, 3, 2, 2, 2, 1332, 1333, 3, 2, 2, 2, 1333, 1336, 3, 2, 2, 2, 1334, 1335, 7, 217, 2, 2, 1335, 1337, 5, 26, 14, 2, 1336, 1334, 3, 2, 2, 2, 1336, 1337, 3, 2, 2, 2, 1337, 1338, 3, 2, 2, 2, 1338, 1339, 7, 216, 2, 2, 1339, 1423, 3, 2, 2, 2, 1340, 1341, 7, 138, 2, 2, 1341, 1342, 7, 215, 2, 2, 1342, 1348, 5, 26, 14, 2, 1343, 1344, 7, 217, 2, 2, 1344, 1345, 5, 26, 14, 2, 1345, 1346, 7, 217, 2, 2, 1346, 1347, 5, 26, 14, 2, 1347, 1349, 3, 2, 2, 2, 1348, 1343, 3, 2, 2, 2, 1348, 1349, 3, 2, 2, 2, 1349, 1352, 3, 2, 2, 2, 1350, 1351, 7, 217, 2, 2, 1351, 1353, 5, 26, 14, 2, 1352, 1350, 3, 2, 2, 2, 1352, 1353, 3, 2, 2, 2, 1353, 1354, 3, 2, 2, 2, 1354, 1355, 7, 216, 2, 2, 1355, 1423, 3, 2, 2, 2, 1356, 1357, 7, 99, 2, 2, 1357, 1358, 7, 215, 2, 2, 1358, 1359, 5, 26, 14, 2, 1359, 1360, 7, 217, 2, 2, 1360, 1361, 5, 26, 14, 2, 1361, 1362, 7, 217, 2, 2, 1362, 1363, 5, 26, 14, 2, 1363, 1364, 7, 216, 2, 2, 1364, 1423, 3, 2, 2, 2, 1365, 1366, 7, 135, 2, 2, 1366, 1367, 7, 215, 2, 2, 1367, 1373, 5, 26, 14, 2, 1368, 1369, 7, 217, 2, 2, 1369, 1370, 5, 26, 14, 2, 1370, 1371, 7, 217, 2, 2, 1371, 1372, 5, 26, 14, 2, 1372, 1374, 3, 2, 2, 2, 1373, 1368, 3, 2, 2, 2, 1373, 1374, 3, 2, 2, 2, 1374, 1375, 3, 2, 2, 2, 1375, 1376, 7, 216, 2, 2, 1376, 1423, 3, 2, 2, 2, 1377, 1378, 7, 136, 2, 2, 1378, 1379, 7, 215, 2, 2, 1379, 1385, 5, 26, 14, 2, 1380, 1381, 7, 217, 2, 2, 1381, 1382, 5, 26, 14, 2, 1382, 1383, 7, 217, 2, 2, 1383, 1384, 5, 26, 14, 2, 1384, 1386, 3, 2, 2, 2, 1385, 1380, 3, 2, 2, 2, 1385, 1386, 3, 2, 2, 2, 1386, 1387, 3, 2, 2, 2, 1387, 1388, 7, 216, 2, 2, 1388, 1423, 3, 2, 2, 2, 1389, 1390, 7, 144, 2, 2, 1390, 1391, 7, 215, 2, 2, 1391, 1392, 5, 26, 14, 2, 1392, 1393, 7, 217, 2, 2, 1393, 1394, 5, 26, 14, 2, 1394, 1395, 7, 217, 2, 2, 1395, 1398, 5, 26, 14, 2, 1396, 1397, 7, 217, 2, 2, 1397, 1399, 5, 26, 14, 2, 1398, 1396, 3, 2, 2, 2, 1398, 1399, 3, 2, 2, 2, 1399, 1402, 3, 2, 2, 2, 1400, 1401, 7, 217, 2, 2, 1401, 1403, 5, 26, 14, 2, 1402, 1400, 3, 2, 2, 2, 1402, 1403, 3, 2, 2, 2, 1403, 1406, 3, 2, 2, 2, 1404, 1405, 7, 217, 2, 2, 1405, 1407, 5, 26, 14, 2, 1406, 1404, 3, 2, 2, 2, 1406, 1407, 3, 2, 2, 2, 1407, 1410, 3, 2, 2, 2, 1408, 1409, 7, 217, 2, 2, 1409, 1411, 5, 26, 14, 2, 1410, 1408, 3, 2, 2, 2, 1410, 1411, 3, 2, 2, 2, 1411, 1414, 3, 2, 2, 2, 1412, 1413, 7, 217, 2, 2, 1413, 1415, 5, 26, 14, 2, 1414, 1412, 3, 2, 2, 2, 1414, 1415, 3, 2, 2, 2, 1415, 1418, 3, 2, 2, 2, 1416, 1417, 7, 217, 2, 2, 1417, 1419, 5, 26, 14, 2, 1418, 1416, 3, 2, 2, 2, 1418, 1419, 3, 2, 2, 2, 1419, 1420, 3, 2, 2, 2, 1420, 1421, 7, 216, 2, 2, 1421, 1423, 3, 2, 2, 2, 1422, 1168, 3, 2, 2, 2, 1422, 1177, 3, 2, 2, 2, 1422, 1186, 3, 2, 2, 2, 1422, 1195, 3, 2, 2, 2, 1422, 1204, 3, 2, 2, 2, 1422, 1213, 3, 2, 2, 2, 1422, 1222, 3, 2, 2, 2, 1422, 1231, 3, 2, 2, 2, 1422, 1240, 3, 2, 2, 2, 1422, 1249, 3, 2, 2, 2, 1422, 1258, 3, 2, 2, 2, 1422, 1267, 3, 2, 2, 2, 1422, 1280, 3, 2, 2, 2, 1422, 1289, 3, 2, 2, 2, 1422, 1300, 3, 2, 2, 2, 1422, 1312, 3, 2, 2, 2, 1422, 1324, 3, 2, 2, 2, 1422, 1340, 3, 2, 2, 2, 1422, 1356, 3, 2, 2, 2, 1422, 1365, 3, 2, 2, 2, 1422, 1377, 3, 2, 2, 2, 1422, 1389, 3, 2, 2, 2, 1423, 55, 3, 2, 2, 2, 1424, 1425, 7, 51, 2, 2, 1425, 1426, 7, 215, 2, 2, 1426, 1427, 5, 26, 14, 2, 1427, 1428, 7, 217, 2, 2, 1428, 1429, 5, 26, 14, 2, 1429, 1430, 7, 217, 2, 2, 1430, 1431, 5, 26, 14, 2, 1431, 1432, 7, 217, 2, 2, 1432, 1433, 5, 26, 14, 2, 1433, 1434, 7, 216, 2, 2, 1434, 1480, 3, 2, 2, 2, 1435, 1436, 7, 39, 2, 2, 1436, 1437, 7, 215, 2, 2, 1437, 1438, 5, 26, 14, 2, 1438, 1439, 7, 217, 2, 2, 1439, 1440, 5, 26, 14, 2, 1440, 1441, 7, 217, 2, 2, 1441, 1442, 5, 26, 14, 2, 1442, 1443, 7, 217, 2, 2, 1443, 1444, 5, 26, 14, 2, 1444, 1445, 7, 216, 2, 2, 1445, 1480, 3, 2, 2, 2, 1446, 1447, 7, 56, 2, 2, 1447, 1448, 7, 215, 2, 2, 1448, 1449, 5, 26, 14, 2, 1449, 1450, 7, 217, 2, 2, 1450, 1451, 5, 26, 14, 2, 1451, 1452, 7, 217, 2, 2, 1452, 1453, 5, 26, 14, 2, 1453, 1454, 7, 217, 2, 2, 1454, 1455, 5, 26, 14, 2, 1455, 1456, 7, 216, 2, 2, 1456, 1480, 3, 2, 2, 2, 1457, 1458, 7, 85, 2, 2, 1458, 1459, 7, 215, 2, 2, 1459, 1460, 5, 26, 14, 2, 1460, 1461, 7, 217, 2, 2, 1461, 1462, 5, 26, 14, 2, 1462, 1463, 7, 217, 2, 2, 1463, 1464, 5, 26, 14, 2, 1464, 1465, 7, 217, 2, 2, 1465, 1466, 5, 26, 14, 2, 1466, 1467, 7, 216, 2, 2, 1467, 1480, 3, 2, 2, 2, 1468, 1469, 7, 100, 2, 2, 1469, 1470, 7, 215, 2, 2, 1470, 1471, 5, 26, 14, 2, 1471, 1472, 7, 217, 2, 2, 1472, 1473, 5, 26, 14, 2, 1473, 1474, 7, 217, 2, 2, 1474, 1475, 5, 26, 14, 2, 1475, 1476, 7, 217, 2, 2, 1476, 1477, 5, 26, 14, 2, 1477, 1478, 7, 216, 2, 2, 1478, 1480, 3, 2, 2, 2, 1479, 1424, 3, 2, 2, 2, 1479, 1435, 3, 2, 2, 2, 1479, 1446, 3, 2, 2, 2, 1479, 1457, 3, 2, 2, 2, 1479, 1468, 3, 2, 2, 2, 1480, 57, 3, 2, 2, 2, 1481, 1482, 7, 86, 2, 2, 1482, 1483, 7, 215, 2, 2, 1483, 1484, 5, 26, 14, 2, 1484, 1485, 7, 217, 2, 2, 1485, 1486, 5, 26, 14, 2, 1486, 1487, 7, 217, 2, 2, 1487, 1488, 5, 26, 14, 2, 1488, 1489, 7, 217, 2, 2, 1489, 1490, 5, 26, 14, 2, 1490, 1491, 7, 217, 2, 2, 1491, 1492, 5, 26, 14, 2, 1492, 1493, 7, 216, 2, 2, 1493, 1514, 3, 2, 2, 2, 1494, 1495, 7, 147, 2, 2, 1495, 1496, 7, 215, 2, 2, 1496, 1497, 5, 26, 14, 2, 1497, 1498, 7, 217, 2, 2, 1498, 1509, 5, 26, 14, 2, 1499, 1500, 7, 217, 2, 2, 1500, 1507, 5, 26, 14, 2, 1501, 1502, 7, 217, 2, 2, 1502, 1505, 5, 26, 14, 2, 1503, 1504, 7, 217, 2, 2, 1504, 1506, 5, 26, 14, 2, 1505, 1503, 3, 2, 2, 2, 1505, 1506, 3, 2, 2, 2, 1506, 1508, 3, 2, 2, 2, 1507, 1501, 3, 2, 2, 2, 1507, 1508, 3, 2, 2, 2, 1508, 1510, 3, 2, 2, 2, 1509, 1499, 3, 2, 2, 2, 1509, 1510, 3, 2, 2, 2, 1510, 1511, 3, 2, 2, 2, 1511, 1512, 7, 216, 2, 2, 1512, 1514, 3, 2, 2, 2, 1513, 1481, 3, 2, 2, 2, 1513, 1494, 3, 2, 2, 2, 1514, 59, 3, 2, 2, 2, 1515, 1516, 7, 21, 2, 2, 1516, 1517, 7, 215, 2, 2, 1517, 1522, 5, 26, 14, 2, 1518, 1519, 7, 217, 2, 2, 1519, 1521, 5, 26, 14, 2, 1520, 1518, 3, 2, 2, 2, 1521, 1524, 3, 2, 2, 2, 1522, 1520, 3, 2, 2, 2, 1522, 1523, 3, 2, 2, 2, 1523, 1525, 3, 2, 2, 2, 1524, 1522, 3, 2, 2, 2, 1525, 1526, 7, 216, 2, 2, 1526, 1607, 3, 2, 2, 2, 1527, 1528, 7, 22, 2, 2, 1528, 1529, 7, 215, 2, 2, 1529, 1534, 5, 26, 14, 2, 1530, 1531, 7, 217, 2, 2, 1531, 1533, 5, 26, 14, 2, 1532, 1530, 3, 2, 2, 2, 1533, 1536, 3, 2, 2, 2, 1534, 1532, 3, 2, 2, 2, 1534, 1535, 3, 2, 2, 2, 1535, 1537, 3, 2, 2, 2, 1536, 1534, 3, 2, 2, 2, 1537, 1538, 7, 216, 2, 2, 1538, 1607, 3, 2, 2, 2, 1539, 1540, 7, 48, 2, 2, 1540, 1541, 7, 215, 2, 2, 1541, 1544, 5, 26, 14, 2, 1542, 1543, 7, 217, 2, 2, 1543, 1545, 5, 26, 14, 2, 1544, 1542, 3, 2, 2, 2, 1545, 1546, 3, 2, 2, 2, 1546, 1544, 3, 2, 2, 2, 1546, 1547, 3, 2, 2, 2, 1547, 1548, 3, 2, 2, 2, 1548, 1549, 7, 216, 2, 2, 1549, 1607, 3, 2, 2, 2, 1550, 1551, 7, 49, 2, 2, 1551, 1552, 7, 215, 2, 2, 1552, 1555, 5, 26, 14, 2, 1553, 1554, 7, 217, 2, 2, 1554, 1556, 5, 26, 14, 2, 1555, 1553, 3, 2, 2, 2, 1556, 1557, 3, 2, 2, 2, 1557, 1555, 3, 2, 2, 2, 1557, 1558, 3, 2, 2, 2, 1558, 1559, 3, 2, 2, 2, 1559, 1560, 7, 216, 2, 2, 1560, 1607, 3, 2, 2, 2, 1561, 1562, 7, 50, 2, 2, 1562, 1563, 7, 215, 2, 2, 1563, 1566, 5, 26, 14, 2, 1564, 1565, 7, 217, 2, 2, 1565, 1567, 5, 26, 14, 2, 1566, 1564, 3, 2, 2, 2, 1567, 1568, 3, 2, 2, 2, 1568, 1566, 3, 2, 2, 2, 1568, 1569, 3, 2, 2, 2, 1569, 1570, 3, 2, 2, 2, 1570, 1571, 7, 216, 2, 2, 1571, 1607, 3, 2, 2, 2, 1572, 1573, 7, 53, 2, 2, 1573, 1574, 7, 215, 2, 2, 1574, 1575, 5, 26, 14, 2, 1575, 1576, 7, 217, 2, 2, 1576, 1577, 5, 26, 14, 2, 1577, 1578, 7, 216, 2, 2, 1578, 1607, 3, 2, 2, 2, 1579, 1580, 7, 167, 2, 2, 1580, 1581, 7, 215, 2, 2, 1581, 1584, 5, 26, 14, 2, 1582, 1583, 7, 217, 2, 2, 1583, 1585, 5, 26, 14, 2, 1584, 1582, 3, 2, 2, 2, 1584, 1585, 3, 2, 2, 2, 1585, 1586, 3, 2, 2, 2, 1586, 1587, 7, 216, 2, 2, 1587, 1607, 3, 2, 2, 2, 1588, 1589, 7, 168, 2, 2, 1589, 1590, 7, 215, 2, 2, 1590, 1591, 5, 26, 14, 2, 1591, 1592, 7, 217, 2, 2, 1592, 1593, 5, 26, 14, 2, 1593, 1594, 7, 216, 2, 2, 1594, 1607, 3, 2, 2, 2, 1595, 1596, 7, 118, 2, 2, 1596, 1597, 7, 215, 2, 2, 1597, 1600, 5, 26, 14, 2, 1598, 1599, 7, 217, 2, 2, 1599, 1601, 5, 26, 14, 2, 1600, 1598, 3, 2, 2, 2, 1601, 1602, 3, 2, 2, 2, 1602, 1600, 3, 2, 2, 2, 1602, 1603, 3, 2, 2, 2, 1603, 1604, 3, 2, 2, 2, 1604, 1605, 7, 216, 2, 2, 1605, 1607, 3, 2, 2, 2, 1606, 1515, 3, 2, 2, 2, 1606, 1527, 3, 2, 2, 2, 1606, 1539, 3, 2, 2, 2, 1606, 1550, 3, 2, 2, 2, 1606, 1561, 3, 2, 2, 2, 1606, 1572, 3, 2, 2, 2, 1606, 1579, 3, 2, 2, 2, 1606, 1588, 3, 2, 2, 2, 1606, 1595, 3, 2, 2, 2, 1607, 61, 3, 2, 2, 2, 1608, 1609, 7, 175, 2, 2, 1609, 1610, 7, 215, 2, 2, 1610, 1613, 5, 26, 14, 2, 1611, 1612, 7, 217, 2, 2, 1612, 1614, 5, 26, 14, 2, 1613, 1611, 3, 2, 2, 2, 1613, 1614, 3, 2, 2, 2, 1614, 1615, 3, 2, 2, 2, 1615, 1616, 7, 216, 2, 2, 1616, 1876, 3, 2, 2, 2, 1617, 1618, 7, 176, 2, 2, 1618, 1619, 7, 215, 2, 2, 1619, 1622, 5, 26, 14, 2, 1620, 1621, 7, 217, 2, 2, 1621, 1623, 5, 26, 14, 2, 1622, 1620, 3, 2, 2, 2, 1622, 1623, 3, 2, 2, 2, 1623, 1624, 3, 2, 2, 2, 1624, 1625, 7, 216, 2, 2, 1625, 1876, 3, 2, 2, 2, 1626, 1627, 7, 178, 2, 2, 1627, 1628, 7, 215, 2, 2, 1628, 1629, 5, 26, 14, 2, 1629, 1630, 7, 217, 2, 2, 1630, 1633, 5, 26, 14, 2, 1631, 1632, 7, 217, 2, 2, 1632, 1634, 5, 26, 14, 2, 1633, 1631, 3, 2, 2, 2, 1633, 1634, 3, 2, 2, 2, 1634, 1635, 3, 2, 2, 2, 1635, 1636, 7, 216, 2, 2, 1636, 1876, 3, 2, 2, 2, 1637, 1638, 7, 180, 2, 2, 1638, 1639, 7, 215, 2, 2, 1639, 1640, 5, 26, 14, 2, 1640, 1641, 7, 217, 2, 2, 1641, 1644, 5, 26, 14, 2, 1642, 1643, 7, 217, 2, 2, 1643, 1645, 5, 26, 14, 2, 1644, 1642, 3, 2, 2, 2, 1644, 1645, 3, 2, 2, 2, 1645, 1646, 3, 2, 2, 2, 1646, 1647, 7, 216, 2, 2, 1647, 1876, 3, 2, 2, 2, 1648, 1649, 7, 181, 2, 2, 1649, 1650, 7, 215, 2, 2, 1650, 1651, 5, 26, 14, 2, 1651, 1652, 7, 217, 2, 2, 1652, 1655, 5, 26, 14, 2, 1653, 1654, 7, 217, 2, 2, 1654, 1656, 5, 26, 14, 2, 1655, 1653, 3, 2, 2, 2, 1655, 1656, 3, 2, 2, 2, 1656, 1657, 3, 2, 2, 2, 1657, 1658, 7, 216, 2, 2, 1658, 1876, 3, 2, 2, 2, 1659, 1660, 7, 177, 2, 2, 1660, 1661, 7, 215, 2, 2, 1661, 1662, 5, 26, 14, 2, 1662, 1663, 7, 217, 2, 2, 1663, 1664, 5, 26, 14, 2, 1664, 1665, 7, 217, 2, 2, 1665, 1668, 5, 26, 14, 2, 1666, 1667, 7, 217, 2, 2, 1667, 1669, 5, 26, 14, 2, 1668, 1666, 3, 2, 2, 2, 1668, 1669, 3, 2, 2, 2, 1669, 1670, 3, 2, 2, 2, 1670, 1671, 7, 216, 2, 2, 1671, 1876, 3, 2, 2, 2, 1672, 1673, 7, 179, 2, 2, 1673, 1674, 7, 215, 2, 2, 1674, 1675, 5, 26, 14, 2, 1675, 1676, 7, 217, 2, 2, 1676, 1677, 5, 26, 14, 2, 1677, 1678, 7, 217, 2, 2, 1678, 1681, 5, 26, 14, 2, 1679, 1680, 7, 217, 2, 2, 1680, 1682, 5, 26, 14, 2, 1681, 1679, 3, 2, 2, 2, 1681, 1682, 3, 2, 2, 2, 1682, 1683, 3, 2, 2, 2, 1683, 1684, 7, 216, 2, 2, 1684, 1876, 3, 2, 2, 2, 1685, 1686, 7, 182, 2, 2, 1686, 1687, 7, 215, 2, 2, 1687, 1688, 5, 26, 14, 2, 1688, 1689, 7, 217, 2, 2, 1689, 1690, 5, 26, 14, 2, 1690, 1691, 7, 217, 2, 2, 1691, 1694, 5, 26, 14, 2, 1692, 1693, 7, 217, 2, 2, 1693, 1695, 5, 26, 14, 2, 1694, 1692, 3, 2, 2, 2, 1694, 1695, 3, 2, 2, 2, 1695, 1696, 3, 2, 2, 2, 1696, 1697, 7, 216, 2, 2, 1697, 1876, 3, 2, 2, 2, 1698, 1699, 7, 183, 2, 2, 1699, 1700, 7, 215, 2, 2, 1700, 1701, 5, 26, 14, 2, 1701, 1702, 7, 217, 2, 2, 1702, 1703, 5, 26, 14, 2, 1703, 1704, 7, 217, 2, 2, 1704, 1707, 5, 26, 14, 2, 1705, 1706, 7, 217, 2, 2, 1706, 1708, 5, 26, 14, 2, 1707, 1705, 3, 2, 2, 2, 1707, 1708, 3, 2, 2, 2, 1708, 1709, 3, 2, 2, 2, 1709, 1710, 7, 216, 2, 2, 1710, 1876, 3, 2, 2, 2, 1711, 1712, 7, 184, 2, 2, 1712, 1713, 7, 215, 2, 2, 1713, 1714, 5, 26, 14, 2, 1714, 1715, 7, 217, 2, 2, 1715, 1716, 5, 26, 14, 2, 1716, 1717, 7, 217, 2, 2, 1717, 1720, 5, 26, 14, 2, 1718, 1719, 7, 217, 2, 2, 1719, 1721, 5, 26, 14, 2, 1720, 1718, 3, 2, 2, 2, 1720, 1721, 3, 2, 2, 2, 1721, 1722, 3, 2, 2, 2, 1722, 1723, 7, 216, 2, 2, 1723, 1876, 3, 2, 2, 2, 1724, 1725, 7, 185, 2, 2, 1725, 1726, 7, 215, 2, 2, 1726, 1727, 5, 26, 14, 2, 1727, 1728, 7, 217, 2, 2, 1728, 1729, 5, 26, 14, 2, 1729, 1730, 7, 217, 2, 2, 1730, 1733, 5, 26, 14, 2, 1731, 1732, 7, 217, 2, 2, 1732, 1734, 5, 26, 14, 2, 1733, 1731, 3, 2, 2, 2, 1733, 1734, 3, 2, 2, 2, 1734, 1735, 3, 2, 2, 2, 1735, 1736, 7, 216, 2, 2, 1736, 1876, 3, 2, 2, 2, 1737, 1738, 7, 186, 2, 2, 1738, 1739, 7, 215, 2, 2, 1739, 1740, 5, 26, 14, 2, 1740, 1741, 7, 217, 2, 2, 1741, 1742, 5, 26, 14, 2, 1742, 1743, 7, 217, 2, 2, 1743, 1746, 5, 26, 14, 2, 1744, 1745, 7, 217, 2, 2, 1745, 1747, 5, 26, 14, 2, 1746, 1744, 3, 2, 2, 2, 1746, 1747, 3, 2, 2, 2, 1747, 1748, 3, 2, 2, 2, 1748, 1749, 7, 216, 2, 2, 1749, 1876, 3, 2, 2, 2, 1750, 1751, 7, 187, 2, 2, 1751, 1752, 7, 215, 2, 2, 1752, 1753, 5, 26, 14, 2, 1753, 1754, 7, 217, 2, 2, 1754, 1757, 5, 26, 14, 2, 1755, 1756, 7, 217, 2, 2, 1756, 1758, 5, 26, 14, 2, 1757, 1755, 3, 2, 2, 2, 1757, 1758, 3, 2, 2, 2, 1758, 1759, 3, 2, 2, 2, 1759, 1760, 7, 216, 2, 2, 1760, 1876, 3, 2, 2, 2, 1761, 1762, 7, 188, 2, 2, 1762, 1763, 7, 215, 2, 2, 1763, 1764, 5, 26, 14, 2, 1764, 1765, 7, 217, 2, 2, 1765, 1768, 5, 26, 14, 2, 1766, 1767, 7, 217, 2, 2, 1767, 1769, 5, 26, 14, 2, 1768, 1766, 3, 2, 2, 2, 1768, 1769, 3, 2, 2, 2, 1769, 1770, 3, 2, 2, 2, 1770, 1771, 7, 216, 2, 2, 1771, 1876, 3, 2, 2, 2, 1772, 1773, 7, 189, 2, 2, 1773, 1774, 7, 215, 2, 2, 1774, 1775, 5, 26, 14, 2, 1775, 1776, 7, 217, 2, 2, 1776, 1779, 5, 26, 14, 2, 1777, 1778, 7, 217, 2, 2, 1778, 1780, 5, 26, 14, 2, 1779, 1777, 3, 2, 2, 2, 1779, 1780, 3, 2, 2, 2, 1780, 1783, 3, 2, 2, 2, 1781, 1782, 7, 217, 2, 2, 1782, 1784, 5, 26, 14, 2, 1783, 1781, 3, 2, 2, 2, 1783, 1784, 3, 2, 2, 2, 1784, 1787, 3, 2, 2, 2, 1785, 1786, 7, 217, 2, 2, 1786, 1788, 5, 26, 14, 2, 1787, 1785, 3, 2, 2, 2, 1787, 1788, 3, 2, 2, 2, 1788, 1789, 3, 2, 2, 2, 1789, 1790, 7, 216, 2, 2, 1790, 1876, 3, 2, 2, 2, 1791, 1792, 7, 190, 2, 2, 1792, 1793, 7, 215, 2, 2, 1793, 1794, 5, 26, 14, 2, 1794, 1795, 7, 217, 2, 2, 1795, 1798, 5, 26, 14, 2, 1796, 1797, 7, 217, 2, 2, 1797, 1799, 5, 26, 14, 2, 1798, 1796, 3, 2, 2, 2, 1798, 1799, 3, 2, 2, 2, 1799, 1802, 3, 2, 2, 2, 1800, 1801, 7, 217, 2, 2, 1801, 1803, 5, 26, 14, 2, 1802, 1800, 3, 2, 2, 2, 1802, 1803, 3, 2, 2, 2, 1803, 1806, 3, 2, 2, 2, 1804, 1805, 7, 217, 2, 2, 1805, 1807, 5, 26, 14, 2, 1806, 1804, 3, 2, 2, 2, 1806, 1807, 3, 2, 2, 2, 1807, 1808, 3, 2, 2, 2, 1808, 1809, 7, 216, 2, 2, 1809, 1876, 3, 2, 2, 2, 1810, 1811, 7, 191, 2, 2, 1811, 1812, 7, 215, 2, 2, 1812, 1813, 5, 26, 14, 2, 1813, 1814, 7, 217, 2, 2, 1814, 1817, 5, 26, 14, 2, 1815, 1816, 7, 217, 2, 2, 1816, 1818, 5, 26, 14, 2, 1817, 1815, 3, 2, 2, 2, 1817, 1818, 3, 2, 2, 2, 1818, 1821, 3, 2, 2, 2, 1819, 1820, 7, 217, 2, 2, 1820, 1822, 5, 26, 14, 2, 1821, 1819, 3, 2, 2, 2, 1821, 1822, 3, 2, 2, 2, 1822, 1825, 3, 2, 2, 2, 1823, 1824, 7, 217, 2, 2, 1824, 1826, 5, 26, 14, 2, 1825, 1823, 3, 2, 2, 2, 1825, 1826, 3, 2, 2, 2, 1826, 1827, 3, 2, 2, 2, 1827, 1828, 7, 216, 2, 2, 1828, 1876, 3, 2, 2, 2, 1829, 1830, 7, 192, 2, 2, 1830, 1831, 7, 215, 2, 2, 1831, 1832, 5, 26, 14, 2, 1832, 1833, 7, 217, 2, 2, 1833, 1836, 5, 26, 14, 2, 1834, 1835, 7, 217, 2, 2, 1835, 1837, 5, 26, 14, 2, 1836, 1834, 3, 2, 2, 2, 1836, 1837, 3, 2, 2, 2, 1837, 1840, 3, 2, 2, 2, 1838, 1839, 7, 217, 2, 2, 1839, 1841, 5, 26, 14, 2, 1840, 1838, 3, 2, 2, 2, 1840, 1841, 3, 2, 2, 2, 1841, 1844, 3, 2, 2, 2, 1842, 1843, 7, 217, 2, 2, 1843, 1845, 5, 26, 14, 2, 1844, 1842, 3, 2, 2, 2, 1844, 1845, 3, 2, 2, 2, 1845, 1846, 3, 2, 2, 2, 1846, 1847, 7, 216, 2, 2, 1847, 1876, 3, 2, 2, 2, 1848, 1849, 7, 193, 2, 2, 1849, 1850, 7, 215, 2, 2, 1850, 1851, 5, 26, 14, 2, 1851, 1852, 7, 217, 2, 2, 1852, 1853, 5, 26, 14, 2, 1853, 1854, 7, 217, 2, 2, 1854, 1855, 5, 26, 14, 2, 1855, 1856, 7, 217, 2, 2, 1856, 1859, 5, 26, 14, 2, 1857, 1858, 7, 217, 2, 2, 1858, 1860, 5, 26, 14, 2, 1859, 1857, 3, 2, 2, 2, 1859, 1860, 3, 2, 2, 2, 1860, 1863, 3, 2, 2, 2, 1861, 1862, 7, 217, 2, 2, 1862, 1864, 5, 26, 14, 2, 1863, 1861, 3, 2, 2, 2, 1863, 1864, 3, 2, 2, 2, 1864, 1867, 3, 2, 2, 2, 1865, 1866, 7, 217, 2, 2, 1866, 1868, 5, 26, 14, 2, 1867, 1865, 3, 2, 2, 2, 1867, 1868, 3, 2, 2, 2, 1868, 1871, 3, 2, 2, 2, 1869, 1870, 7, 217, 2, 2, 1870, 1872, 5, 26, 14, 2, 1871, 1869, 3, 2, 2, 2, 1871, 1872, 3, 2, 2, 2, 1872, 1873, 3, 2, 2, 2, 1873, 1874, 7, 216, 2, 2, 1874, 1876, 3, 2, 2, 2, 1875, 1608, 3, 2, 2, 2, 1875, 1617, 3, 2, 2, 2, 1875, 1626, 3, 2, 2, 2, 1875, 1637, 3, 2, 2, 2, 1875, 1648, 3, 2, 2, 2, 1875, 1659, 3, 2, 2, 2, 1875, 1672, 3, 2, 2, 2, 1875, 1685, 3, 2, 2, 2, 1875, 1698, 3, 2, 2, 2, 1875, 1711, 3, 2, 2, 2, 1875, 1724, 3, 2, 2, 2, 1875, 1737, 3, 2, 2, 2, 1875, 1750, 3, 2, 2, 2, 1875, 1761, 3, 2, 2, 2, 1875, 1772, 3, 2, 2, 2, 1875, 1791, 3, 2, 2, 2, 1875, 1810, 3, 2, 2, 2, 1875, 1829, 3, 2, 2, 2, 1875, 1848, 3, 2, 2, 2, 1876, 63, 3, 2, 2, 2, 121, 67, 69, 74, 81, 87, 98, 105, 117, 131, 140, 160, 173, 180, 209, 211, 223, 225, 240, 242, 254, 256, 264, 271, 283, 290, 311, 331, 339, 345, 352, 524, 563, 582, 598, 634, 636, 645, 654, 663, 672, 751, 760, 769, 778, 812, 847, 963, 1009, 1011, 1054, 1056, 1058, 1088, 1097, 1108, 1141, 1166, 1263, 1276, 1296, 1308, 1320, 1332, 1336, 1348, 1352, 1373, 1385, 1398, 1402, 1406, 1410, 1414, 1418, 1422, 1479, 1505, 1507, 1509, 1513, 1522, 1534, 1546, 1557, 1568, 1584, 1602, 1606, 1613, 1622, 1633, 1644, 1655, 1668, 1681, 1694, 1707, 1720, 1733, 1746, 1757, 1768, 1779, 1783, 1787, 1798, 1802, 1806, 1817, 1821, 1825, 1836, 1840, 1844, 1859, 1863, 1867, 1871, 1875] \ No newline at end of file +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 233, 1889, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 3, 2, 3, 2, 3, 2, 7, 2, 68, 10, 2, 12, 2, 14, 2, 71, 11, 2, 3, 2, 3, 2, 5, 2, 75, 10, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 5, 3, 82, 10, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 88, 10, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 7, 4, 97, 10, 4, 12, 4, 14, 4, 100, 11, 4, 3, 4, 3, 4, 7, 4, 104, 10, 4, 12, 4, 14, 4, 107, 11, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 7, 5, 116, 10, 5, 12, 5, 14, 5, 119, 11, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 5, 6, 132, 10, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 5, 7, 141, 10, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 7, 10, 159, 10, 10, 12, 10, 14, 10, 162, 11, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 5, 13, 174, 10, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 5, 14, 181, 10, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 7, 16, 210, 10, 16, 12, 16, 14, 16, 213, 11, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 7, 17, 224, 10, 17, 12, 17, 14, 17, 227, 11, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 7, 18, 241, 10, 18, 12, 18, 14, 18, 244, 11, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 7, 19, 255, 10, 19, 12, 19, 14, 19, 258, 11, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 5, 20, 265, 10, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 5, 21, 272, 10, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 7, 22, 282, 10, 22, 12, 22, 14, 22, 285, 11, 22, 3, 22, 3, 22, 7, 22, 289, 10, 22, 12, 22, 14, 22, 292, 11, 22, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 5, 23, 312, 10, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 7, 23, 330, 10, 23, 12, 23, 14, 23, 333, 11, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 5, 23, 340, 10, 23, 3, 23, 3, 23, 3, 23, 3, 23, 5, 23, 346, 10, 23, 3, 24, 3, 24, 3, 24, 7, 24, 351, 10, 24, 12, 24, 14, 24, 354, 11, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 525, 10, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 564, 10, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 583, 10, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 599, 10, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 635, 10, 26, 5, 26, 637, 10, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 646, 10, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 655, 10, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 664, 10, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 673, 10, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 752, 10, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 761, 10, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 770, 10, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 779, 10, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 813, 10, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 5, 27, 848, 10, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 5, 27, 964, 10, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 5, 27, 1010, 10, 27, 5, 27, 1012, 10, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 5, 27, 1055, 10, 27, 5, 27, 1057, 10, 27, 5, 27, 1059, 10, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 5, 27, 1089, 10, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 5, 27, 1098, 10, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 5, 27, 1109, 10, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 5, 27, 1142, 10, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 5, 27, 1167, 10, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 5, 28, 1264, 10, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 5, 28, 1277, 10, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 5, 28, 1297, 10, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 5, 28, 1309, 10, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 5, 28, 1321, 10, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 5, 28, 1333, 10, 28, 3, 28, 3, 28, 5, 28, 1337, 10, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 5, 28, 1349, 10, 28, 3, 28, 3, 28, 5, 28, 1353, 10, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 5, 28, 1374, 10, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 5, 28, 1386, 10, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 5, 28, 1399, 10, 28, 3, 28, 3, 28, 5, 28, 1403, 10, 28, 3, 28, 3, 28, 5, 28, 1407, 10, 28, 3, 28, 3, 28, 5, 28, 1411, 10, 28, 3, 28, 3, 28, 5, 28, 1415, 10, 28, 3, 28, 3, 28, 5, 28, 1419, 10, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 5, 28, 1430, 10, 28, 3, 28, 3, 28, 5, 28, 1434, 10, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 5, 29, 1491, 10, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 5, 30, 1517, 10, 30, 5, 30, 1519, 10, 30, 5, 30, 1521, 10, 30, 3, 30, 3, 30, 5, 30, 1525, 10, 30, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 7, 31, 1532, 10, 31, 12, 31, 14, 31, 1535, 11, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 7, 31, 1544, 10, 31, 12, 31, 14, 31, 1547, 11, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 6, 31, 1556, 10, 31, 13, 31, 14, 31, 1557, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 6, 31, 1567, 10, 31, 13, 31, 14, 31, 1568, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 6, 31, 1578, 10, 31, 13, 31, 14, 31, 1579, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 5, 31, 1596, 10, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 6, 31, 1612, 10, 31, 13, 31, 14, 31, 1613, 3, 31, 3, 31, 5, 31, 1618, 10, 31, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1625, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1634, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1645, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1656, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1667, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1680, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1693, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1706, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1719, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1732, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1745, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1758, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1769, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1780, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1791, 10, 32, 3, 32, 3, 32, 5, 32, 1795, 10, 32, 3, 32, 3, 32, 5, 32, 1799, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1810, 10, 32, 3, 32, 3, 32, 5, 32, 1814, 10, 32, 3, 32, 3, 32, 5, 32, 1818, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1829, 10, 32, 3, 32, 3, 32, 5, 32, 1833, 10, 32, 3, 32, 3, 32, 5, 32, 1837, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1848, 10, 32, 3, 32, 3, 32, 5, 32, 1852, 10, 32, 3, 32, 3, 32, 5, 32, 1856, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1871, 10, 32, 3, 32, 3, 32, 5, 32, 1875, 10, 32, 3, 32, 3, 32, 5, 32, 1879, 10, 32, 3, 32, 3, 32, 5, 32, 1883, 10, 32, 3, 32, 3, 32, 5, 32, 1887, 10, 32, 3, 32, 2, 7, 30, 32, 34, 36, 42, 33, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 2, 3, 3, 2, 208, 213, 2, 2179, 2, 69, 3, 2, 2, 2, 4, 78, 3, 2, 2, 2, 6, 91, 3, 2, 2, 2, 8, 112, 3, 2, 2, 2, 10, 131, 3, 2, 2, 2, 12, 133, 3, 2, 2, 2, 14, 142, 3, 2, 2, 2, 16, 148, 3, 2, 2, 2, 18, 156, 3, 2, 2, 2, 20, 165, 3, 2, 2, 2, 22, 168, 3, 2, 2, 2, 24, 171, 3, 2, 2, 2, 26, 180, 3, 2, 2, 2, 28, 182, 3, 2, 2, 2, 30, 188, 3, 2, 2, 2, 32, 214, 3, 2, 2, 2, 34, 228, 3, 2, 2, 2, 36, 245, 3, 2, 2, 2, 38, 264, 3, 2, 2, 2, 40, 271, 3, 2, 2, 2, 42, 273, 3, 2, 2, 2, 44, 345, 3, 2, 2, 2, 46, 347, 3, 2, 2, 2, 48, 355, 3, 2, 2, 2, 50, 812, 3, 2, 2, 2, 52, 1166, 3, 2, 2, 2, 54, 1433, 3, 2, 2, 2, 56, 1490, 3, 2, 2, 2, 58, 1524, 3, 2, 2, 2, 60, 1617, 3, 2, 2, 2, 62, 1886, 3, 2, 2, 2, 64, 68, 5, 4, 3, 2, 65, 68, 5, 6, 4, 2, 66, 68, 5, 10, 6, 2, 67, 64, 3, 2, 2, 2, 67, 65, 3, 2, 2, 2, 67, 66, 3, 2, 2, 2, 68, 71, 3, 2, 2, 2, 69, 67, 3, 2, 2, 2, 69, 70, 3, 2, 2, 2, 70, 72, 3, 2, 2, 2, 71, 69, 3, 2, 2, 2, 72, 74, 5, 26, 14, 2, 73, 75, 7, 219, 2, 2, 74, 73, 3, 2, 2, 2, 74, 75, 3, 2, 2, 2, 75, 76, 3, 2, 2, 2, 76, 77, 7, 2, 2, 3, 77, 3, 3, 2, 2, 2, 78, 79, 7, 230, 2, 2, 79, 81, 7, 216, 2, 2, 80, 82, 5, 8, 5, 2, 81, 80, 3, 2, 2, 2, 81, 82, 3, 2, 2, 2, 82, 83, 3, 2, 2, 2, 83, 84, 7, 217, 2, 2, 84, 87, 7, 220, 2, 2, 85, 88, 5, 18, 10, 2, 86, 88, 5, 26, 14, 2, 87, 85, 3, 2, 2, 2, 87, 86, 3, 2, 2, 2, 88, 89, 3, 2, 2, 2, 89, 90, 7, 219, 2, 2, 90, 5, 3, 2, 2, 2, 91, 105, 7, 230, 2, 2, 92, 93, 7, 221, 2, 2, 93, 98, 5, 26, 14, 2, 94, 95, 7, 218, 2, 2, 95, 97, 5, 26, 14, 2, 96, 94, 3, 2, 2, 2, 97, 100, 3, 2, 2, 2, 98, 96, 3, 2, 2, 2, 98, 99, 3, 2, 2, 2, 99, 101, 3, 2, 2, 2, 100, 98, 3, 2, 2, 2, 101, 102, 7, 222, 2, 2, 102, 104, 3, 2, 2, 2, 103, 92, 3, 2, 2, 2, 104, 107, 3, 2, 2, 2, 105, 103, 3, 2, 2, 2, 105, 106, 3, 2, 2, 2, 106, 108, 3, 2, 2, 2, 107, 105, 3, 2, 2, 2, 108, 109, 9, 2, 2, 2, 109, 110, 5, 26, 14, 2, 110, 111, 7, 219, 2, 2, 111, 7, 3, 2, 2, 2, 112, 117, 7, 230, 2, 2, 113, 114, 7, 218, 2, 2, 114, 116, 7, 230, 2, 2, 115, 113, 3, 2, 2, 2, 116, 119, 3, 2, 2, 2, 117, 115, 3, 2, 2, 2, 117, 118, 3, 2, 2, 2, 118, 9, 3, 2, 2, 2, 119, 117, 3, 2, 2, 2, 120, 132, 5, 12, 7, 2, 121, 132, 5, 14, 8, 2, 122, 132, 5, 18, 10, 2, 123, 132, 5, 20, 11, 2, 124, 132, 5, 22, 12, 2, 125, 132, 5, 24, 13, 2, 126, 132, 5, 6, 4, 2, 127, 132, 5, 16, 9, 2, 128, 129, 5, 26, 14, 2, 129, 130, 7, 219, 2, 2, 130, 132, 3, 2, 2, 2, 131, 120, 3, 2, 2, 2, 131, 121, 3, 2, 2, 2, 131, 122, 3, 2, 2, 2, 131, 123, 3, 2, 2, 2, 131, 124, 3, 2, 2, 2, 131, 125, 3, 2, 2, 2, 131, 126, 3, 2, 2, 2, 131, 127, 3, 2, 2, 2, 131, 128, 3, 2, 2, 2, 132, 11, 3, 2, 2, 2, 133, 134, 7, 148, 2, 2, 134, 135, 7, 216, 2, 2, 135, 136, 5, 26, 14, 2, 136, 137, 7, 217, 2, 2, 137, 140, 5, 10, 6, 2, 138, 139, 7, 149, 2, 2, 139, 141, 5, 10, 6, 2, 140, 138, 3, 2, 2, 2, 140, 141, 3, 2, 2, 2, 141, 13, 3, 2, 2, 2, 142, 143, 7, 150, 2, 2, 143, 144, 7, 216, 2, 2, 144, 145, 5, 26, 14, 2, 145, 146, 7, 217, 2, 2, 146, 147, 5, 10, 6, 2, 147, 15, 3, 2, 2, 2, 148, 149, 7, 151, 2, 2, 149, 150, 7, 216, 2, 2, 150, 151, 7, 230, 2, 2, 151, 152, 7, 152, 2, 2, 152, 153, 5, 26, 14, 2, 153, 154, 7, 217, 2, 2, 154, 155, 5, 10, 6, 2, 155, 17, 3, 2, 2, 2, 156, 160, 7, 225, 2, 2, 157, 159, 5, 10, 6, 2, 158, 157, 3, 2, 2, 2, 159, 162, 3, 2, 2, 2, 160, 158, 3, 2, 2, 2, 160, 161, 3, 2, 2, 2, 161, 163, 3, 2, 2, 2, 162, 160, 3, 2, 2, 2, 163, 164, 7, 226, 2, 2, 164, 19, 3, 2, 2, 2, 165, 166, 7, 153, 2, 2, 166, 167, 7, 219, 2, 2, 167, 21, 3, 2, 2, 2, 168, 169, 7, 154, 2, 2, 169, 170, 7, 219, 2, 2, 170, 23, 3, 2, 2, 2, 171, 173, 7, 155, 2, 2, 172, 174, 5, 26, 14, 2, 173, 172, 3, 2, 2, 2, 173, 174, 3, 2, 2, 2, 174, 175, 3, 2, 2, 2, 175, 176, 7, 219, 2, 2, 176, 25, 3, 2, 2, 2, 177, 181, 5, 28, 15, 2, 178, 181, 5, 44, 23, 2, 179, 181, 5, 30, 16, 2, 180, 177, 3, 2, 2, 2, 180, 178, 3, 2, 2, 2, 180, 179, 3, 2, 2, 2, 181, 27, 3, 2, 2, 2, 182, 183, 5, 30, 16, 2, 183, 184, 7, 223, 2, 2, 184, 185, 5, 26, 14, 2, 185, 186, 7, 224, 2, 2, 186, 187, 5, 26, 14, 2, 187, 29, 3, 2, 2, 2, 188, 189, 8, 16, 1, 2, 189, 190, 5, 32, 17, 2, 190, 211, 3, 2, 2, 2, 191, 192, 12, 9, 2, 2, 192, 193, 7, 204, 2, 2, 193, 210, 5, 32, 17, 2, 194, 195, 12, 8, 2, 2, 195, 196, 7, 203, 2, 2, 196, 210, 5, 32, 17, 2, 197, 198, 12, 7, 2, 2, 198, 199, 7, 206, 2, 2, 199, 210, 5, 32, 17, 2, 200, 201, 12, 6, 2, 2, 201, 202, 7, 205, 2, 2, 202, 210, 5, 32, 17, 2, 203, 204, 12, 5, 2, 2, 204, 205, 7, 207, 2, 2, 205, 210, 5, 32, 17, 2, 206, 207, 12, 4, 2, 2, 207, 208, 7, 214, 2, 2, 208, 210, 5, 32, 17, 2, 209, 191, 3, 2, 2, 2, 209, 194, 3, 2, 2, 2, 209, 197, 3, 2, 2, 2, 209, 200, 3, 2, 2, 2, 209, 203, 3, 2, 2, 2, 209, 206, 3, 2, 2, 2, 210, 213, 3, 2, 2, 2, 211, 209, 3, 2, 2, 2, 211, 212, 3, 2, 2, 2, 212, 31, 3, 2, 2, 2, 213, 211, 3, 2, 2, 2, 214, 215, 8, 17, 1, 2, 215, 216, 5, 34, 18, 2, 216, 225, 3, 2, 2, 2, 217, 218, 12, 5, 2, 2, 218, 219, 7, 195, 2, 2, 219, 224, 5, 34, 18, 2, 220, 221, 12, 4, 2, 2, 221, 222, 7, 196, 2, 2, 222, 224, 5, 34, 18, 2, 223, 217, 3, 2, 2, 2, 223, 220, 3, 2, 2, 2, 224, 227, 3, 2, 2, 2, 225, 223, 3, 2, 2, 2, 225, 226, 3, 2, 2, 2, 226, 33, 3, 2, 2, 2, 227, 225, 3, 2, 2, 2, 228, 229, 8, 18, 1, 2, 229, 230, 5, 36, 19, 2, 230, 242, 3, 2, 2, 2, 231, 232, 12, 6, 2, 2, 232, 233, 7, 197, 2, 2, 233, 241, 5, 36, 19, 2, 234, 235, 12, 5, 2, 2, 235, 236, 7, 198, 2, 2, 236, 241, 5, 36, 19, 2, 237, 238, 12, 4, 2, 2, 238, 239, 7, 199, 2, 2, 239, 241, 5, 36, 19, 2, 240, 231, 3, 2, 2, 2, 240, 234, 3, 2, 2, 2, 240, 237, 3, 2, 2, 2, 241, 244, 3, 2, 2, 2, 242, 240, 3, 2, 2, 2, 242, 243, 3, 2, 2, 2, 243, 35, 3, 2, 2, 2, 244, 242, 3, 2, 2, 2, 245, 246, 8, 19, 1, 2, 246, 247, 5, 38, 20, 2, 247, 256, 3, 2, 2, 2, 248, 249, 12, 5, 2, 2, 249, 250, 7, 201, 2, 2, 250, 255, 5, 38, 20, 2, 251, 252, 12, 4, 2, 2, 252, 253, 7, 202, 2, 2, 253, 255, 5, 38, 20, 2, 254, 248, 3, 2, 2, 2, 254, 251, 3, 2, 2, 2, 255, 258, 3, 2, 2, 2, 256, 254, 3, 2, 2, 2, 256, 257, 3, 2, 2, 2, 257, 37, 3, 2, 2, 2, 258, 256, 3, 2, 2, 2, 259, 260, 5, 40, 21, 2, 260, 261, 7, 200, 2, 2, 261, 262, 5, 38, 20, 2, 262, 265, 3, 2, 2, 2, 263, 265, 5, 40, 21, 2, 264, 259, 3, 2, 2, 2, 264, 263, 3, 2, 2, 2, 265, 39, 3, 2, 2, 2, 266, 267, 7, 195, 2, 2, 267, 272, 5, 40, 21, 2, 268, 269, 7, 196, 2, 2, 269, 272, 5, 40, 21, 2, 270, 272, 5, 42, 22, 2, 271, 266, 3, 2, 2, 2, 271, 268, 3, 2, 2, 2, 271, 270, 3, 2, 2, 2, 272, 41, 3, 2, 2, 2, 273, 274, 8, 22, 1, 2, 274, 275, 5, 44, 23, 2, 275, 290, 3, 2, 2, 2, 276, 277, 12, 4, 2, 2, 277, 278, 7, 221, 2, 2, 278, 283, 5, 26, 14, 2, 279, 280, 7, 218, 2, 2, 280, 282, 5, 26, 14, 2, 281, 279, 3, 2, 2, 2, 282, 285, 3, 2, 2, 2, 283, 281, 3, 2, 2, 2, 283, 284, 3, 2, 2, 2, 284, 286, 3, 2, 2, 2, 285, 283, 3, 2, 2, 2, 286, 287, 7, 222, 2, 2, 287, 289, 3, 2, 2, 2, 288, 276, 3, 2, 2, 2, 289, 292, 3, 2, 2, 2, 290, 288, 3, 2, 2, 2, 290, 291, 3, 2, 2, 2, 291, 43, 3, 2, 2, 2, 292, 290, 3, 2, 2, 2, 293, 346, 5, 48, 25, 2, 294, 346, 5, 50, 26, 2, 295, 346, 5, 52, 27, 2, 296, 346, 5, 54, 28, 2, 297, 346, 5, 56, 29, 2, 298, 346, 5, 58, 30, 2, 299, 346, 5, 60, 31, 2, 300, 346, 5, 62, 32, 2, 301, 346, 7, 230, 2, 2, 302, 346, 7, 227, 2, 2, 303, 346, 7, 228, 2, 2, 304, 346, 7, 229, 2, 2, 305, 306, 7, 216, 2, 2, 306, 307, 5, 8, 5, 2, 307, 308, 7, 217, 2, 2, 308, 311, 7, 220, 2, 2, 309, 312, 5, 18, 10, 2, 310, 312, 5, 26, 14, 2, 311, 309, 3, 2, 2, 2, 311, 310, 3, 2, 2, 2, 312, 346, 3, 2, 2, 2, 313, 314, 7, 216, 2, 2, 314, 315, 5, 26, 14, 2, 315, 316, 7, 217, 2, 2, 316, 346, 3, 2, 2, 2, 317, 318, 7, 216, 2, 2, 318, 319, 5, 26, 14, 2, 319, 320, 7, 217, 2, 2, 320, 346, 3, 2, 2, 2, 321, 322, 7, 215, 2, 2, 322, 323, 5, 26, 14, 2, 323, 324, 7, 215, 2, 2, 324, 346, 3, 2, 2, 2, 325, 326, 7, 221, 2, 2, 326, 331, 5, 26, 14, 2, 327, 328, 7, 218, 2, 2, 328, 330, 5, 26, 14, 2, 329, 327, 3, 2, 2, 2, 330, 333, 3, 2, 2, 2, 331, 329, 3, 2, 2, 2, 331, 332, 3, 2, 2, 2, 332, 334, 3, 2, 2, 2, 333, 331, 3, 2, 2, 2, 334, 335, 7, 222, 2, 2, 335, 346, 3, 2, 2, 2, 336, 337, 7, 230, 2, 2, 337, 339, 7, 216, 2, 2, 338, 340, 5, 46, 24, 2, 339, 338, 3, 2, 2, 2, 339, 340, 3, 2, 2, 2, 340, 341, 3, 2, 2, 2, 341, 346, 7, 217, 2, 2, 342, 346, 7, 174, 2, 2, 343, 346, 7, 153, 2, 2, 344, 346, 7, 154, 2, 2, 345, 293, 3, 2, 2, 2, 345, 294, 3, 2, 2, 2, 345, 295, 3, 2, 2, 2, 345, 296, 3, 2, 2, 2, 345, 297, 3, 2, 2, 2, 345, 298, 3, 2, 2, 2, 345, 299, 3, 2, 2, 2, 345, 300, 3, 2, 2, 2, 345, 301, 3, 2, 2, 2, 345, 302, 3, 2, 2, 2, 345, 303, 3, 2, 2, 2, 345, 304, 3, 2, 2, 2, 345, 305, 3, 2, 2, 2, 345, 313, 3, 2, 2, 2, 345, 317, 3, 2, 2, 2, 345, 321, 3, 2, 2, 2, 345, 325, 3, 2, 2, 2, 345, 336, 3, 2, 2, 2, 345, 342, 3, 2, 2, 2, 345, 343, 3, 2, 2, 2, 345, 344, 3, 2, 2, 2, 346, 45, 3, 2, 2, 2, 347, 352, 5, 26, 14, 2, 348, 349, 7, 218, 2, 2, 349, 351, 5, 26, 14, 2, 350, 348, 3, 2, 2, 2, 351, 354, 3, 2, 2, 2, 352, 350, 3, 2, 2, 2, 352, 353, 3, 2, 2, 2, 353, 47, 3, 2, 2, 2, 354, 352, 3, 2, 2, 2, 355, 356, 7, 156, 2, 2, 356, 357, 7, 216, 2, 2, 357, 358, 7, 217, 2, 2, 358, 49, 3, 2, 2, 2, 359, 360, 7, 3, 2, 2, 360, 361, 7, 216, 2, 2, 361, 362, 5, 26, 14, 2, 362, 363, 7, 217, 2, 2, 363, 813, 3, 2, 2, 2, 364, 365, 7, 4, 2, 2, 365, 366, 7, 216, 2, 2, 366, 367, 5, 26, 14, 2, 367, 368, 7, 217, 2, 2, 368, 813, 3, 2, 2, 2, 369, 370, 7, 5, 2, 2, 370, 371, 7, 216, 2, 2, 371, 372, 5, 26, 14, 2, 372, 373, 7, 217, 2, 2, 373, 813, 3, 2, 2, 2, 374, 375, 7, 6, 2, 2, 375, 376, 7, 216, 2, 2, 376, 377, 5, 26, 14, 2, 377, 378, 7, 217, 2, 2, 378, 813, 3, 2, 2, 2, 379, 380, 7, 7, 2, 2, 380, 381, 7, 216, 2, 2, 381, 382, 5, 26, 14, 2, 382, 383, 7, 217, 2, 2, 383, 813, 3, 2, 2, 2, 384, 385, 7, 8, 2, 2, 385, 386, 7, 216, 2, 2, 386, 387, 5, 26, 14, 2, 387, 388, 7, 217, 2, 2, 388, 813, 3, 2, 2, 2, 389, 390, 7, 10, 2, 2, 390, 391, 7, 216, 2, 2, 391, 392, 5, 26, 14, 2, 392, 393, 7, 217, 2, 2, 393, 813, 3, 2, 2, 2, 394, 395, 7, 11, 2, 2, 395, 396, 7, 216, 2, 2, 396, 397, 5, 26, 14, 2, 397, 398, 7, 217, 2, 2, 398, 813, 3, 2, 2, 2, 399, 400, 7, 12, 2, 2, 400, 401, 7, 216, 2, 2, 401, 402, 5, 26, 14, 2, 402, 403, 7, 217, 2, 2, 403, 813, 3, 2, 2, 2, 404, 405, 7, 13, 2, 2, 405, 406, 7, 216, 2, 2, 406, 407, 5, 26, 14, 2, 407, 408, 7, 217, 2, 2, 408, 813, 3, 2, 2, 2, 409, 410, 7, 14, 2, 2, 410, 411, 7, 216, 2, 2, 411, 412, 5, 26, 14, 2, 412, 413, 7, 217, 2, 2, 413, 813, 3, 2, 2, 2, 414, 415, 7, 15, 2, 2, 415, 416, 7, 216, 2, 2, 416, 417, 5, 26, 14, 2, 417, 418, 7, 217, 2, 2, 418, 813, 3, 2, 2, 2, 419, 420, 7, 16, 2, 2, 420, 421, 7, 216, 2, 2, 421, 422, 5, 26, 14, 2, 422, 423, 7, 217, 2, 2, 423, 813, 3, 2, 2, 2, 424, 425, 7, 17, 2, 2, 425, 426, 7, 216, 2, 2, 426, 427, 5, 26, 14, 2, 427, 428, 7, 217, 2, 2, 428, 813, 3, 2, 2, 2, 429, 430, 7, 18, 2, 2, 430, 431, 7, 216, 2, 2, 431, 432, 5, 26, 14, 2, 432, 433, 7, 217, 2, 2, 433, 813, 3, 2, 2, 2, 434, 435, 7, 19, 2, 2, 435, 436, 7, 216, 2, 2, 436, 437, 5, 26, 14, 2, 437, 438, 7, 217, 2, 2, 438, 813, 3, 2, 2, 2, 439, 440, 7, 20, 2, 2, 440, 441, 7, 216, 2, 2, 441, 442, 5, 26, 14, 2, 442, 443, 7, 217, 2, 2, 443, 813, 3, 2, 2, 2, 444, 445, 7, 25, 2, 2, 445, 446, 7, 216, 2, 2, 446, 447, 5, 26, 14, 2, 447, 448, 7, 217, 2, 2, 448, 813, 3, 2, 2, 2, 449, 450, 7, 27, 2, 2, 450, 451, 7, 216, 2, 2, 451, 452, 5, 26, 14, 2, 452, 453, 7, 217, 2, 2, 453, 813, 3, 2, 2, 2, 454, 455, 7, 28, 2, 2, 455, 456, 7, 216, 2, 2, 456, 457, 5, 26, 14, 2, 457, 458, 7, 217, 2, 2, 458, 813, 3, 2, 2, 2, 459, 460, 7, 29, 2, 2, 460, 461, 7, 216, 2, 2, 461, 462, 5, 26, 14, 2, 462, 463, 7, 217, 2, 2, 463, 813, 3, 2, 2, 2, 464, 465, 7, 30, 2, 2, 465, 466, 7, 216, 2, 2, 466, 467, 5, 26, 14, 2, 467, 468, 7, 217, 2, 2, 468, 813, 3, 2, 2, 2, 469, 470, 7, 32, 2, 2, 470, 471, 7, 216, 2, 2, 471, 472, 5, 26, 14, 2, 472, 473, 7, 217, 2, 2, 473, 813, 3, 2, 2, 2, 474, 475, 7, 36, 2, 2, 475, 476, 7, 216, 2, 2, 476, 477, 5, 26, 14, 2, 477, 478, 7, 217, 2, 2, 478, 813, 3, 2, 2, 2, 479, 480, 7, 37, 2, 2, 480, 481, 7, 216, 2, 2, 481, 482, 5, 26, 14, 2, 482, 483, 7, 217, 2, 2, 483, 813, 3, 2, 2, 2, 484, 485, 7, 43, 2, 2, 485, 486, 7, 216, 2, 2, 486, 487, 5, 26, 14, 2, 487, 488, 7, 217, 2, 2, 488, 813, 3, 2, 2, 2, 489, 490, 7, 44, 2, 2, 490, 491, 7, 216, 2, 2, 491, 492, 5, 26, 14, 2, 492, 493, 7, 217, 2, 2, 493, 813, 3, 2, 2, 2, 494, 495, 7, 45, 2, 2, 495, 496, 7, 216, 2, 2, 496, 497, 5, 26, 14, 2, 497, 498, 7, 217, 2, 2, 498, 813, 3, 2, 2, 2, 499, 500, 7, 46, 2, 2, 500, 501, 7, 216, 2, 2, 501, 502, 5, 26, 14, 2, 502, 503, 7, 217, 2, 2, 503, 813, 3, 2, 2, 2, 504, 505, 7, 47, 2, 2, 505, 506, 7, 216, 2, 2, 506, 507, 5, 26, 14, 2, 507, 508, 7, 217, 2, 2, 508, 813, 3, 2, 2, 2, 509, 510, 7, 38, 2, 2, 510, 511, 7, 216, 2, 2, 511, 512, 5, 26, 14, 2, 512, 513, 7, 217, 2, 2, 513, 813, 3, 2, 2, 2, 514, 515, 7, 59, 2, 2, 515, 516, 7, 216, 2, 2, 516, 517, 5, 26, 14, 2, 517, 518, 7, 217, 2, 2, 518, 813, 3, 2, 2, 2, 519, 520, 7, 60, 2, 2, 520, 521, 7, 216, 2, 2, 521, 524, 5, 26, 14, 2, 522, 523, 7, 218, 2, 2, 523, 525, 5, 26, 14, 2, 524, 522, 3, 2, 2, 2, 524, 525, 3, 2, 2, 2, 525, 526, 3, 2, 2, 2, 526, 527, 7, 217, 2, 2, 527, 813, 3, 2, 2, 2, 528, 529, 7, 61, 2, 2, 529, 530, 7, 216, 2, 2, 530, 531, 5, 26, 14, 2, 531, 532, 7, 217, 2, 2, 532, 813, 3, 2, 2, 2, 533, 534, 7, 62, 2, 2, 534, 535, 7, 216, 2, 2, 535, 536, 5, 26, 14, 2, 536, 537, 7, 217, 2, 2, 537, 813, 3, 2, 2, 2, 538, 539, 7, 63, 2, 2, 539, 540, 7, 216, 2, 2, 540, 541, 5, 26, 14, 2, 541, 542, 7, 217, 2, 2, 542, 813, 3, 2, 2, 2, 543, 544, 7, 157, 2, 2, 544, 545, 7, 216, 2, 2, 545, 546, 5, 26, 14, 2, 546, 547, 7, 217, 2, 2, 547, 813, 3, 2, 2, 2, 548, 549, 7, 71, 2, 2, 549, 550, 7, 216, 2, 2, 550, 551, 5, 26, 14, 2, 551, 552, 7, 217, 2, 2, 552, 813, 3, 2, 2, 2, 553, 554, 7, 72, 2, 2, 554, 555, 7, 216, 2, 2, 555, 556, 5, 26, 14, 2, 556, 557, 7, 217, 2, 2, 557, 813, 3, 2, 2, 2, 558, 559, 7, 73, 2, 2, 559, 560, 7, 216, 2, 2, 560, 563, 5, 26, 14, 2, 561, 562, 7, 218, 2, 2, 562, 564, 5, 26, 14, 2, 563, 561, 3, 2, 2, 2, 563, 564, 3, 2, 2, 2, 564, 565, 3, 2, 2, 2, 565, 566, 7, 217, 2, 2, 566, 813, 3, 2, 2, 2, 567, 568, 7, 75, 2, 2, 568, 569, 7, 216, 2, 2, 569, 570, 5, 26, 14, 2, 570, 571, 7, 217, 2, 2, 571, 813, 3, 2, 2, 2, 572, 573, 7, 76, 2, 2, 573, 574, 7, 216, 2, 2, 574, 575, 5, 26, 14, 2, 575, 576, 7, 217, 2, 2, 576, 813, 3, 2, 2, 2, 577, 578, 7, 77, 2, 2, 578, 579, 7, 216, 2, 2, 579, 582, 5, 26, 14, 2, 580, 581, 7, 218, 2, 2, 581, 583, 5, 26, 14, 2, 582, 580, 3, 2, 2, 2, 582, 583, 3, 2, 2, 2, 583, 584, 3, 2, 2, 2, 584, 585, 7, 217, 2, 2, 585, 813, 3, 2, 2, 2, 586, 587, 7, 88, 2, 2, 587, 588, 7, 216, 2, 2, 588, 589, 5, 26, 14, 2, 589, 590, 7, 217, 2, 2, 590, 813, 3, 2, 2, 2, 591, 592, 7, 89, 2, 2, 592, 593, 7, 216, 2, 2, 593, 594, 5, 26, 14, 2, 594, 595, 7, 218, 2, 2, 595, 598, 5, 26, 14, 2, 596, 597, 7, 218, 2, 2, 597, 599, 5, 26, 14, 2, 598, 596, 3, 2, 2, 2, 598, 599, 3, 2, 2, 2, 599, 600, 3, 2, 2, 2, 600, 601, 7, 217, 2, 2, 601, 813, 3, 2, 2, 2, 602, 603, 7, 78, 2, 2, 603, 604, 7, 216, 2, 2, 604, 605, 5, 26, 14, 2, 605, 606, 7, 217, 2, 2, 606, 813, 3, 2, 2, 2, 607, 608, 7, 114, 2, 2, 608, 609, 7, 216, 2, 2, 609, 610, 5, 26, 14, 2, 610, 611, 7, 217, 2, 2, 611, 813, 3, 2, 2, 2, 612, 613, 7, 115, 2, 2, 613, 614, 7, 216, 2, 2, 614, 615, 5, 26, 14, 2, 615, 616, 7, 217, 2, 2, 616, 813, 3, 2, 2, 2, 617, 618, 7, 116, 2, 2, 618, 619, 7, 216, 2, 2, 619, 620, 5, 26, 14, 2, 620, 621, 7, 217, 2, 2, 621, 813, 3, 2, 2, 2, 622, 623, 7, 117, 2, 2, 623, 624, 7, 216, 2, 2, 624, 625, 5, 26, 14, 2, 625, 626, 7, 217, 2, 2, 626, 813, 3, 2, 2, 2, 627, 628, 7, 158, 2, 2, 628, 629, 7, 216, 2, 2, 629, 636, 5, 26, 14, 2, 630, 631, 7, 218, 2, 2, 631, 634, 5, 26, 14, 2, 632, 633, 7, 218, 2, 2, 633, 635, 5, 26, 14, 2, 634, 632, 3, 2, 2, 2, 634, 635, 3, 2, 2, 2, 635, 637, 3, 2, 2, 2, 636, 630, 3, 2, 2, 2, 636, 637, 3, 2, 2, 2, 637, 638, 3, 2, 2, 2, 638, 639, 7, 217, 2, 2, 639, 813, 3, 2, 2, 2, 640, 641, 7, 159, 2, 2, 641, 642, 7, 216, 2, 2, 642, 645, 5, 26, 14, 2, 643, 644, 7, 218, 2, 2, 644, 646, 5, 26, 14, 2, 645, 643, 3, 2, 2, 2, 645, 646, 3, 2, 2, 2, 646, 647, 3, 2, 2, 2, 647, 648, 7, 217, 2, 2, 648, 813, 3, 2, 2, 2, 649, 650, 7, 160, 2, 2, 650, 651, 7, 216, 2, 2, 651, 654, 5, 26, 14, 2, 652, 653, 7, 218, 2, 2, 653, 655, 5, 26, 14, 2, 654, 652, 3, 2, 2, 2, 654, 655, 3, 2, 2, 2, 655, 656, 3, 2, 2, 2, 656, 657, 7, 217, 2, 2, 657, 813, 3, 2, 2, 2, 658, 659, 7, 161, 2, 2, 659, 660, 7, 216, 2, 2, 660, 663, 5, 26, 14, 2, 661, 662, 7, 218, 2, 2, 662, 664, 5, 26, 14, 2, 663, 661, 3, 2, 2, 2, 663, 664, 3, 2, 2, 2, 664, 665, 3, 2, 2, 2, 665, 666, 7, 217, 2, 2, 666, 813, 3, 2, 2, 2, 667, 668, 7, 162, 2, 2, 668, 669, 7, 216, 2, 2, 669, 672, 5, 26, 14, 2, 670, 671, 7, 218, 2, 2, 671, 673, 5, 26, 14, 2, 672, 670, 3, 2, 2, 2, 672, 673, 3, 2, 2, 2, 673, 674, 3, 2, 2, 2, 674, 675, 7, 217, 2, 2, 675, 813, 3, 2, 2, 2, 676, 677, 7, 69, 2, 2, 677, 678, 7, 216, 2, 2, 678, 679, 5, 26, 14, 2, 679, 680, 7, 217, 2, 2, 680, 813, 3, 2, 2, 2, 681, 682, 7, 70, 2, 2, 682, 683, 7, 216, 2, 2, 683, 684, 5, 26, 14, 2, 684, 685, 7, 217, 2, 2, 685, 813, 3, 2, 2, 2, 686, 687, 7, 163, 2, 2, 687, 688, 7, 216, 2, 2, 688, 689, 5, 26, 14, 2, 689, 690, 7, 217, 2, 2, 690, 813, 3, 2, 2, 2, 691, 692, 7, 90, 2, 2, 692, 693, 7, 216, 2, 2, 693, 694, 5, 26, 14, 2, 694, 695, 7, 217, 2, 2, 695, 813, 3, 2, 2, 2, 696, 697, 7, 95, 2, 2, 697, 698, 7, 216, 2, 2, 698, 699, 5, 26, 14, 2, 699, 700, 7, 217, 2, 2, 700, 813, 3, 2, 2, 2, 701, 702, 7, 96, 2, 2, 702, 703, 7, 216, 2, 2, 703, 704, 5, 26, 14, 2, 704, 705, 7, 217, 2, 2, 705, 813, 3, 2, 2, 2, 706, 707, 7, 106, 2, 2, 707, 708, 7, 216, 2, 2, 708, 709, 5, 26, 14, 2, 709, 710, 7, 217, 2, 2, 710, 813, 3, 2, 2, 2, 711, 712, 7, 107, 2, 2, 712, 713, 7, 216, 2, 2, 713, 714, 5, 26, 14, 2, 714, 715, 7, 217, 2, 2, 715, 813, 3, 2, 2, 2, 716, 717, 7, 108, 2, 2, 717, 718, 7, 216, 2, 2, 718, 719, 5, 26, 14, 2, 719, 720, 7, 217, 2, 2, 720, 813, 3, 2, 2, 2, 721, 722, 7, 121, 2, 2, 722, 723, 7, 216, 2, 2, 723, 724, 5, 26, 14, 2, 724, 725, 7, 217, 2, 2, 725, 813, 3, 2, 2, 2, 726, 727, 7, 122, 2, 2, 727, 728, 7, 216, 2, 2, 728, 729, 5, 26, 14, 2, 729, 730, 7, 217, 2, 2, 730, 813, 3, 2, 2, 2, 731, 732, 7, 123, 2, 2, 732, 733, 7, 216, 2, 2, 733, 734, 5, 26, 14, 2, 734, 735, 7, 217, 2, 2, 735, 813, 3, 2, 2, 2, 736, 737, 7, 172, 2, 2, 737, 738, 7, 216, 2, 2, 738, 739, 5, 26, 14, 2, 739, 740, 7, 217, 2, 2, 740, 813, 3, 2, 2, 2, 741, 742, 7, 34, 2, 2, 742, 743, 7, 216, 2, 2, 743, 744, 5, 26, 14, 2, 744, 745, 7, 217, 2, 2, 745, 813, 3, 2, 2, 2, 746, 747, 7, 129, 2, 2, 747, 748, 7, 216, 2, 2, 748, 751, 5, 26, 14, 2, 749, 750, 7, 218, 2, 2, 750, 752, 5, 26, 14, 2, 751, 749, 3, 2, 2, 2, 751, 752, 3, 2, 2, 2, 752, 753, 3, 2, 2, 2, 753, 754, 7, 217, 2, 2, 754, 813, 3, 2, 2, 2, 755, 756, 7, 130, 2, 2, 756, 757, 7, 216, 2, 2, 757, 760, 5, 26, 14, 2, 758, 759, 7, 218, 2, 2, 759, 761, 5, 26, 14, 2, 760, 758, 3, 2, 2, 2, 760, 761, 3, 2, 2, 2, 761, 762, 3, 2, 2, 2, 762, 763, 7, 217, 2, 2, 763, 813, 3, 2, 2, 2, 764, 765, 7, 131, 2, 2, 765, 766, 7, 216, 2, 2, 766, 769, 5, 26, 14, 2, 767, 768, 7, 218, 2, 2, 768, 770, 5, 26, 14, 2, 769, 767, 3, 2, 2, 2, 769, 770, 3, 2, 2, 2, 770, 771, 3, 2, 2, 2, 771, 772, 7, 217, 2, 2, 772, 813, 3, 2, 2, 2, 773, 774, 7, 132, 2, 2, 774, 775, 7, 216, 2, 2, 775, 778, 5, 26, 14, 2, 776, 777, 7, 218, 2, 2, 777, 779, 5, 26, 14, 2, 778, 776, 3, 2, 2, 2, 778, 779, 3, 2, 2, 2, 779, 780, 3, 2, 2, 2, 780, 781, 7, 217, 2, 2, 781, 813, 3, 2, 2, 2, 782, 783, 7, 119, 2, 2, 783, 784, 7, 216, 2, 2, 784, 785, 5, 26, 14, 2, 785, 786, 7, 217, 2, 2, 786, 813, 3, 2, 2, 2, 787, 788, 7, 120, 2, 2, 788, 789, 7, 216, 2, 2, 789, 790, 5, 26, 14, 2, 790, 791, 7, 217, 2, 2, 791, 813, 3, 2, 2, 2, 792, 793, 7, 97, 2, 2, 793, 794, 7, 216, 2, 2, 794, 795, 5, 26, 14, 2, 795, 796, 7, 217, 2, 2, 796, 813, 3, 2, 2, 2, 797, 798, 7, 98, 2, 2, 798, 799, 7, 216, 2, 2, 799, 800, 5, 26, 14, 2, 800, 801, 7, 217, 2, 2, 801, 813, 3, 2, 2, 2, 802, 803, 7, 145, 2, 2, 803, 804, 7, 216, 2, 2, 804, 805, 5, 26, 14, 2, 805, 806, 7, 217, 2, 2, 806, 813, 3, 2, 2, 2, 807, 808, 7, 146, 2, 2, 808, 809, 7, 216, 2, 2, 809, 810, 5, 26, 14, 2, 810, 811, 7, 217, 2, 2, 811, 813, 3, 2, 2, 2, 812, 359, 3, 2, 2, 2, 812, 364, 3, 2, 2, 2, 812, 369, 3, 2, 2, 2, 812, 374, 3, 2, 2, 2, 812, 379, 3, 2, 2, 2, 812, 384, 3, 2, 2, 2, 812, 389, 3, 2, 2, 2, 812, 394, 3, 2, 2, 2, 812, 399, 3, 2, 2, 2, 812, 404, 3, 2, 2, 2, 812, 409, 3, 2, 2, 2, 812, 414, 3, 2, 2, 2, 812, 419, 3, 2, 2, 2, 812, 424, 3, 2, 2, 2, 812, 429, 3, 2, 2, 2, 812, 434, 3, 2, 2, 2, 812, 439, 3, 2, 2, 2, 812, 444, 3, 2, 2, 2, 812, 449, 3, 2, 2, 2, 812, 454, 3, 2, 2, 2, 812, 459, 3, 2, 2, 2, 812, 464, 3, 2, 2, 2, 812, 469, 3, 2, 2, 2, 812, 474, 3, 2, 2, 2, 812, 479, 3, 2, 2, 2, 812, 484, 3, 2, 2, 2, 812, 489, 3, 2, 2, 2, 812, 494, 3, 2, 2, 2, 812, 499, 3, 2, 2, 2, 812, 504, 3, 2, 2, 2, 812, 509, 3, 2, 2, 2, 812, 514, 3, 2, 2, 2, 812, 519, 3, 2, 2, 2, 812, 528, 3, 2, 2, 2, 812, 533, 3, 2, 2, 2, 812, 538, 3, 2, 2, 2, 812, 543, 3, 2, 2, 2, 812, 548, 3, 2, 2, 2, 812, 553, 3, 2, 2, 2, 812, 558, 3, 2, 2, 2, 812, 567, 3, 2, 2, 2, 812, 572, 3, 2, 2, 2, 812, 577, 3, 2, 2, 2, 812, 586, 3, 2, 2, 2, 812, 591, 3, 2, 2, 2, 812, 602, 3, 2, 2, 2, 812, 607, 3, 2, 2, 2, 812, 612, 3, 2, 2, 2, 812, 617, 3, 2, 2, 2, 812, 622, 3, 2, 2, 2, 812, 627, 3, 2, 2, 2, 812, 640, 3, 2, 2, 2, 812, 649, 3, 2, 2, 2, 812, 658, 3, 2, 2, 2, 812, 667, 3, 2, 2, 2, 812, 676, 3, 2, 2, 2, 812, 681, 3, 2, 2, 2, 812, 686, 3, 2, 2, 2, 812, 691, 3, 2, 2, 2, 812, 696, 3, 2, 2, 2, 812, 701, 3, 2, 2, 2, 812, 706, 3, 2, 2, 2, 812, 711, 3, 2, 2, 2, 812, 716, 3, 2, 2, 2, 812, 721, 3, 2, 2, 2, 812, 726, 3, 2, 2, 2, 812, 731, 3, 2, 2, 2, 812, 736, 3, 2, 2, 2, 812, 741, 3, 2, 2, 2, 812, 746, 3, 2, 2, 2, 812, 755, 3, 2, 2, 2, 812, 764, 3, 2, 2, 2, 812, 773, 3, 2, 2, 2, 812, 782, 3, 2, 2, 2, 812, 787, 3, 2, 2, 2, 812, 792, 3, 2, 2, 2, 812, 797, 3, 2, 2, 2, 812, 802, 3, 2, 2, 2, 812, 807, 3, 2, 2, 2, 813, 51, 3, 2, 2, 2, 814, 815, 7, 31, 2, 2, 815, 816, 7, 216, 2, 2, 816, 817, 5, 26, 14, 2, 817, 818, 7, 218, 2, 2, 818, 819, 5, 26, 14, 2, 819, 820, 7, 217, 2, 2, 820, 1167, 3, 2, 2, 2, 821, 822, 7, 9, 2, 2, 822, 823, 7, 216, 2, 2, 823, 824, 5, 26, 14, 2, 824, 825, 7, 218, 2, 2, 825, 826, 5, 26, 14, 2, 826, 827, 7, 217, 2, 2, 827, 1167, 3, 2, 2, 2, 828, 829, 7, 23, 2, 2, 829, 830, 7, 216, 2, 2, 830, 831, 5, 26, 14, 2, 831, 832, 7, 218, 2, 2, 832, 833, 5, 26, 14, 2, 833, 834, 7, 217, 2, 2, 834, 1167, 3, 2, 2, 2, 835, 836, 7, 24, 2, 2, 836, 837, 7, 216, 2, 2, 837, 838, 5, 26, 14, 2, 838, 839, 7, 218, 2, 2, 839, 840, 5, 26, 14, 2, 840, 841, 7, 217, 2, 2, 841, 1167, 3, 2, 2, 2, 842, 843, 7, 26, 2, 2, 843, 844, 7, 216, 2, 2, 844, 847, 5, 26, 14, 2, 845, 846, 7, 218, 2, 2, 846, 848, 5, 26, 14, 2, 847, 845, 3, 2, 2, 2, 847, 848, 3, 2, 2, 2, 848, 849, 3, 2, 2, 2, 849, 850, 7, 217, 2, 2, 850, 1167, 3, 2, 2, 2, 851, 852, 7, 41, 2, 2, 852, 853, 7, 216, 2, 2, 853, 854, 5, 26, 14, 2, 854, 855, 7, 218, 2, 2, 855, 856, 5, 26, 14, 2, 856, 857, 7, 217, 2, 2, 857, 1167, 3, 2, 2, 2, 858, 859, 7, 57, 2, 2, 859, 860, 7, 216, 2, 2, 860, 861, 5, 26, 14, 2, 861, 862, 7, 218, 2, 2, 862, 863, 5, 26, 14, 2, 863, 864, 7, 217, 2, 2, 864, 1167, 3, 2, 2, 2, 865, 866, 7, 58, 2, 2, 866, 867, 7, 216, 2, 2, 867, 868, 5, 26, 14, 2, 868, 869, 7, 218, 2, 2, 869, 870, 5, 26, 14, 2, 870, 871, 7, 217, 2, 2, 871, 1167, 3, 2, 2, 2, 872, 873, 7, 64, 2, 2, 873, 874, 7, 216, 2, 2, 874, 875, 5, 26, 14, 2, 875, 876, 7, 218, 2, 2, 876, 877, 5, 26, 14, 2, 877, 878, 7, 217, 2, 2, 878, 1167, 3, 2, 2, 2, 879, 880, 7, 65, 2, 2, 880, 881, 7, 216, 2, 2, 881, 882, 5, 26, 14, 2, 882, 883, 7, 218, 2, 2, 883, 884, 5, 26, 14, 2, 884, 885, 7, 217, 2, 2, 885, 1167, 3, 2, 2, 2, 886, 887, 7, 66, 2, 2, 887, 888, 7, 216, 2, 2, 888, 889, 5, 26, 14, 2, 889, 890, 7, 218, 2, 2, 890, 891, 5, 26, 14, 2, 891, 892, 7, 217, 2, 2, 892, 1167, 3, 2, 2, 2, 893, 894, 7, 67, 2, 2, 894, 895, 7, 216, 2, 2, 895, 896, 5, 26, 14, 2, 896, 897, 7, 218, 2, 2, 897, 898, 5, 26, 14, 2, 898, 899, 7, 217, 2, 2, 899, 1167, 3, 2, 2, 2, 900, 901, 7, 87, 2, 2, 901, 902, 7, 216, 2, 2, 902, 903, 5, 26, 14, 2, 903, 904, 7, 218, 2, 2, 904, 905, 5, 26, 14, 2, 905, 906, 7, 217, 2, 2, 906, 1167, 3, 2, 2, 2, 907, 908, 7, 165, 2, 2, 908, 909, 7, 216, 2, 2, 909, 910, 5, 26, 14, 2, 910, 911, 7, 218, 2, 2, 911, 912, 5, 26, 14, 2, 912, 913, 7, 217, 2, 2, 913, 1167, 3, 2, 2, 2, 914, 915, 7, 166, 2, 2, 915, 916, 7, 216, 2, 2, 916, 917, 5, 26, 14, 2, 917, 918, 7, 218, 2, 2, 918, 919, 5, 26, 14, 2, 919, 920, 7, 217, 2, 2, 920, 1167, 3, 2, 2, 2, 921, 922, 7, 164, 2, 2, 922, 923, 7, 216, 2, 2, 923, 924, 5, 26, 14, 2, 924, 925, 7, 218, 2, 2, 925, 926, 5, 26, 14, 2, 926, 927, 7, 217, 2, 2, 927, 1167, 3, 2, 2, 2, 928, 929, 7, 170, 2, 2, 929, 930, 7, 216, 2, 2, 930, 931, 5, 26, 14, 2, 931, 932, 7, 218, 2, 2, 932, 933, 5, 26, 14, 2, 933, 934, 7, 217, 2, 2, 934, 1167, 3, 2, 2, 2, 935, 936, 7, 171, 2, 2, 936, 937, 7, 216, 2, 2, 937, 938, 5, 26, 14, 2, 938, 939, 7, 218, 2, 2, 939, 940, 5, 26, 14, 2, 940, 941, 7, 217, 2, 2, 941, 1167, 3, 2, 2, 2, 942, 943, 7, 91, 2, 2, 943, 944, 7, 216, 2, 2, 944, 945, 5, 26, 14, 2, 945, 946, 7, 218, 2, 2, 946, 947, 5, 26, 14, 2, 947, 948, 7, 217, 2, 2, 948, 1167, 3, 2, 2, 2, 949, 950, 7, 52, 2, 2, 950, 951, 7, 216, 2, 2, 951, 952, 5, 26, 14, 2, 952, 953, 7, 218, 2, 2, 953, 954, 5, 26, 14, 2, 954, 955, 7, 217, 2, 2, 955, 1167, 3, 2, 2, 2, 956, 957, 7, 74, 2, 2, 957, 958, 7, 216, 2, 2, 958, 959, 5, 26, 14, 2, 959, 960, 7, 218, 2, 2, 960, 963, 5, 26, 14, 2, 961, 962, 7, 218, 2, 2, 962, 964, 5, 26, 14, 2, 963, 961, 3, 2, 2, 2, 963, 964, 3, 2, 2, 2, 964, 965, 3, 2, 2, 2, 965, 966, 7, 217, 2, 2, 966, 1167, 3, 2, 2, 2, 967, 968, 7, 79, 2, 2, 968, 969, 7, 216, 2, 2, 969, 970, 5, 26, 14, 2, 970, 971, 7, 218, 2, 2, 971, 972, 5, 26, 14, 2, 972, 973, 7, 217, 2, 2, 973, 1167, 3, 2, 2, 2, 974, 975, 7, 80, 2, 2, 975, 976, 7, 216, 2, 2, 976, 977, 5, 26, 14, 2, 977, 978, 7, 218, 2, 2, 978, 979, 5, 26, 14, 2, 979, 980, 7, 217, 2, 2, 980, 1167, 3, 2, 2, 2, 981, 982, 7, 94, 2, 2, 982, 983, 7, 216, 2, 2, 983, 984, 5, 26, 14, 2, 984, 985, 7, 218, 2, 2, 985, 986, 5, 26, 14, 2, 986, 987, 7, 217, 2, 2, 987, 1167, 3, 2, 2, 2, 988, 989, 7, 113, 2, 2, 989, 990, 7, 216, 2, 2, 990, 991, 5, 26, 14, 2, 991, 992, 7, 218, 2, 2, 992, 993, 5, 26, 14, 2, 993, 994, 7, 217, 2, 2, 994, 1167, 3, 2, 2, 2, 995, 996, 7, 92, 2, 2, 996, 997, 7, 216, 2, 2, 997, 998, 5, 26, 14, 2, 998, 999, 7, 218, 2, 2, 999, 1000, 5, 26, 14, 2, 1000, 1001, 7, 217, 2, 2, 1001, 1167, 3, 2, 2, 2, 1002, 1003, 7, 112, 2, 2, 1003, 1004, 7, 216, 2, 2, 1004, 1011, 5, 42, 22, 2, 1005, 1006, 7, 218, 2, 2, 1006, 1009, 5, 26, 14, 2, 1007, 1008, 7, 218, 2, 2, 1008, 1010, 5, 26, 14, 2, 1009, 1007, 3, 2, 2, 2, 1009, 1010, 3, 2, 2, 2, 1010, 1012, 3, 2, 2, 2, 1011, 1005, 3, 2, 2, 2, 1011, 1012, 3, 2, 2, 2, 1012, 1013, 3, 2, 2, 2, 1013, 1014, 7, 217, 2, 2, 1014, 1167, 3, 2, 2, 2, 1015, 1016, 7, 102, 2, 2, 1016, 1017, 7, 216, 2, 2, 1017, 1018, 5, 26, 14, 2, 1018, 1019, 7, 218, 2, 2, 1019, 1020, 5, 26, 14, 2, 1020, 1021, 7, 217, 2, 2, 1021, 1167, 3, 2, 2, 2, 1022, 1023, 7, 103, 2, 2, 1023, 1024, 7, 216, 2, 2, 1024, 1025, 5, 26, 14, 2, 1025, 1026, 7, 218, 2, 2, 1026, 1027, 5, 26, 14, 2, 1027, 1028, 7, 217, 2, 2, 1028, 1167, 3, 2, 2, 2, 1029, 1030, 7, 104, 2, 2, 1030, 1031, 7, 216, 2, 2, 1031, 1032, 5, 26, 14, 2, 1032, 1033, 7, 218, 2, 2, 1033, 1034, 5, 26, 14, 2, 1034, 1035, 7, 217, 2, 2, 1035, 1167, 3, 2, 2, 2, 1036, 1037, 7, 93, 2, 2, 1037, 1038, 7, 216, 2, 2, 1038, 1039, 5, 26, 14, 2, 1039, 1040, 7, 218, 2, 2, 1040, 1041, 5, 26, 14, 2, 1041, 1042, 7, 217, 2, 2, 1042, 1167, 3, 2, 2, 2, 1043, 1044, 7, 105, 2, 2, 1044, 1045, 7, 216, 2, 2, 1045, 1046, 5, 26, 14, 2, 1046, 1047, 7, 218, 2, 2, 1047, 1058, 5, 26, 14, 2, 1048, 1049, 7, 218, 2, 2, 1049, 1056, 5, 26, 14, 2, 1050, 1051, 7, 218, 2, 2, 1051, 1054, 5, 26, 14, 2, 1052, 1053, 7, 218, 2, 2, 1053, 1055, 5, 26, 14, 2, 1054, 1052, 3, 2, 2, 2, 1054, 1055, 3, 2, 2, 2, 1055, 1057, 3, 2, 2, 2, 1056, 1050, 3, 2, 2, 2, 1056, 1057, 3, 2, 2, 2, 1057, 1059, 3, 2, 2, 2, 1058, 1048, 3, 2, 2, 2, 1058, 1059, 3, 2, 2, 2, 1059, 1060, 3, 2, 2, 2, 1060, 1061, 7, 217, 2, 2, 1061, 1167, 3, 2, 2, 2, 1062, 1063, 7, 109, 2, 2, 1063, 1064, 7, 216, 2, 2, 1064, 1065, 5, 26, 14, 2, 1065, 1066, 7, 218, 2, 2, 1066, 1067, 5, 26, 14, 2, 1067, 1068, 7, 217, 2, 2, 1068, 1167, 3, 2, 2, 2, 1069, 1070, 7, 110, 2, 2, 1070, 1071, 7, 216, 2, 2, 1071, 1072, 5, 26, 14, 2, 1072, 1073, 7, 218, 2, 2, 1073, 1074, 5, 26, 14, 2, 1074, 1075, 7, 217, 2, 2, 1075, 1167, 3, 2, 2, 2, 1076, 1077, 7, 111, 2, 2, 1077, 1078, 7, 216, 2, 2, 1078, 1079, 5, 26, 14, 2, 1079, 1080, 7, 218, 2, 2, 1080, 1081, 5, 26, 14, 2, 1081, 1082, 7, 217, 2, 2, 1082, 1167, 3, 2, 2, 2, 1083, 1084, 7, 124, 2, 2, 1084, 1085, 7, 216, 2, 2, 1085, 1088, 5, 26, 14, 2, 1086, 1087, 7, 218, 2, 2, 1087, 1089, 5, 26, 14, 2, 1088, 1086, 3, 2, 2, 2, 1088, 1089, 3, 2, 2, 2, 1089, 1090, 3, 2, 2, 2, 1090, 1091, 7, 217, 2, 2, 1091, 1167, 3, 2, 2, 2, 1092, 1093, 7, 125, 2, 2, 1093, 1094, 7, 216, 2, 2, 1094, 1097, 5, 26, 14, 2, 1095, 1096, 7, 218, 2, 2, 1096, 1098, 5, 26, 14, 2, 1097, 1095, 3, 2, 2, 2, 1097, 1098, 3, 2, 2, 2, 1098, 1099, 3, 2, 2, 2, 1099, 1100, 7, 217, 2, 2, 1100, 1167, 3, 2, 2, 2, 1101, 1102, 7, 126, 2, 2, 1102, 1103, 7, 216, 2, 2, 1103, 1104, 5, 26, 14, 2, 1104, 1105, 7, 218, 2, 2, 1105, 1108, 5, 26, 14, 2, 1106, 1107, 7, 218, 2, 2, 1107, 1109, 5, 26, 14, 2, 1108, 1106, 3, 2, 2, 2, 1108, 1109, 3, 2, 2, 2, 1109, 1110, 3, 2, 2, 2, 1110, 1111, 7, 217, 2, 2, 1111, 1167, 3, 2, 2, 2, 1112, 1113, 7, 127, 2, 2, 1113, 1114, 7, 216, 2, 2, 1114, 1115, 5, 26, 14, 2, 1115, 1116, 7, 218, 2, 2, 1116, 1117, 5, 26, 14, 2, 1117, 1118, 7, 217, 2, 2, 1118, 1167, 3, 2, 2, 2, 1119, 1120, 7, 128, 2, 2, 1120, 1121, 7, 216, 2, 2, 1121, 1122, 5, 26, 14, 2, 1122, 1123, 7, 218, 2, 2, 1123, 1124, 5, 26, 14, 2, 1124, 1125, 7, 218, 2, 2, 1125, 1126, 5, 26, 14, 2, 1126, 1127, 7, 217, 2, 2, 1127, 1167, 3, 2, 2, 2, 1128, 1129, 7, 139, 2, 2, 1129, 1130, 7, 216, 2, 2, 1130, 1131, 5, 26, 14, 2, 1131, 1132, 7, 217, 2, 2, 1132, 1167, 3, 2, 2, 2, 1133, 1134, 7, 140, 2, 2, 1134, 1135, 7, 216, 2, 2, 1135, 1141, 5, 26, 14, 2, 1136, 1137, 7, 218, 2, 2, 1137, 1138, 5, 26, 14, 2, 1138, 1139, 7, 218, 2, 2, 1139, 1140, 5, 26, 14, 2, 1140, 1142, 3, 2, 2, 2, 1141, 1136, 3, 2, 2, 2, 1141, 1142, 3, 2, 2, 2, 1142, 1143, 3, 2, 2, 2, 1143, 1144, 7, 217, 2, 2, 1144, 1167, 3, 2, 2, 2, 1145, 1146, 7, 141, 2, 2, 1146, 1147, 7, 216, 2, 2, 1147, 1148, 5, 26, 14, 2, 1148, 1149, 7, 218, 2, 2, 1149, 1150, 5, 26, 14, 2, 1150, 1151, 7, 217, 2, 2, 1151, 1167, 3, 2, 2, 2, 1152, 1153, 7, 142, 2, 2, 1153, 1154, 7, 216, 2, 2, 1154, 1155, 5, 26, 14, 2, 1155, 1156, 7, 218, 2, 2, 1156, 1157, 5, 26, 14, 2, 1157, 1158, 7, 217, 2, 2, 1158, 1167, 3, 2, 2, 2, 1159, 1160, 7, 143, 2, 2, 1160, 1161, 7, 216, 2, 2, 1161, 1162, 5, 26, 14, 2, 1162, 1163, 7, 218, 2, 2, 1163, 1164, 5, 26, 14, 2, 1164, 1165, 7, 217, 2, 2, 1165, 1167, 3, 2, 2, 2, 1166, 814, 3, 2, 2, 2, 1166, 821, 3, 2, 2, 2, 1166, 828, 3, 2, 2, 2, 1166, 835, 3, 2, 2, 2, 1166, 842, 3, 2, 2, 2, 1166, 851, 3, 2, 2, 2, 1166, 858, 3, 2, 2, 2, 1166, 865, 3, 2, 2, 2, 1166, 872, 3, 2, 2, 2, 1166, 879, 3, 2, 2, 2, 1166, 886, 3, 2, 2, 2, 1166, 893, 3, 2, 2, 2, 1166, 900, 3, 2, 2, 2, 1166, 907, 3, 2, 2, 2, 1166, 914, 3, 2, 2, 2, 1166, 921, 3, 2, 2, 2, 1166, 928, 3, 2, 2, 2, 1166, 935, 3, 2, 2, 2, 1166, 942, 3, 2, 2, 2, 1166, 949, 3, 2, 2, 2, 1166, 956, 3, 2, 2, 2, 1166, 967, 3, 2, 2, 2, 1166, 974, 3, 2, 2, 2, 1166, 981, 3, 2, 2, 2, 1166, 988, 3, 2, 2, 2, 1166, 995, 3, 2, 2, 2, 1166, 1002, 3, 2, 2, 2, 1166, 1015, 3, 2, 2, 2, 1166, 1022, 3, 2, 2, 2, 1166, 1029, 3, 2, 2, 2, 1166, 1036, 3, 2, 2, 2, 1166, 1043, 3, 2, 2, 2, 1166, 1062, 3, 2, 2, 2, 1166, 1069, 3, 2, 2, 2, 1166, 1076, 3, 2, 2, 2, 1166, 1083, 3, 2, 2, 2, 1166, 1092, 3, 2, 2, 2, 1166, 1101, 3, 2, 2, 2, 1166, 1112, 3, 2, 2, 2, 1166, 1119, 3, 2, 2, 2, 1166, 1128, 3, 2, 2, 2, 1166, 1133, 3, 2, 2, 2, 1166, 1145, 3, 2, 2, 2, 1166, 1152, 3, 2, 2, 2, 1166, 1159, 3, 2, 2, 2, 1167, 53, 3, 2, 2, 2, 1168, 1169, 7, 33, 2, 2, 1169, 1170, 7, 216, 2, 2, 1170, 1171, 5, 26, 14, 2, 1171, 1172, 7, 218, 2, 2, 1172, 1173, 5, 26, 14, 2, 1173, 1174, 7, 218, 2, 2, 1174, 1175, 5, 26, 14, 2, 1175, 1176, 7, 217, 2, 2, 1176, 1434, 3, 2, 2, 2, 1177, 1178, 7, 40, 2, 2, 1178, 1179, 7, 216, 2, 2, 1179, 1180, 5, 26, 14, 2, 1180, 1181, 7, 218, 2, 2, 1181, 1182, 5, 26, 14, 2, 1182, 1183, 7, 218, 2, 2, 1183, 1184, 5, 26, 14, 2, 1184, 1185, 7, 217, 2, 2, 1185, 1434, 3, 2, 2, 2, 1186, 1187, 7, 42, 2, 2, 1187, 1188, 7, 216, 2, 2, 1188, 1189, 5, 26, 14, 2, 1189, 1190, 7, 218, 2, 2, 1190, 1191, 5, 26, 14, 2, 1191, 1192, 7, 218, 2, 2, 1192, 1193, 5, 26, 14, 2, 1193, 1194, 7, 217, 2, 2, 1194, 1434, 3, 2, 2, 2, 1195, 1196, 7, 54, 2, 2, 1196, 1197, 7, 216, 2, 2, 1197, 1198, 5, 26, 14, 2, 1198, 1199, 7, 218, 2, 2, 1199, 1200, 5, 26, 14, 2, 1200, 1201, 7, 218, 2, 2, 1201, 1202, 5, 26, 14, 2, 1202, 1203, 7, 217, 2, 2, 1203, 1434, 3, 2, 2, 2, 1204, 1205, 7, 68, 2, 2, 1205, 1206, 7, 216, 2, 2, 1206, 1207, 5, 26, 14, 2, 1207, 1208, 7, 218, 2, 2, 1208, 1209, 5, 26, 14, 2, 1209, 1210, 7, 218, 2, 2, 1210, 1211, 5, 26, 14, 2, 1211, 1212, 7, 217, 2, 2, 1212, 1434, 3, 2, 2, 2, 1213, 1214, 7, 81, 2, 2, 1214, 1215, 7, 216, 2, 2, 1215, 1216, 5, 26, 14, 2, 1216, 1217, 7, 218, 2, 2, 1217, 1218, 5, 26, 14, 2, 1218, 1219, 7, 218, 2, 2, 1219, 1220, 5, 26, 14, 2, 1220, 1221, 7, 217, 2, 2, 1221, 1434, 3, 2, 2, 2, 1222, 1223, 7, 82, 2, 2, 1223, 1224, 7, 216, 2, 2, 1224, 1225, 5, 26, 14, 2, 1225, 1226, 7, 218, 2, 2, 1226, 1227, 5, 26, 14, 2, 1227, 1228, 7, 218, 2, 2, 1228, 1229, 5, 26, 14, 2, 1229, 1230, 7, 217, 2, 2, 1230, 1434, 3, 2, 2, 2, 1231, 1232, 7, 83, 2, 2, 1232, 1233, 7, 216, 2, 2, 1233, 1234, 5, 26, 14, 2, 1234, 1235, 7, 218, 2, 2, 1235, 1236, 5, 26, 14, 2, 1236, 1237, 7, 218, 2, 2, 1237, 1238, 5, 26, 14, 2, 1238, 1239, 7, 217, 2, 2, 1239, 1434, 3, 2, 2, 2, 1240, 1241, 7, 84, 2, 2, 1241, 1242, 7, 216, 2, 2, 1242, 1243, 5, 26, 14, 2, 1243, 1244, 7, 218, 2, 2, 1244, 1245, 5, 26, 14, 2, 1245, 1246, 7, 218, 2, 2, 1246, 1247, 5, 26, 14, 2, 1247, 1248, 7, 217, 2, 2, 1248, 1434, 3, 2, 2, 2, 1249, 1250, 7, 173, 2, 2, 1250, 1251, 7, 216, 2, 2, 1251, 1252, 5, 26, 14, 2, 1252, 1253, 7, 218, 2, 2, 1253, 1254, 5, 26, 14, 2, 1254, 1255, 7, 218, 2, 2, 1255, 1256, 5, 26, 14, 2, 1256, 1257, 7, 217, 2, 2, 1257, 1434, 3, 2, 2, 2, 1258, 1259, 7, 35, 2, 2, 1259, 1260, 7, 216, 2, 2, 1260, 1263, 5, 26, 14, 2, 1261, 1262, 7, 218, 2, 2, 1262, 1264, 5, 26, 14, 2, 1263, 1261, 3, 2, 2, 2, 1263, 1264, 3, 2, 2, 2, 1264, 1265, 3, 2, 2, 2, 1265, 1266, 7, 217, 2, 2, 1266, 1434, 3, 2, 2, 2, 1267, 1268, 7, 101, 2, 2, 1268, 1269, 7, 216, 2, 2, 1269, 1270, 5, 26, 14, 2, 1270, 1271, 7, 218, 2, 2, 1271, 1272, 5, 26, 14, 2, 1272, 1273, 7, 218, 2, 2, 1273, 1276, 5, 26, 14, 2, 1274, 1275, 7, 218, 2, 2, 1275, 1277, 5, 26, 14, 2, 1276, 1274, 3, 2, 2, 2, 1276, 1277, 3, 2, 2, 2, 1277, 1278, 3, 2, 2, 2, 1278, 1279, 7, 217, 2, 2, 1279, 1434, 3, 2, 2, 2, 1280, 1281, 7, 55, 2, 2, 1281, 1282, 7, 216, 2, 2, 1282, 1283, 5, 26, 14, 2, 1283, 1284, 7, 218, 2, 2, 1284, 1285, 5, 26, 14, 2, 1285, 1286, 7, 218, 2, 2, 1286, 1287, 5, 26, 14, 2, 1287, 1288, 7, 217, 2, 2, 1288, 1434, 3, 2, 2, 2, 1289, 1290, 7, 169, 2, 2, 1290, 1291, 7, 216, 2, 2, 1291, 1292, 5, 26, 14, 2, 1292, 1293, 7, 218, 2, 2, 1293, 1296, 5, 26, 14, 2, 1294, 1295, 7, 218, 2, 2, 1295, 1297, 5, 26, 14, 2, 1296, 1294, 3, 2, 2, 2, 1296, 1297, 3, 2, 2, 2, 1297, 1298, 3, 2, 2, 2, 1298, 1299, 7, 217, 2, 2, 1299, 1434, 3, 2, 2, 2, 1300, 1301, 7, 133, 2, 2, 1301, 1302, 7, 216, 2, 2, 1302, 1308, 5, 26, 14, 2, 1303, 1304, 7, 218, 2, 2, 1304, 1305, 5, 26, 14, 2, 1305, 1306, 7, 218, 2, 2, 1306, 1307, 5, 26, 14, 2, 1307, 1309, 3, 2, 2, 2, 1308, 1303, 3, 2, 2, 2, 1308, 1309, 3, 2, 2, 2, 1309, 1310, 3, 2, 2, 2, 1310, 1311, 7, 217, 2, 2, 1311, 1434, 3, 2, 2, 2, 1312, 1313, 7, 134, 2, 2, 1313, 1314, 7, 216, 2, 2, 1314, 1320, 5, 26, 14, 2, 1315, 1316, 7, 218, 2, 2, 1316, 1317, 5, 26, 14, 2, 1317, 1318, 7, 218, 2, 2, 1318, 1319, 5, 26, 14, 2, 1319, 1321, 3, 2, 2, 2, 1320, 1315, 3, 2, 2, 2, 1320, 1321, 3, 2, 2, 2, 1321, 1322, 3, 2, 2, 2, 1322, 1323, 7, 217, 2, 2, 1323, 1434, 3, 2, 2, 2, 1324, 1325, 7, 137, 2, 2, 1325, 1326, 7, 216, 2, 2, 1326, 1332, 5, 26, 14, 2, 1327, 1328, 7, 218, 2, 2, 1328, 1329, 5, 26, 14, 2, 1329, 1330, 7, 218, 2, 2, 1330, 1331, 5, 26, 14, 2, 1331, 1333, 3, 2, 2, 2, 1332, 1327, 3, 2, 2, 2, 1332, 1333, 3, 2, 2, 2, 1333, 1336, 3, 2, 2, 2, 1334, 1335, 7, 218, 2, 2, 1335, 1337, 5, 26, 14, 2, 1336, 1334, 3, 2, 2, 2, 1336, 1337, 3, 2, 2, 2, 1337, 1338, 3, 2, 2, 2, 1338, 1339, 7, 217, 2, 2, 1339, 1434, 3, 2, 2, 2, 1340, 1341, 7, 138, 2, 2, 1341, 1342, 7, 216, 2, 2, 1342, 1348, 5, 26, 14, 2, 1343, 1344, 7, 218, 2, 2, 1344, 1345, 5, 26, 14, 2, 1345, 1346, 7, 218, 2, 2, 1346, 1347, 5, 26, 14, 2, 1347, 1349, 3, 2, 2, 2, 1348, 1343, 3, 2, 2, 2, 1348, 1349, 3, 2, 2, 2, 1349, 1352, 3, 2, 2, 2, 1350, 1351, 7, 218, 2, 2, 1351, 1353, 5, 26, 14, 2, 1352, 1350, 3, 2, 2, 2, 1352, 1353, 3, 2, 2, 2, 1353, 1354, 3, 2, 2, 2, 1354, 1355, 7, 217, 2, 2, 1355, 1434, 3, 2, 2, 2, 1356, 1357, 7, 99, 2, 2, 1357, 1358, 7, 216, 2, 2, 1358, 1359, 5, 26, 14, 2, 1359, 1360, 7, 218, 2, 2, 1360, 1361, 5, 26, 14, 2, 1361, 1362, 7, 218, 2, 2, 1362, 1363, 5, 26, 14, 2, 1363, 1364, 7, 217, 2, 2, 1364, 1434, 3, 2, 2, 2, 1365, 1366, 7, 135, 2, 2, 1366, 1367, 7, 216, 2, 2, 1367, 1373, 5, 26, 14, 2, 1368, 1369, 7, 218, 2, 2, 1369, 1370, 5, 26, 14, 2, 1370, 1371, 7, 218, 2, 2, 1371, 1372, 5, 26, 14, 2, 1372, 1374, 3, 2, 2, 2, 1373, 1368, 3, 2, 2, 2, 1373, 1374, 3, 2, 2, 2, 1374, 1375, 3, 2, 2, 2, 1375, 1376, 7, 217, 2, 2, 1376, 1434, 3, 2, 2, 2, 1377, 1378, 7, 136, 2, 2, 1378, 1379, 7, 216, 2, 2, 1379, 1385, 5, 26, 14, 2, 1380, 1381, 7, 218, 2, 2, 1381, 1382, 5, 26, 14, 2, 1382, 1383, 7, 218, 2, 2, 1383, 1384, 5, 26, 14, 2, 1384, 1386, 3, 2, 2, 2, 1385, 1380, 3, 2, 2, 2, 1385, 1386, 3, 2, 2, 2, 1386, 1387, 3, 2, 2, 2, 1387, 1388, 7, 217, 2, 2, 1388, 1434, 3, 2, 2, 2, 1389, 1390, 7, 144, 2, 2, 1390, 1391, 7, 216, 2, 2, 1391, 1392, 5, 26, 14, 2, 1392, 1393, 7, 218, 2, 2, 1393, 1394, 5, 26, 14, 2, 1394, 1395, 7, 218, 2, 2, 1395, 1398, 5, 26, 14, 2, 1396, 1397, 7, 218, 2, 2, 1397, 1399, 5, 26, 14, 2, 1398, 1396, 3, 2, 2, 2, 1398, 1399, 3, 2, 2, 2, 1399, 1402, 3, 2, 2, 2, 1400, 1401, 7, 218, 2, 2, 1401, 1403, 5, 26, 14, 2, 1402, 1400, 3, 2, 2, 2, 1402, 1403, 3, 2, 2, 2, 1403, 1406, 3, 2, 2, 2, 1404, 1405, 7, 218, 2, 2, 1405, 1407, 5, 26, 14, 2, 1406, 1404, 3, 2, 2, 2, 1406, 1407, 3, 2, 2, 2, 1407, 1410, 3, 2, 2, 2, 1408, 1409, 7, 218, 2, 2, 1409, 1411, 5, 26, 14, 2, 1410, 1408, 3, 2, 2, 2, 1410, 1411, 3, 2, 2, 2, 1411, 1414, 3, 2, 2, 2, 1412, 1413, 7, 218, 2, 2, 1413, 1415, 5, 26, 14, 2, 1414, 1412, 3, 2, 2, 2, 1414, 1415, 3, 2, 2, 2, 1415, 1418, 3, 2, 2, 2, 1416, 1417, 7, 218, 2, 2, 1417, 1419, 5, 26, 14, 2, 1418, 1416, 3, 2, 2, 2, 1418, 1419, 3, 2, 2, 2, 1419, 1420, 3, 2, 2, 2, 1420, 1421, 7, 217, 2, 2, 1421, 1434, 3, 2, 2, 2, 1422, 1423, 7, 175, 2, 2, 1423, 1424, 7, 216, 2, 2, 1424, 1425, 5, 26, 14, 2, 1425, 1426, 7, 218, 2, 2, 1426, 1429, 5, 26, 14, 2, 1427, 1428, 7, 218, 2, 2, 1428, 1430, 5, 26, 14, 2, 1429, 1427, 3, 2, 2, 2, 1429, 1430, 3, 2, 2, 2, 1430, 1431, 3, 2, 2, 2, 1431, 1432, 7, 217, 2, 2, 1432, 1434, 3, 2, 2, 2, 1433, 1168, 3, 2, 2, 2, 1433, 1177, 3, 2, 2, 2, 1433, 1186, 3, 2, 2, 2, 1433, 1195, 3, 2, 2, 2, 1433, 1204, 3, 2, 2, 2, 1433, 1213, 3, 2, 2, 2, 1433, 1222, 3, 2, 2, 2, 1433, 1231, 3, 2, 2, 2, 1433, 1240, 3, 2, 2, 2, 1433, 1249, 3, 2, 2, 2, 1433, 1258, 3, 2, 2, 2, 1433, 1267, 3, 2, 2, 2, 1433, 1280, 3, 2, 2, 2, 1433, 1289, 3, 2, 2, 2, 1433, 1300, 3, 2, 2, 2, 1433, 1312, 3, 2, 2, 2, 1433, 1324, 3, 2, 2, 2, 1433, 1340, 3, 2, 2, 2, 1433, 1356, 3, 2, 2, 2, 1433, 1365, 3, 2, 2, 2, 1433, 1377, 3, 2, 2, 2, 1433, 1389, 3, 2, 2, 2, 1433, 1422, 3, 2, 2, 2, 1434, 55, 3, 2, 2, 2, 1435, 1436, 7, 51, 2, 2, 1436, 1437, 7, 216, 2, 2, 1437, 1438, 5, 26, 14, 2, 1438, 1439, 7, 218, 2, 2, 1439, 1440, 5, 26, 14, 2, 1440, 1441, 7, 218, 2, 2, 1441, 1442, 5, 26, 14, 2, 1442, 1443, 7, 218, 2, 2, 1443, 1444, 5, 26, 14, 2, 1444, 1445, 7, 217, 2, 2, 1445, 1491, 3, 2, 2, 2, 1446, 1447, 7, 39, 2, 2, 1447, 1448, 7, 216, 2, 2, 1448, 1449, 5, 26, 14, 2, 1449, 1450, 7, 218, 2, 2, 1450, 1451, 5, 26, 14, 2, 1451, 1452, 7, 218, 2, 2, 1452, 1453, 5, 26, 14, 2, 1453, 1454, 7, 218, 2, 2, 1454, 1455, 5, 26, 14, 2, 1455, 1456, 7, 217, 2, 2, 1456, 1491, 3, 2, 2, 2, 1457, 1458, 7, 56, 2, 2, 1458, 1459, 7, 216, 2, 2, 1459, 1460, 5, 26, 14, 2, 1460, 1461, 7, 218, 2, 2, 1461, 1462, 5, 26, 14, 2, 1462, 1463, 7, 218, 2, 2, 1463, 1464, 5, 26, 14, 2, 1464, 1465, 7, 218, 2, 2, 1465, 1466, 5, 26, 14, 2, 1466, 1467, 7, 217, 2, 2, 1467, 1491, 3, 2, 2, 2, 1468, 1469, 7, 85, 2, 2, 1469, 1470, 7, 216, 2, 2, 1470, 1471, 5, 26, 14, 2, 1471, 1472, 7, 218, 2, 2, 1472, 1473, 5, 26, 14, 2, 1473, 1474, 7, 218, 2, 2, 1474, 1475, 5, 26, 14, 2, 1475, 1476, 7, 218, 2, 2, 1476, 1477, 5, 26, 14, 2, 1477, 1478, 7, 217, 2, 2, 1478, 1491, 3, 2, 2, 2, 1479, 1480, 7, 100, 2, 2, 1480, 1481, 7, 216, 2, 2, 1481, 1482, 5, 26, 14, 2, 1482, 1483, 7, 218, 2, 2, 1483, 1484, 5, 26, 14, 2, 1484, 1485, 7, 218, 2, 2, 1485, 1486, 5, 26, 14, 2, 1486, 1487, 7, 218, 2, 2, 1487, 1488, 5, 26, 14, 2, 1488, 1489, 7, 217, 2, 2, 1489, 1491, 3, 2, 2, 2, 1490, 1435, 3, 2, 2, 2, 1490, 1446, 3, 2, 2, 2, 1490, 1457, 3, 2, 2, 2, 1490, 1468, 3, 2, 2, 2, 1490, 1479, 3, 2, 2, 2, 1491, 57, 3, 2, 2, 2, 1492, 1493, 7, 86, 2, 2, 1493, 1494, 7, 216, 2, 2, 1494, 1495, 5, 26, 14, 2, 1495, 1496, 7, 218, 2, 2, 1496, 1497, 5, 26, 14, 2, 1497, 1498, 7, 218, 2, 2, 1498, 1499, 5, 26, 14, 2, 1499, 1500, 7, 218, 2, 2, 1500, 1501, 5, 26, 14, 2, 1501, 1502, 7, 218, 2, 2, 1502, 1503, 5, 26, 14, 2, 1503, 1504, 7, 217, 2, 2, 1504, 1525, 3, 2, 2, 2, 1505, 1506, 7, 147, 2, 2, 1506, 1507, 7, 216, 2, 2, 1507, 1508, 5, 26, 14, 2, 1508, 1509, 7, 218, 2, 2, 1509, 1520, 5, 26, 14, 2, 1510, 1511, 7, 218, 2, 2, 1511, 1518, 5, 26, 14, 2, 1512, 1513, 7, 218, 2, 2, 1513, 1516, 5, 26, 14, 2, 1514, 1515, 7, 218, 2, 2, 1515, 1517, 5, 26, 14, 2, 1516, 1514, 3, 2, 2, 2, 1516, 1517, 3, 2, 2, 2, 1517, 1519, 3, 2, 2, 2, 1518, 1512, 3, 2, 2, 2, 1518, 1519, 3, 2, 2, 2, 1519, 1521, 3, 2, 2, 2, 1520, 1510, 3, 2, 2, 2, 1520, 1521, 3, 2, 2, 2, 1521, 1522, 3, 2, 2, 2, 1522, 1523, 7, 217, 2, 2, 1523, 1525, 3, 2, 2, 2, 1524, 1492, 3, 2, 2, 2, 1524, 1505, 3, 2, 2, 2, 1525, 59, 3, 2, 2, 2, 1526, 1527, 7, 21, 2, 2, 1527, 1528, 7, 216, 2, 2, 1528, 1533, 5, 26, 14, 2, 1529, 1530, 7, 218, 2, 2, 1530, 1532, 5, 26, 14, 2, 1531, 1529, 3, 2, 2, 2, 1532, 1535, 3, 2, 2, 2, 1533, 1531, 3, 2, 2, 2, 1533, 1534, 3, 2, 2, 2, 1534, 1536, 3, 2, 2, 2, 1535, 1533, 3, 2, 2, 2, 1536, 1537, 7, 217, 2, 2, 1537, 1618, 3, 2, 2, 2, 1538, 1539, 7, 22, 2, 2, 1539, 1540, 7, 216, 2, 2, 1540, 1545, 5, 26, 14, 2, 1541, 1542, 7, 218, 2, 2, 1542, 1544, 5, 26, 14, 2, 1543, 1541, 3, 2, 2, 2, 1544, 1547, 3, 2, 2, 2, 1545, 1543, 3, 2, 2, 2, 1545, 1546, 3, 2, 2, 2, 1546, 1548, 3, 2, 2, 2, 1547, 1545, 3, 2, 2, 2, 1548, 1549, 7, 217, 2, 2, 1549, 1618, 3, 2, 2, 2, 1550, 1551, 7, 48, 2, 2, 1551, 1552, 7, 216, 2, 2, 1552, 1555, 5, 26, 14, 2, 1553, 1554, 7, 218, 2, 2, 1554, 1556, 5, 26, 14, 2, 1555, 1553, 3, 2, 2, 2, 1556, 1557, 3, 2, 2, 2, 1557, 1555, 3, 2, 2, 2, 1557, 1558, 3, 2, 2, 2, 1558, 1559, 3, 2, 2, 2, 1559, 1560, 7, 217, 2, 2, 1560, 1618, 3, 2, 2, 2, 1561, 1562, 7, 49, 2, 2, 1562, 1563, 7, 216, 2, 2, 1563, 1566, 5, 26, 14, 2, 1564, 1565, 7, 218, 2, 2, 1565, 1567, 5, 26, 14, 2, 1566, 1564, 3, 2, 2, 2, 1567, 1568, 3, 2, 2, 2, 1568, 1566, 3, 2, 2, 2, 1568, 1569, 3, 2, 2, 2, 1569, 1570, 3, 2, 2, 2, 1570, 1571, 7, 217, 2, 2, 1571, 1618, 3, 2, 2, 2, 1572, 1573, 7, 50, 2, 2, 1573, 1574, 7, 216, 2, 2, 1574, 1577, 5, 26, 14, 2, 1575, 1576, 7, 218, 2, 2, 1576, 1578, 5, 26, 14, 2, 1577, 1575, 3, 2, 2, 2, 1578, 1579, 3, 2, 2, 2, 1579, 1577, 3, 2, 2, 2, 1579, 1580, 3, 2, 2, 2, 1580, 1581, 3, 2, 2, 2, 1581, 1582, 7, 217, 2, 2, 1582, 1618, 3, 2, 2, 2, 1583, 1584, 7, 53, 2, 2, 1584, 1585, 7, 216, 2, 2, 1585, 1586, 5, 26, 14, 2, 1586, 1587, 7, 218, 2, 2, 1587, 1588, 5, 26, 14, 2, 1588, 1589, 7, 217, 2, 2, 1589, 1618, 3, 2, 2, 2, 1590, 1591, 7, 167, 2, 2, 1591, 1592, 7, 216, 2, 2, 1592, 1595, 5, 26, 14, 2, 1593, 1594, 7, 218, 2, 2, 1594, 1596, 5, 26, 14, 2, 1595, 1593, 3, 2, 2, 2, 1595, 1596, 3, 2, 2, 2, 1596, 1597, 3, 2, 2, 2, 1597, 1598, 7, 217, 2, 2, 1598, 1618, 3, 2, 2, 2, 1599, 1600, 7, 168, 2, 2, 1600, 1601, 7, 216, 2, 2, 1601, 1602, 5, 26, 14, 2, 1602, 1603, 7, 218, 2, 2, 1603, 1604, 5, 26, 14, 2, 1604, 1605, 7, 217, 2, 2, 1605, 1618, 3, 2, 2, 2, 1606, 1607, 7, 118, 2, 2, 1607, 1608, 7, 216, 2, 2, 1608, 1611, 5, 26, 14, 2, 1609, 1610, 7, 218, 2, 2, 1610, 1612, 5, 26, 14, 2, 1611, 1609, 3, 2, 2, 2, 1612, 1613, 3, 2, 2, 2, 1613, 1611, 3, 2, 2, 2, 1613, 1614, 3, 2, 2, 2, 1614, 1615, 3, 2, 2, 2, 1615, 1616, 7, 217, 2, 2, 1616, 1618, 3, 2, 2, 2, 1617, 1526, 3, 2, 2, 2, 1617, 1538, 3, 2, 2, 2, 1617, 1550, 3, 2, 2, 2, 1617, 1561, 3, 2, 2, 2, 1617, 1572, 3, 2, 2, 2, 1617, 1583, 3, 2, 2, 2, 1617, 1590, 3, 2, 2, 2, 1617, 1599, 3, 2, 2, 2, 1617, 1606, 3, 2, 2, 2, 1618, 61, 3, 2, 2, 2, 1619, 1620, 7, 176, 2, 2, 1620, 1621, 7, 216, 2, 2, 1621, 1624, 5, 26, 14, 2, 1622, 1623, 7, 218, 2, 2, 1623, 1625, 5, 26, 14, 2, 1624, 1622, 3, 2, 2, 2, 1624, 1625, 3, 2, 2, 2, 1625, 1626, 3, 2, 2, 2, 1626, 1627, 7, 217, 2, 2, 1627, 1887, 3, 2, 2, 2, 1628, 1629, 7, 177, 2, 2, 1629, 1630, 7, 216, 2, 2, 1630, 1633, 5, 26, 14, 2, 1631, 1632, 7, 218, 2, 2, 1632, 1634, 5, 26, 14, 2, 1633, 1631, 3, 2, 2, 2, 1633, 1634, 3, 2, 2, 2, 1634, 1635, 3, 2, 2, 2, 1635, 1636, 7, 217, 2, 2, 1636, 1887, 3, 2, 2, 2, 1637, 1638, 7, 179, 2, 2, 1638, 1639, 7, 216, 2, 2, 1639, 1640, 5, 26, 14, 2, 1640, 1641, 7, 218, 2, 2, 1641, 1644, 5, 26, 14, 2, 1642, 1643, 7, 218, 2, 2, 1643, 1645, 5, 26, 14, 2, 1644, 1642, 3, 2, 2, 2, 1644, 1645, 3, 2, 2, 2, 1645, 1646, 3, 2, 2, 2, 1646, 1647, 7, 217, 2, 2, 1647, 1887, 3, 2, 2, 2, 1648, 1649, 7, 181, 2, 2, 1649, 1650, 7, 216, 2, 2, 1650, 1651, 5, 26, 14, 2, 1651, 1652, 7, 218, 2, 2, 1652, 1655, 5, 26, 14, 2, 1653, 1654, 7, 218, 2, 2, 1654, 1656, 5, 26, 14, 2, 1655, 1653, 3, 2, 2, 2, 1655, 1656, 3, 2, 2, 2, 1656, 1657, 3, 2, 2, 2, 1657, 1658, 7, 217, 2, 2, 1658, 1887, 3, 2, 2, 2, 1659, 1660, 7, 182, 2, 2, 1660, 1661, 7, 216, 2, 2, 1661, 1662, 5, 26, 14, 2, 1662, 1663, 7, 218, 2, 2, 1663, 1666, 5, 26, 14, 2, 1664, 1665, 7, 218, 2, 2, 1665, 1667, 5, 26, 14, 2, 1666, 1664, 3, 2, 2, 2, 1666, 1667, 3, 2, 2, 2, 1667, 1668, 3, 2, 2, 2, 1668, 1669, 7, 217, 2, 2, 1669, 1887, 3, 2, 2, 2, 1670, 1671, 7, 178, 2, 2, 1671, 1672, 7, 216, 2, 2, 1672, 1673, 5, 26, 14, 2, 1673, 1674, 7, 218, 2, 2, 1674, 1675, 5, 26, 14, 2, 1675, 1676, 7, 218, 2, 2, 1676, 1679, 5, 26, 14, 2, 1677, 1678, 7, 218, 2, 2, 1678, 1680, 5, 26, 14, 2, 1679, 1677, 3, 2, 2, 2, 1679, 1680, 3, 2, 2, 2, 1680, 1681, 3, 2, 2, 2, 1681, 1682, 7, 217, 2, 2, 1682, 1887, 3, 2, 2, 2, 1683, 1684, 7, 180, 2, 2, 1684, 1685, 7, 216, 2, 2, 1685, 1686, 5, 26, 14, 2, 1686, 1687, 7, 218, 2, 2, 1687, 1688, 5, 26, 14, 2, 1688, 1689, 7, 218, 2, 2, 1689, 1692, 5, 26, 14, 2, 1690, 1691, 7, 218, 2, 2, 1691, 1693, 5, 26, 14, 2, 1692, 1690, 3, 2, 2, 2, 1692, 1693, 3, 2, 2, 2, 1693, 1694, 3, 2, 2, 2, 1694, 1695, 7, 217, 2, 2, 1695, 1887, 3, 2, 2, 2, 1696, 1697, 7, 183, 2, 2, 1697, 1698, 7, 216, 2, 2, 1698, 1699, 5, 26, 14, 2, 1699, 1700, 7, 218, 2, 2, 1700, 1701, 5, 26, 14, 2, 1701, 1702, 7, 218, 2, 2, 1702, 1705, 5, 26, 14, 2, 1703, 1704, 7, 218, 2, 2, 1704, 1706, 5, 26, 14, 2, 1705, 1703, 3, 2, 2, 2, 1705, 1706, 3, 2, 2, 2, 1706, 1707, 3, 2, 2, 2, 1707, 1708, 7, 217, 2, 2, 1708, 1887, 3, 2, 2, 2, 1709, 1710, 7, 184, 2, 2, 1710, 1711, 7, 216, 2, 2, 1711, 1712, 5, 26, 14, 2, 1712, 1713, 7, 218, 2, 2, 1713, 1714, 5, 26, 14, 2, 1714, 1715, 7, 218, 2, 2, 1715, 1718, 5, 26, 14, 2, 1716, 1717, 7, 218, 2, 2, 1717, 1719, 5, 26, 14, 2, 1718, 1716, 3, 2, 2, 2, 1718, 1719, 3, 2, 2, 2, 1719, 1720, 3, 2, 2, 2, 1720, 1721, 7, 217, 2, 2, 1721, 1887, 3, 2, 2, 2, 1722, 1723, 7, 185, 2, 2, 1723, 1724, 7, 216, 2, 2, 1724, 1725, 5, 26, 14, 2, 1725, 1726, 7, 218, 2, 2, 1726, 1727, 5, 26, 14, 2, 1727, 1728, 7, 218, 2, 2, 1728, 1731, 5, 26, 14, 2, 1729, 1730, 7, 218, 2, 2, 1730, 1732, 5, 26, 14, 2, 1731, 1729, 3, 2, 2, 2, 1731, 1732, 3, 2, 2, 2, 1732, 1733, 3, 2, 2, 2, 1733, 1734, 7, 217, 2, 2, 1734, 1887, 3, 2, 2, 2, 1735, 1736, 7, 186, 2, 2, 1736, 1737, 7, 216, 2, 2, 1737, 1738, 5, 26, 14, 2, 1738, 1739, 7, 218, 2, 2, 1739, 1740, 5, 26, 14, 2, 1740, 1741, 7, 218, 2, 2, 1741, 1744, 5, 26, 14, 2, 1742, 1743, 7, 218, 2, 2, 1743, 1745, 5, 26, 14, 2, 1744, 1742, 3, 2, 2, 2, 1744, 1745, 3, 2, 2, 2, 1745, 1746, 3, 2, 2, 2, 1746, 1747, 7, 217, 2, 2, 1747, 1887, 3, 2, 2, 2, 1748, 1749, 7, 187, 2, 2, 1749, 1750, 7, 216, 2, 2, 1750, 1751, 5, 26, 14, 2, 1751, 1752, 7, 218, 2, 2, 1752, 1753, 5, 26, 14, 2, 1753, 1754, 7, 218, 2, 2, 1754, 1757, 5, 26, 14, 2, 1755, 1756, 7, 218, 2, 2, 1756, 1758, 5, 26, 14, 2, 1757, 1755, 3, 2, 2, 2, 1757, 1758, 3, 2, 2, 2, 1758, 1759, 3, 2, 2, 2, 1759, 1760, 7, 217, 2, 2, 1760, 1887, 3, 2, 2, 2, 1761, 1762, 7, 188, 2, 2, 1762, 1763, 7, 216, 2, 2, 1763, 1764, 5, 26, 14, 2, 1764, 1765, 7, 218, 2, 2, 1765, 1768, 5, 26, 14, 2, 1766, 1767, 7, 218, 2, 2, 1767, 1769, 5, 26, 14, 2, 1768, 1766, 3, 2, 2, 2, 1768, 1769, 3, 2, 2, 2, 1769, 1770, 3, 2, 2, 2, 1770, 1771, 7, 217, 2, 2, 1771, 1887, 3, 2, 2, 2, 1772, 1773, 7, 189, 2, 2, 1773, 1774, 7, 216, 2, 2, 1774, 1775, 5, 26, 14, 2, 1775, 1776, 7, 218, 2, 2, 1776, 1779, 5, 26, 14, 2, 1777, 1778, 7, 218, 2, 2, 1778, 1780, 5, 26, 14, 2, 1779, 1777, 3, 2, 2, 2, 1779, 1780, 3, 2, 2, 2, 1780, 1781, 3, 2, 2, 2, 1781, 1782, 7, 217, 2, 2, 1782, 1887, 3, 2, 2, 2, 1783, 1784, 7, 190, 2, 2, 1784, 1785, 7, 216, 2, 2, 1785, 1786, 5, 26, 14, 2, 1786, 1787, 7, 218, 2, 2, 1787, 1790, 5, 26, 14, 2, 1788, 1789, 7, 218, 2, 2, 1789, 1791, 5, 26, 14, 2, 1790, 1788, 3, 2, 2, 2, 1790, 1791, 3, 2, 2, 2, 1791, 1794, 3, 2, 2, 2, 1792, 1793, 7, 218, 2, 2, 1793, 1795, 5, 26, 14, 2, 1794, 1792, 3, 2, 2, 2, 1794, 1795, 3, 2, 2, 2, 1795, 1798, 3, 2, 2, 2, 1796, 1797, 7, 218, 2, 2, 1797, 1799, 5, 26, 14, 2, 1798, 1796, 3, 2, 2, 2, 1798, 1799, 3, 2, 2, 2, 1799, 1800, 3, 2, 2, 2, 1800, 1801, 7, 217, 2, 2, 1801, 1887, 3, 2, 2, 2, 1802, 1803, 7, 191, 2, 2, 1803, 1804, 7, 216, 2, 2, 1804, 1805, 5, 26, 14, 2, 1805, 1806, 7, 218, 2, 2, 1806, 1809, 5, 26, 14, 2, 1807, 1808, 7, 218, 2, 2, 1808, 1810, 5, 26, 14, 2, 1809, 1807, 3, 2, 2, 2, 1809, 1810, 3, 2, 2, 2, 1810, 1813, 3, 2, 2, 2, 1811, 1812, 7, 218, 2, 2, 1812, 1814, 5, 26, 14, 2, 1813, 1811, 3, 2, 2, 2, 1813, 1814, 3, 2, 2, 2, 1814, 1817, 3, 2, 2, 2, 1815, 1816, 7, 218, 2, 2, 1816, 1818, 5, 26, 14, 2, 1817, 1815, 3, 2, 2, 2, 1817, 1818, 3, 2, 2, 2, 1818, 1819, 3, 2, 2, 2, 1819, 1820, 7, 217, 2, 2, 1820, 1887, 3, 2, 2, 2, 1821, 1822, 7, 192, 2, 2, 1822, 1823, 7, 216, 2, 2, 1823, 1824, 5, 26, 14, 2, 1824, 1825, 7, 218, 2, 2, 1825, 1828, 5, 26, 14, 2, 1826, 1827, 7, 218, 2, 2, 1827, 1829, 5, 26, 14, 2, 1828, 1826, 3, 2, 2, 2, 1828, 1829, 3, 2, 2, 2, 1829, 1832, 3, 2, 2, 2, 1830, 1831, 7, 218, 2, 2, 1831, 1833, 5, 26, 14, 2, 1832, 1830, 3, 2, 2, 2, 1832, 1833, 3, 2, 2, 2, 1833, 1836, 3, 2, 2, 2, 1834, 1835, 7, 218, 2, 2, 1835, 1837, 5, 26, 14, 2, 1836, 1834, 3, 2, 2, 2, 1836, 1837, 3, 2, 2, 2, 1837, 1838, 3, 2, 2, 2, 1838, 1839, 7, 217, 2, 2, 1839, 1887, 3, 2, 2, 2, 1840, 1841, 7, 193, 2, 2, 1841, 1842, 7, 216, 2, 2, 1842, 1843, 5, 26, 14, 2, 1843, 1844, 7, 218, 2, 2, 1844, 1847, 5, 26, 14, 2, 1845, 1846, 7, 218, 2, 2, 1846, 1848, 5, 26, 14, 2, 1847, 1845, 3, 2, 2, 2, 1847, 1848, 3, 2, 2, 2, 1848, 1851, 3, 2, 2, 2, 1849, 1850, 7, 218, 2, 2, 1850, 1852, 5, 26, 14, 2, 1851, 1849, 3, 2, 2, 2, 1851, 1852, 3, 2, 2, 2, 1852, 1855, 3, 2, 2, 2, 1853, 1854, 7, 218, 2, 2, 1854, 1856, 5, 26, 14, 2, 1855, 1853, 3, 2, 2, 2, 1855, 1856, 3, 2, 2, 2, 1856, 1857, 3, 2, 2, 2, 1857, 1858, 7, 217, 2, 2, 1858, 1887, 3, 2, 2, 2, 1859, 1860, 7, 194, 2, 2, 1860, 1861, 7, 216, 2, 2, 1861, 1862, 5, 26, 14, 2, 1862, 1863, 7, 218, 2, 2, 1863, 1864, 5, 26, 14, 2, 1864, 1865, 7, 218, 2, 2, 1865, 1866, 5, 26, 14, 2, 1866, 1867, 7, 218, 2, 2, 1867, 1870, 5, 26, 14, 2, 1868, 1869, 7, 218, 2, 2, 1869, 1871, 5, 26, 14, 2, 1870, 1868, 3, 2, 2, 2, 1870, 1871, 3, 2, 2, 2, 1871, 1874, 3, 2, 2, 2, 1872, 1873, 7, 218, 2, 2, 1873, 1875, 5, 26, 14, 2, 1874, 1872, 3, 2, 2, 2, 1874, 1875, 3, 2, 2, 2, 1875, 1878, 3, 2, 2, 2, 1876, 1877, 7, 218, 2, 2, 1877, 1879, 5, 26, 14, 2, 1878, 1876, 3, 2, 2, 2, 1878, 1879, 3, 2, 2, 2, 1879, 1882, 3, 2, 2, 2, 1880, 1881, 7, 218, 2, 2, 1881, 1883, 5, 26, 14, 2, 1882, 1880, 3, 2, 2, 2, 1882, 1883, 3, 2, 2, 2, 1883, 1884, 3, 2, 2, 2, 1884, 1885, 7, 217, 2, 2, 1885, 1887, 3, 2, 2, 2, 1886, 1619, 3, 2, 2, 2, 1886, 1628, 3, 2, 2, 2, 1886, 1637, 3, 2, 2, 2, 1886, 1648, 3, 2, 2, 2, 1886, 1659, 3, 2, 2, 2, 1886, 1670, 3, 2, 2, 2, 1886, 1683, 3, 2, 2, 2, 1886, 1696, 3, 2, 2, 2, 1886, 1709, 3, 2, 2, 2, 1886, 1722, 3, 2, 2, 2, 1886, 1735, 3, 2, 2, 2, 1886, 1748, 3, 2, 2, 2, 1886, 1761, 3, 2, 2, 2, 1886, 1772, 3, 2, 2, 2, 1886, 1783, 3, 2, 2, 2, 1886, 1802, 3, 2, 2, 2, 1886, 1821, 3, 2, 2, 2, 1886, 1840, 3, 2, 2, 2, 1886, 1859, 3, 2, 2, 2, 1887, 63, 3, 2, 2, 2, 122, 67, 69, 74, 81, 87, 98, 105, 117, 131, 140, 160, 173, 180, 209, 211, 223, 225, 240, 242, 254, 256, 264, 271, 283, 290, 311, 331, 339, 345, 352, 524, 563, 582, 598, 634, 636, 645, 654, 663, 672, 751, 760, 769, 778, 812, 847, 963, 1009, 1011, 1054, 1056, 1058, 1088, 1097, 1108, 1141, 1166, 1263, 1276, 1296, 1308, 1320, 1332, 1336, 1348, 1352, 1373, 1385, 1398, 1402, 1406, 1410, 1414, 1418, 1429, 1433, 1490, 1516, 1518, 1520, 1524, 1533, 1545, 1557, 1568, 1579, 1595, 1613, 1617, 1624, 1633, 1644, 1655, 1666, 1679, 1692, 1705, 1718, 1731, 1744, 1757, 1768, 1779, 1790, 1794, 1798, 1809, 1813, 1817, 1828, 1832, 1836, 1847, 1851, 1855, 1870, 1874, 1878, 1882, 1886] \ No newline at end of file diff --git a/more_math/Parser/legacy/MathExpr.tokens b/more_math/Parser/legacy/MathExpr.tokens index 43ef2e1..4a3a884 100644 --- a/more_math/Parser/legacy/MathExpr.tokens +++ b/more_math/Parser/legacy/MathExpr.tokens @@ -170,64 +170,65 @@ CORR=169 ENTROPY=170 CROP=171 NONE=172 -NOISE=173 -RAND=174 -CAUCHY=175 -EXPONENTIAL=176 -LOGNORMAL=177 -BERNOULLI=178 -POISSON=179 -GAMMADIST=180 -BETADIST=181 -LAPLACEDIST=182 -GUMBELDIST=183 -WEIBULLDIST=184 -CHI2DIST=185 -STUDENTTDIST=186 -PERLIN=187 -CELLULAR=188 -PLASMA=189 -RIDGED=190 -DOMAIN_WARP=191 -PLUS=192 -MINUS=193 -MULT=194 -DIV=195 -MOD=196 -POW=197 -LSHIFT=198 -RSHIFT=199 -GE=200 -GT=201 -LE=202 -LT=203 -EQ=204 -EQUEALS=205 -PLUS_EQ=206 -MINUS_EQ=207 -MULT_EQ=208 -DIV_EQ=209 -MOD_EQ=210 -NE=211 -PIPE=212 -LPAREN=213 -RPAREN=214 -COMMA=215 -SEMICOLON=216 -ARROW=217 -LBRACKET=218 -RBRACKET=219 -QUESTION=220 -COLON=221 -LBRACE=222 -RBRACE=223 -NUMBER=224 -CONSTANT=225 -STRING=226 -VARIABLE=227 -SL_COMMENT=228 -ML_COMMENT=229 -WS=230 +COORDS=173 +NOISE=174 +RAND=175 +CAUCHY=176 +EXPONENTIAL=177 +LOGNORMAL=178 +BERNOULLI=179 +POISSON=180 +GAMMADIST=181 +BETADIST=182 +LAPLACEDIST=183 +GUMBELDIST=184 +WEIBULLDIST=185 +CHI2DIST=186 +STUDENTTDIST=187 +PERLIN=188 +CELLULAR=189 +PLASMA=190 +RIDGED=191 +DOMAIN_WARP=192 +PLUS=193 +MINUS=194 +MULT=195 +DIV=196 +MOD=197 +POW=198 +LSHIFT=199 +RSHIFT=200 +GE=201 +GT=202 +LE=203 +LT=204 +EQ=205 +EQUEALS=206 +PLUS_EQ=207 +MINUS_EQ=208 +MULT_EQ=209 +DIV_EQ=210 +MOD_EQ=211 +NE=212 +PIPE=213 +LPAREN=214 +RPAREN=215 +COMMA=216 +SEMICOLON=217 +ARROW=218 +LBRACKET=219 +RBRACKET=220 +QUESTION=221 +COLON=222 +LBRACE=223 +RBRACE=224 +NUMBER=225 +CONSTANT=226 +STRING=227 +VARIABLE=228 +SL_COMMENT=229 +ML_COMMENT=230 +WS=231 'sin'=1 'cos'=2 'tan'=3 @@ -366,35 +367,35 @@ WS=230 'cov'=168 'entropy'=170 'crop'=171 -'+'=192 -'-'=193 -'*'=194 -'/'=195 -'%'=196 -'^'=197 -'<<'=198 -'>>'=199 -'>='=200 -'>'=201 -'<='=202 -'<'=203 -'=='=204 -'='=205 -'+='=206 -'-='=207 -'*='=208 -'/='=209 -'%='=210 -'!='=211 -'|'=212 -'('=213 -')'=214 -','=215 -';'=216 -'->'=217 -'['=218 -']'=219 -'?'=220 -':'=221 -'{'=222 -'}'=223 +'+'=193 +'-'=194 +'*'=195 +'/'=196 +'%'=197 +'^'=198 +'<<'=199 +'>>'=200 +'>='=201 +'>'=202 +'<='=203 +'<'=204 +'=='=205 +'='=206 +'+='=207 +'-='=208 +'*='=209 +'/='=210 +'%='=211 +'!='=212 +'|'=213 +'('=214 +')'=215 +','=216 +';'=217 +'->'=218 +'['=219 +']'=220 +'?'=221 +':'=222 +'{'=223 +'}'=224 diff --git a/more_math/Parser/legacy/MathExprLexer.interp b/more_math/Parser/legacy/MathExprLexer.interp index 256fef6..9f6edb2 100644 --- a/more_math/Parser/legacy/MathExprLexer.interp +++ b/more_math/Parser/legacy/MathExprLexer.interp @@ -191,6 +191,7 @@ null null null null +null '+' '-' '*' @@ -405,6 +406,7 @@ CORR ENTROPY CROP NONE +COORDS NOISE RAND CAUCHY @@ -637,6 +639,7 @@ CORR ENTROPY CROP NONE +COORDS NOISE RAND CAUCHY @@ -704,4 +707,4 @@ mode names: DEFAULT_MODE atn: -[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 232, 2724, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 4, 110, 9, 110, 4, 111, 9, 111, 4, 112, 9, 112, 4, 113, 9, 113, 4, 114, 9, 114, 4, 115, 9, 115, 4, 116, 9, 116, 4, 117, 9, 117, 4, 118, 9, 118, 4, 119, 9, 119, 4, 120, 9, 120, 4, 121, 9, 121, 4, 122, 9, 122, 4, 123, 9, 123, 4, 124, 9, 124, 4, 125, 9, 125, 4, 126, 9, 126, 4, 127, 9, 127, 4, 128, 9, 128, 4, 129, 9, 129, 4, 130, 9, 130, 4, 131, 9, 131, 4, 132, 9, 132, 4, 133, 9, 133, 4, 134, 9, 134, 4, 135, 9, 135, 4, 136, 9, 136, 4, 137, 9, 137, 4, 138, 9, 138, 4, 139, 9, 139, 4, 140, 9, 140, 4, 141, 9, 141, 4, 142, 9, 142, 4, 143, 9, 143, 4, 144, 9, 144, 4, 145, 9, 145, 4, 146, 9, 146, 4, 147, 9, 147, 4, 148, 9, 148, 4, 149, 9, 149, 4, 150, 9, 150, 4, 151, 9, 151, 4, 152, 9, 152, 4, 153, 9, 153, 4, 154, 9, 154, 4, 155, 9, 155, 4, 156, 9, 156, 4, 157, 9, 157, 4, 158, 9, 158, 4, 159, 9, 159, 4, 160, 9, 160, 4, 161, 9, 161, 4, 162, 9, 162, 4, 163, 9, 163, 4, 164, 9, 164, 4, 165, 9, 165, 4, 166, 9, 166, 4, 167, 9, 167, 4, 168, 9, 168, 4, 169, 9, 169, 4, 170, 9, 170, 4, 171, 9, 171, 4, 172, 9, 172, 4, 173, 9, 173, 4, 174, 9, 174, 4, 175, 9, 175, 4, 176, 9, 176, 4, 177, 9, 177, 4, 178, 9, 178, 4, 179, 9, 179, 4, 180, 9, 180, 4, 181, 9, 181, 4, 182, 9, 182, 4, 183, 9, 183, 4, 184, 9, 184, 4, 185, 9, 185, 4, 186, 9, 186, 4, 187, 9, 187, 4, 188, 9, 188, 4, 189, 9, 189, 4, 190, 9, 190, 4, 191, 9, 191, 4, 192, 9, 192, 4, 193, 9, 193, 4, 194, 9, 194, 4, 195, 9, 195, 4, 196, 9, 196, 4, 197, 9, 197, 4, 198, 9, 198, 4, 199, 9, 199, 4, 200, 9, 200, 4, 201, 9, 201, 4, 202, 9, 202, 4, 203, 9, 203, 4, 204, 9, 204, 4, 205, 9, 205, 4, 206, 9, 206, 4, 207, 9, 207, 4, 208, 9, 208, 4, 209, 9, 209, 4, 210, 9, 210, 4, 211, 9, 211, 4, 212, 9, 212, 4, 213, 9, 213, 4, 214, 9, 214, 4, 215, 9, 215, 4, 216, 9, 216, 4, 217, 9, 217, 4, 218, 9, 218, 4, 219, 9, 219, 4, 220, 9, 220, 4, 221, 9, 221, 4, 222, 9, 222, 4, 223, 9, 223, 4, 224, 9, 224, 4, 225, 9, 225, 4, 226, 9, 226, 4, 227, 9, 227, 4, 228, 9, 228, 4, 229, 9, 229, 4, 230, 9, 230, 4, 231, 9, 231, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 33, 3, 33, 3, 33, 3, 33, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 5, 37, 656, 10, 37, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 5, 38, 671, 10, 38, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 47, 3, 47, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 5, 48, 747, 10, 48, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 5, 49, 764, 10, 49, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 5, 51, 782, 10, 51, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 5, 52, 795, 10, 52, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 59, 3, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 61, 3, 61, 3, 61, 3, 61, 3, 62, 3, 62, 3, 62, 3, 62, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 5, 63, 868, 10, 63, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 5, 64, 885, 10, 64, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 66, 3, 66, 3, 66, 3, 66, 3, 67, 3, 67, 3, 67, 3, 67, 3, 67, 3, 67, 3, 67, 3, 68, 3, 68, 3, 68, 3, 68, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 70, 3, 70, 3, 70, 3, 70, 3, 71, 3, 71, 3, 71, 3, 71, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 5, 73, 943, 10, 73, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 5, 78, 992, 10, 78, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 5, 79, 1014, 10, 79, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 5, 80, 1031, 10, 80, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 5, 81, 1052, 10, 81, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 5, 82, 1067, 10, 82, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 5, 84, 1094, 10, 84, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 5, 86, 1125, 10, 86, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 5, 87, 1141, 10, 87, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 90, 3, 90, 3, 90, 3, 90, 3, 90, 3, 90, 3, 90, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 5, 93, 1212, 10, 93, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 5, 96, 1262, 10, 96, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 5, 97, 1282, 10, 97, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 5, 99, 1303, 10, 99, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 101, 3, 101, 3, 101, 3, 101, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 5, 105, 1350, 10, 105, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 5, 106, 1374, 10, 106, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 5, 108, 1397, 10, 108, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 5, 109, 1414, 10, 109, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 5, 110, 1429, 10, 110, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 5, 117, 1511, 10, 117, 3, 118, 3, 118, 3, 118, 3, 118, 3, 119, 3, 119, 3, 119, 3, 119, 3, 119, 3, 119, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 124, 3, 124, 3, 124, 3, 124, 3, 124, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 5, 125, 1566, 10, 125, 3, 126, 3, 126, 3, 126, 3, 126, 3, 126, 3, 127, 3, 127, 3, 127, 3, 127, 3, 127, 3, 127, 3, 127, 3, 127, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 5, 142, 1795, 10, 142, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 5, 145, 1856, 10, 145, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 5, 146, 1877, 10, 146, 3, 147, 3, 147, 3, 147, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 150, 3, 150, 3, 150, 3, 150, 3, 151, 3, 151, 3, 151, 3, 152, 3, 152, 3, 152, 3, 152, 3, 152, 3, 152, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 5, 155, 1934, 10, 155, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 169, 3, 169, 3, 169, 3, 169, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 5, 170, 2053, 10, 170, 3, 171, 3, 171, 3, 171, 3, 171, 3, 171, 3, 171, 3, 171, 3, 171, 3, 172, 3, 172, 3, 172, 3, 172, 3, 172, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 5, 173, 2084, 10, 173, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 5, 174, 2109, 10, 174, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 5, 175, 2134, 10, 175, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 5, 176, 2154, 10, 176, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 5, 177, 2179, 10, 177, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 5, 178, 2204, 10, 178, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 5, 179, 2227, 10, 179, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 5, 180, 2248, 10, 180, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 5, 181, 2267, 10, 181, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 5, 182, 2288, 10, 182, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 5, 183, 2309, 10, 183, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 5, 184, 2334, 10, 184, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 5, 185, 2355, 10, 185, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 5, 186, 2376, 10, 186, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 5, 187, 2398, 10, 187, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 5, 188, 2418, 10, 188, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 5, 189, 2468, 10, 189, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 5, 190, 2498, 10, 190, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 5, 191, 2518, 10, 191, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 5, 192, 2548, 10, 192, 3, 193, 3, 193, 3, 194, 3, 194, 3, 195, 3, 195, 3, 196, 3, 196, 3, 197, 3, 197, 3, 198, 3, 198, 3, 199, 3, 199, 3, 199, 3, 200, 3, 200, 3, 200, 3, 201, 3, 201, 3, 201, 3, 202, 3, 202, 3, 203, 3, 203, 3, 203, 3, 204, 3, 204, 3, 205, 3, 205, 3, 205, 3, 206, 3, 206, 3, 207, 3, 207, 3, 207, 3, 208, 3, 208, 3, 208, 3, 209, 3, 209, 3, 209, 3, 210, 3, 210, 3, 210, 3, 211, 3, 211, 3, 211, 3, 212, 3, 212, 3, 212, 3, 213, 3, 213, 3, 214, 3, 214, 3, 215, 3, 215, 3, 216, 3, 216, 3, 217, 3, 217, 3, 218, 3, 218, 3, 218, 3, 219, 3, 219, 3, 220, 3, 220, 3, 221, 3, 221, 3, 222, 3, 222, 3, 223, 3, 223, 3, 224, 3, 224, 3, 225, 6, 225, 2627, 10, 225, 13, 225, 14, 225, 2628, 3, 225, 3, 225, 7, 225, 2633, 10, 225, 12, 225, 14, 225, 2636, 11, 225, 5, 225, 2638, 10, 225, 3, 225, 3, 225, 6, 225, 2642, 10, 225, 13, 225, 14, 225, 2643, 5, 225, 2646, 10, 225, 3, 225, 3, 225, 5, 225, 2650, 10, 225, 3, 225, 6, 225, 2653, 10, 225, 13, 225, 14, 225, 2654, 5, 225, 2657, 10, 225, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 5, 226, 2664, 10, 226, 3, 227, 3, 227, 3, 227, 3, 227, 7, 227, 2670, 10, 227, 12, 227, 14, 227, 2673, 11, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 7, 227, 2680, 10, 227, 12, 227, 14, 227, 2683, 11, 227, 3, 227, 5, 227, 2686, 10, 227, 3, 228, 3, 228, 7, 228, 2690, 10, 228, 12, 228, 14, 228, 2693, 11, 228, 3, 229, 3, 229, 7, 229, 2697, 10, 229, 12, 229, 14, 229, 2700, 11, 229, 3, 229, 3, 229, 3, 230, 3, 230, 3, 230, 3, 230, 7, 230, 2708, 10, 230, 12, 230, 14, 230, 2711, 11, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 231, 6, 231, 2719, 10, 231, 13, 231, 14, 231, 2720, 3, 231, 3, 231, 3, 2709, 2, 232, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9, 17, 10, 19, 11, 21, 12, 23, 13, 25, 14, 27, 15, 29, 16, 31, 17, 33, 18, 35, 19, 37, 20, 39, 21, 41, 22, 43, 23, 45, 24, 47, 25, 49, 26, 51, 27, 53, 28, 55, 29, 57, 30, 59, 31, 61, 32, 63, 33, 65, 34, 67, 35, 69, 36, 71, 37, 73, 38, 75, 39, 77, 40, 79, 41, 81, 42, 83, 43, 85, 44, 87, 45, 89, 46, 91, 47, 93, 48, 95, 49, 97, 50, 99, 51, 101, 52, 103, 53, 105, 54, 107, 55, 109, 56, 111, 57, 113, 58, 115, 59, 117, 60, 119, 61, 121, 62, 123, 63, 125, 64, 127, 65, 129, 66, 131, 67, 133, 68, 135, 69, 137, 70, 139, 71, 141, 72, 143, 73, 145, 74, 147, 75, 149, 76, 151, 77, 153, 78, 155, 79, 157, 80, 159, 81, 161, 82, 163, 83, 165, 84, 167, 85, 169, 86, 171, 87, 173, 88, 175, 89, 177, 90, 179, 91, 181, 92, 183, 93, 185, 94, 187, 95, 189, 96, 191, 97, 193, 98, 195, 99, 197, 100, 199, 101, 201, 102, 203, 103, 205, 104, 207, 105, 209, 106, 211, 107, 213, 108, 215, 109, 217, 110, 219, 111, 221, 112, 223, 113, 225, 114, 227, 115, 229, 116, 231, 117, 233, 118, 235, 119, 237, 120, 239, 121, 241, 122, 243, 123, 245, 124, 247, 125, 249, 126, 251, 127, 253, 128, 255, 129, 257, 130, 259, 131, 261, 132, 263, 133, 265, 134, 267, 135, 269, 136, 271, 137, 273, 138, 275, 139, 277, 140, 279, 141, 281, 142, 283, 143, 285, 144, 287, 145, 289, 146, 291, 147, 293, 148, 295, 149, 297, 150, 299, 151, 301, 152, 303, 153, 305, 154, 307, 155, 309, 156, 311, 157, 313, 158, 315, 159, 317, 160, 319, 161, 321, 162, 323, 163, 325, 164, 327, 165, 329, 166, 331, 167, 333, 168, 335, 169, 337, 170, 339, 171, 341, 172, 343, 173, 345, 174, 347, 175, 349, 176, 351, 177, 353, 178, 355, 179, 357, 180, 359, 181, 361, 182, 363, 183, 365, 184, 367, 185, 369, 186, 371, 187, 373, 188, 375, 189, 377, 190, 379, 191, 381, 192, 383, 193, 385, 194, 387, 195, 389, 196, 391, 197, 393, 198, 395, 199, 397, 200, 399, 201, 401, 202, 403, 203, 405, 204, 407, 205, 409, 206, 411, 207, 413, 208, 415, 209, 417, 210, 419, 211, 421, 212, 423, 213, 425, 214, 427, 215, 429, 216, 431, 217, 433, 218, 435, 219, 437, 220, 439, 221, 441, 222, 443, 223, 445, 224, 447, 225, 449, 226, 451, 227, 453, 228, 455, 229, 457, 230, 459, 231, 461, 232, 3, 2, 11, 3, 2, 50, 59, 4, 2, 71, 71, 103, 103, 4, 2, 45, 45, 47, 47, 6, 2, 12, 12, 15, 15, 36, 36, 94, 94, 6, 2, 12, 12, 15, 15, 41, 41, 94, 94, 5, 2, 67, 92, 97, 97, 99, 124, 6, 2, 50, 59, 67, 92, 97, 97, 99, 124, 4, 2, 12, 12, 15, 15, 5, 2, 11, 12, 15, 15, 34, 34, 2, 2807, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 33, 3, 2, 2, 2, 2, 35, 3, 2, 2, 2, 2, 37, 3, 2, 2, 2, 2, 39, 3, 2, 2, 2, 2, 41, 3, 2, 2, 2, 2, 43, 3, 2, 2, 2, 2, 45, 3, 2, 2, 2, 2, 47, 3, 2, 2, 2, 2, 49, 3, 2, 2, 2, 2, 51, 3, 2, 2, 2, 2, 53, 3, 2, 2, 2, 2, 55, 3, 2, 2, 2, 2, 57, 3, 2, 2, 2, 2, 59, 3, 2, 2, 2, 2, 61, 3, 2, 2, 2, 2, 63, 3, 2, 2, 2, 2, 65, 3, 2, 2, 2, 2, 67, 3, 2, 2, 2, 2, 69, 3, 2, 2, 2, 2, 71, 3, 2, 2, 2, 2, 73, 3, 2, 2, 2, 2, 75, 3, 2, 2, 2, 2, 77, 3, 2, 2, 2, 2, 79, 3, 2, 2, 2, 2, 81, 3, 2, 2, 2, 2, 83, 3, 2, 2, 2, 2, 85, 3, 2, 2, 2, 2, 87, 3, 2, 2, 2, 2, 89, 3, 2, 2, 2, 2, 91, 3, 2, 2, 2, 2, 93, 3, 2, 2, 2, 2, 95, 3, 2, 2, 2, 2, 97, 3, 2, 2, 2, 2, 99, 3, 2, 2, 2, 2, 101, 3, 2, 2, 2, 2, 103, 3, 2, 2, 2, 2, 105, 3, 2, 2, 2, 2, 107, 3, 2, 2, 2, 2, 109, 3, 2, 2, 2, 2, 111, 3, 2, 2, 2, 2, 113, 3, 2, 2, 2, 2, 115, 3, 2, 2, 2, 2, 117, 3, 2, 2, 2, 2, 119, 3, 2, 2, 2, 2, 121, 3, 2, 2, 2, 2, 123, 3, 2, 2, 2, 2, 125, 3, 2, 2, 2, 2, 127, 3, 2, 2, 2, 2, 129, 3, 2, 2, 2, 2, 131, 3, 2, 2, 2, 2, 133, 3, 2, 2, 2, 2, 135, 3, 2, 2, 2, 2, 137, 3, 2, 2, 2, 2, 139, 3, 2, 2, 2, 2, 141, 3, 2, 2, 2, 2, 143, 3, 2, 2, 2, 2, 145, 3, 2, 2, 2, 2, 147, 3, 2, 2, 2, 2, 149, 3, 2, 2, 2, 2, 151, 3, 2, 2, 2, 2, 153, 3, 2, 2, 2, 2, 155, 3, 2, 2, 2, 2, 157, 3, 2, 2, 2, 2, 159, 3, 2, 2, 2, 2, 161, 3, 2, 2, 2, 2, 163, 3, 2, 2, 2, 2, 165, 3, 2, 2, 2, 2, 167, 3, 2, 2, 2, 2, 169, 3, 2, 2, 2, 2, 171, 3, 2, 2, 2, 2, 173, 3, 2, 2, 2, 2, 175, 3, 2, 2, 2, 2, 177, 3, 2, 2, 2, 2, 179, 3, 2, 2, 2, 2, 181, 3, 2, 2, 2, 2, 183, 3, 2, 2, 2, 2, 185, 3, 2, 2, 2, 2, 187, 3, 2, 2, 2, 2, 189, 3, 2, 2, 2, 2, 191, 3, 2, 2, 2, 2, 193, 3, 2, 2, 2, 2, 195, 3, 2, 2, 2, 2, 197, 3, 2, 2, 2, 2, 199, 3, 2, 2, 2, 2, 201, 3, 2, 2, 2, 2, 203, 3, 2, 2, 2, 2, 205, 3, 2, 2, 2, 2, 207, 3, 2, 2, 2, 2, 209, 3, 2, 2, 2, 2, 211, 3, 2, 2, 2, 2, 213, 3, 2, 2, 2, 2, 215, 3, 2, 2, 2, 2, 217, 3, 2, 2, 2, 2, 219, 3, 2, 2, 2, 2, 221, 3, 2, 2, 2, 2, 223, 3, 2, 2, 2, 2, 225, 3, 2, 2, 2, 2, 227, 3, 2, 2, 2, 2, 229, 3, 2, 2, 2, 2, 231, 3, 2, 2, 2, 2, 233, 3, 2, 2, 2, 2, 235, 3, 2, 2, 2, 2, 237, 3, 2, 2, 2, 2, 239, 3, 2, 2, 2, 2, 241, 3, 2, 2, 2, 2, 243, 3, 2, 2, 2, 2, 245, 3, 2, 2, 2, 2, 247, 3, 2, 2, 2, 2, 249, 3, 2, 2, 2, 2, 251, 3, 2, 2, 2, 2, 253, 3, 2, 2, 2, 2, 255, 3, 2, 2, 2, 2, 257, 3, 2, 2, 2, 2, 259, 3, 2, 2, 2, 2, 261, 3, 2, 2, 2, 2, 263, 3, 2, 2, 2, 2, 265, 3, 2, 2, 2, 2, 267, 3, 2, 2, 2, 2, 269, 3, 2, 2, 2, 2, 271, 3, 2, 2, 2, 2, 273, 3, 2, 2, 2, 2, 275, 3, 2, 2, 2, 2, 277, 3, 2, 2, 2, 2, 279, 3, 2, 2, 2, 2, 281, 3, 2, 2, 2, 2, 283, 3, 2, 2, 2, 2, 285, 3, 2, 2, 2, 2, 287, 3, 2, 2, 2, 2, 289, 3, 2, 2, 2, 2, 291, 3, 2, 2, 2, 2, 293, 3, 2, 2, 2, 2, 295, 3, 2, 2, 2, 2, 297, 3, 2, 2, 2, 2, 299, 3, 2, 2, 2, 2, 301, 3, 2, 2, 2, 2, 303, 3, 2, 2, 2, 2, 305, 3, 2, 2, 2, 2, 307, 3, 2, 2, 2, 2, 309, 3, 2, 2, 2, 2, 311, 3, 2, 2, 2, 2, 313, 3, 2, 2, 2, 2, 315, 3, 2, 2, 2, 2, 317, 3, 2, 2, 2, 2, 319, 3, 2, 2, 2, 2, 321, 3, 2, 2, 2, 2, 323, 3, 2, 2, 2, 2, 325, 3, 2, 2, 2, 2, 327, 3, 2, 2, 2, 2, 329, 3, 2, 2, 2, 2, 331, 3, 2, 2, 2, 2, 333, 3, 2, 2, 2, 2, 335, 3, 2, 2, 2, 2, 337, 3, 2, 2, 2, 2, 339, 3, 2, 2, 2, 2, 341, 3, 2, 2, 2, 2, 343, 3, 2, 2, 2, 2, 345, 3, 2, 2, 2, 2, 347, 3, 2, 2, 2, 2, 349, 3, 2, 2, 2, 2, 351, 3, 2, 2, 2, 2, 353, 3, 2, 2, 2, 2, 355, 3, 2, 2, 2, 2, 357, 3, 2, 2, 2, 2, 359, 3, 2, 2, 2, 2, 361, 3, 2, 2, 2, 2, 363, 3, 2, 2, 2, 2, 365, 3, 2, 2, 2, 2, 367, 3, 2, 2, 2, 2, 369, 3, 2, 2, 2, 2, 371, 3, 2, 2, 2, 2, 373, 3, 2, 2, 2, 2, 375, 3, 2, 2, 2, 2, 377, 3, 2, 2, 2, 2, 379, 3, 2, 2, 2, 2, 381, 3, 2, 2, 2, 2, 383, 3, 2, 2, 2, 2, 385, 3, 2, 2, 2, 2, 387, 3, 2, 2, 2, 2, 389, 3, 2, 2, 2, 2, 391, 3, 2, 2, 2, 2, 393, 3, 2, 2, 2, 2, 395, 3, 2, 2, 2, 2, 397, 3, 2, 2, 2, 2, 399, 3, 2, 2, 2, 2, 401, 3, 2, 2, 2, 2, 403, 3, 2, 2, 2, 2, 405, 3, 2, 2, 2, 2, 407, 3, 2, 2, 2, 2, 409, 3, 2, 2, 2, 2, 411, 3, 2, 2, 2, 2, 413, 3, 2, 2, 2, 2, 415, 3, 2, 2, 2, 2, 417, 3, 2, 2, 2, 2, 419, 3, 2, 2, 2, 2, 421, 3, 2, 2, 2, 2, 423, 3, 2, 2, 2, 2, 425, 3, 2, 2, 2, 2, 427, 3, 2, 2, 2, 2, 429, 3, 2, 2, 2, 2, 431, 3, 2, 2, 2, 2, 433, 3, 2, 2, 2, 2, 435, 3, 2, 2, 2, 2, 437, 3, 2, 2, 2, 2, 439, 3, 2, 2, 2, 2, 441, 3, 2, 2, 2, 2, 443, 3, 2, 2, 2, 2, 445, 3, 2, 2, 2, 2, 447, 3, 2, 2, 2, 2, 449, 3, 2, 2, 2, 2, 451, 3, 2, 2, 2, 2, 453, 3, 2, 2, 2, 2, 455, 3, 2, 2, 2, 2, 457, 3, 2, 2, 2, 2, 459, 3, 2, 2, 2, 2, 461, 3, 2, 2, 2, 3, 463, 3, 2, 2, 2, 5, 467, 3, 2, 2, 2, 7, 471, 3, 2, 2, 2, 9, 475, 3, 2, 2, 2, 11, 480, 3, 2, 2, 2, 13, 485, 3, 2, 2, 2, 15, 490, 3, 2, 2, 2, 17, 496, 3, 2, 2, 2, 19, 501, 3, 2, 2, 2, 21, 506, 3, 2, 2, 2, 23, 511, 3, 2, 2, 2, 25, 517, 3, 2, 2, 2, 27, 523, 3, 2, 2, 2, 29, 529, 3, 2, 2, 2, 31, 533, 3, 2, 2, 2, 33, 538, 3, 2, 2, 2, 35, 541, 3, 2, 2, 2, 37, 545, 3, 2, 2, 2, 39, 549, 3, 2, 2, 2, 41, 554, 3, 2, 2, 2, 43, 559, 3, 2, 2, 2, 45, 564, 3, 2, 2, 2, 47, 569, 3, 2, 2, 2, 49, 575, 3, 2, 2, 2, 51, 581, 3, 2, 2, 2, 53, 587, 3, 2, 2, 2, 55, 592, 3, 2, 2, 2, 57, 598, 3, 2, 2, 2, 59, 604, 3, 2, 2, 2, 61, 608, 3, 2, 2, 2, 63, 613, 3, 2, 2, 2, 65, 619, 3, 2, 2, 2, 67, 623, 3, 2, 2, 2, 69, 628, 3, 2, 2, 2, 71, 634, 3, 2, 2, 2, 73, 655, 3, 2, 2, 2, 75, 670, 3, 2, 2, 2, 77, 672, 3, 2, 2, 2, 79, 677, 3, 2, 2, 2, 81, 682, 3, 2, 2, 2, 83, 693, 3, 2, 2, 2, 85, 699, 3, 2, 2, 2, 87, 704, 3, 2, 2, 2, 89, 713, 3, 2, 2, 2, 91, 718, 3, 2, 2, 2, 93, 723, 3, 2, 2, 2, 95, 746, 3, 2, 2, 2, 97, 763, 3, 2, 2, 2, 99, 765, 3, 2, 2, 2, 101, 781, 3, 2, 2, 2, 103, 794, 3, 2, 2, 2, 105, 796, 3, 2, 2, 2, 107, 802, 3, 2, 2, 2, 109, 811, 3, 2, 2, 2, 111, 820, 3, 2, 2, 2, 113, 825, 3, 2, 2, 2, 115, 830, 3, 2, 2, 2, 117, 835, 3, 2, 2, 2, 119, 839, 3, 2, 2, 2, 121, 844, 3, 2, 2, 2, 123, 848, 3, 2, 2, 2, 125, 867, 3, 2, 2, 2, 127, 884, 3, 2, 2, 2, 129, 886, 3, 2, 2, 2, 131, 895, 3, 2, 2, 2, 133, 899, 3, 2, 2, 2, 135, 906, 3, 2, 2, 2, 137, 910, 3, 2, 2, 2, 139, 917, 3, 2, 2, 2, 141, 921, 3, 2, 2, 2, 143, 925, 3, 2, 2, 2, 145, 942, 3, 2, 2, 2, 147, 944, 3, 2, 2, 2, 149, 951, 3, 2, 2, 2, 151, 956, 3, 2, 2, 2, 153, 963, 3, 2, 2, 2, 155, 991, 3, 2, 2, 2, 157, 1013, 3, 2, 2, 2, 159, 1030, 3, 2, 2, 2, 161, 1051, 3, 2, 2, 2, 163, 1066, 3, 2, 2, 2, 165, 1068, 3, 2, 2, 2, 167, 1093, 3, 2, 2, 2, 169, 1095, 3, 2, 2, 2, 171, 1124, 3, 2, 2, 2, 173, 1140, 3, 2, 2, 2, 175, 1142, 3, 2, 2, 2, 177, 1149, 3, 2, 2, 2, 179, 1157, 3, 2, 2, 2, 181, 1164, 3, 2, 2, 2, 183, 1174, 3, 2, 2, 2, 185, 1211, 3, 2, 2, 2, 187, 1213, 3, 2, 2, 2, 189, 1225, 3, 2, 2, 2, 191, 1261, 3, 2, 2, 2, 193, 1281, 3, 2, 2, 2, 195, 1283, 3, 2, 2, 2, 197, 1302, 3, 2, 2, 2, 199, 1304, 3, 2, 2, 2, 201, 1312, 3, 2, 2, 2, 203, 1316, 3, 2, 2, 2, 205, 1322, 3, 2, 2, 2, 207, 1329, 3, 2, 2, 2, 209, 1349, 3, 2, 2, 2, 211, 1373, 3, 2, 2, 2, 213, 1375, 3, 2, 2, 2, 215, 1396, 3, 2, 2, 2, 217, 1413, 3, 2, 2, 2, 219, 1428, 3, 2, 2, 2, 221, 1430, 3, 2, 2, 2, 223, 1437, 3, 2, 2, 2, 225, 1448, 3, 2, 2, 2, 227, 1458, 3, 2, 2, 2, 229, 1470, 3, 2, 2, 2, 231, 1480, 3, 2, 2, 2, 233, 1510, 3, 2, 2, 2, 235, 1512, 3, 2, 2, 2, 237, 1516, 3, 2, 2, 2, 239, 1522, 3, 2, 2, 2, 241, 1528, 3, 2, 2, 2, 243, 1534, 3, 2, 2, 2, 245, 1539, 3, 2, 2, 2, 247, 1545, 3, 2, 2, 2, 249, 1565, 3, 2, 2, 2, 251, 1567, 3, 2, 2, 2, 253, 1572, 3, 2, 2, 2, 255, 1580, 3, 2, 2, 2, 257, 1587, 3, 2, 2, 2, 259, 1593, 3, 2, 2, 2, 261, 1604, 3, 2, 2, 2, 263, 1616, 3, 2, 2, 2, 265, 1629, 3, 2, 2, 2, 267, 1643, 3, 2, 2, 2, 269, 1656, 3, 2, 2, 2, 271, 1670, 3, 2, 2, 2, 273, 1681, 3, 2, 2, 2, 275, 1692, 3, 2, 2, 2, 277, 1703, 3, 2, 2, 2, 279, 1714, 3, 2, 2, 2, 281, 1733, 3, 2, 2, 2, 283, 1794, 3, 2, 2, 2, 285, 1796, 3, 2, 2, 2, 287, 1807, 3, 2, 2, 2, 289, 1855, 3, 2, 2, 2, 291, 1876, 3, 2, 2, 2, 293, 1878, 3, 2, 2, 2, 295, 1881, 3, 2, 2, 2, 297, 1886, 3, 2, 2, 2, 299, 1892, 3, 2, 2, 2, 301, 1896, 3, 2, 2, 2, 303, 1899, 3, 2, 2, 2, 305, 1905, 3, 2, 2, 2, 307, 1914, 3, 2, 2, 2, 309, 1933, 3, 2, 2, 2, 311, 1935, 3, 2, 2, 2, 313, 1940, 3, 2, 2, 2, 315, 1948, 3, 2, 2, 2, 317, 1955, 3, 2, 2, 2, 319, 1962, 3, 2, 2, 2, 321, 1970, 3, 2, 2, 2, 323, 1978, 3, 2, 2, 2, 325, 1985, 3, 2, 2, 2, 327, 1990, 3, 2, 2, 2, 329, 2001, 3, 2, 2, 2, 331, 2010, 3, 2, 2, 2, 333, 2018, 3, 2, 2, 2, 335, 2028, 3, 2, 2, 2, 337, 2033, 3, 2, 2, 2, 339, 2052, 3, 2, 2, 2, 341, 2054, 3, 2, 2, 2, 343, 2062, 3, 2, 2, 2, 345, 2083, 3, 2, 2, 2, 347, 2108, 3, 2, 2, 2, 349, 2133, 3, 2, 2, 2, 351, 2153, 3, 2, 2, 2, 353, 2178, 3, 2, 2, 2, 355, 2203, 3, 2, 2, 2, 357, 2226, 3, 2, 2, 2, 359, 2247, 3, 2, 2, 2, 361, 2266, 3, 2, 2, 2, 363, 2287, 3, 2, 2, 2, 365, 2308, 3, 2, 2, 2, 367, 2333, 3, 2, 2, 2, 369, 2354, 3, 2, 2, 2, 371, 2375, 3, 2, 2, 2, 373, 2397, 3, 2, 2, 2, 375, 2417, 3, 2, 2, 2, 377, 2467, 3, 2, 2, 2, 379, 2497, 3, 2, 2, 2, 381, 2517, 3, 2, 2, 2, 383, 2547, 3, 2, 2, 2, 385, 2549, 3, 2, 2, 2, 387, 2551, 3, 2, 2, 2, 389, 2553, 3, 2, 2, 2, 391, 2555, 3, 2, 2, 2, 393, 2557, 3, 2, 2, 2, 395, 2559, 3, 2, 2, 2, 397, 2561, 3, 2, 2, 2, 399, 2564, 3, 2, 2, 2, 401, 2567, 3, 2, 2, 2, 403, 2570, 3, 2, 2, 2, 405, 2572, 3, 2, 2, 2, 407, 2575, 3, 2, 2, 2, 409, 2577, 3, 2, 2, 2, 411, 2580, 3, 2, 2, 2, 413, 2582, 3, 2, 2, 2, 415, 2585, 3, 2, 2, 2, 417, 2588, 3, 2, 2, 2, 419, 2591, 3, 2, 2, 2, 421, 2594, 3, 2, 2, 2, 423, 2597, 3, 2, 2, 2, 425, 2600, 3, 2, 2, 2, 427, 2602, 3, 2, 2, 2, 429, 2604, 3, 2, 2, 2, 431, 2606, 3, 2, 2, 2, 433, 2608, 3, 2, 2, 2, 435, 2610, 3, 2, 2, 2, 437, 2613, 3, 2, 2, 2, 439, 2615, 3, 2, 2, 2, 441, 2617, 3, 2, 2, 2, 443, 2619, 3, 2, 2, 2, 445, 2621, 3, 2, 2, 2, 447, 2623, 3, 2, 2, 2, 449, 2645, 3, 2, 2, 2, 451, 2663, 3, 2, 2, 2, 453, 2685, 3, 2, 2, 2, 455, 2687, 3, 2, 2, 2, 457, 2694, 3, 2, 2, 2, 459, 2703, 3, 2, 2, 2, 461, 2718, 3, 2, 2, 2, 463, 464, 7, 117, 2, 2, 464, 465, 7, 107, 2, 2, 465, 466, 7, 112, 2, 2, 466, 4, 3, 2, 2, 2, 467, 468, 7, 101, 2, 2, 468, 469, 7, 113, 2, 2, 469, 470, 7, 117, 2, 2, 470, 6, 3, 2, 2, 2, 471, 472, 7, 118, 2, 2, 472, 473, 7, 99, 2, 2, 473, 474, 7, 112, 2, 2, 474, 8, 3, 2, 2, 2, 475, 476, 7, 99, 2, 2, 476, 477, 7, 117, 2, 2, 477, 478, 7, 107, 2, 2, 478, 479, 7, 112, 2, 2, 479, 10, 3, 2, 2, 2, 480, 481, 7, 99, 2, 2, 481, 482, 7, 101, 2, 2, 482, 483, 7, 113, 2, 2, 483, 484, 7, 117, 2, 2, 484, 12, 3, 2, 2, 2, 485, 486, 7, 99, 2, 2, 486, 487, 7, 118, 2, 2, 487, 488, 7, 99, 2, 2, 488, 489, 7, 112, 2, 2, 489, 14, 3, 2, 2, 2, 490, 491, 7, 99, 2, 2, 491, 492, 7, 118, 2, 2, 492, 493, 7, 99, 2, 2, 493, 494, 7, 112, 2, 2, 494, 495, 7, 52, 2, 2, 495, 16, 3, 2, 2, 2, 496, 497, 7, 117, 2, 2, 497, 498, 7, 107, 2, 2, 498, 499, 7, 112, 2, 2, 499, 500, 7, 106, 2, 2, 500, 18, 3, 2, 2, 2, 501, 502, 7, 101, 2, 2, 502, 503, 7, 113, 2, 2, 503, 504, 7, 117, 2, 2, 504, 505, 7, 106, 2, 2, 505, 20, 3, 2, 2, 2, 506, 507, 7, 118, 2, 2, 507, 508, 7, 99, 2, 2, 508, 509, 7, 112, 2, 2, 509, 510, 7, 106, 2, 2, 510, 22, 3, 2, 2, 2, 511, 512, 7, 99, 2, 2, 512, 513, 7, 117, 2, 2, 513, 514, 7, 107, 2, 2, 514, 515, 7, 112, 2, 2, 515, 516, 7, 106, 2, 2, 516, 24, 3, 2, 2, 2, 517, 518, 7, 99, 2, 2, 518, 519, 7, 101, 2, 2, 519, 520, 7, 113, 2, 2, 520, 521, 7, 117, 2, 2, 521, 522, 7, 106, 2, 2, 522, 26, 3, 2, 2, 2, 523, 524, 7, 99, 2, 2, 524, 525, 7, 118, 2, 2, 525, 526, 7, 99, 2, 2, 526, 527, 7, 112, 2, 2, 527, 528, 7, 106, 2, 2, 528, 28, 3, 2, 2, 2, 529, 530, 7, 99, 2, 2, 530, 531, 7, 100, 2, 2, 531, 532, 7, 117, 2, 2, 532, 30, 3, 2, 2, 2, 533, 534, 7, 117, 2, 2, 534, 535, 7, 115, 2, 2, 535, 536, 7, 116, 2, 2, 536, 537, 7, 118, 2, 2, 537, 32, 3, 2, 2, 2, 538, 539, 7, 110, 2, 2, 539, 540, 7, 112, 2, 2, 540, 34, 3, 2, 2, 2, 541, 542, 7, 110, 2, 2, 542, 543, 7, 113, 2, 2, 543, 544, 7, 105, 2, 2, 544, 36, 3, 2, 2, 2, 545, 546, 7, 103, 2, 2, 546, 547, 7, 122, 2, 2, 547, 548, 7, 114, 2, 2, 548, 38, 3, 2, 2, 2, 549, 550, 7, 117, 2, 2, 550, 551, 7, 111, 2, 2, 551, 552, 7, 107, 2, 2, 552, 553, 7, 112, 2, 2, 553, 40, 3, 2, 2, 2, 554, 555, 7, 117, 2, 2, 555, 556, 7, 111, 2, 2, 556, 557, 7, 99, 2, 2, 557, 558, 7, 122, 2, 2, 558, 42, 3, 2, 2, 2, 559, 560, 7, 118, 2, 2, 560, 561, 7, 111, 2, 2, 561, 562, 7, 107, 2, 2, 562, 563, 7, 112, 2, 2, 563, 44, 3, 2, 2, 2, 564, 565, 7, 118, 2, 2, 565, 566, 7, 111, 2, 2, 566, 567, 7, 99, 2, 2, 567, 568, 7, 122, 2, 2, 568, 46, 3, 2, 2, 2, 569, 570, 7, 118, 2, 2, 570, 571, 7, 112, 2, 2, 571, 572, 7, 113, 2, 2, 572, 573, 7, 116, 2, 2, 573, 574, 7, 111, 2, 2, 574, 48, 3, 2, 2, 2, 575, 576, 7, 117, 2, 2, 576, 577, 7, 112, 2, 2, 577, 578, 7, 113, 2, 2, 578, 579, 7, 116, 2, 2, 579, 580, 7, 111, 2, 2, 580, 50, 3, 2, 2, 2, 581, 582, 7, 104, 2, 2, 582, 583, 7, 110, 2, 2, 583, 584, 7, 113, 2, 2, 584, 585, 7, 113, 2, 2, 585, 586, 7, 116, 2, 2, 586, 52, 3, 2, 2, 2, 587, 588, 7, 101, 2, 2, 588, 589, 7, 103, 2, 2, 589, 590, 7, 107, 2, 2, 590, 591, 7, 110, 2, 2, 591, 54, 3, 2, 2, 2, 592, 593, 7, 116, 2, 2, 593, 594, 7, 113, 2, 2, 594, 595, 7, 119, 2, 2, 595, 596, 7, 112, 2, 2, 596, 597, 7, 102, 2, 2, 597, 56, 3, 2, 2, 2, 598, 599, 7, 105, 2, 2, 599, 600, 7, 99, 2, 2, 600, 601, 7, 111, 2, 2, 601, 602, 7, 111, 2, 2, 602, 603, 7, 99, 2, 2, 603, 58, 3, 2, 2, 2, 604, 605, 7, 114, 2, 2, 605, 606, 7, 113, 2, 2, 606, 607, 7, 121, 2, 2, 607, 60, 3, 2, 2, 2, 608, 609, 7, 117, 2, 2, 609, 610, 7, 107, 2, 2, 610, 611, 7, 105, 2, 2, 611, 612, 7, 111, 2, 2, 612, 62, 3, 2, 2, 2, 613, 614, 7, 101, 2, 2, 614, 615, 7, 110, 2, 2, 615, 616, 7, 99, 2, 2, 616, 617, 7, 111, 2, 2, 617, 618, 7, 114, 2, 2, 618, 64, 3, 2, 2, 2, 619, 620, 7, 104, 2, 2, 620, 621, 7, 104, 2, 2, 621, 622, 7, 118, 2, 2, 622, 66, 3, 2, 2, 2, 623, 624, 7, 107, 2, 2, 624, 625, 7, 104, 2, 2, 625, 626, 7, 104, 2, 2, 626, 627, 7, 118, 2, 2, 627, 68, 3, 2, 2, 2, 628, 629, 7, 99, 2, 2, 629, 630, 7, 112, 2, 2, 630, 631, 7, 105, 2, 2, 631, 632, 7, 110, 2, 2, 632, 633, 7, 103, 2, 2, 633, 70, 3, 2, 2, 2, 634, 635, 7, 114, 2, 2, 635, 636, 7, 116, 2, 2, 636, 637, 7, 107, 2, 2, 637, 638, 7, 112, 2, 2, 638, 639, 7, 118, 2, 2, 639, 72, 3, 2, 2, 2, 640, 641, 7, 114, 2, 2, 641, 642, 7, 116, 2, 2, 642, 643, 7, 107, 2, 2, 643, 644, 7, 112, 2, 2, 644, 645, 7, 118, 2, 2, 645, 646, 7, 97, 2, 2, 646, 647, 7, 117, 2, 2, 647, 648, 7, 106, 2, 2, 648, 649, 7, 99, 2, 2, 649, 650, 7, 114, 2, 2, 650, 656, 7, 103, 2, 2, 651, 652, 7, 114, 2, 2, 652, 653, 7, 117, 2, 2, 653, 654, 7, 106, 2, 2, 654, 656, 7, 114, 2, 2, 655, 640, 3, 2, 2, 2, 655, 651, 3, 2, 2, 2, 656, 74, 3, 2, 2, 2, 657, 658, 7, 112, 2, 2, 658, 659, 7, 120, 2, 2, 659, 671, 7, 110, 2, 2, 660, 661, 7, 112, 2, 2, 661, 662, 7, 99, 2, 2, 662, 663, 7, 112, 2, 2, 663, 664, 7, 97, 2, 2, 664, 665, 7, 118, 2, 2, 665, 666, 7, 113, 2, 2, 666, 667, 7, 97, 2, 2, 667, 668, 7, 112, 2, 2, 668, 669, 7, 119, 2, 2, 669, 671, 7, 111, 2, 2, 670, 657, 3, 2, 2, 2, 670, 660, 3, 2, 2, 2, 671, 76, 3, 2, 2, 2, 672, 673, 7, 110, 2, 2, 673, 674, 7, 103, 2, 2, 674, 675, 7, 116, 2, 2, 675, 676, 7, 114, 2, 2, 676, 78, 3, 2, 2, 2, 677, 678, 7, 117, 2, 2, 678, 679, 7, 118, 2, 2, 679, 680, 7, 103, 2, 2, 680, 681, 7, 114, 2, 2, 681, 80, 3, 2, 2, 2, 682, 683, 7, 117, 2, 2, 683, 684, 7, 111, 2, 2, 684, 685, 7, 113, 2, 2, 685, 686, 7, 113, 2, 2, 686, 687, 7, 118, 2, 2, 687, 688, 7, 106, 2, 2, 688, 689, 7, 117, 2, 2, 689, 690, 7, 118, 2, 2, 690, 691, 7, 103, 2, 2, 691, 692, 7, 114, 2, 2, 692, 82, 3, 2, 2, 2, 693, 694, 7, 104, 2, 2, 694, 695, 7, 116, 2, 2, 695, 696, 7, 99, 2, 2, 696, 697, 7, 101, 2, 2, 697, 698, 7, 118, 2, 2, 698, 84, 3, 2, 2, 2, 699, 700, 7, 116, 2, 2, 700, 701, 7, 103, 2, 2, 701, 702, 7, 110, 2, 2, 702, 703, 7, 119, 2, 2, 703, 86, 3, 2, 2, 2, 704, 705, 7, 117, 2, 2, 705, 706, 7, 113, 2, 2, 706, 707, 7, 104, 2, 2, 707, 708, 7, 118, 2, 2, 708, 709, 7, 114, 2, 2, 709, 710, 7, 110, 2, 2, 710, 711, 7, 119, 2, 2, 711, 712, 7, 117, 2, 2, 712, 88, 3, 2, 2, 2, 713, 714, 7, 105, 2, 2, 714, 715, 7, 103, 2, 2, 715, 716, 7, 110, 2, 2, 716, 717, 7, 119, 2, 2, 717, 90, 3, 2, 2, 2, 718, 719, 7, 117, 2, 2, 719, 720, 7, 107, 2, 2, 720, 721, 7, 105, 2, 2, 721, 722, 7, 112, 2, 2, 722, 92, 3, 2, 2, 2, 723, 724, 7, 111, 2, 2, 724, 725, 7, 99, 2, 2, 725, 726, 7, 114, 2, 2, 726, 94, 3, 2, 2, 2, 727, 728, 7, 103, 2, 2, 728, 729, 7, 124, 2, 2, 729, 730, 7, 101, 2, 2, 730, 731, 7, 113, 2, 2, 731, 732, 7, 112, 2, 2, 732, 733, 7, 120, 2, 2, 733, 734, 7, 113, 2, 2, 734, 735, 7, 110, 2, 2, 735, 736, 7, 119, 2, 2, 736, 737, 7, 118, 2, 2, 737, 738, 7, 107, 2, 2, 738, 739, 7, 113, 2, 2, 739, 747, 7, 112, 2, 2, 740, 741, 7, 103, 2, 2, 741, 742, 7, 124, 2, 2, 742, 743, 7, 101, 2, 2, 743, 744, 7, 113, 2, 2, 744, 745, 7, 112, 2, 2, 745, 747, 7, 120, 2, 2, 746, 727, 3, 2, 2, 2, 746, 740, 3, 2, 2, 2, 747, 96, 3, 2, 2, 2, 748, 749, 7, 101, 2, 2, 749, 750, 7, 113, 2, 2, 750, 751, 7, 112, 2, 2, 751, 752, 7, 120, 2, 2, 752, 753, 7, 113, 2, 2, 753, 754, 7, 110, 2, 2, 754, 755, 7, 119, 2, 2, 755, 756, 7, 118, 2, 2, 756, 757, 7, 107, 2, 2, 757, 758, 7, 113, 2, 2, 758, 764, 7, 112, 2, 2, 759, 760, 7, 101, 2, 2, 760, 761, 7, 113, 2, 2, 761, 762, 7, 112, 2, 2, 762, 764, 7, 120, 2, 2, 763, 748, 3, 2, 2, 2, 763, 759, 3, 2, 2, 2, 764, 98, 3, 2, 2, 2, 765, 766, 7, 117, 2, 2, 766, 767, 7, 121, 2, 2, 767, 768, 7, 99, 2, 2, 768, 769, 7, 114, 2, 2, 769, 100, 3, 2, 2, 2, 770, 771, 7, 114, 2, 2, 771, 772, 7, 103, 2, 2, 772, 773, 7, 116, 2, 2, 773, 774, 7, 111, 2, 2, 774, 775, 7, 119, 2, 2, 775, 776, 7, 118, 2, 2, 776, 782, 7, 103, 2, 2, 777, 778, 7, 114, 2, 2, 778, 779, 7, 103, 2, 2, 779, 780, 7, 116, 2, 2, 780, 782, 7, 111, 2, 2, 781, 770, 3, 2, 2, 2, 781, 777, 3, 2, 2, 2, 782, 102, 3, 2, 2, 2, 783, 784, 7, 116, 2, 2, 784, 785, 7, 103, 2, 2, 785, 786, 7, 117, 2, 2, 786, 787, 7, 106, 2, 2, 787, 788, 7, 99, 2, 2, 788, 789, 7, 114, 2, 2, 789, 795, 7, 103, 2, 2, 790, 791, 7, 116, 2, 2, 791, 792, 7, 117, 2, 2, 792, 793, 7, 106, 2, 2, 793, 795, 7, 114, 2, 2, 794, 783, 3, 2, 2, 2, 794, 790, 3, 2, 2, 2, 795, 104, 3, 2, 2, 2, 796, 797, 7, 116, 2, 2, 797, 798, 7, 99, 2, 2, 798, 799, 7, 112, 2, 2, 799, 800, 7, 105, 2, 2, 800, 801, 7, 103, 2, 2, 801, 106, 3, 2, 2, 2, 802, 803, 7, 110, 2, 2, 803, 804, 7, 107, 2, 2, 804, 805, 7, 112, 2, 2, 805, 806, 7, 117, 2, 2, 806, 807, 7, 114, 2, 2, 807, 808, 7, 99, 2, 2, 808, 809, 7, 101, 2, 2, 809, 810, 7, 103, 2, 2, 810, 108, 3, 2, 2, 2, 811, 812, 7, 110, 2, 2, 812, 813, 7, 113, 2, 2, 813, 814, 7, 105, 2, 2, 814, 815, 7, 117, 2, 2, 815, 816, 7, 114, 2, 2, 816, 817, 7, 99, 2, 2, 817, 818, 7, 101, 2, 2, 818, 819, 7, 103, 2, 2, 819, 110, 3, 2, 2, 2, 820, 821, 7, 118, 2, 2, 821, 822, 7, 113, 2, 2, 822, 823, 7, 114, 2, 2, 823, 824, 7, 109, 2, 2, 824, 112, 3, 2, 2, 2, 825, 826, 7, 100, 2, 2, 826, 827, 7, 113, 2, 2, 827, 828, 7, 118, 2, 2, 828, 829, 7, 109, 2, 2, 829, 114, 3, 2, 2, 2, 830, 831, 7, 114, 2, 2, 831, 832, 7, 107, 2, 2, 832, 833, 7, 112, 2, 2, 833, 834, 7, 120, 2, 2, 834, 116, 3, 2, 2, 2, 835, 836, 7, 117, 2, 2, 836, 837, 7, 119, 2, 2, 837, 838, 7, 111, 2, 2, 838, 118, 3, 2, 2, 2, 839, 840, 7, 111, 2, 2, 840, 841, 7, 103, 2, 2, 841, 842, 7, 99, 2, 2, 842, 843, 7, 112, 2, 2, 843, 120, 3, 2, 2, 2, 844, 845, 7, 117, 2, 2, 845, 846, 7, 118, 2, 2, 846, 847, 7, 102, 2, 2, 847, 122, 3, 2, 2, 2, 848, 849, 7, 120, 2, 2, 849, 850, 7, 99, 2, 2, 850, 851, 7, 116, 2, 2, 851, 124, 3, 2, 2, 2, 852, 853, 7, 115, 2, 2, 853, 854, 7, 119, 2, 2, 854, 855, 7, 99, 2, 2, 855, 856, 7, 116, 2, 2, 856, 857, 7, 118, 2, 2, 857, 858, 7, 107, 2, 2, 858, 859, 7, 110, 2, 2, 859, 868, 7, 103, 2, 2, 860, 861, 7, 115, 2, 2, 861, 862, 7, 119, 2, 2, 862, 863, 7, 99, 2, 2, 863, 864, 7, 116, 2, 2, 864, 865, 7, 118, 2, 2, 865, 866, 7, 107, 2, 2, 866, 868, 7, 110, 2, 2, 867, 852, 3, 2, 2, 2, 867, 860, 3, 2, 2, 2, 868, 126, 3, 2, 2, 2, 869, 870, 7, 114, 2, 2, 870, 871, 7, 103, 2, 2, 871, 872, 7, 116, 2, 2, 872, 873, 7, 101, 2, 2, 873, 874, 7, 103, 2, 2, 874, 875, 7, 112, 2, 2, 875, 876, 7, 118, 2, 2, 876, 877, 7, 107, 2, 2, 877, 878, 7, 110, 2, 2, 878, 885, 7, 103, 2, 2, 879, 880, 7, 114, 2, 2, 880, 881, 7, 116, 2, 2, 881, 882, 7, 101, 2, 2, 882, 883, 7, 112, 2, 2, 883, 885, 7, 118, 2, 2, 884, 869, 3, 2, 2, 2, 884, 879, 3, 2, 2, 2, 885, 128, 3, 2, 2, 2, 886, 887, 7, 115, 2, 2, 887, 888, 7, 119, 2, 2, 888, 889, 7, 99, 2, 2, 889, 890, 7, 112, 2, 2, 890, 891, 7, 118, 2, 2, 891, 892, 7, 107, 2, 2, 892, 893, 7, 110, 2, 2, 893, 894, 7, 103, 2, 2, 894, 130, 3, 2, 2, 2, 895, 896, 7, 102, 2, 2, 896, 897, 7, 113, 2, 2, 897, 898, 7, 118, 2, 2, 898, 132, 3, 2, 2, 2, 899, 900, 7, 111, 2, 2, 900, 901, 7, 113, 2, 2, 901, 902, 7, 111, 2, 2, 902, 903, 7, 103, 2, 2, 903, 904, 7, 112, 2, 2, 904, 905, 7, 118, 2, 2, 905, 134, 3, 2, 2, 2, 906, 907, 7, 103, 2, 2, 907, 908, 7, 116, 2, 2, 908, 909, 7, 104, 2, 2, 909, 136, 3, 2, 2, 2, 910, 911, 7, 103, 2, 2, 911, 912, 7, 116, 2, 2, 912, 913, 7, 104, 2, 2, 913, 914, 7, 107, 2, 2, 914, 915, 7, 112, 2, 2, 915, 916, 7, 120, 2, 2, 916, 138, 3, 2, 2, 2, 917, 918, 7, 99, 2, 2, 918, 919, 7, 112, 2, 2, 919, 920, 7, 123, 2, 2, 920, 140, 3, 2, 2, 2, 921, 922, 7, 99, 2, 2, 922, 923, 7, 110, 2, 2, 923, 924, 7, 110, 2, 2, 924, 142, 3, 2, 2, 2, 925, 926, 7, 103, 2, 2, 926, 927, 7, 102, 2, 2, 927, 928, 7, 105, 2, 2, 928, 929, 7, 103, 2, 2, 929, 144, 3, 2, 2, 2, 930, 931, 7, 100, 2, 2, 931, 932, 7, 110, 2, 2, 932, 933, 7, 119, 2, 2, 933, 943, 7, 116, 2, 2, 934, 935, 7, 105, 2, 2, 935, 936, 7, 99, 2, 2, 936, 937, 7, 119, 2, 2, 937, 938, 7, 117, 2, 2, 938, 939, 7, 117, 2, 2, 939, 940, 7, 107, 2, 2, 940, 941, 7, 99, 2, 2, 941, 943, 7, 112, 2, 2, 942, 930, 3, 2, 2, 2, 942, 934, 3, 2, 2, 2, 943, 146, 3, 2, 2, 2, 944, 945, 7, 111, 2, 2, 945, 946, 7, 103, 2, 2, 946, 947, 7, 102, 2, 2, 947, 948, 7, 107, 2, 2, 948, 949, 7, 99, 2, 2, 949, 950, 7, 112, 2, 2, 950, 148, 3, 2, 2, 2, 951, 952, 7, 111, 2, 2, 952, 953, 7, 113, 2, 2, 953, 954, 7, 102, 2, 2, 954, 955, 7, 103, 2, 2, 955, 150, 3, 2, 2, 2, 956, 957, 7, 101, 2, 2, 957, 958, 7, 119, 2, 2, 958, 959, 7, 111, 2, 2, 959, 960, 7, 117, 2, 2, 960, 961, 7, 119, 2, 2, 961, 962, 7, 111, 2, 2, 962, 152, 3, 2, 2, 2, 963, 964, 7, 101, 2, 2, 964, 965, 7, 119, 2, 2, 965, 966, 7, 111, 2, 2, 966, 967, 7, 114, 2, 2, 967, 968, 7, 116, 2, 2, 968, 969, 7, 113, 2, 2, 969, 970, 7, 102, 2, 2, 970, 154, 3, 2, 2, 2, 971, 972, 7, 118, 2, 2, 972, 973, 7, 113, 2, 2, 973, 974, 7, 114, 2, 2, 974, 975, 7, 109, 2, 2, 975, 976, 7, 97, 2, 2, 976, 977, 7, 107, 2, 2, 977, 978, 7, 112, 2, 2, 978, 992, 7, 102, 2, 2, 979, 980, 7, 118, 2, 2, 980, 981, 7, 113, 2, 2, 981, 982, 7, 114, 2, 2, 982, 983, 7, 109, 2, 2, 983, 984, 7, 97, 2, 2, 984, 985, 7, 107, 2, 2, 985, 986, 7, 112, 2, 2, 986, 987, 7, 102, 2, 2, 987, 988, 7, 107, 2, 2, 988, 989, 7, 101, 2, 2, 989, 990, 7, 103, 2, 2, 990, 992, 7, 117, 2, 2, 991, 971, 3, 2, 2, 2, 991, 979, 3, 2, 2, 2, 992, 156, 3, 2, 2, 2, 993, 994, 7, 100, 2, 2, 994, 995, 7, 113, 2, 2, 995, 996, 7, 118, 2, 2, 996, 997, 7, 109, 2, 2, 997, 998, 7, 97, 2, 2, 998, 999, 7, 107, 2, 2, 999, 1000, 7, 112, 2, 2, 1000, 1014, 7, 102, 2, 2, 1001, 1002, 7, 100, 2, 2, 1002, 1003, 7, 113, 2, 2, 1003, 1004, 7, 118, 2, 2, 1004, 1005, 7, 109, 2, 2, 1005, 1006, 7, 97, 2, 2, 1006, 1007, 7, 107, 2, 2, 1007, 1008, 7, 112, 2, 2, 1008, 1009, 7, 102, 2, 2, 1009, 1010, 7, 107, 2, 2, 1010, 1011, 7, 101, 2, 2, 1011, 1012, 7, 103, 2, 2, 1012, 1014, 7, 117, 2, 2, 1013, 993, 3, 2, 2, 2, 1013, 1001, 3, 2, 2, 2, 1014, 158, 3, 2, 2, 2, 1015, 1016, 7, 101, 2, 2, 1016, 1017, 7, 119, 2, 2, 1017, 1018, 7, 100, 2, 2, 1018, 1019, 7, 107, 2, 2, 1019, 1020, 7, 101, 2, 2, 1020, 1021, 7, 97, 2, 2, 1021, 1022, 7, 103, 2, 2, 1022, 1023, 7, 99, 2, 2, 1023, 1024, 7, 117, 2, 2, 1024, 1031, 7, 103, 2, 2, 1025, 1026, 7, 101, 2, 2, 1026, 1027, 7, 119, 2, 2, 1027, 1028, 7, 100, 2, 2, 1028, 1029, 7, 107, 2, 2, 1029, 1031, 7, 101, 2, 2, 1030, 1015, 3, 2, 2, 2, 1030, 1025, 3, 2, 2, 2, 1031, 160, 3, 2, 2, 2, 1032, 1033, 7, 103, 2, 2, 1033, 1034, 7, 110, 2, 2, 1034, 1035, 7, 99, 2, 2, 1035, 1036, 7, 117, 2, 2, 1036, 1037, 7, 118, 2, 2, 1037, 1038, 7, 107, 2, 2, 1038, 1039, 7, 101, 2, 2, 1039, 1040, 7, 97, 2, 2, 1040, 1041, 7, 103, 2, 2, 1041, 1042, 7, 99, 2, 2, 1042, 1043, 7, 117, 2, 2, 1043, 1052, 7, 103, 2, 2, 1044, 1045, 7, 103, 2, 2, 1045, 1046, 7, 110, 2, 2, 1046, 1047, 7, 99, 2, 2, 1047, 1048, 7, 117, 2, 2, 1048, 1049, 7, 118, 2, 2, 1049, 1050, 7, 107, 2, 2, 1050, 1052, 7, 101, 2, 2, 1051, 1032, 3, 2, 2, 2, 1051, 1044, 3, 2, 2, 2, 1052, 162, 3, 2, 2, 2, 1053, 1054, 7, 117, 2, 2, 1054, 1055, 7, 107, 2, 2, 1055, 1056, 7, 112, 2, 2, 1056, 1057, 7, 103, 2, 2, 1057, 1058, 7, 97, 2, 2, 1058, 1059, 7, 103, 2, 2, 1059, 1060, 7, 99, 2, 2, 1060, 1061, 7, 117, 2, 2, 1061, 1067, 7, 103, 2, 2, 1062, 1063, 7, 117, 2, 2, 1063, 1064, 7, 107, 2, 2, 1064, 1065, 7, 112, 2, 2, 1065, 1067, 7, 103, 2, 2, 1066, 1053, 3, 2, 2, 2, 1066, 1062, 3, 2, 2, 2, 1067, 164, 3, 2, 2, 2, 1068, 1069, 7, 117, 2, 2, 1069, 1070, 7, 111, 2, 2, 1070, 1071, 7, 113, 2, 2, 1071, 1072, 7, 113, 2, 2, 1072, 1073, 7, 118, 2, 2, 1073, 1074, 7, 106, 2, 2, 1074, 1075, 7, 103, 2, 2, 1075, 1076, 7, 116, 2, 2, 1076, 1077, 7, 117, 2, 2, 1077, 1078, 7, 118, 2, 2, 1078, 1079, 7, 103, 2, 2, 1079, 1080, 7, 114, 2, 2, 1080, 166, 3, 2, 2, 2, 1081, 1082, 7, 102, 2, 2, 1082, 1083, 7, 107, 2, 2, 1083, 1084, 7, 117, 2, 2, 1084, 1094, 7, 118, 2, 2, 1085, 1086, 7, 102, 2, 2, 1086, 1087, 7, 107, 2, 2, 1087, 1088, 7, 117, 2, 2, 1088, 1089, 7, 118, 2, 2, 1089, 1090, 7, 99, 2, 2, 1090, 1091, 7, 112, 2, 2, 1091, 1092, 7, 101, 2, 2, 1092, 1094, 7, 103, 2, 2, 1093, 1081, 3, 2, 2, 2, 1093, 1085, 3, 2, 2, 2, 1094, 168, 3, 2, 2, 2, 1095, 1096, 7, 116, 2, 2, 1096, 1097, 7, 103, 2, 2, 1097, 1098, 7, 111, 2, 2, 1098, 1099, 7, 99, 2, 2, 1099, 1100, 7, 114, 2, 2, 1100, 170, 3, 2, 2, 2, 1101, 1102, 7, 101, 2, 2, 1102, 1103, 7, 113, 2, 2, 1103, 1104, 7, 117, 2, 2, 1104, 1105, 7, 117, 2, 2, 1105, 1106, 7, 107, 2, 2, 1106, 1125, 7, 111, 2, 2, 1107, 1108, 7, 101, 2, 2, 1108, 1109, 7, 113, 2, 2, 1109, 1110, 7, 117, 2, 2, 1110, 1111, 7, 107, 2, 2, 1111, 1112, 7, 112, 2, 2, 1112, 1113, 7, 103, 2, 2, 1113, 1114, 7, 97, 2, 2, 1114, 1115, 7, 117, 2, 2, 1115, 1116, 7, 107, 2, 2, 1116, 1117, 7, 111, 2, 2, 1117, 1118, 7, 107, 2, 2, 1118, 1119, 7, 110, 2, 2, 1119, 1120, 7, 99, 2, 2, 1120, 1121, 7, 116, 2, 2, 1121, 1122, 7, 107, 2, 2, 1122, 1123, 7, 118, 2, 2, 1123, 1125, 7, 123, 2, 2, 1124, 1101, 3, 2, 2, 2, 1124, 1107, 3, 2, 2, 2, 1125, 172, 3, 2, 2, 2, 1126, 1127, 7, 101, 2, 2, 1127, 1128, 7, 113, 2, 2, 1128, 1129, 7, 119, 2, 2, 1129, 1130, 7, 112, 2, 2, 1130, 1141, 7, 118, 2, 2, 1131, 1132, 7, 101, 2, 2, 1132, 1133, 7, 112, 2, 2, 1133, 1141, 7, 118, 2, 2, 1134, 1135, 7, 110, 2, 2, 1135, 1136, 7, 103, 2, 2, 1136, 1137, 7, 112, 2, 2, 1137, 1138, 7, 105, 2, 2, 1138, 1139, 7, 118, 2, 2, 1139, 1141, 7, 106, 2, 2, 1140, 1126, 3, 2, 2, 2, 1140, 1131, 3, 2, 2, 2, 1140, 1134, 3, 2, 2, 2, 1141, 174, 3, 2, 2, 2, 1142, 1143, 7, 116, 2, 2, 1143, 1144, 7, 103, 2, 2, 1144, 1145, 7, 114, 2, 2, 1145, 1146, 7, 103, 2, 2, 1146, 1147, 7, 99, 2, 2, 1147, 1148, 7, 118, 2, 2, 1148, 176, 3, 2, 2, 2, 1149, 1150, 7, 104, 2, 2, 1150, 1151, 7, 110, 2, 2, 1151, 1152, 7, 99, 2, 2, 1152, 1153, 7, 118, 2, 2, 1153, 1154, 7, 118, 2, 2, 1154, 1155, 7, 103, 2, 2, 1155, 1156, 7, 112, 2, 2, 1156, 178, 3, 2, 2, 2, 1157, 1158, 7, 99, 2, 2, 1158, 1159, 7, 114, 2, 2, 1159, 1160, 7, 114, 2, 2, 1160, 1161, 7, 103, 2, 2, 1161, 1162, 7, 112, 2, 2, 1162, 1163, 7, 102, 2, 2, 1163, 180, 3, 2, 2, 2, 1164, 1165, 7, 105, 2, 2, 1165, 1166, 7, 103, 2, 2, 1166, 1167, 7, 118, 2, 2, 1167, 1168, 7, 97, 2, 2, 1168, 1169, 7, 120, 2, 2, 1169, 1170, 7, 99, 2, 2, 1170, 1171, 7, 110, 2, 2, 1171, 1172, 7, 119, 2, 2, 1172, 1173, 7, 103, 2, 2, 1173, 182, 3, 2, 2, 2, 1174, 1175, 7, 104, 2, 2, 1175, 1176, 7, 110, 2, 2, 1176, 1177, 7, 113, 2, 2, 1177, 1178, 7, 121, 2, 2, 1178, 1179, 7, 97, 2, 2, 1179, 1180, 7, 99, 2, 2, 1180, 1181, 7, 114, 2, 2, 1181, 1182, 7, 114, 2, 2, 1182, 1183, 7, 110, 2, 2, 1183, 1184, 7, 123, 2, 2, 1184, 184, 3, 2, 2, 2, 1185, 1186, 7, 100, 2, 2, 1186, 1187, 7, 99, 2, 2, 1187, 1188, 7, 118, 2, 2, 1188, 1189, 7, 101, 2, 2, 1189, 1190, 7, 106, 2, 2, 1190, 1191, 7, 97, 2, 2, 1191, 1192, 7, 117, 2, 2, 1192, 1193, 7, 106, 2, 2, 1193, 1194, 7, 119, 2, 2, 1194, 1195, 7, 104, 2, 2, 1195, 1196, 7, 104, 2, 2, 1196, 1197, 7, 110, 2, 2, 1197, 1212, 7, 103, 2, 2, 1198, 1199, 7, 117, 2, 2, 1199, 1200, 7, 106, 2, 2, 1200, 1201, 7, 119, 2, 2, 1201, 1202, 7, 104, 2, 2, 1202, 1203, 7, 104, 2, 2, 1203, 1204, 7, 110, 2, 2, 1204, 1212, 7, 103, 2, 2, 1205, 1206, 7, 117, 2, 2, 1206, 1207, 7, 103, 2, 2, 1207, 1208, 7, 110, 2, 2, 1208, 1209, 7, 103, 2, 2, 1209, 1210, 7, 101, 2, 2, 1210, 1212, 7, 118, 2, 2, 1211, 1185, 3, 2, 2, 2, 1211, 1198, 3, 2, 2, 2, 1211, 1205, 3, 2, 2, 2, 1212, 186, 3, 2, 2, 2, 1213, 1214, 7, 111, 2, 2, 1214, 1215, 7, 113, 2, 2, 1215, 1216, 7, 118, 2, 2, 1216, 1217, 7, 107, 2, 2, 1217, 1218, 7, 113, 2, 2, 1218, 1219, 7, 112, 2, 2, 1219, 1220, 7, 97, 2, 2, 1220, 1221, 7, 111, 2, 2, 1221, 1222, 7, 99, 2, 2, 1222, 1223, 7, 117, 2, 2, 1223, 1224, 7, 109, 2, 2, 1224, 188, 3, 2, 2, 2, 1225, 1226, 7, 104, 2, 2, 1226, 1227, 7, 110, 2, 2, 1227, 1228, 7, 113, 2, 2, 1228, 1229, 7, 121, 2, 2, 1229, 1230, 7, 97, 2, 2, 1230, 1231, 7, 118, 2, 2, 1231, 1232, 7, 113, 2, 2, 1232, 1233, 7, 97, 2, 2, 1233, 1234, 7, 107, 2, 2, 1234, 1235, 7, 111, 2, 2, 1235, 1236, 7, 99, 2, 2, 1236, 1237, 7, 105, 2, 2, 1237, 1238, 7, 103, 2, 2, 1238, 190, 3, 2, 2, 2, 1239, 1240, 7, 104, 2, 2, 1240, 1241, 7, 110, 2, 2, 1241, 1242, 7, 113, 2, 2, 1242, 1243, 7, 121, 2, 2, 1243, 1244, 7, 97, 2, 2, 1244, 1245, 7, 111, 2, 2, 1245, 1246, 7, 99, 2, 2, 1246, 1262, 7, 105, 2, 2, 1247, 1248, 7, 104, 2, 2, 1248, 1249, 7, 110, 2, 2, 1249, 1250, 7, 113, 2, 2, 1250, 1251, 7, 121, 2, 2, 1251, 1252, 7, 97, 2, 2, 1252, 1253, 7, 111, 2, 2, 1253, 1254, 7, 99, 2, 2, 1254, 1255, 7, 105, 2, 2, 1255, 1256, 7, 112, 2, 2, 1256, 1257, 7, 107, 2, 2, 1257, 1258, 7, 118, 2, 2, 1258, 1259, 7, 119, 2, 2, 1259, 1260, 7, 102, 2, 2, 1260, 1262, 7, 103, 2, 2, 1261, 1239, 3, 2, 2, 2, 1261, 1247, 3, 2, 2, 2, 1262, 192, 3, 2, 2, 2, 1263, 1264, 7, 104, 2, 2, 1264, 1265, 7, 110, 2, 2, 1265, 1266, 7, 113, 2, 2, 1266, 1267, 7, 121, 2, 2, 1267, 1268, 7, 97, 2, 2, 1268, 1269, 7, 99, 2, 2, 1269, 1270, 7, 112, 2, 2, 1270, 1282, 7, 105, 2, 2, 1271, 1272, 7, 104, 2, 2, 1272, 1273, 7, 110, 2, 2, 1273, 1274, 7, 113, 2, 2, 1274, 1275, 7, 121, 2, 2, 1275, 1276, 7, 97, 2, 2, 1276, 1277, 7, 99, 2, 2, 1277, 1278, 7, 112, 2, 2, 1278, 1279, 7, 105, 2, 2, 1279, 1280, 7, 110, 2, 2, 1280, 1282, 7, 103, 2, 2, 1281, 1263, 3, 2, 2, 2, 1281, 1271, 3, 2, 2, 2, 1282, 194, 3, 2, 2, 2, 1283, 1284, 7, 121, 2, 2, 1284, 1285, 7, 106, 2, 2, 1285, 1286, 7, 103, 2, 2, 1286, 1287, 7, 116, 2, 2, 1287, 1288, 7, 103, 2, 2, 1288, 196, 3, 2, 2, 2, 1289, 1290, 7, 106, 2, 2, 1290, 1291, 7, 107, 2, 2, 1291, 1292, 7, 117, 2, 2, 1292, 1293, 7, 118, 2, 2, 1293, 1294, 7, 113, 2, 2, 1294, 1295, 7, 105, 2, 2, 1295, 1296, 7, 116, 2, 2, 1296, 1297, 7, 99, 2, 2, 1297, 1303, 7, 111, 2, 2, 1298, 1299, 7, 106, 2, 2, 1299, 1300, 7, 107, 2, 2, 1300, 1301, 7, 117, 2, 2, 1301, 1303, 7, 118, 2, 2, 1302, 1289, 3, 2, 2, 2, 1302, 1298, 3, 2, 2, 2, 1303, 198, 3, 2, 2, 2, 1304, 1305, 7, 113, 2, 2, 1305, 1306, 7, 120, 2, 2, 1306, 1307, 7, 103, 2, 2, 1307, 1308, 7, 116, 2, 2, 1308, 1309, 7, 110, 2, 2, 1309, 1310, 7, 99, 2, 2, 1310, 1311, 7, 123, 2, 2, 1311, 200, 3, 2, 2, 2, 1312, 1313, 7, 114, 2, 2, 1313, 1314, 7, 99, 2, 2, 1314, 1315, 7, 102, 2, 2, 1315, 202, 3, 2, 2, 2, 1316, 1317, 7, 101, 2, 2, 1317, 1318, 7, 116, 2, 2, 1318, 1319, 7, 113, 2, 2, 1319, 1320, 7, 117, 2, 2, 1320, 1321, 7, 117, 2, 2, 1321, 204, 3, 2, 2, 2, 1322, 1323, 7, 111, 2, 2, 1323, 1324, 7, 99, 2, 2, 1324, 1325, 7, 118, 2, 2, 1325, 1326, 7, 111, 2, 2, 1326, 1327, 7, 119, 2, 2, 1327, 1328, 7, 110, 2, 2, 1328, 206, 3, 2, 2, 2, 1329, 1330, 7, 116, 2, 2, 1330, 1331, 7, 107, 2, 2, 1331, 1332, 7, 104, 2, 2, 1332, 1333, 7, 103, 2, 2, 1333, 208, 3, 2, 2, 2, 1334, 1335, 7, 100, 2, 2, 1335, 1336, 7, 112, 2, 2, 1336, 1337, 7, 113, 2, 2, 1337, 1350, 7, 118, 2, 2, 1338, 1339, 7, 100, 2, 2, 1339, 1340, 7, 107, 2, 2, 1340, 1341, 7, 118, 2, 2, 1341, 1342, 7, 121, 2, 2, 1342, 1343, 7, 107, 2, 2, 1343, 1344, 7, 117, 2, 2, 1344, 1345, 7, 103, 2, 2, 1345, 1346, 7, 97, 2, 2, 1346, 1347, 7, 112, 2, 2, 1347, 1348, 7, 113, 2, 2, 1348, 1350, 7, 118, 2, 2, 1349, 1334, 3, 2, 2, 2, 1349, 1338, 3, 2, 2, 2, 1350, 210, 3, 2, 2, 2, 1351, 1352, 7, 100, 2, 2, 1352, 1353, 7, 107, 2, 2, 1353, 1354, 7, 118, 2, 2, 1354, 1355, 7, 101, 2, 2, 1355, 1356, 7, 113, 2, 2, 1356, 1357, 7, 119, 2, 2, 1357, 1358, 7, 112, 2, 2, 1358, 1374, 7, 118, 2, 2, 1359, 1360, 7, 114, 2, 2, 1360, 1361, 7, 113, 2, 2, 1361, 1362, 7, 114, 2, 2, 1362, 1363, 7, 101, 2, 2, 1363, 1364, 7, 113, 2, 2, 1364, 1365, 7, 119, 2, 2, 1365, 1366, 7, 112, 2, 2, 1366, 1374, 7, 118, 2, 2, 1367, 1368, 7, 114, 2, 2, 1368, 1369, 7, 113, 2, 2, 1369, 1370, 7, 114, 2, 2, 1370, 1371, 7, 101, 2, 2, 1371, 1372, 7, 112, 2, 2, 1372, 1374, 7, 118, 2, 2, 1373, 1351, 3, 2, 2, 2, 1373, 1359, 3, 2, 2, 2, 1373, 1367, 3, 2, 2, 2, 1374, 212, 3, 2, 2, 2, 1375, 1376, 7, 117, 2, 2, 1376, 1377, 7, 106, 2, 2, 1377, 1378, 7, 99, 2, 2, 1378, 1379, 7, 114, 2, 2, 1379, 1380, 7, 103, 2, 2, 1380, 214, 3, 2, 2, 2, 1381, 1382, 7, 100, 2, 2, 1382, 1383, 7, 99, 2, 2, 1383, 1384, 7, 112, 2, 2, 1384, 1397, 7, 102, 2, 2, 1385, 1386, 7, 100, 2, 2, 1386, 1387, 7, 107, 2, 2, 1387, 1388, 7, 118, 2, 2, 1388, 1389, 7, 121, 2, 2, 1389, 1390, 7, 107, 2, 2, 1390, 1391, 7, 117, 2, 2, 1391, 1392, 7, 103, 2, 2, 1392, 1393, 7, 97, 2, 2, 1393, 1394, 7, 99, 2, 2, 1394, 1395, 7, 112, 2, 2, 1395, 1397, 7, 102, 2, 2, 1396, 1381, 3, 2, 2, 2, 1396, 1385, 3, 2, 2, 2, 1397, 216, 3, 2, 2, 2, 1398, 1399, 7, 100, 2, 2, 1399, 1400, 7, 122, 2, 2, 1400, 1401, 7, 113, 2, 2, 1401, 1414, 7, 116, 2, 2, 1402, 1403, 7, 100, 2, 2, 1403, 1404, 7, 107, 2, 2, 1404, 1405, 7, 118, 2, 2, 1405, 1406, 7, 121, 2, 2, 1406, 1407, 7, 107, 2, 2, 1407, 1408, 7, 117, 2, 2, 1408, 1409, 7, 103, 2, 2, 1409, 1410, 7, 97, 2, 2, 1410, 1411, 7, 122, 2, 2, 1411, 1412, 7, 113, 2, 2, 1412, 1414, 7, 116, 2, 2, 1413, 1398, 3, 2, 2, 2, 1413, 1402, 3, 2, 2, 2, 1414, 218, 3, 2, 2, 2, 1415, 1416, 7, 100, 2, 2, 1416, 1417, 7, 113, 2, 2, 1417, 1429, 7, 116, 2, 2, 1418, 1419, 7, 100, 2, 2, 1419, 1420, 7, 107, 2, 2, 1420, 1421, 7, 118, 2, 2, 1421, 1422, 7, 121, 2, 2, 1422, 1423, 7, 107, 2, 2, 1423, 1424, 7, 117, 2, 2, 1424, 1425, 7, 103, 2, 2, 1425, 1426, 7, 97, 2, 2, 1426, 1427, 7, 113, 2, 2, 1427, 1429, 7, 116, 2, 2, 1428, 1415, 3, 2, 2, 2, 1428, 1418, 3, 2, 2, 2, 1429, 220, 3, 2, 2, 2, 1430, 1431, 7, 118, 2, 2, 1431, 1432, 7, 103, 2, 2, 1432, 1433, 7, 112, 2, 2, 1433, 1434, 7, 117, 2, 2, 1434, 1435, 7, 113, 2, 2, 1435, 1436, 7, 116, 2, 2, 1436, 222, 3, 2, 2, 2, 1437, 1438, 7, 117, 2, 2, 1438, 1439, 7, 118, 2, 2, 1439, 1440, 7, 99, 2, 2, 1440, 1441, 7, 101, 2, 2, 1441, 1442, 7, 109, 2, 2, 1442, 1443, 7, 97, 2, 2, 1443, 1444, 7, 114, 2, 2, 1444, 1445, 7, 119, 2, 2, 1445, 1446, 7, 117, 2, 2, 1446, 1447, 7, 106, 2, 2, 1447, 224, 3, 2, 2, 2, 1448, 1449, 7, 117, 2, 2, 1449, 1450, 7, 118, 2, 2, 1450, 1451, 7, 99, 2, 2, 1451, 1452, 7, 101, 2, 2, 1452, 1453, 7, 109, 2, 2, 1453, 1454, 7, 97, 2, 2, 1454, 1455, 7, 114, 2, 2, 1455, 1456, 7, 113, 2, 2, 1456, 1457, 7, 114, 2, 2, 1457, 226, 3, 2, 2, 2, 1458, 1459, 7, 117, 2, 2, 1459, 1460, 7, 118, 2, 2, 1460, 1461, 7, 99, 2, 2, 1461, 1462, 7, 101, 2, 2, 1462, 1463, 7, 109, 2, 2, 1463, 1464, 7, 97, 2, 2, 1464, 1465, 7, 101, 2, 2, 1465, 1466, 7, 110, 2, 2, 1466, 1467, 7, 103, 2, 2, 1467, 1468, 7, 99, 2, 2, 1468, 1469, 7, 116, 2, 2, 1469, 228, 3, 2, 2, 2, 1470, 1471, 7, 117, 2, 2, 1471, 1472, 7, 118, 2, 2, 1472, 1473, 7, 99, 2, 2, 1473, 1474, 7, 101, 2, 2, 1474, 1475, 7, 109, 2, 2, 1475, 1476, 7, 97, 2, 2, 1476, 1477, 7, 106, 2, 2, 1477, 1478, 7, 99, 2, 2, 1478, 1479, 7, 117, 2, 2, 1479, 230, 3, 2, 2, 2, 1480, 1481, 7, 117, 2, 2, 1481, 1482, 7, 118, 2, 2, 1482, 1483, 7, 99, 2, 2, 1483, 1484, 7, 101, 2, 2, 1484, 1485, 7, 109, 2, 2, 1485, 1486, 7, 97, 2, 2, 1486, 1487, 7, 105, 2, 2, 1487, 1488, 7, 103, 2, 2, 1488, 1489, 7, 118, 2, 2, 1489, 232, 3, 2, 2, 2, 1490, 1491, 7, 101, 2, 2, 1491, 1492, 7, 99, 2, 2, 1492, 1511, 7, 118, 2, 2, 1493, 1494, 7, 101, 2, 2, 1494, 1495, 7, 113, 2, 2, 1495, 1496, 7, 112, 2, 2, 1496, 1497, 7, 101, 2, 2, 1497, 1498, 7, 99, 2, 2, 1498, 1511, 7, 118, 2, 2, 1499, 1500, 7, 101, 2, 2, 1500, 1501, 7, 113, 2, 2, 1501, 1502, 7, 112, 2, 2, 1502, 1503, 7, 101, 2, 2, 1503, 1504, 7, 99, 2, 2, 1504, 1505, 7, 118, 2, 2, 1505, 1506, 7, 103, 2, 2, 1506, 1507, 7, 112, 2, 2, 1507, 1508, 7, 99, 2, 2, 1508, 1509, 7, 118, 2, 2, 1509, 1511, 7, 103, 2, 2, 1510, 1490, 3, 2, 2, 2, 1510, 1493, 3, 2, 2, 2, 1510, 1499, 3, 2, 2, 2, 1511, 234, 3, 2, 2, 2, 1512, 1513, 7, 107, 2, 2, 1513, 1514, 7, 112, 2, 2, 1514, 1515, 7, 118, 2, 2, 1515, 236, 3, 2, 2, 2, 1516, 1517, 7, 104, 2, 2, 1517, 1518, 7, 110, 2, 2, 1518, 1519, 7, 113, 2, 2, 1519, 1520, 7, 99, 2, 2, 1520, 1521, 7, 118, 2, 2, 1521, 238, 3, 2, 2, 2, 1522, 1523, 7, 119, 2, 2, 1523, 1524, 7, 114, 2, 2, 1524, 1525, 7, 114, 2, 2, 1525, 1526, 7, 103, 2, 2, 1526, 1527, 7, 116, 2, 2, 1527, 240, 3, 2, 2, 2, 1528, 1529, 7, 110, 2, 2, 1529, 1530, 7, 113, 2, 2, 1530, 1531, 7, 121, 2, 2, 1531, 1532, 7, 103, 2, 2, 1532, 1533, 7, 116, 2, 2, 1533, 242, 3, 2, 2, 2, 1534, 1535, 7, 118, 2, 2, 1535, 1536, 7, 116, 2, 2, 1536, 1537, 7, 107, 2, 2, 1537, 1538, 7, 111, 2, 2, 1538, 244, 3, 2, 2, 2, 1539, 1540, 7, 117, 2, 2, 1540, 1541, 7, 114, 2, 2, 1541, 1542, 7, 110, 2, 2, 1542, 1543, 7, 107, 2, 2, 1543, 1544, 7, 118, 2, 2, 1544, 246, 3, 2, 2, 2, 1545, 1546, 7, 108, 2, 2, 1546, 1547, 7, 113, 2, 2, 1547, 1548, 7, 107, 2, 2, 1548, 1549, 7, 112, 2, 2, 1549, 248, 3, 2, 2, 2, 1550, 1551, 7, 117, 2, 2, 1551, 1552, 7, 119, 2, 2, 1552, 1553, 7, 100, 2, 2, 1553, 1554, 7, 117, 2, 2, 1554, 1555, 7, 118, 2, 2, 1555, 1556, 7, 116, 2, 2, 1556, 1557, 7, 107, 2, 2, 1557, 1558, 7, 112, 2, 2, 1558, 1566, 7, 105, 2, 2, 1559, 1560, 7, 117, 2, 2, 1560, 1561, 7, 119, 2, 2, 1561, 1562, 7, 100, 2, 2, 1562, 1563, 7, 117, 2, 2, 1563, 1564, 7, 118, 2, 2, 1564, 1566, 7, 116, 2, 2, 1565, 1550, 3, 2, 2, 2, 1565, 1559, 3, 2, 2, 2, 1566, 250, 3, 2, 2, 2, 1567, 1568, 7, 104, 2, 2, 1568, 1569, 7, 107, 2, 2, 1569, 1570, 7, 112, 2, 2, 1570, 1571, 7, 102, 2, 2, 1571, 252, 3, 2, 2, 2, 1572, 1573, 7, 116, 2, 2, 1573, 1574, 7, 103, 2, 2, 1574, 1575, 7, 114, 2, 2, 1575, 1576, 7, 110, 2, 2, 1576, 1577, 7, 99, 2, 2, 1577, 1578, 7, 101, 2, 2, 1578, 1579, 7, 103, 2, 2, 1579, 254, 3, 2, 2, 2, 1580, 1581, 7, 102, 2, 2, 1581, 1582, 7, 107, 2, 2, 1582, 1583, 7, 110, 2, 2, 1583, 1584, 7, 99, 2, 2, 1584, 1585, 7, 118, 2, 2, 1585, 1586, 7, 103, 2, 2, 1586, 256, 3, 2, 2, 2, 1587, 1588, 7, 103, 2, 2, 1588, 1589, 7, 116, 2, 2, 1589, 1590, 7, 113, 2, 2, 1590, 1591, 7, 102, 2, 2, 1591, 1592, 7, 103, 2, 2, 1592, 258, 3, 2, 2, 2, 1593, 1594, 7, 111, 2, 2, 1594, 1595, 7, 113, 2, 2, 1595, 1596, 7, 116, 2, 2, 1596, 1597, 7, 114, 2, 2, 1597, 1598, 7, 106, 2, 2, 1598, 1599, 7, 97, 2, 2, 1599, 1600, 7, 113, 2, 2, 1600, 1601, 7, 114, 2, 2, 1601, 1602, 7, 103, 2, 2, 1602, 1603, 7, 112, 2, 2, 1603, 260, 3, 2, 2, 2, 1604, 1605, 7, 111, 2, 2, 1605, 1606, 7, 113, 2, 2, 1606, 1607, 7, 116, 2, 2, 1607, 1608, 7, 114, 2, 2, 1608, 1609, 7, 106, 2, 2, 1609, 1610, 7, 97, 2, 2, 1610, 1611, 7, 101, 2, 2, 1611, 1612, 7, 110, 2, 2, 1612, 1613, 7, 113, 2, 2, 1613, 1614, 7, 117, 2, 2, 1614, 1615, 7, 103, 2, 2, 1615, 262, 3, 2, 2, 2, 1616, 1617, 7, 116, 2, 2, 1617, 1618, 7, 105, 2, 2, 1618, 1619, 7, 100, 2, 2, 1619, 1620, 7, 97, 2, 2, 1620, 1621, 7, 118, 2, 2, 1621, 1622, 7, 113, 2, 2, 1622, 1623, 7, 97, 2, 2, 1623, 1624, 7, 113, 2, 2, 1624, 1625, 7, 109, 2, 2, 1625, 1626, 7, 110, 2, 2, 1626, 1627, 7, 99, 2, 2, 1627, 1628, 7, 100, 2, 2, 1628, 264, 3, 2, 2, 2, 1629, 1630, 7, 116, 2, 2, 1630, 1631, 7, 105, 2, 2, 1631, 1632, 7, 100, 2, 2, 1632, 1633, 7, 97, 2, 2, 1633, 1634, 7, 118, 2, 2, 1634, 1635, 7, 113, 2, 2, 1635, 1636, 7, 97, 2, 2, 1636, 1637, 7, 101, 2, 2, 1637, 1638, 7, 107, 2, 2, 1638, 1639, 7, 103, 2, 2, 1639, 1640, 7, 110, 2, 2, 1640, 1641, 7, 99, 2, 2, 1641, 1642, 7, 100, 2, 2, 1642, 266, 3, 2, 2, 2, 1643, 1644, 7, 113, 2, 2, 1644, 1645, 7, 109, 2, 2, 1645, 1646, 7, 110, 2, 2, 1646, 1647, 7, 99, 2, 2, 1647, 1648, 7, 100, 2, 2, 1648, 1649, 7, 97, 2, 2, 1649, 1650, 7, 118, 2, 2, 1650, 1651, 7, 113, 2, 2, 1651, 1652, 7, 97, 2, 2, 1652, 1653, 7, 116, 2, 2, 1653, 1654, 7, 105, 2, 2, 1654, 1655, 7, 100, 2, 2, 1655, 268, 3, 2, 2, 2, 1656, 1657, 7, 101, 2, 2, 1657, 1658, 7, 107, 2, 2, 1658, 1659, 7, 103, 2, 2, 1659, 1660, 7, 110, 2, 2, 1660, 1661, 7, 99, 2, 2, 1661, 1662, 7, 100, 2, 2, 1662, 1663, 7, 97, 2, 2, 1663, 1664, 7, 118, 2, 2, 1664, 1665, 7, 113, 2, 2, 1665, 1666, 7, 97, 2, 2, 1666, 1667, 7, 116, 2, 2, 1667, 1668, 7, 105, 2, 2, 1668, 1669, 7, 100, 2, 2, 1669, 270, 3, 2, 2, 2, 1670, 1671, 7, 116, 2, 2, 1671, 1672, 7, 105, 2, 2, 1672, 1673, 7, 100, 2, 2, 1673, 1674, 7, 97, 2, 2, 1674, 1675, 7, 118, 2, 2, 1675, 1676, 7, 113, 2, 2, 1676, 1677, 7, 97, 2, 2, 1677, 1678, 7, 106, 2, 2, 1678, 1679, 7, 117, 2, 2, 1679, 1680, 7, 120, 2, 2, 1680, 272, 3, 2, 2, 2, 1681, 1682, 7, 106, 2, 2, 1682, 1683, 7, 117, 2, 2, 1683, 1684, 7, 120, 2, 2, 1684, 1685, 7, 97, 2, 2, 1685, 1686, 7, 118, 2, 2, 1686, 1687, 7, 113, 2, 2, 1687, 1688, 7, 97, 2, 2, 1688, 1689, 7, 116, 2, 2, 1689, 1690, 7, 105, 2, 2, 1690, 1691, 7, 100, 2, 2, 1691, 274, 3, 2, 2, 2, 1692, 1693, 7, 107, 2, 2, 1693, 1694, 7, 112, 2, 2, 1694, 1695, 7, 118, 2, 2, 1695, 1696, 7, 97, 2, 2, 1696, 1697, 7, 118, 2, 2, 1697, 1698, 7, 113, 2, 2, 1698, 1699, 7, 97, 2, 2, 1699, 1700, 7, 116, 2, 2, 1700, 1701, 7, 105, 2, 2, 1701, 1702, 7, 100, 2, 2, 1702, 276, 3, 2, 2, 2, 1703, 1704, 7, 116, 2, 2, 1704, 1705, 7, 105, 2, 2, 1705, 1706, 7, 100, 2, 2, 1706, 1707, 7, 97, 2, 2, 1707, 1708, 7, 118, 2, 2, 1708, 1709, 7, 113, 2, 2, 1709, 1710, 7, 97, 2, 2, 1710, 1711, 7, 107, 2, 2, 1711, 1712, 7, 112, 2, 2, 1712, 1713, 7, 118, 2, 2, 1713, 278, 3, 2, 2, 2, 1714, 1715, 7, 107, 2, 2, 1715, 1716, 7, 112, 2, 2, 1716, 1717, 7, 118, 2, 2, 1717, 1718, 7, 103, 2, 2, 1718, 1719, 7, 116, 2, 2, 1719, 1720, 7, 114, 2, 2, 1720, 1721, 7, 113, 2, 2, 1721, 1722, 7, 110, 2, 2, 1722, 1723, 7, 99, 2, 2, 1723, 1724, 7, 118, 2, 2, 1724, 1725, 7, 103, 2, 2, 1725, 1726, 7, 97, 2, 2, 1726, 1727, 7, 110, 2, 2, 1727, 1728, 7, 107, 2, 2, 1728, 1729, 7, 112, 2, 2, 1729, 1730, 7, 103, 2, 2, 1730, 1731, 7, 99, 2, 2, 1731, 1732, 7, 116, 2, 2, 1732, 280, 3, 2, 2, 2, 1733, 1734, 7, 107, 2, 2, 1734, 1735, 7, 112, 2, 2, 1735, 1736, 7, 118, 2, 2, 1736, 1737, 7, 103, 2, 2, 1737, 1738, 7, 116, 2, 2, 1738, 1739, 7, 114, 2, 2, 1739, 1740, 7, 113, 2, 2, 1740, 1741, 7, 110, 2, 2, 1741, 1742, 7, 99, 2, 2, 1742, 1743, 7, 118, 2, 2, 1743, 1744, 7, 103, 2, 2, 1744, 1745, 7, 97, 2, 2, 1745, 1746, 7, 99, 2, 2, 1746, 1747, 7, 116, 2, 2, 1747, 1748, 7, 103, 2, 2, 1748, 1749, 7, 99, 2, 2, 1749, 282, 3, 2, 2, 2, 1750, 1751, 7, 107, 2, 2, 1751, 1752, 7, 112, 2, 2, 1752, 1753, 7, 118, 2, 2, 1753, 1754, 7, 103, 2, 2, 1754, 1755, 7, 116, 2, 2, 1755, 1756, 7, 114, 2, 2, 1756, 1757, 7, 113, 2, 2, 1757, 1758, 7, 110, 2, 2, 1758, 1759, 7, 99, 2, 2, 1759, 1760, 7, 118, 2, 2, 1760, 1761, 7, 103, 2, 2, 1761, 1762, 7, 97, 2, 2, 1762, 1763, 7, 112, 2, 2, 1763, 1764, 7, 103, 2, 2, 1764, 1765, 7, 99, 2, 2, 1765, 1766, 7, 116, 2, 2, 1766, 1767, 7, 103, 2, 2, 1767, 1768, 7, 117, 2, 2, 1768, 1795, 7, 118, 2, 2, 1769, 1770, 7, 107, 2, 2, 1770, 1771, 7, 112, 2, 2, 1771, 1772, 7, 118, 2, 2, 1772, 1773, 7, 103, 2, 2, 1773, 1774, 7, 116, 2, 2, 1774, 1775, 7, 114, 2, 2, 1775, 1776, 7, 113, 2, 2, 1776, 1777, 7, 110, 2, 2, 1777, 1778, 7, 99, 2, 2, 1778, 1779, 7, 118, 2, 2, 1779, 1780, 7, 103, 2, 2, 1780, 1781, 7, 97, 2, 2, 1781, 1782, 7, 112, 2, 2, 1782, 1783, 7, 103, 2, 2, 1783, 1784, 7, 99, 2, 2, 1784, 1785, 7, 116, 2, 2, 1785, 1786, 7, 103, 2, 2, 1786, 1787, 7, 117, 2, 2, 1787, 1788, 7, 118, 2, 2, 1788, 1789, 7, 97, 2, 2, 1789, 1790, 7, 103, 2, 2, 1790, 1791, 7, 122, 2, 2, 1791, 1792, 7, 99, 2, 2, 1792, 1793, 7, 101, 2, 2, 1793, 1795, 7, 118, 2, 2, 1794, 1750, 3, 2, 2, 2, 1794, 1769, 3, 2, 2, 2, 1795, 284, 3, 2, 2, 2, 1796, 1797, 7, 118, 2, 2, 1797, 1798, 7, 103, 2, 2, 1798, 1799, 7, 122, 2, 2, 1799, 1800, 7, 118, 2, 2, 1800, 1801, 7, 97, 2, 2, 1801, 1802, 7, 107, 2, 2, 1802, 1803, 7, 111, 2, 2, 1803, 1804, 7, 99, 2, 2, 1804, 1805, 7, 105, 2, 2, 1805, 1806, 7, 103, 2, 2, 1806, 286, 3, 2, 2, 2, 1807, 1808, 7, 99, 2, 2, 1808, 1809, 7, 117, 2, 2, 1809, 1810, 7, 97, 2, 2, 1810, 1811, 7, 112, 2, 2, 1811, 1812, 7, 103, 2, 2, 1812, 1813, 7, 117, 2, 2, 1813, 1814, 7, 118, 2, 2, 1814, 1815, 7, 103, 2, 2, 1815, 1816, 7, 102, 2, 2, 1816, 1817, 7, 97, 2, 2, 1817, 1818, 7, 118, 2, 2, 1818, 1819, 7, 103, 2, 2, 1819, 1820, 7, 112, 2, 2, 1820, 1821, 7, 117, 2, 2, 1821, 1822, 7, 113, 2, 2, 1822, 1823, 7, 116, 2, 2, 1823, 288, 3, 2, 2, 2, 1824, 1825, 7, 117, 2, 2, 1825, 1826, 7, 120, 2, 2, 1826, 1856, 7, 102, 2, 2, 1827, 1828, 7, 117, 2, 2, 1828, 1829, 7, 107, 2, 2, 1829, 1830, 7, 112, 2, 2, 1830, 1831, 7, 105, 2, 2, 1831, 1832, 7, 119, 2, 2, 1832, 1833, 7, 110, 2, 2, 1833, 1834, 7, 99, 2, 2, 1834, 1835, 7, 116, 2, 2, 1835, 1836, 7, 97, 2, 2, 1836, 1837, 7, 120, 2, 2, 1837, 1838, 7, 99, 2, 2, 1838, 1839, 7, 110, 2, 2, 1839, 1840, 7, 119, 2, 2, 1840, 1841, 7, 103, 2, 2, 1841, 1842, 7, 97, 2, 2, 1842, 1843, 7, 102, 2, 2, 1843, 1844, 7, 103, 2, 2, 1844, 1845, 7, 101, 2, 2, 1845, 1846, 7, 113, 2, 2, 1846, 1847, 7, 111, 2, 2, 1847, 1848, 7, 114, 2, 2, 1848, 1849, 7, 113, 2, 2, 1849, 1850, 7, 117, 2, 2, 1850, 1851, 7, 107, 2, 2, 1851, 1852, 7, 118, 2, 2, 1852, 1853, 7, 107, 2, 2, 1853, 1854, 7, 113, 2, 2, 1854, 1856, 7, 112, 2, 2, 1855, 1824, 3, 2, 2, 2, 1855, 1827, 3, 2, 2, 2, 1856, 290, 3, 2, 2, 2, 1857, 1858, 7, 102, 2, 2, 1858, 1859, 7, 107, 2, 2, 1859, 1860, 7, 99, 2, 2, 1860, 1861, 7, 105, 2, 2, 1861, 1862, 7, 113, 2, 2, 1862, 1863, 7, 112, 2, 2, 1863, 1864, 7, 99, 2, 2, 1864, 1865, 7, 110, 2, 2, 1865, 1866, 7, 97, 2, 2, 1866, 1867, 7, 111, 2, 2, 1867, 1868, 7, 99, 2, 2, 1868, 1869, 7, 118, 2, 2, 1869, 1870, 7, 116, 2, 2, 1870, 1871, 7, 107, 2, 2, 1871, 1877, 7, 122, 2, 2, 1872, 1873, 7, 102, 2, 2, 1873, 1874, 7, 107, 2, 2, 1874, 1875, 7, 99, 2, 2, 1875, 1877, 7, 105, 2, 2, 1876, 1857, 3, 2, 2, 2, 1876, 1872, 3, 2, 2, 2, 1877, 292, 3, 2, 2, 2, 1878, 1879, 7, 107, 2, 2, 1879, 1880, 7, 104, 2, 2, 1880, 294, 3, 2, 2, 2, 1881, 1882, 7, 103, 2, 2, 1882, 1883, 7, 110, 2, 2, 1883, 1884, 7, 117, 2, 2, 1884, 1885, 7, 103, 2, 2, 1885, 296, 3, 2, 2, 2, 1886, 1887, 7, 121, 2, 2, 1887, 1888, 7, 106, 2, 2, 1888, 1889, 7, 107, 2, 2, 1889, 1890, 7, 110, 2, 2, 1890, 1891, 7, 103, 2, 2, 1891, 298, 3, 2, 2, 2, 1892, 1893, 7, 104, 2, 2, 1893, 1894, 7, 113, 2, 2, 1894, 1895, 7, 116, 2, 2, 1895, 300, 3, 2, 2, 2, 1896, 1897, 7, 107, 2, 2, 1897, 1898, 7, 112, 2, 2, 1898, 302, 3, 2, 2, 2, 1899, 1900, 7, 100, 2, 2, 1900, 1901, 7, 116, 2, 2, 1901, 1902, 7, 103, 2, 2, 1902, 1903, 7, 99, 2, 2, 1903, 1904, 7, 109, 2, 2, 1904, 304, 3, 2, 2, 2, 1905, 1906, 7, 101, 2, 2, 1906, 1907, 7, 113, 2, 2, 1907, 1908, 7, 112, 2, 2, 1908, 1909, 7, 118, 2, 2, 1909, 1910, 7, 107, 2, 2, 1910, 1911, 7, 112, 2, 2, 1911, 1912, 7, 119, 2, 2, 1912, 1913, 7, 103, 2, 2, 1913, 306, 3, 2, 2, 2, 1914, 1915, 7, 116, 2, 2, 1915, 1916, 7, 103, 2, 2, 1916, 1917, 7, 118, 2, 2, 1917, 1918, 7, 119, 2, 2, 1918, 1919, 7, 116, 2, 2, 1919, 1920, 7, 112, 2, 2, 1920, 308, 3, 2, 2, 2, 1921, 1922, 7, 118, 2, 2, 1922, 1923, 7, 107, 2, 2, 1923, 1924, 7, 111, 2, 2, 1924, 1925, 7, 103, 2, 2, 1925, 1926, 7, 117, 2, 2, 1926, 1927, 7, 118, 2, 2, 1927, 1928, 7, 99, 2, 2, 1928, 1929, 7, 111, 2, 2, 1929, 1934, 7, 114, 2, 2, 1930, 1931, 7, 112, 2, 2, 1931, 1932, 7, 113, 2, 2, 1932, 1934, 7, 121, 2, 2, 1933, 1921, 3, 2, 2, 2, 1933, 1930, 3, 2, 2, 2, 1934, 310, 3, 2, 2, 2, 1935, 1936, 7, 117, 2, 2, 1936, 1937, 7, 113, 2, 2, 1937, 1938, 7, 116, 2, 2, 1938, 1939, 7, 118, 2, 2, 1939, 312, 3, 2, 2, 2, 1940, 1941, 7, 99, 2, 2, 1941, 1942, 7, 116, 2, 2, 1942, 1943, 7, 105, 2, 2, 1943, 1944, 7, 117, 2, 2, 1944, 1945, 7, 113, 2, 2, 1945, 1946, 7, 116, 2, 2, 1946, 1947, 7, 118, 2, 2, 1947, 314, 3, 2, 2, 2, 1948, 1949, 7, 99, 2, 2, 1949, 1950, 7, 116, 2, 2, 1950, 1951, 7, 105, 2, 2, 1951, 1952, 7, 111, 2, 2, 1952, 1953, 7, 107, 2, 2, 1953, 1954, 7, 112, 2, 2, 1954, 316, 3, 2, 2, 2, 1955, 1956, 7, 99, 2, 2, 1956, 1957, 7, 116, 2, 2, 1957, 1958, 7, 105, 2, 2, 1958, 1959, 7, 111, 2, 2, 1959, 1960, 7, 99, 2, 2, 1960, 1961, 7, 122, 2, 2, 1961, 318, 3, 2, 2, 2, 1962, 1963, 7, 117, 2, 2, 1963, 1964, 7, 113, 2, 2, 1964, 1965, 7, 104, 2, 2, 1965, 1966, 7, 118, 2, 2, 1966, 1967, 7, 111, 2, 2, 1967, 1968, 7, 99, 2, 2, 1968, 1969, 7, 122, 2, 2, 1969, 320, 3, 2, 2, 2, 1970, 1971, 7, 117, 2, 2, 1971, 1972, 7, 113, 2, 2, 1972, 1973, 7, 104, 2, 2, 1973, 1974, 7, 118, 2, 2, 1974, 1975, 7, 111, 2, 2, 1975, 1976, 7, 107, 2, 2, 1976, 1977, 7, 112, 2, 2, 1977, 322, 3, 2, 2, 2, 1978, 1979, 7, 119, 2, 2, 1979, 1980, 7, 112, 2, 2, 1980, 1981, 7, 107, 2, 2, 1981, 1982, 7, 115, 2, 2, 1982, 1983, 7, 119, 2, 2, 1983, 1984, 7, 103, 2, 2, 1984, 324, 3, 2, 2, 2, 1985, 1986, 7, 104, 2, 2, 1986, 1987, 7, 110, 2, 2, 1987, 1988, 7, 107, 2, 2, 1988, 1989, 7, 114, 2, 2, 1989, 326, 3, 2, 2, 2, 1990, 1991, 7, 117, 2, 2, 1991, 1992, 7, 118, 2, 2, 1992, 1993, 7, 99, 2, 2, 1993, 1994, 7, 116, 2, 2, 1994, 1995, 7, 118, 2, 2, 1995, 1996, 7, 117, 2, 2, 1996, 1997, 7, 121, 2, 2, 1997, 1998, 7, 107, 2, 2, 1998, 1999, 7, 118, 2, 2, 1999, 2000, 7, 106, 2, 2, 2000, 328, 3, 2, 2, 2, 2001, 2002, 7, 103, 2, 2, 2002, 2003, 7, 112, 2, 2, 2003, 2004, 7, 102, 2, 2, 2004, 2005, 7, 117, 2, 2, 2005, 2006, 7, 121, 2, 2, 2006, 2007, 7, 107, 2, 2, 2007, 2008, 7, 118, 2, 2, 2008, 2009, 7, 106, 2, 2, 2009, 330, 3, 2, 2, 2, 2010, 2011, 7, 117, 2, 2, 2011, 2012, 7, 115, 2, 2, 2012, 2013, 7, 119, 2, 2, 2013, 2014, 7, 103, 2, 2, 2014, 2015, 7, 103, 2, 2, 2015, 2016, 7, 124, 2, 2, 2016, 2017, 7, 103, 2, 2, 2017, 332, 3, 2, 2, 2, 2018, 2019, 7, 119, 2, 2, 2019, 2020, 7, 112, 2, 2, 2020, 2021, 7, 117, 2, 2, 2021, 2022, 7, 115, 2, 2, 2022, 2023, 7, 119, 2, 2, 2023, 2024, 7, 103, 2, 2, 2024, 2025, 7, 103, 2, 2, 2025, 2026, 7, 124, 2, 2, 2026, 2027, 7, 103, 2, 2, 2027, 334, 3, 2, 2, 2, 2028, 2029, 7, 116, 2, 2, 2029, 2030, 7, 113, 2, 2, 2030, 2031, 7, 110, 2, 2, 2031, 2032, 7, 110, 2, 2, 2032, 336, 3, 2, 2, 2, 2033, 2034, 7, 101, 2, 2, 2034, 2035, 7, 113, 2, 2, 2035, 2036, 7, 120, 2, 2, 2036, 338, 3, 2, 2, 2, 2037, 2038, 7, 101, 2, 2, 2038, 2039, 7, 113, 2, 2, 2039, 2040, 7, 116, 2, 2, 2040, 2053, 7, 116, 2, 2, 2041, 2042, 7, 101, 2, 2, 2042, 2043, 7, 113, 2, 2, 2043, 2044, 7, 116, 2, 2, 2044, 2045, 7, 116, 2, 2, 2045, 2046, 7, 103, 2, 2, 2046, 2047, 7, 110, 2, 2, 2047, 2048, 7, 99, 2, 2, 2048, 2049, 7, 118, 2, 2, 2049, 2050, 7, 107, 2, 2, 2050, 2051, 7, 113, 2, 2, 2051, 2053, 7, 112, 2, 2, 2052, 2037, 3, 2, 2, 2, 2052, 2041, 3, 2, 2, 2, 2053, 340, 3, 2, 2, 2, 2054, 2055, 7, 103, 2, 2, 2055, 2056, 7, 112, 2, 2, 2056, 2057, 7, 118, 2, 2, 2057, 2058, 7, 116, 2, 2, 2058, 2059, 7, 113, 2, 2, 2059, 2060, 7, 114, 2, 2, 2060, 2061, 7, 123, 2, 2, 2061, 342, 3, 2, 2, 2, 2062, 2063, 7, 101, 2, 2, 2063, 2064, 7, 116, 2, 2, 2064, 2065, 7, 113, 2, 2, 2065, 2066, 7, 114, 2, 2, 2066, 344, 3, 2, 2, 2, 2067, 2068, 7, 112, 2, 2, 2068, 2069, 7, 113, 2, 2, 2069, 2070, 7, 112, 2, 2, 2070, 2084, 7, 103, 2, 2, 2071, 2072, 7, 80, 2, 2, 2072, 2073, 7, 113, 2, 2, 2073, 2074, 7, 112, 2, 2, 2074, 2084, 7, 103, 2, 2, 2075, 2076, 7, 112, 2, 2, 2076, 2077, 7, 119, 2, 2, 2077, 2078, 7, 110, 2, 2, 2078, 2084, 7, 110, 2, 2, 2079, 2080, 7, 80, 2, 2, 2080, 2081, 7, 87, 2, 2, 2081, 2082, 7, 78, 2, 2, 2082, 2084, 7, 78, 2, 2, 2083, 2067, 3, 2, 2, 2, 2083, 2071, 3, 2, 2, 2, 2083, 2075, 3, 2, 2, 2, 2083, 2079, 3, 2, 2, 2, 2084, 346, 3, 2, 2, 2, 2085, 2086, 7, 112, 2, 2, 2086, 2087, 7, 113, 2, 2, 2087, 2088, 7, 107, 2, 2, 2088, 2089, 7, 117, 2, 2, 2089, 2109, 7, 103, 2, 2, 2090, 2091, 7, 116, 2, 2, 2091, 2092, 7, 99, 2, 2, 2092, 2093, 7, 112, 2, 2, 2093, 2094, 7, 102, 2, 2, 2094, 2109, 7, 112, 2, 2, 2095, 2096, 7, 116, 2, 2, 2096, 2097, 7, 99, 2, 2, 2097, 2098, 7, 112, 2, 2, 2098, 2099, 7, 102, 2, 2, 2099, 2100, 7, 113, 2, 2, 2100, 2101, 7, 111, 2, 2, 2101, 2102, 7, 97, 2, 2, 2102, 2103, 7, 112, 2, 2, 2103, 2104, 7, 113, 2, 2, 2104, 2105, 7, 116, 2, 2, 2105, 2106, 7, 111, 2, 2, 2106, 2107, 7, 99, 2, 2, 2107, 2109, 7, 110, 2, 2, 2108, 2085, 3, 2, 2, 2, 2108, 2090, 3, 2, 2, 2, 2108, 2095, 3, 2, 2, 2, 2109, 348, 3, 2, 2, 2, 2110, 2111, 7, 116, 2, 2, 2111, 2112, 7, 99, 2, 2, 2112, 2113, 7, 112, 2, 2, 2113, 2134, 7, 102, 2, 2, 2114, 2115, 7, 116, 2, 2, 2115, 2116, 7, 99, 2, 2, 2116, 2117, 7, 112, 2, 2, 2117, 2118, 7, 102, 2, 2, 2118, 2134, 7, 119, 2, 2, 2119, 2120, 7, 116, 2, 2, 2120, 2121, 7, 99, 2, 2, 2121, 2122, 7, 112, 2, 2, 2122, 2123, 7, 102, 2, 2, 2123, 2124, 7, 113, 2, 2, 2124, 2125, 7, 111, 2, 2, 2125, 2126, 7, 97, 2, 2, 2126, 2127, 7, 119, 2, 2, 2127, 2128, 7, 112, 2, 2, 2128, 2129, 7, 107, 2, 2, 2129, 2130, 7, 104, 2, 2, 2130, 2131, 7, 113, 2, 2, 2131, 2132, 7, 116, 2, 2, 2132, 2134, 7, 111, 2, 2, 2133, 2110, 3, 2, 2, 2, 2133, 2114, 3, 2, 2, 2, 2133, 2119, 3, 2, 2, 2, 2134, 350, 3, 2, 2, 2, 2135, 2136, 7, 116, 2, 2, 2136, 2137, 7, 99, 2, 2, 2137, 2138, 7, 112, 2, 2, 2138, 2139, 7, 102, 2, 2, 2139, 2154, 7, 101, 2, 2, 2140, 2141, 7, 116, 2, 2, 2141, 2142, 7, 99, 2, 2, 2142, 2143, 7, 112, 2, 2, 2143, 2144, 7, 102, 2, 2, 2144, 2145, 7, 113, 2, 2, 2145, 2146, 7, 111, 2, 2, 2146, 2147, 7, 97, 2, 2, 2147, 2148, 7, 101, 2, 2, 2148, 2149, 7, 99, 2, 2, 2149, 2150, 7, 119, 2, 2, 2150, 2151, 7, 101, 2, 2, 2151, 2152, 7, 106, 2, 2, 2152, 2154, 7, 123, 2, 2, 2153, 2135, 3, 2, 2, 2, 2153, 2140, 3, 2, 2, 2, 2154, 352, 3, 2, 2, 2, 2155, 2156, 7, 116, 2, 2, 2156, 2157, 7, 99, 2, 2, 2157, 2158, 7, 112, 2, 2, 2158, 2159, 7, 102, 2, 2, 2159, 2179, 7, 103, 2, 2, 2160, 2161, 7, 116, 2, 2, 2161, 2162, 7, 99, 2, 2, 2162, 2163, 7, 112, 2, 2, 2163, 2164, 7, 102, 2, 2, 2164, 2165, 7, 113, 2, 2, 2165, 2166, 7, 111, 2, 2, 2166, 2167, 7, 97, 2, 2, 2167, 2168, 7, 103, 2, 2, 2168, 2169, 7, 122, 2, 2, 2169, 2170, 7, 114, 2, 2, 2170, 2171, 7, 113, 2, 2, 2171, 2172, 7, 112, 2, 2, 2172, 2173, 7, 103, 2, 2, 2173, 2174, 7, 112, 2, 2, 2174, 2175, 7, 118, 2, 2, 2175, 2176, 7, 107, 2, 2, 2176, 2177, 7, 99, 2, 2, 2177, 2179, 7, 110, 2, 2, 2178, 2155, 3, 2, 2, 2, 2178, 2160, 3, 2, 2, 2, 2179, 354, 3, 2, 2, 2, 2180, 2181, 7, 116, 2, 2, 2181, 2182, 7, 99, 2, 2, 2182, 2183, 7, 112, 2, 2, 2183, 2184, 7, 102, 2, 2, 2184, 2185, 7, 110, 2, 2, 2185, 2204, 7, 112, 2, 2, 2186, 2187, 7, 116, 2, 2, 2187, 2188, 7, 99, 2, 2, 2188, 2189, 7, 112, 2, 2, 2189, 2190, 7, 102, 2, 2, 2190, 2191, 7, 113, 2, 2, 2191, 2192, 7, 111, 2, 2, 2192, 2193, 7, 97, 2, 2, 2193, 2194, 7, 110, 2, 2, 2194, 2195, 7, 113, 2, 2, 2195, 2196, 7, 105, 2, 2, 2196, 2197, 7, 97, 2, 2, 2197, 2198, 7, 112, 2, 2, 2198, 2199, 7, 113, 2, 2, 2199, 2200, 7, 116, 2, 2, 2200, 2201, 7, 111, 2, 2, 2201, 2202, 7, 99, 2, 2, 2202, 2204, 7, 110, 2, 2, 2203, 2180, 3, 2, 2, 2, 2203, 2186, 3, 2, 2, 2, 2204, 356, 3, 2, 2, 2, 2205, 2206, 7, 116, 2, 2, 2206, 2207, 7, 99, 2, 2, 2207, 2208, 7, 112, 2, 2, 2208, 2209, 7, 102, 2, 2, 2209, 2227, 7, 100, 2, 2, 2210, 2211, 7, 116, 2, 2, 2211, 2212, 7, 99, 2, 2, 2212, 2213, 7, 112, 2, 2, 2213, 2214, 7, 102, 2, 2, 2214, 2215, 7, 113, 2, 2, 2215, 2216, 7, 111, 2, 2, 2216, 2217, 7, 97, 2, 2, 2217, 2218, 7, 100, 2, 2, 2218, 2219, 7, 103, 2, 2, 2219, 2220, 7, 116, 2, 2, 2220, 2221, 7, 112, 2, 2, 2221, 2222, 7, 113, 2, 2, 2222, 2223, 7, 119, 2, 2, 2223, 2224, 7, 110, 2, 2, 2224, 2225, 7, 110, 2, 2, 2225, 2227, 7, 107, 2, 2, 2226, 2205, 3, 2, 2, 2, 2226, 2210, 3, 2, 2, 2, 2227, 358, 3, 2, 2, 2, 2228, 2229, 7, 116, 2, 2, 2229, 2230, 7, 99, 2, 2, 2230, 2231, 7, 112, 2, 2, 2231, 2232, 7, 102, 2, 2, 2232, 2248, 7, 114, 2, 2, 2233, 2234, 7, 116, 2, 2, 2234, 2235, 7, 99, 2, 2, 2235, 2236, 7, 112, 2, 2, 2236, 2237, 7, 102, 2, 2, 2237, 2238, 7, 113, 2, 2, 2238, 2239, 7, 111, 2, 2, 2239, 2240, 7, 97, 2, 2, 2240, 2241, 7, 114, 2, 2, 2241, 2242, 7, 113, 2, 2, 2242, 2243, 7, 107, 2, 2, 2243, 2244, 7, 117, 2, 2, 2244, 2245, 7, 117, 2, 2, 2245, 2246, 7, 113, 2, 2, 2246, 2248, 7, 112, 2, 2, 2247, 2228, 3, 2, 2, 2, 2247, 2233, 3, 2, 2, 2, 2248, 360, 3, 2, 2, 2, 2249, 2250, 7, 116, 2, 2, 2250, 2251, 7, 99, 2, 2, 2251, 2252, 7, 112, 2, 2, 2252, 2253, 7, 102, 2, 2, 2253, 2267, 7, 105, 2, 2, 2254, 2255, 7, 116, 2, 2, 2255, 2256, 7, 99, 2, 2, 2256, 2257, 7, 112, 2, 2, 2257, 2258, 7, 102, 2, 2, 2258, 2259, 7, 113, 2, 2, 2259, 2260, 7, 111, 2, 2, 2260, 2261, 7, 97, 2, 2, 2261, 2262, 7, 105, 2, 2, 2262, 2263, 7, 99, 2, 2, 2263, 2264, 7, 111, 2, 2, 2264, 2265, 7, 111, 2, 2, 2265, 2267, 7, 99, 2, 2, 2266, 2249, 3, 2, 2, 2, 2266, 2254, 3, 2, 2, 2, 2267, 362, 3, 2, 2, 2, 2268, 2269, 7, 116, 2, 2, 2269, 2270, 7, 99, 2, 2, 2270, 2271, 7, 112, 2, 2, 2271, 2272, 7, 102, 2, 2, 2272, 2273, 7, 100, 2, 2, 2273, 2274, 7, 103, 2, 2, 2274, 2275, 7, 118, 2, 2, 2275, 2288, 7, 99, 2, 2, 2276, 2277, 7, 116, 2, 2, 2277, 2278, 7, 99, 2, 2, 2278, 2279, 7, 112, 2, 2, 2279, 2280, 7, 102, 2, 2, 2280, 2281, 7, 113, 2, 2, 2281, 2282, 7, 111, 2, 2, 2282, 2283, 7, 97, 2, 2, 2283, 2284, 7, 100, 2, 2, 2284, 2285, 7, 103, 2, 2, 2285, 2286, 7, 118, 2, 2, 2286, 2288, 7, 99, 2, 2, 2287, 2268, 3, 2, 2, 2, 2287, 2276, 3, 2, 2, 2, 2288, 364, 3, 2, 2, 2, 2289, 2290, 7, 116, 2, 2, 2290, 2291, 7, 99, 2, 2, 2291, 2292, 7, 112, 2, 2, 2292, 2293, 7, 102, 2, 2, 2293, 2309, 7, 110, 2, 2, 2294, 2295, 7, 116, 2, 2, 2295, 2296, 7, 99, 2, 2, 2296, 2297, 7, 112, 2, 2, 2297, 2298, 7, 102, 2, 2, 2298, 2299, 7, 113, 2, 2, 2299, 2300, 7, 111, 2, 2, 2300, 2301, 7, 97, 2, 2, 2301, 2302, 7, 110, 2, 2, 2302, 2303, 7, 99, 2, 2, 2303, 2304, 7, 114, 2, 2, 2304, 2305, 7, 110, 2, 2, 2305, 2306, 7, 99, 2, 2, 2306, 2307, 7, 101, 2, 2, 2307, 2309, 7, 103, 2, 2, 2308, 2289, 3, 2, 2, 2, 2308, 2294, 3, 2, 2, 2, 2309, 366, 3, 2, 2, 2, 2310, 2311, 7, 116, 2, 2, 2311, 2312, 7, 99, 2, 2, 2312, 2313, 7, 112, 2, 2, 2313, 2314, 7, 102, 2, 2, 2314, 2315, 7, 105, 2, 2, 2315, 2316, 7, 119, 2, 2, 2316, 2317, 7, 111, 2, 2, 2317, 2318, 7, 100, 2, 2, 2318, 2319, 7, 103, 2, 2, 2319, 2334, 7, 110, 2, 2, 2320, 2321, 7, 116, 2, 2, 2321, 2322, 7, 99, 2, 2, 2322, 2323, 7, 112, 2, 2, 2323, 2324, 7, 102, 2, 2, 2324, 2325, 7, 113, 2, 2, 2325, 2326, 7, 111, 2, 2, 2326, 2327, 7, 97, 2, 2, 2327, 2328, 7, 105, 2, 2, 2328, 2329, 7, 119, 2, 2, 2329, 2330, 7, 111, 2, 2, 2330, 2331, 7, 100, 2, 2, 2331, 2332, 7, 103, 2, 2, 2332, 2334, 7, 110, 2, 2, 2333, 2310, 3, 2, 2, 2, 2333, 2320, 3, 2, 2, 2, 2334, 368, 3, 2, 2, 2, 2335, 2336, 7, 116, 2, 2, 2336, 2337, 7, 99, 2, 2, 2337, 2338, 7, 112, 2, 2, 2338, 2339, 7, 102, 2, 2, 2339, 2355, 7, 121, 2, 2, 2340, 2341, 7, 116, 2, 2, 2341, 2342, 7, 99, 2, 2, 2342, 2343, 7, 112, 2, 2, 2343, 2344, 7, 102, 2, 2, 2344, 2345, 7, 113, 2, 2, 2345, 2346, 7, 111, 2, 2, 2346, 2347, 7, 97, 2, 2, 2347, 2348, 7, 121, 2, 2, 2348, 2349, 7, 103, 2, 2, 2349, 2350, 7, 107, 2, 2, 2350, 2351, 7, 100, 2, 2, 2351, 2352, 7, 119, 2, 2, 2352, 2353, 7, 110, 2, 2, 2353, 2355, 7, 110, 2, 2, 2354, 2335, 3, 2, 2, 2, 2354, 2340, 3, 2, 2, 2, 2355, 370, 3, 2, 2, 2, 2356, 2357, 7, 116, 2, 2, 2357, 2358, 7, 99, 2, 2, 2358, 2359, 7, 112, 2, 2, 2359, 2360, 7, 102, 2, 2, 2360, 2361, 7, 101, 2, 2, 2361, 2362, 7, 106, 2, 2, 2362, 2363, 7, 107, 2, 2, 2363, 2376, 7, 52, 2, 2, 2364, 2365, 7, 116, 2, 2, 2365, 2366, 7, 99, 2, 2, 2366, 2367, 7, 112, 2, 2, 2367, 2368, 7, 102, 2, 2, 2368, 2369, 7, 113, 2, 2, 2369, 2370, 7, 111, 2, 2, 2370, 2371, 7, 97, 2, 2, 2371, 2372, 7, 101, 2, 2, 2372, 2373, 7, 106, 2, 2, 2373, 2374, 7, 107, 2, 2, 2374, 2376, 7, 52, 2, 2, 2375, 2356, 3, 2, 2, 2, 2375, 2364, 3, 2, 2, 2, 2376, 372, 3, 2, 2, 2, 2377, 2378, 7, 116, 2, 2, 2378, 2379, 7, 99, 2, 2, 2379, 2380, 7, 112, 2, 2, 2380, 2381, 7, 102, 2, 2, 2381, 2398, 7, 118, 2, 2, 2382, 2383, 7, 116, 2, 2, 2383, 2384, 7, 99, 2, 2, 2384, 2385, 7, 112, 2, 2, 2385, 2386, 7, 102, 2, 2, 2386, 2387, 7, 113, 2, 2, 2387, 2388, 7, 111, 2, 2, 2388, 2389, 7, 97, 2, 2, 2389, 2390, 7, 117, 2, 2, 2390, 2391, 7, 118, 2, 2, 2391, 2392, 7, 119, 2, 2, 2392, 2393, 7, 102, 2, 2, 2393, 2394, 7, 103, 2, 2, 2394, 2395, 7, 112, 2, 2, 2395, 2396, 7, 118, 2, 2, 2396, 2398, 7, 118, 2, 2, 2397, 2377, 3, 2, 2, 2, 2397, 2382, 3, 2, 2, 2, 2398, 374, 3, 2, 2, 2, 2399, 2400, 7, 114, 2, 2, 2400, 2401, 7, 103, 2, 2, 2401, 2402, 7, 116, 2, 2, 2402, 2403, 7, 110, 2, 2, 2403, 2404, 7, 107, 2, 2, 2404, 2418, 7, 112, 2, 2, 2405, 2406, 7, 114, 2, 2, 2406, 2407, 7, 103, 2, 2, 2407, 2408, 7, 116, 2, 2, 2408, 2409, 7, 110, 2, 2, 2409, 2410, 7, 107, 2, 2, 2410, 2411, 7, 112, 2, 2, 2411, 2412, 7, 97, 2, 2, 2412, 2413, 7, 112, 2, 2, 2413, 2414, 7, 113, 2, 2, 2414, 2415, 7, 107, 2, 2, 2415, 2416, 7, 117, 2, 2, 2416, 2418, 7, 103, 2, 2, 2417, 2399, 3, 2, 2, 2, 2417, 2405, 3, 2, 2, 2, 2418, 376, 3, 2, 2, 2, 2419, 2420, 7, 101, 2, 2, 2420, 2421, 7, 103, 2, 2, 2421, 2422, 7, 110, 2, 2, 2422, 2423, 7, 110, 2, 2, 2423, 2424, 7, 119, 2, 2, 2424, 2425, 7, 110, 2, 2, 2425, 2426, 7, 99, 2, 2, 2426, 2468, 7, 116, 2, 2, 2427, 2428, 7, 120, 2, 2, 2428, 2429, 7, 113, 2, 2, 2429, 2430, 7, 116, 2, 2, 2430, 2431, 7, 113, 2, 2, 2431, 2432, 7, 112, 2, 2, 2432, 2433, 7, 113, 2, 2, 2433, 2468, 7, 107, 2, 2, 2434, 2435, 7, 121, 2, 2, 2435, 2436, 7, 113, 2, 2, 2436, 2437, 7, 116, 2, 2, 2437, 2438, 7, 110, 2, 2, 2438, 2439, 7, 103, 2, 2, 2439, 2468, 7, 123, 2, 2, 2440, 2441, 7, 101, 2, 2, 2441, 2442, 7, 103, 2, 2, 2442, 2443, 7, 110, 2, 2, 2443, 2444, 7, 110, 2, 2, 2444, 2445, 7, 119, 2, 2, 2445, 2446, 7, 110, 2, 2, 2446, 2447, 7, 99, 2, 2, 2447, 2448, 7, 116, 2, 2, 2448, 2449, 7, 97, 2, 2, 2449, 2450, 7, 112, 2, 2, 2450, 2451, 7, 113, 2, 2, 2451, 2452, 7, 107, 2, 2, 2452, 2453, 7, 117, 2, 2, 2453, 2468, 7, 103, 2, 2, 2454, 2455, 7, 120, 2, 2, 2455, 2456, 7, 113, 2, 2, 2456, 2457, 7, 116, 2, 2, 2457, 2458, 7, 113, 2, 2, 2458, 2459, 7, 112, 2, 2, 2459, 2460, 7, 113, 2, 2, 2460, 2461, 7, 107, 2, 2, 2461, 2462, 7, 97, 2, 2, 2462, 2463, 7, 112, 2, 2, 2463, 2464, 7, 113, 2, 2, 2464, 2465, 7, 107, 2, 2, 2465, 2466, 7, 117, 2, 2, 2466, 2468, 7, 103, 2, 2, 2467, 2419, 3, 2, 2, 2, 2467, 2427, 3, 2, 2, 2, 2467, 2434, 3, 2, 2, 2, 2467, 2440, 3, 2, 2, 2, 2467, 2454, 3, 2, 2, 2, 2468, 378, 3, 2, 2, 2, 2469, 2470, 7, 114, 2, 2, 2470, 2471, 7, 110, 2, 2, 2471, 2472, 7, 99, 2, 2, 2472, 2473, 7, 117, 2, 2, 2473, 2474, 7, 111, 2, 2, 2474, 2498, 7, 99, 2, 2, 2475, 2476, 7, 118, 2, 2, 2476, 2477, 7, 119, 2, 2, 2477, 2478, 7, 116, 2, 2, 2478, 2479, 7, 100, 2, 2, 2479, 2480, 7, 119, 2, 2, 2480, 2481, 7, 110, 2, 2, 2481, 2482, 7, 103, 2, 2, 2482, 2483, 7, 112, 2, 2, 2483, 2484, 7, 101, 2, 2, 2484, 2498, 7, 103, 2, 2, 2485, 2486, 7, 114, 2, 2, 2486, 2487, 7, 110, 2, 2, 2487, 2488, 7, 99, 2, 2, 2488, 2489, 7, 117, 2, 2, 2489, 2490, 7, 111, 2, 2, 2490, 2491, 7, 99, 2, 2, 2491, 2492, 7, 97, 2, 2, 2492, 2493, 7, 112, 2, 2, 2493, 2494, 7, 113, 2, 2, 2494, 2495, 7, 107, 2, 2, 2495, 2496, 7, 117, 2, 2, 2496, 2498, 7, 103, 2, 2, 2497, 2469, 3, 2, 2, 2, 2497, 2475, 3, 2, 2, 2, 2497, 2485, 3, 2, 2, 2, 2498, 380, 3, 2, 2, 2, 2499, 2500, 7, 116, 2, 2, 2500, 2501, 7, 107, 2, 2, 2501, 2502, 7, 102, 2, 2, 2502, 2503, 7, 105, 2, 2, 2503, 2504, 7, 103, 2, 2, 2504, 2518, 7, 102, 2, 2, 2505, 2506, 7, 116, 2, 2, 2506, 2507, 7, 107, 2, 2, 2507, 2508, 7, 102, 2, 2, 2508, 2509, 7, 105, 2, 2, 2509, 2510, 7, 103, 2, 2, 2510, 2511, 7, 102, 2, 2, 2511, 2512, 7, 97, 2, 2, 2512, 2513, 7, 112, 2, 2, 2513, 2514, 7, 113, 2, 2, 2514, 2515, 7, 107, 2, 2, 2515, 2516, 7, 117, 2, 2, 2516, 2518, 7, 103, 2, 2, 2517, 2499, 3, 2, 2, 2, 2517, 2505, 3, 2, 2, 2, 2518, 382, 3, 2, 2, 2, 2519, 2520, 7, 102, 2, 2, 2520, 2521, 7, 113, 2, 2, 2521, 2522, 7, 111, 2, 2, 2522, 2523, 7, 99, 2, 2, 2523, 2524, 7, 107, 2, 2, 2524, 2525, 7, 112, 2, 2, 2525, 2526, 7, 97, 2, 2, 2526, 2527, 7, 121, 2, 2, 2527, 2528, 7, 99, 2, 2, 2528, 2529, 7, 116, 2, 2, 2529, 2548, 7, 114, 2, 2, 2530, 2531, 7, 102, 2, 2, 2531, 2532, 7, 113, 2, 2, 2532, 2533, 7, 111, 2, 2, 2533, 2534, 7, 99, 2, 2, 2534, 2535, 7, 107, 2, 2, 2535, 2536, 7, 112, 2, 2, 2536, 2537, 7, 97, 2, 2, 2537, 2538, 7, 121, 2, 2, 2538, 2539, 7, 99, 2, 2, 2539, 2540, 7, 116, 2, 2, 2540, 2541, 7, 114, 2, 2, 2541, 2542, 7, 97, 2, 2, 2542, 2543, 7, 112, 2, 2, 2543, 2544, 7, 113, 2, 2, 2544, 2545, 7, 107, 2, 2, 2545, 2546, 7, 117, 2, 2, 2546, 2548, 7, 103, 2, 2, 2547, 2519, 3, 2, 2, 2, 2547, 2530, 3, 2, 2, 2, 2548, 384, 3, 2, 2, 2, 2549, 2550, 7, 45, 2, 2, 2550, 386, 3, 2, 2, 2, 2551, 2552, 7, 47, 2, 2, 2552, 388, 3, 2, 2, 2, 2553, 2554, 7, 44, 2, 2, 2554, 390, 3, 2, 2, 2, 2555, 2556, 7, 49, 2, 2, 2556, 392, 3, 2, 2, 2, 2557, 2558, 7, 39, 2, 2, 2558, 394, 3, 2, 2, 2, 2559, 2560, 7, 96, 2, 2, 2560, 396, 3, 2, 2, 2, 2561, 2562, 7, 62, 2, 2, 2562, 2563, 7, 62, 2, 2, 2563, 398, 3, 2, 2, 2, 2564, 2565, 7, 64, 2, 2, 2565, 2566, 7, 64, 2, 2, 2566, 400, 3, 2, 2, 2, 2567, 2568, 7, 64, 2, 2, 2568, 2569, 7, 63, 2, 2, 2569, 402, 3, 2, 2, 2, 2570, 2571, 7, 64, 2, 2, 2571, 404, 3, 2, 2, 2, 2572, 2573, 7, 62, 2, 2, 2573, 2574, 7, 63, 2, 2, 2574, 406, 3, 2, 2, 2, 2575, 2576, 7, 62, 2, 2, 2576, 408, 3, 2, 2, 2, 2577, 2578, 7, 63, 2, 2, 2578, 2579, 7, 63, 2, 2, 2579, 410, 3, 2, 2, 2, 2580, 2581, 7, 63, 2, 2, 2581, 412, 3, 2, 2, 2, 2582, 2583, 7, 45, 2, 2, 2583, 2584, 7, 63, 2, 2, 2584, 414, 3, 2, 2, 2, 2585, 2586, 7, 47, 2, 2, 2586, 2587, 7, 63, 2, 2, 2587, 416, 3, 2, 2, 2, 2588, 2589, 7, 44, 2, 2, 2589, 2590, 7, 63, 2, 2, 2590, 418, 3, 2, 2, 2, 2591, 2592, 7, 49, 2, 2, 2592, 2593, 7, 63, 2, 2, 2593, 420, 3, 2, 2, 2, 2594, 2595, 7, 39, 2, 2, 2595, 2596, 7, 63, 2, 2, 2596, 422, 3, 2, 2, 2, 2597, 2598, 7, 35, 2, 2, 2598, 2599, 7, 63, 2, 2, 2599, 424, 3, 2, 2, 2, 2600, 2601, 7, 126, 2, 2, 2601, 426, 3, 2, 2, 2, 2602, 2603, 7, 42, 2, 2, 2603, 428, 3, 2, 2, 2, 2604, 2605, 7, 43, 2, 2, 2605, 430, 3, 2, 2, 2, 2606, 2607, 7, 46, 2, 2, 2607, 432, 3, 2, 2, 2, 2608, 2609, 7, 61, 2, 2, 2609, 434, 3, 2, 2, 2, 2610, 2611, 7, 47, 2, 2, 2611, 2612, 7, 64, 2, 2, 2612, 436, 3, 2, 2, 2, 2613, 2614, 7, 93, 2, 2, 2614, 438, 3, 2, 2, 2, 2615, 2616, 7, 95, 2, 2, 2616, 440, 3, 2, 2, 2, 2617, 2618, 7, 65, 2, 2, 2618, 442, 3, 2, 2, 2, 2619, 2620, 7, 60, 2, 2, 2620, 444, 3, 2, 2, 2, 2621, 2622, 7, 125, 2, 2, 2622, 446, 3, 2, 2, 2, 2623, 2624, 7, 127, 2, 2, 2624, 448, 3, 2, 2, 2, 2625, 2627, 9, 2, 2, 2, 2626, 2625, 3, 2, 2, 2, 2627, 2628, 3, 2, 2, 2, 2628, 2626, 3, 2, 2, 2, 2628, 2629, 3, 2, 2, 2, 2629, 2637, 3, 2, 2, 2, 2630, 2634, 7, 48, 2, 2, 2631, 2633, 9, 2, 2, 2, 2632, 2631, 3, 2, 2, 2, 2633, 2636, 3, 2, 2, 2, 2634, 2632, 3, 2, 2, 2, 2634, 2635, 3, 2, 2, 2, 2635, 2638, 3, 2, 2, 2, 2636, 2634, 3, 2, 2, 2, 2637, 2630, 3, 2, 2, 2, 2637, 2638, 3, 2, 2, 2, 2638, 2646, 3, 2, 2, 2, 2639, 2641, 7, 48, 2, 2, 2640, 2642, 9, 2, 2, 2, 2641, 2640, 3, 2, 2, 2, 2642, 2643, 3, 2, 2, 2, 2643, 2641, 3, 2, 2, 2, 2643, 2644, 3, 2, 2, 2, 2644, 2646, 3, 2, 2, 2, 2645, 2626, 3, 2, 2, 2, 2645, 2639, 3, 2, 2, 2, 2646, 2656, 3, 2, 2, 2, 2647, 2649, 9, 3, 2, 2, 2648, 2650, 9, 4, 2, 2, 2649, 2648, 3, 2, 2, 2, 2649, 2650, 3, 2, 2, 2, 2650, 2652, 3, 2, 2, 2, 2651, 2653, 9, 2, 2, 2, 2652, 2651, 3, 2, 2, 2, 2653, 2654, 3, 2, 2, 2, 2654, 2652, 3, 2, 2, 2, 2654, 2655, 3, 2, 2, 2, 2655, 2657, 3, 2, 2, 2, 2656, 2647, 3, 2, 2, 2, 2656, 2657, 3, 2, 2, 2, 2657, 450, 3, 2, 2, 2, 2658, 2659, 7, 114, 2, 2, 2659, 2664, 7, 107, 2, 2, 2660, 2661, 7, 82, 2, 2, 2661, 2664, 7, 75, 2, 2, 2662, 2664, 9, 3, 2, 2, 2663, 2658, 3, 2, 2, 2, 2663, 2660, 3, 2, 2, 2, 2663, 2662, 3, 2, 2, 2, 2664, 452, 3, 2, 2, 2, 2665, 2671, 7, 36, 2, 2, 2666, 2670, 10, 5, 2, 2, 2667, 2668, 7, 94, 2, 2, 2668, 2670, 11, 2, 2, 2, 2669, 2666, 3, 2, 2, 2, 2669, 2667, 3, 2, 2, 2, 2670, 2673, 3, 2, 2, 2, 2671, 2669, 3, 2, 2, 2, 2671, 2672, 3, 2, 2, 2, 2672, 2674, 3, 2, 2, 2, 2673, 2671, 3, 2, 2, 2, 2674, 2686, 7, 36, 2, 2, 2675, 2681, 7, 41, 2, 2, 2676, 2680, 10, 6, 2, 2, 2677, 2678, 7, 94, 2, 2, 2678, 2680, 11, 2, 2, 2, 2679, 2676, 3, 2, 2, 2, 2679, 2677, 3, 2, 2, 2, 2680, 2683, 3, 2, 2, 2, 2681, 2679, 3, 2, 2, 2, 2681, 2682, 3, 2, 2, 2, 2682, 2684, 3, 2, 2, 2, 2683, 2681, 3, 2, 2, 2, 2684, 2686, 7, 41, 2, 2, 2685, 2665, 3, 2, 2, 2, 2685, 2675, 3, 2, 2, 2, 2686, 454, 3, 2, 2, 2, 2687, 2691, 9, 7, 2, 2, 2688, 2690, 9, 8, 2, 2, 2689, 2688, 3, 2, 2, 2, 2690, 2693, 3, 2, 2, 2, 2691, 2689, 3, 2, 2, 2, 2691, 2692, 3, 2, 2, 2, 2692, 456, 3, 2, 2, 2, 2693, 2691, 3, 2, 2, 2, 2694, 2698, 7, 37, 2, 2, 2695, 2697, 10, 9, 2, 2, 2696, 2695, 3, 2, 2, 2, 2697, 2700, 3, 2, 2, 2, 2698, 2696, 3, 2, 2, 2, 2698, 2699, 3, 2, 2, 2, 2699, 2701, 3, 2, 2, 2, 2700, 2698, 3, 2, 2, 2, 2701, 2702, 8, 229, 2, 2, 2702, 458, 3, 2, 2, 2, 2703, 2704, 7, 49, 2, 2, 2704, 2705, 7, 44, 2, 2, 2705, 2709, 3, 2, 2, 2, 2706, 2708, 11, 2, 2, 2, 2707, 2706, 3, 2, 2, 2, 2708, 2711, 3, 2, 2, 2, 2709, 2710, 3, 2, 2, 2, 2709, 2707, 3, 2, 2, 2, 2710, 2712, 3, 2, 2, 2, 2711, 2709, 3, 2, 2, 2, 2712, 2713, 7, 44, 2, 2, 2713, 2714, 7, 49, 2, 2, 2714, 2715, 3, 2, 2, 2, 2715, 2716, 8, 230, 2, 2, 2716, 460, 3, 2, 2, 2, 2717, 2719, 9, 10, 2, 2, 2718, 2717, 3, 2, 2, 2, 2719, 2720, 3, 2, 2, 2, 2720, 2718, 3, 2, 2, 2, 2720, 2721, 3, 2, 2, 2, 2721, 2722, 3, 2, 2, 2, 2722, 2723, 8, 231, 2, 2, 2723, 462, 3, 2, 2, 2, 74, 2, 655, 670, 746, 763, 781, 794, 867, 884, 942, 991, 1013, 1030, 1051, 1066, 1093, 1124, 1140, 1211, 1261, 1281, 1302, 1349, 1373, 1396, 1413, 1428, 1510, 1565, 1794, 1855, 1876, 1933, 2052, 2083, 2108, 2133, 2153, 2178, 2203, 2226, 2247, 2266, 2287, 2308, 2333, 2354, 2375, 2397, 2417, 2467, 2497, 2517, 2547, 2628, 2634, 2637, 2643, 2645, 2649, 2654, 2656, 2663, 2669, 2671, 2679, 2681, 2685, 2691, 2698, 2709, 2720, 3, 8, 2, 2] \ No newline at end of file +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 233, 2745, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 4, 110, 9, 110, 4, 111, 9, 111, 4, 112, 9, 112, 4, 113, 9, 113, 4, 114, 9, 114, 4, 115, 9, 115, 4, 116, 9, 116, 4, 117, 9, 117, 4, 118, 9, 118, 4, 119, 9, 119, 4, 120, 9, 120, 4, 121, 9, 121, 4, 122, 9, 122, 4, 123, 9, 123, 4, 124, 9, 124, 4, 125, 9, 125, 4, 126, 9, 126, 4, 127, 9, 127, 4, 128, 9, 128, 4, 129, 9, 129, 4, 130, 9, 130, 4, 131, 9, 131, 4, 132, 9, 132, 4, 133, 9, 133, 4, 134, 9, 134, 4, 135, 9, 135, 4, 136, 9, 136, 4, 137, 9, 137, 4, 138, 9, 138, 4, 139, 9, 139, 4, 140, 9, 140, 4, 141, 9, 141, 4, 142, 9, 142, 4, 143, 9, 143, 4, 144, 9, 144, 4, 145, 9, 145, 4, 146, 9, 146, 4, 147, 9, 147, 4, 148, 9, 148, 4, 149, 9, 149, 4, 150, 9, 150, 4, 151, 9, 151, 4, 152, 9, 152, 4, 153, 9, 153, 4, 154, 9, 154, 4, 155, 9, 155, 4, 156, 9, 156, 4, 157, 9, 157, 4, 158, 9, 158, 4, 159, 9, 159, 4, 160, 9, 160, 4, 161, 9, 161, 4, 162, 9, 162, 4, 163, 9, 163, 4, 164, 9, 164, 4, 165, 9, 165, 4, 166, 9, 166, 4, 167, 9, 167, 4, 168, 9, 168, 4, 169, 9, 169, 4, 170, 9, 170, 4, 171, 9, 171, 4, 172, 9, 172, 4, 173, 9, 173, 4, 174, 9, 174, 4, 175, 9, 175, 4, 176, 9, 176, 4, 177, 9, 177, 4, 178, 9, 178, 4, 179, 9, 179, 4, 180, 9, 180, 4, 181, 9, 181, 4, 182, 9, 182, 4, 183, 9, 183, 4, 184, 9, 184, 4, 185, 9, 185, 4, 186, 9, 186, 4, 187, 9, 187, 4, 188, 9, 188, 4, 189, 9, 189, 4, 190, 9, 190, 4, 191, 9, 191, 4, 192, 9, 192, 4, 193, 9, 193, 4, 194, 9, 194, 4, 195, 9, 195, 4, 196, 9, 196, 4, 197, 9, 197, 4, 198, 9, 198, 4, 199, 9, 199, 4, 200, 9, 200, 4, 201, 9, 201, 4, 202, 9, 202, 4, 203, 9, 203, 4, 204, 9, 204, 4, 205, 9, 205, 4, 206, 9, 206, 4, 207, 9, 207, 4, 208, 9, 208, 4, 209, 9, 209, 4, 210, 9, 210, 4, 211, 9, 211, 4, 212, 9, 212, 4, 213, 9, 213, 4, 214, 9, 214, 4, 215, 9, 215, 4, 216, 9, 216, 4, 217, 9, 217, 4, 218, 9, 218, 4, 219, 9, 219, 4, 220, 9, 220, 4, 221, 9, 221, 4, 222, 9, 222, 4, 223, 9, 223, 4, 224, 9, 224, 4, 225, 9, 225, 4, 226, 9, 226, 4, 227, 9, 227, 4, 228, 9, 228, 4, 229, 9, 229, 4, 230, 9, 230, 4, 231, 9, 231, 4, 232, 9, 232, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 33, 3, 33, 3, 33, 3, 33, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 5, 37, 658, 10, 37, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 5, 38, 673, 10, 38, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 47, 3, 47, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 5, 48, 749, 10, 48, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 5, 49, 766, 10, 49, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 5, 51, 784, 10, 51, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 5, 52, 797, 10, 52, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 59, 3, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 61, 3, 61, 3, 61, 3, 61, 3, 62, 3, 62, 3, 62, 3, 62, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 5, 63, 870, 10, 63, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 5, 64, 887, 10, 64, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 66, 3, 66, 3, 66, 3, 66, 3, 67, 3, 67, 3, 67, 3, 67, 3, 67, 3, 67, 3, 67, 3, 68, 3, 68, 3, 68, 3, 68, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 70, 3, 70, 3, 70, 3, 70, 3, 71, 3, 71, 3, 71, 3, 71, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 5, 73, 945, 10, 73, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 5, 78, 994, 10, 78, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 5, 79, 1016, 10, 79, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 5, 80, 1033, 10, 80, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 5, 81, 1054, 10, 81, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 5, 82, 1069, 10, 82, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 5, 84, 1096, 10, 84, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 5, 86, 1127, 10, 86, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 5, 87, 1143, 10, 87, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 90, 3, 90, 3, 90, 3, 90, 3, 90, 3, 90, 3, 90, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 5, 93, 1214, 10, 93, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 5, 96, 1264, 10, 96, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 5, 97, 1284, 10, 97, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 5, 99, 1305, 10, 99, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 101, 3, 101, 3, 101, 3, 101, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 5, 105, 1352, 10, 105, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 5, 106, 1376, 10, 106, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 5, 108, 1399, 10, 108, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 5, 109, 1416, 10, 109, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 5, 110, 1431, 10, 110, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 5, 117, 1513, 10, 117, 3, 118, 3, 118, 3, 118, 3, 118, 3, 119, 3, 119, 3, 119, 3, 119, 3, 119, 3, 119, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 124, 3, 124, 3, 124, 3, 124, 3, 124, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 5, 125, 1568, 10, 125, 3, 126, 3, 126, 3, 126, 3, 126, 3, 126, 3, 127, 3, 127, 3, 127, 3, 127, 3, 127, 3, 127, 3, 127, 3, 127, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 5, 142, 1797, 10, 142, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 5, 145, 1858, 10, 145, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 5, 146, 1879, 10, 146, 3, 147, 3, 147, 3, 147, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 150, 3, 150, 3, 150, 3, 150, 3, 151, 3, 151, 3, 151, 3, 152, 3, 152, 3, 152, 3, 152, 3, 152, 3, 152, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 5, 155, 1936, 10, 155, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 169, 3, 169, 3, 169, 3, 169, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 5, 170, 2055, 10, 170, 3, 171, 3, 171, 3, 171, 3, 171, 3, 171, 3, 171, 3, 171, 3, 171, 3, 172, 3, 172, 3, 172, 3, 172, 3, 172, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 5, 173, 2086, 10, 173, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 5, 174, 2105, 10, 174, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 5, 175, 2130, 10, 175, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 5, 176, 2155, 10, 176, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 5, 177, 2175, 10, 177, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 5, 178, 2200, 10, 178, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 5, 179, 2225, 10, 179, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 5, 180, 2248, 10, 180, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 5, 181, 2269, 10, 181, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 5, 182, 2288, 10, 182, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 5, 183, 2309, 10, 183, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 5, 184, 2330, 10, 184, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 5, 185, 2355, 10, 185, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 5, 186, 2376, 10, 186, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 5, 187, 2397, 10, 187, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 5, 188, 2419, 10, 188, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 5, 189, 2439, 10, 189, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 5, 190, 2489, 10, 190, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 5, 191, 2519, 10, 191, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 5, 192, 2539, 10, 192, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 5, 193, 2569, 10, 193, 3, 194, 3, 194, 3, 195, 3, 195, 3, 196, 3, 196, 3, 197, 3, 197, 3, 198, 3, 198, 3, 199, 3, 199, 3, 200, 3, 200, 3, 200, 3, 201, 3, 201, 3, 201, 3, 202, 3, 202, 3, 202, 3, 203, 3, 203, 3, 204, 3, 204, 3, 204, 3, 205, 3, 205, 3, 206, 3, 206, 3, 206, 3, 207, 3, 207, 3, 208, 3, 208, 3, 208, 3, 209, 3, 209, 3, 209, 3, 210, 3, 210, 3, 210, 3, 211, 3, 211, 3, 211, 3, 212, 3, 212, 3, 212, 3, 213, 3, 213, 3, 213, 3, 214, 3, 214, 3, 215, 3, 215, 3, 216, 3, 216, 3, 217, 3, 217, 3, 218, 3, 218, 3, 219, 3, 219, 3, 219, 3, 220, 3, 220, 3, 221, 3, 221, 3, 222, 3, 222, 3, 223, 3, 223, 3, 224, 3, 224, 3, 225, 3, 225, 3, 226, 6, 226, 2648, 10, 226, 13, 226, 14, 226, 2649, 3, 226, 3, 226, 7, 226, 2654, 10, 226, 12, 226, 14, 226, 2657, 11, 226, 5, 226, 2659, 10, 226, 3, 226, 3, 226, 6, 226, 2663, 10, 226, 13, 226, 14, 226, 2664, 5, 226, 2667, 10, 226, 3, 226, 3, 226, 5, 226, 2671, 10, 226, 3, 226, 6, 226, 2674, 10, 226, 13, 226, 14, 226, 2675, 5, 226, 2678, 10, 226, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 5, 227, 2685, 10, 227, 3, 228, 3, 228, 3, 228, 3, 228, 7, 228, 2691, 10, 228, 12, 228, 14, 228, 2694, 11, 228, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 7, 228, 2701, 10, 228, 12, 228, 14, 228, 2704, 11, 228, 3, 228, 5, 228, 2707, 10, 228, 3, 229, 3, 229, 7, 229, 2711, 10, 229, 12, 229, 14, 229, 2714, 11, 229, 3, 230, 3, 230, 7, 230, 2718, 10, 230, 12, 230, 14, 230, 2721, 11, 230, 3, 230, 3, 230, 3, 231, 3, 231, 3, 231, 3, 231, 7, 231, 2729, 10, 231, 12, 231, 14, 231, 2732, 11, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 232, 6, 232, 2740, 10, 232, 13, 232, 14, 232, 2741, 3, 232, 3, 232, 3, 2730, 2, 233, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9, 17, 10, 19, 11, 21, 12, 23, 13, 25, 14, 27, 15, 29, 16, 31, 17, 33, 18, 35, 19, 37, 20, 39, 21, 41, 22, 43, 23, 45, 24, 47, 25, 49, 26, 51, 27, 53, 28, 55, 29, 57, 30, 59, 31, 61, 32, 63, 33, 65, 34, 67, 35, 69, 36, 71, 37, 73, 38, 75, 39, 77, 40, 79, 41, 81, 42, 83, 43, 85, 44, 87, 45, 89, 46, 91, 47, 93, 48, 95, 49, 97, 50, 99, 51, 101, 52, 103, 53, 105, 54, 107, 55, 109, 56, 111, 57, 113, 58, 115, 59, 117, 60, 119, 61, 121, 62, 123, 63, 125, 64, 127, 65, 129, 66, 131, 67, 133, 68, 135, 69, 137, 70, 139, 71, 141, 72, 143, 73, 145, 74, 147, 75, 149, 76, 151, 77, 153, 78, 155, 79, 157, 80, 159, 81, 161, 82, 163, 83, 165, 84, 167, 85, 169, 86, 171, 87, 173, 88, 175, 89, 177, 90, 179, 91, 181, 92, 183, 93, 185, 94, 187, 95, 189, 96, 191, 97, 193, 98, 195, 99, 197, 100, 199, 101, 201, 102, 203, 103, 205, 104, 207, 105, 209, 106, 211, 107, 213, 108, 215, 109, 217, 110, 219, 111, 221, 112, 223, 113, 225, 114, 227, 115, 229, 116, 231, 117, 233, 118, 235, 119, 237, 120, 239, 121, 241, 122, 243, 123, 245, 124, 247, 125, 249, 126, 251, 127, 253, 128, 255, 129, 257, 130, 259, 131, 261, 132, 263, 133, 265, 134, 267, 135, 269, 136, 271, 137, 273, 138, 275, 139, 277, 140, 279, 141, 281, 142, 283, 143, 285, 144, 287, 145, 289, 146, 291, 147, 293, 148, 295, 149, 297, 150, 299, 151, 301, 152, 303, 153, 305, 154, 307, 155, 309, 156, 311, 157, 313, 158, 315, 159, 317, 160, 319, 161, 321, 162, 323, 163, 325, 164, 327, 165, 329, 166, 331, 167, 333, 168, 335, 169, 337, 170, 339, 171, 341, 172, 343, 173, 345, 174, 347, 175, 349, 176, 351, 177, 353, 178, 355, 179, 357, 180, 359, 181, 361, 182, 363, 183, 365, 184, 367, 185, 369, 186, 371, 187, 373, 188, 375, 189, 377, 190, 379, 191, 381, 192, 383, 193, 385, 194, 387, 195, 389, 196, 391, 197, 393, 198, 395, 199, 397, 200, 399, 201, 401, 202, 403, 203, 405, 204, 407, 205, 409, 206, 411, 207, 413, 208, 415, 209, 417, 210, 419, 211, 421, 212, 423, 213, 425, 214, 427, 215, 429, 216, 431, 217, 433, 218, 435, 219, 437, 220, 439, 221, 441, 222, 443, 223, 445, 224, 447, 225, 449, 226, 451, 227, 453, 228, 455, 229, 457, 230, 459, 231, 461, 232, 463, 233, 3, 2, 11, 3, 2, 50, 59, 4, 2, 71, 71, 103, 103, 4, 2, 45, 45, 47, 47, 6, 2, 12, 12, 15, 15, 36, 36, 94, 94, 6, 2, 12, 12, 15, 15, 41, 41, 94, 94, 5, 2, 67, 92, 97, 97, 99, 124, 6, 2, 50, 59, 67, 92, 97, 97, 99, 124, 4, 2, 12, 12, 15, 15, 5, 2, 11, 12, 15, 15, 34, 34, 2, 2829, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 33, 3, 2, 2, 2, 2, 35, 3, 2, 2, 2, 2, 37, 3, 2, 2, 2, 2, 39, 3, 2, 2, 2, 2, 41, 3, 2, 2, 2, 2, 43, 3, 2, 2, 2, 2, 45, 3, 2, 2, 2, 2, 47, 3, 2, 2, 2, 2, 49, 3, 2, 2, 2, 2, 51, 3, 2, 2, 2, 2, 53, 3, 2, 2, 2, 2, 55, 3, 2, 2, 2, 2, 57, 3, 2, 2, 2, 2, 59, 3, 2, 2, 2, 2, 61, 3, 2, 2, 2, 2, 63, 3, 2, 2, 2, 2, 65, 3, 2, 2, 2, 2, 67, 3, 2, 2, 2, 2, 69, 3, 2, 2, 2, 2, 71, 3, 2, 2, 2, 2, 73, 3, 2, 2, 2, 2, 75, 3, 2, 2, 2, 2, 77, 3, 2, 2, 2, 2, 79, 3, 2, 2, 2, 2, 81, 3, 2, 2, 2, 2, 83, 3, 2, 2, 2, 2, 85, 3, 2, 2, 2, 2, 87, 3, 2, 2, 2, 2, 89, 3, 2, 2, 2, 2, 91, 3, 2, 2, 2, 2, 93, 3, 2, 2, 2, 2, 95, 3, 2, 2, 2, 2, 97, 3, 2, 2, 2, 2, 99, 3, 2, 2, 2, 2, 101, 3, 2, 2, 2, 2, 103, 3, 2, 2, 2, 2, 105, 3, 2, 2, 2, 2, 107, 3, 2, 2, 2, 2, 109, 3, 2, 2, 2, 2, 111, 3, 2, 2, 2, 2, 113, 3, 2, 2, 2, 2, 115, 3, 2, 2, 2, 2, 117, 3, 2, 2, 2, 2, 119, 3, 2, 2, 2, 2, 121, 3, 2, 2, 2, 2, 123, 3, 2, 2, 2, 2, 125, 3, 2, 2, 2, 2, 127, 3, 2, 2, 2, 2, 129, 3, 2, 2, 2, 2, 131, 3, 2, 2, 2, 2, 133, 3, 2, 2, 2, 2, 135, 3, 2, 2, 2, 2, 137, 3, 2, 2, 2, 2, 139, 3, 2, 2, 2, 2, 141, 3, 2, 2, 2, 2, 143, 3, 2, 2, 2, 2, 145, 3, 2, 2, 2, 2, 147, 3, 2, 2, 2, 2, 149, 3, 2, 2, 2, 2, 151, 3, 2, 2, 2, 2, 153, 3, 2, 2, 2, 2, 155, 3, 2, 2, 2, 2, 157, 3, 2, 2, 2, 2, 159, 3, 2, 2, 2, 2, 161, 3, 2, 2, 2, 2, 163, 3, 2, 2, 2, 2, 165, 3, 2, 2, 2, 2, 167, 3, 2, 2, 2, 2, 169, 3, 2, 2, 2, 2, 171, 3, 2, 2, 2, 2, 173, 3, 2, 2, 2, 2, 175, 3, 2, 2, 2, 2, 177, 3, 2, 2, 2, 2, 179, 3, 2, 2, 2, 2, 181, 3, 2, 2, 2, 2, 183, 3, 2, 2, 2, 2, 185, 3, 2, 2, 2, 2, 187, 3, 2, 2, 2, 2, 189, 3, 2, 2, 2, 2, 191, 3, 2, 2, 2, 2, 193, 3, 2, 2, 2, 2, 195, 3, 2, 2, 2, 2, 197, 3, 2, 2, 2, 2, 199, 3, 2, 2, 2, 2, 201, 3, 2, 2, 2, 2, 203, 3, 2, 2, 2, 2, 205, 3, 2, 2, 2, 2, 207, 3, 2, 2, 2, 2, 209, 3, 2, 2, 2, 2, 211, 3, 2, 2, 2, 2, 213, 3, 2, 2, 2, 2, 215, 3, 2, 2, 2, 2, 217, 3, 2, 2, 2, 2, 219, 3, 2, 2, 2, 2, 221, 3, 2, 2, 2, 2, 223, 3, 2, 2, 2, 2, 225, 3, 2, 2, 2, 2, 227, 3, 2, 2, 2, 2, 229, 3, 2, 2, 2, 2, 231, 3, 2, 2, 2, 2, 233, 3, 2, 2, 2, 2, 235, 3, 2, 2, 2, 2, 237, 3, 2, 2, 2, 2, 239, 3, 2, 2, 2, 2, 241, 3, 2, 2, 2, 2, 243, 3, 2, 2, 2, 2, 245, 3, 2, 2, 2, 2, 247, 3, 2, 2, 2, 2, 249, 3, 2, 2, 2, 2, 251, 3, 2, 2, 2, 2, 253, 3, 2, 2, 2, 2, 255, 3, 2, 2, 2, 2, 257, 3, 2, 2, 2, 2, 259, 3, 2, 2, 2, 2, 261, 3, 2, 2, 2, 2, 263, 3, 2, 2, 2, 2, 265, 3, 2, 2, 2, 2, 267, 3, 2, 2, 2, 2, 269, 3, 2, 2, 2, 2, 271, 3, 2, 2, 2, 2, 273, 3, 2, 2, 2, 2, 275, 3, 2, 2, 2, 2, 277, 3, 2, 2, 2, 2, 279, 3, 2, 2, 2, 2, 281, 3, 2, 2, 2, 2, 283, 3, 2, 2, 2, 2, 285, 3, 2, 2, 2, 2, 287, 3, 2, 2, 2, 2, 289, 3, 2, 2, 2, 2, 291, 3, 2, 2, 2, 2, 293, 3, 2, 2, 2, 2, 295, 3, 2, 2, 2, 2, 297, 3, 2, 2, 2, 2, 299, 3, 2, 2, 2, 2, 301, 3, 2, 2, 2, 2, 303, 3, 2, 2, 2, 2, 305, 3, 2, 2, 2, 2, 307, 3, 2, 2, 2, 2, 309, 3, 2, 2, 2, 2, 311, 3, 2, 2, 2, 2, 313, 3, 2, 2, 2, 2, 315, 3, 2, 2, 2, 2, 317, 3, 2, 2, 2, 2, 319, 3, 2, 2, 2, 2, 321, 3, 2, 2, 2, 2, 323, 3, 2, 2, 2, 2, 325, 3, 2, 2, 2, 2, 327, 3, 2, 2, 2, 2, 329, 3, 2, 2, 2, 2, 331, 3, 2, 2, 2, 2, 333, 3, 2, 2, 2, 2, 335, 3, 2, 2, 2, 2, 337, 3, 2, 2, 2, 2, 339, 3, 2, 2, 2, 2, 341, 3, 2, 2, 2, 2, 343, 3, 2, 2, 2, 2, 345, 3, 2, 2, 2, 2, 347, 3, 2, 2, 2, 2, 349, 3, 2, 2, 2, 2, 351, 3, 2, 2, 2, 2, 353, 3, 2, 2, 2, 2, 355, 3, 2, 2, 2, 2, 357, 3, 2, 2, 2, 2, 359, 3, 2, 2, 2, 2, 361, 3, 2, 2, 2, 2, 363, 3, 2, 2, 2, 2, 365, 3, 2, 2, 2, 2, 367, 3, 2, 2, 2, 2, 369, 3, 2, 2, 2, 2, 371, 3, 2, 2, 2, 2, 373, 3, 2, 2, 2, 2, 375, 3, 2, 2, 2, 2, 377, 3, 2, 2, 2, 2, 379, 3, 2, 2, 2, 2, 381, 3, 2, 2, 2, 2, 383, 3, 2, 2, 2, 2, 385, 3, 2, 2, 2, 2, 387, 3, 2, 2, 2, 2, 389, 3, 2, 2, 2, 2, 391, 3, 2, 2, 2, 2, 393, 3, 2, 2, 2, 2, 395, 3, 2, 2, 2, 2, 397, 3, 2, 2, 2, 2, 399, 3, 2, 2, 2, 2, 401, 3, 2, 2, 2, 2, 403, 3, 2, 2, 2, 2, 405, 3, 2, 2, 2, 2, 407, 3, 2, 2, 2, 2, 409, 3, 2, 2, 2, 2, 411, 3, 2, 2, 2, 2, 413, 3, 2, 2, 2, 2, 415, 3, 2, 2, 2, 2, 417, 3, 2, 2, 2, 2, 419, 3, 2, 2, 2, 2, 421, 3, 2, 2, 2, 2, 423, 3, 2, 2, 2, 2, 425, 3, 2, 2, 2, 2, 427, 3, 2, 2, 2, 2, 429, 3, 2, 2, 2, 2, 431, 3, 2, 2, 2, 2, 433, 3, 2, 2, 2, 2, 435, 3, 2, 2, 2, 2, 437, 3, 2, 2, 2, 2, 439, 3, 2, 2, 2, 2, 441, 3, 2, 2, 2, 2, 443, 3, 2, 2, 2, 2, 445, 3, 2, 2, 2, 2, 447, 3, 2, 2, 2, 2, 449, 3, 2, 2, 2, 2, 451, 3, 2, 2, 2, 2, 453, 3, 2, 2, 2, 2, 455, 3, 2, 2, 2, 2, 457, 3, 2, 2, 2, 2, 459, 3, 2, 2, 2, 2, 461, 3, 2, 2, 2, 2, 463, 3, 2, 2, 2, 3, 465, 3, 2, 2, 2, 5, 469, 3, 2, 2, 2, 7, 473, 3, 2, 2, 2, 9, 477, 3, 2, 2, 2, 11, 482, 3, 2, 2, 2, 13, 487, 3, 2, 2, 2, 15, 492, 3, 2, 2, 2, 17, 498, 3, 2, 2, 2, 19, 503, 3, 2, 2, 2, 21, 508, 3, 2, 2, 2, 23, 513, 3, 2, 2, 2, 25, 519, 3, 2, 2, 2, 27, 525, 3, 2, 2, 2, 29, 531, 3, 2, 2, 2, 31, 535, 3, 2, 2, 2, 33, 540, 3, 2, 2, 2, 35, 543, 3, 2, 2, 2, 37, 547, 3, 2, 2, 2, 39, 551, 3, 2, 2, 2, 41, 556, 3, 2, 2, 2, 43, 561, 3, 2, 2, 2, 45, 566, 3, 2, 2, 2, 47, 571, 3, 2, 2, 2, 49, 577, 3, 2, 2, 2, 51, 583, 3, 2, 2, 2, 53, 589, 3, 2, 2, 2, 55, 594, 3, 2, 2, 2, 57, 600, 3, 2, 2, 2, 59, 606, 3, 2, 2, 2, 61, 610, 3, 2, 2, 2, 63, 615, 3, 2, 2, 2, 65, 621, 3, 2, 2, 2, 67, 625, 3, 2, 2, 2, 69, 630, 3, 2, 2, 2, 71, 636, 3, 2, 2, 2, 73, 657, 3, 2, 2, 2, 75, 672, 3, 2, 2, 2, 77, 674, 3, 2, 2, 2, 79, 679, 3, 2, 2, 2, 81, 684, 3, 2, 2, 2, 83, 695, 3, 2, 2, 2, 85, 701, 3, 2, 2, 2, 87, 706, 3, 2, 2, 2, 89, 715, 3, 2, 2, 2, 91, 720, 3, 2, 2, 2, 93, 725, 3, 2, 2, 2, 95, 748, 3, 2, 2, 2, 97, 765, 3, 2, 2, 2, 99, 767, 3, 2, 2, 2, 101, 783, 3, 2, 2, 2, 103, 796, 3, 2, 2, 2, 105, 798, 3, 2, 2, 2, 107, 804, 3, 2, 2, 2, 109, 813, 3, 2, 2, 2, 111, 822, 3, 2, 2, 2, 113, 827, 3, 2, 2, 2, 115, 832, 3, 2, 2, 2, 117, 837, 3, 2, 2, 2, 119, 841, 3, 2, 2, 2, 121, 846, 3, 2, 2, 2, 123, 850, 3, 2, 2, 2, 125, 869, 3, 2, 2, 2, 127, 886, 3, 2, 2, 2, 129, 888, 3, 2, 2, 2, 131, 897, 3, 2, 2, 2, 133, 901, 3, 2, 2, 2, 135, 908, 3, 2, 2, 2, 137, 912, 3, 2, 2, 2, 139, 919, 3, 2, 2, 2, 141, 923, 3, 2, 2, 2, 143, 927, 3, 2, 2, 2, 145, 944, 3, 2, 2, 2, 147, 946, 3, 2, 2, 2, 149, 953, 3, 2, 2, 2, 151, 958, 3, 2, 2, 2, 153, 965, 3, 2, 2, 2, 155, 993, 3, 2, 2, 2, 157, 1015, 3, 2, 2, 2, 159, 1032, 3, 2, 2, 2, 161, 1053, 3, 2, 2, 2, 163, 1068, 3, 2, 2, 2, 165, 1070, 3, 2, 2, 2, 167, 1095, 3, 2, 2, 2, 169, 1097, 3, 2, 2, 2, 171, 1126, 3, 2, 2, 2, 173, 1142, 3, 2, 2, 2, 175, 1144, 3, 2, 2, 2, 177, 1151, 3, 2, 2, 2, 179, 1159, 3, 2, 2, 2, 181, 1166, 3, 2, 2, 2, 183, 1176, 3, 2, 2, 2, 185, 1213, 3, 2, 2, 2, 187, 1215, 3, 2, 2, 2, 189, 1227, 3, 2, 2, 2, 191, 1263, 3, 2, 2, 2, 193, 1283, 3, 2, 2, 2, 195, 1285, 3, 2, 2, 2, 197, 1304, 3, 2, 2, 2, 199, 1306, 3, 2, 2, 2, 201, 1314, 3, 2, 2, 2, 203, 1318, 3, 2, 2, 2, 205, 1324, 3, 2, 2, 2, 207, 1331, 3, 2, 2, 2, 209, 1351, 3, 2, 2, 2, 211, 1375, 3, 2, 2, 2, 213, 1377, 3, 2, 2, 2, 215, 1398, 3, 2, 2, 2, 217, 1415, 3, 2, 2, 2, 219, 1430, 3, 2, 2, 2, 221, 1432, 3, 2, 2, 2, 223, 1439, 3, 2, 2, 2, 225, 1450, 3, 2, 2, 2, 227, 1460, 3, 2, 2, 2, 229, 1472, 3, 2, 2, 2, 231, 1482, 3, 2, 2, 2, 233, 1512, 3, 2, 2, 2, 235, 1514, 3, 2, 2, 2, 237, 1518, 3, 2, 2, 2, 239, 1524, 3, 2, 2, 2, 241, 1530, 3, 2, 2, 2, 243, 1536, 3, 2, 2, 2, 245, 1541, 3, 2, 2, 2, 247, 1547, 3, 2, 2, 2, 249, 1567, 3, 2, 2, 2, 251, 1569, 3, 2, 2, 2, 253, 1574, 3, 2, 2, 2, 255, 1582, 3, 2, 2, 2, 257, 1589, 3, 2, 2, 2, 259, 1595, 3, 2, 2, 2, 261, 1606, 3, 2, 2, 2, 263, 1618, 3, 2, 2, 2, 265, 1631, 3, 2, 2, 2, 267, 1645, 3, 2, 2, 2, 269, 1658, 3, 2, 2, 2, 271, 1672, 3, 2, 2, 2, 273, 1683, 3, 2, 2, 2, 275, 1694, 3, 2, 2, 2, 277, 1705, 3, 2, 2, 2, 279, 1716, 3, 2, 2, 2, 281, 1735, 3, 2, 2, 2, 283, 1796, 3, 2, 2, 2, 285, 1798, 3, 2, 2, 2, 287, 1809, 3, 2, 2, 2, 289, 1857, 3, 2, 2, 2, 291, 1878, 3, 2, 2, 2, 293, 1880, 3, 2, 2, 2, 295, 1883, 3, 2, 2, 2, 297, 1888, 3, 2, 2, 2, 299, 1894, 3, 2, 2, 2, 301, 1898, 3, 2, 2, 2, 303, 1901, 3, 2, 2, 2, 305, 1907, 3, 2, 2, 2, 307, 1916, 3, 2, 2, 2, 309, 1935, 3, 2, 2, 2, 311, 1937, 3, 2, 2, 2, 313, 1942, 3, 2, 2, 2, 315, 1950, 3, 2, 2, 2, 317, 1957, 3, 2, 2, 2, 319, 1964, 3, 2, 2, 2, 321, 1972, 3, 2, 2, 2, 323, 1980, 3, 2, 2, 2, 325, 1987, 3, 2, 2, 2, 327, 1992, 3, 2, 2, 2, 329, 2003, 3, 2, 2, 2, 331, 2012, 3, 2, 2, 2, 333, 2020, 3, 2, 2, 2, 335, 2030, 3, 2, 2, 2, 337, 2035, 3, 2, 2, 2, 339, 2054, 3, 2, 2, 2, 341, 2056, 3, 2, 2, 2, 343, 2064, 3, 2, 2, 2, 345, 2085, 3, 2, 2, 2, 347, 2104, 3, 2, 2, 2, 349, 2129, 3, 2, 2, 2, 351, 2154, 3, 2, 2, 2, 353, 2174, 3, 2, 2, 2, 355, 2199, 3, 2, 2, 2, 357, 2224, 3, 2, 2, 2, 359, 2247, 3, 2, 2, 2, 361, 2268, 3, 2, 2, 2, 363, 2287, 3, 2, 2, 2, 365, 2308, 3, 2, 2, 2, 367, 2329, 3, 2, 2, 2, 369, 2354, 3, 2, 2, 2, 371, 2375, 3, 2, 2, 2, 373, 2396, 3, 2, 2, 2, 375, 2418, 3, 2, 2, 2, 377, 2438, 3, 2, 2, 2, 379, 2488, 3, 2, 2, 2, 381, 2518, 3, 2, 2, 2, 383, 2538, 3, 2, 2, 2, 385, 2568, 3, 2, 2, 2, 387, 2570, 3, 2, 2, 2, 389, 2572, 3, 2, 2, 2, 391, 2574, 3, 2, 2, 2, 393, 2576, 3, 2, 2, 2, 395, 2578, 3, 2, 2, 2, 397, 2580, 3, 2, 2, 2, 399, 2582, 3, 2, 2, 2, 401, 2585, 3, 2, 2, 2, 403, 2588, 3, 2, 2, 2, 405, 2591, 3, 2, 2, 2, 407, 2593, 3, 2, 2, 2, 409, 2596, 3, 2, 2, 2, 411, 2598, 3, 2, 2, 2, 413, 2601, 3, 2, 2, 2, 415, 2603, 3, 2, 2, 2, 417, 2606, 3, 2, 2, 2, 419, 2609, 3, 2, 2, 2, 421, 2612, 3, 2, 2, 2, 423, 2615, 3, 2, 2, 2, 425, 2618, 3, 2, 2, 2, 427, 2621, 3, 2, 2, 2, 429, 2623, 3, 2, 2, 2, 431, 2625, 3, 2, 2, 2, 433, 2627, 3, 2, 2, 2, 435, 2629, 3, 2, 2, 2, 437, 2631, 3, 2, 2, 2, 439, 2634, 3, 2, 2, 2, 441, 2636, 3, 2, 2, 2, 443, 2638, 3, 2, 2, 2, 445, 2640, 3, 2, 2, 2, 447, 2642, 3, 2, 2, 2, 449, 2644, 3, 2, 2, 2, 451, 2666, 3, 2, 2, 2, 453, 2684, 3, 2, 2, 2, 455, 2706, 3, 2, 2, 2, 457, 2708, 3, 2, 2, 2, 459, 2715, 3, 2, 2, 2, 461, 2724, 3, 2, 2, 2, 463, 2739, 3, 2, 2, 2, 465, 466, 7, 117, 2, 2, 466, 467, 7, 107, 2, 2, 467, 468, 7, 112, 2, 2, 468, 4, 3, 2, 2, 2, 469, 470, 7, 101, 2, 2, 470, 471, 7, 113, 2, 2, 471, 472, 7, 117, 2, 2, 472, 6, 3, 2, 2, 2, 473, 474, 7, 118, 2, 2, 474, 475, 7, 99, 2, 2, 475, 476, 7, 112, 2, 2, 476, 8, 3, 2, 2, 2, 477, 478, 7, 99, 2, 2, 478, 479, 7, 117, 2, 2, 479, 480, 7, 107, 2, 2, 480, 481, 7, 112, 2, 2, 481, 10, 3, 2, 2, 2, 482, 483, 7, 99, 2, 2, 483, 484, 7, 101, 2, 2, 484, 485, 7, 113, 2, 2, 485, 486, 7, 117, 2, 2, 486, 12, 3, 2, 2, 2, 487, 488, 7, 99, 2, 2, 488, 489, 7, 118, 2, 2, 489, 490, 7, 99, 2, 2, 490, 491, 7, 112, 2, 2, 491, 14, 3, 2, 2, 2, 492, 493, 7, 99, 2, 2, 493, 494, 7, 118, 2, 2, 494, 495, 7, 99, 2, 2, 495, 496, 7, 112, 2, 2, 496, 497, 7, 52, 2, 2, 497, 16, 3, 2, 2, 2, 498, 499, 7, 117, 2, 2, 499, 500, 7, 107, 2, 2, 500, 501, 7, 112, 2, 2, 501, 502, 7, 106, 2, 2, 502, 18, 3, 2, 2, 2, 503, 504, 7, 101, 2, 2, 504, 505, 7, 113, 2, 2, 505, 506, 7, 117, 2, 2, 506, 507, 7, 106, 2, 2, 507, 20, 3, 2, 2, 2, 508, 509, 7, 118, 2, 2, 509, 510, 7, 99, 2, 2, 510, 511, 7, 112, 2, 2, 511, 512, 7, 106, 2, 2, 512, 22, 3, 2, 2, 2, 513, 514, 7, 99, 2, 2, 514, 515, 7, 117, 2, 2, 515, 516, 7, 107, 2, 2, 516, 517, 7, 112, 2, 2, 517, 518, 7, 106, 2, 2, 518, 24, 3, 2, 2, 2, 519, 520, 7, 99, 2, 2, 520, 521, 7, 101, 2, 2, 521, 522, 7, 113, 2, 2, 522, 523, 7, 117, 2, 2, 523, 524, 7, 106, 2, 2, 524, 26, 3, 2, 2, 2, 525, 526, 7, 99, 2, 2, 526, 527, 7, 118, 2, 2, 527, 528, 7, 99, 2, 2, 528, 529, 7, 112, 2, 2, 529, 530, 7, 106, 2, 2, 530, 28, 3, 2, 2, 2, 531, 532, 7, 99, 2, 2, 532, 533, 7, 100, 2, 2, 533, 534, 7, 117, 2, 2, 534, 30, 3, 2, 2, 2, 535, 536, 7, 117, 2, 2, 536, 537, 7, 115, 2, 2, 537, 538, 7, 116, 2, 2, 538, 539, 7, 118, 2, 2, 539, 32, 3, 2, 2, 2, 540, 541, 7, 110, 2, 2, 541, 542, 7, 112, 2, 2, 542, 34, 3, 2, 2, 2, 543, 544, 7, 110, 2, 2, 544, 545, 7, 113, 2, 2, 545, 546, 7, 105, 2, 2, 546, 36, 3, 2, 2, 2, 547, 548, 7, 103, 2, 2, 548, 549, 7, 122, 2, 2, 549, 550, 7, 114, 2, 2, 550, 38, 3, 2, 2, 2, 551, 552, 7, 117, 2, 2, 552, 553, 7, 111, 2, 2, 553, 554, 7, 107, 2, 2, 554, 555, 7, 112, 2, 2, 555, 40, 3, 2, 2, 2, 556, 557, 7, 117, 2, 2, 557, 558, 7, 111, 2, 2, 558, 559, 7, 99, 2, 2, 559, 560, 7, 122, 2, 2, 560, 42, 3, 2, 2, 2, 561, 562, 7, 118, 2, 2, 562, 563, 7, 111, 2, 2, 563, 564, 7, 107, 2, 2, 564, 565, 7, 112, 2, 2, 565, 44, 3, 2, 2, 2, 566, 567, 7, 118, 2, 2, 567, 568, 7, 111, 2, 2, 568, 569, 7, 99, 2, 2, 569, 570, 7, 122, 2, 2, 570, 46, 3, 2, 2, 2, 571, 572, 7, 118, 2, 2, 572, 573, 7, 112, 2, 2, 573, 574, 7, 113, 2, 2, 574, 575, 7, 116, 2, 2, 575, 576, 7, 111, 2, 2, 576, 48, 3, 2, 2, 2, 577, 578, 7, 117, 2, 2, 578, 579, 7, 112, 2, 2, 579, 580, 7, 113, 2, 2, 580, 581, 7, 116, 2, 2, 581, 582, 7, 111, 2, 2, 582, 50, 3, 2, 2, 2, 583, 584, 7, 104, 2, 2, 584, 585, 7, 110, 2, 2, 585, 586, 7, 113, 2, 2, 586, 587, 7, 113, 2, 2, 587, 588, 7, 116, 2, 2, 588, 52, 3, 2, 2, 2, 589, 590, 7, 101, 2, 2, 590, 591, 7, 103, 2, 2, 591, 592, 7, 107, 2, 2, 592, 593, 7, 110, 2, 2, 593, 54, 3, 2, 2, 2, 594, 595, 7, 116, 2, 2, 595, 596, 7, 113, 2, 2, 596, 597, 7, 119, 2, 2, 597, 598, 7, 112, 2, 2, 598, 599, 7, 102, 2, 2, 599, 56, 3, 2, 2, 2, 600, 601, 7, 105, 2, 2, 601, 602, 7, 99, 2, 2, 602, 603, 7, 111, 2, 2, 603, 604, 7, 111, 2, 2, 604, 605, 7, 99, 2, 2, 605, 58, 3, 2, 2, 2, 606, 607, 7, 114, 2, 2, 607, 608, 7, 113, 2, 2, 608, 609, 7, 121, 2, 2, 609, 60, 3, 2, 2, 2, 610, 611, 7, 117, 2, 2, 611, 612, 7, 107, 2, 2, 612, 613, 7, 105, 2, 2, 613, 614, 7, 111, 2, 2, 614, 62, 3, 2, 2, 2, 615, 616, 7, 101, 2, 2, 616, 617, 7, 110, 2, 2, 617, 618, 7, 99, 2, 2, 618, 619, 7, 111, 2, 2, 619, 620, 7, 114, 2, 2, 620, 64, 3, 2, 2, 2, 621, 622, 7, 104, 2, 2, 622, 623, 7, 104, 2, 2, 623, 624, 7, 118, 2, 2, 624, 66, 3, 2, 2, 2, 625, 626, 7, 107, 2, 2, 626, 627, 7, 104, 2, 2, 627, 628, 7, 104, 2, 2, 628, 629, 7, 118, 2, 2, 629, 68, 3, 2, 2, 2, 630, 631, 7, 99, 2, 2, 631, 632, 7, 112, 2, 2, 632, 633, 7, 105, 2, 2, 633, 634, 7, 110, 2, 2, 634, 635, 7, 103, 2, 2, 635, 70, 3, 2, 2, 2, 636, 637, 7, 114, 2, 2, 637, 638, 7, 116, 2, 2, 638, 639, 7, 107, 2, 2, 639, 640, 7, 112, 2, 2, 640, 641, 7, 118, 2, 2, 641, 72, 3, 2, 2, 2, 642, 643, 7, 114, 2, 2, 643, 644, 7, 116, 2, 2, 644, 645, 7, 107, 2, 2, 645, 646, 7, 112, 2, 2, 646, 647, 7, 118, 2, 2, 647, 648, 7, 97, 2, 2, 648, 649, 7, 117, 2, 2, 649, 650, 7, 106, 2, 2, 650, 651, 7, 99, 2, 2, 651, 652, 7, 114, 2, 2, 652, 658, 7, 103, 2, 2, 653, 654, 7, 114, 2, 2, 654, 655, 7, 117, 2, 2, 655, 656, 7, 106, 2, 2, 656, 658, 7, 114, 2, 2, 657, 642, 3, 2, 2, 2, 657, 653, 3, 2, 2, 2, 658, 74, 3, 2, 2, 2, 659, 660, 7, 112, 2, 2, 660, 661, 7, 120, 2, 2, 661, 673, 7, 110, 2, 2, 662, 663, 7, 112, 2, 2, 663, 664, 7, 99, 2, 2, 664, 665, 7, 112, 2, 2, 665, 666, 7, 97, 2, 2, 666, 667, 7, 118, 2, 2, 667, 668, 7, 113, 2, 2, 668, 669, 7, 97, 2, 2, 669, 670, 7, 112, 2, 2, 670, 671, 7, 119, 2, 2, 671, 673, 7, 111, 2, 2, 672, 659, 3, 2, 2, 2, 672, 662, 3, 2, 2, 2, 673, 76, 3, 2, 2, 2, 674, 675, 7, 110, 2, 2, 675, 676, 7, 103, 2, 2, 676, 677, 7, 116, 2, 2, 677, 678, 7, 114, 2, 2, 678, 78, 3, 2, 2, 2, 679, 680, 7, 117, 2, 2, 680, 681, 7, 118, 2, 2, 681, 682, 7, 103, 2, 2, 682, 683, 7, 114, 2, 2, 683, 80, 3, 2, 2, 2, 684, 685, 7, 117, 2, 2, 685, 686, 7, 111, 2, 2, 686, 687, 7, 113, 2, 2, 687, 688, 7, 113, 2, 2, 688, 689, 7, 118, 2, 2, 689, 690, 7, 106, 2, 2, 690, 691, 7, 117, 2, 2, 691, 692, 7, 118, 2, 2, 692, 693, 7, 103, 2, 2, 693, 694, 7, 114, 2, 2, 694, 82, 3, 2, 2, 2, 695, 696, 7, 104, 2, 2, 696, 697, 7, 116, 2, 2, 697, 698, 7, 99, 2, 2, 698, 699, 7, 101, 2, 2, 699, 700, 7, 118, 2, 2, 700, 84, 3, 2, 2, 2, 701, 702, 7, 116, 2, 2, 702, 703, 7, 103, 2, 2, 703, 704, 7, 110, 2, 2, 704, 705, 7, 119, 2, 2, 705, 86, 3, 2, 2, 2, 706, 707, 7, 117, 2, 2, 707, 708, 7, 113, 2, 2, 708, 709, 7, 104, 2, 2, 709, 710, 7, 118, 2, 2, 710, 711, 7, 114, 2, 2, 711, 712, 7, 110, 2, 2, 712, 713, 7, 119, 2, 2, 713, 714, 7, 117, 2, 2, 714, 88, 3, 2, 2, 2, 715, 716, 7, 105, 2, 2, 716, 717, 7, 103, 2, 2, 717, 718, 7, 110, 2, 2, 718, 719, 7, 119, 2, 2, 719, 90, 3, 2, 2, 2, 720, 721, 7, 117, 2, 2, 721, 722, 7, 107, 2, 2, 722, 723, 7, 105, 2, 2, 723, 724, 7, 112, 2, 2, 724, 92, 3, 2, 2, 2, 725, 726, 7, 111, 2, 2, 726, 727, 7, 99, 2, 2, 727, 728, 7, 114, 2, 2, 728, 94, 3, 2, 2, 2, 729, 730, 7, 103, 2, 2, 730, 731, 7, 124, 2, 2, 731, 732, 7, 101, 2, 2, 732, 733, 7, 113, 2, 2, 733, 734, 7, 112, 2, 2, 734, 735, 7, 120, 2, 2, 735, 736, 7, 113, 2, 2, 736, 737, 7, 110, 2, 2, 737, 738, 7, 119, 2, 2, 738, 739, 7, 118, 2, 2, 739, 740, 7, 107, 2, 2, 740, 741, 7, 113, 2, 2, 741, 749, 7, 112, 2, 2, 742, 743, 7, 103, 2, 2, 743, 744, 7, 124, 2, 2, 744, 745, 7, 101, 2, 2, 745, 746, 7, 113, 2, 2, 746, 747, 7, 112, 2, 2, 747, 749, 7, 120, 2, 2, 748, 729, 3, 2, 2, 2, 748, 742, 3, 2, 2, 2, 749, 96, 3, 2, 2, 2, 750, 751, 7, 101, 2, 2, 751, 752, 7, 113, 2, 2, 752, 753, 7, 112, 2, 2, 753, 754, 7, 120, 2, 2, 754, 755, 7, 113, 2, 2, 755, 756, 7, 110, 2, 2, 756, 757, 7, 119, 2, 2, 757, 758, 7, 118, 2, 2, 758, 759, 7, 107, 2, 2, 759, 760, 7, 113, 2, 2, 760, 766, 7, 112, 2, 2, 761, 762, 7, 101, 2, 2, 762, 763, 7, 113, 2, 2, 763, 764, 7, 112, 2, 2, 764, 766, 7, 120, 2, 2, 765, 750, 3, 2, 2, 2, 765, 761, 3, 2, 2, 2, 766, 98, 3, 2, 2, 2, 767, 768, 7, 117, 2, 2, 768, 769, 7, 121, 2, 2, 769, 770, 7, 99, 2, 2, 770, 771, 7, 114, 2, 2, 771, 100, 3, 2, 2, 2, 772, 773, 7, 114, 2, 2, 773, 774, 7, 103, 2, 2, 774, 775, 7, 116, 2, 2, 775, 776, 7, 111, 2, 2, 776, 777, 7, 119, 2, 2, 777, 778, 7, 118, 2, 2, 778, 784, 7, 103, 2, 2, 779, 780, 7, 114, 2, 2, 780, 781, 7, 103, 2, 2, 781, 782, 7, 116, 2, 2, 782, 784, 7, 111, 2, 2, 783, 772, 3, 2, 2, 2, 783, 779, 3, 2, 2, 2, 784, 102, 3, 2, 2, 2, 785, 786, 7, 116, 2, 2, 786, 787, 7, 103, 2, 2, 787, 788, 7, 117, 2, 2, 788, 789, 7, 106, 2, 2, 789, 790, 7, 99, 2, 2, 790, 791, 7, 114, 2, 2, 791, 797, 7, 103, 2, 2, 792, 793, 7, 116, 2, 2, 793, 794, 7, 117, 2, 2, 794, 795, 7, 106, 2, 2, 795, 797, 7, 114, 2, 2, 796, 785, 3, 2, 2, 2, 796, 792, 3, 2, 2, 2, 797, 104, 3, 2, 2, 2, 798, 799, 7, 116, 2, 2, 799, 800, 7, 99, 2, 2, 800, 801, 7, 112, 2, 2, 801, 802, 7, 105, 2, 2, 802, 803, 7, 103, 2, 2, 803, 106, 3, 2, 2, 2, 804, 805, 7, 110, 2, 2, 805, 806, 7, 107, 2, 2, 806, 807, 7, 112, 2, 2, 807, 808, 7, 117, 2, 2, 808, 809, 7, 114, 2, 2, 809, 810, 7, 99, 2, 2, 810, 811, 7, 101, 2, 2, 811, 812, 7, 103, 2, 2, 812, 108, 3, 2, 2, 2, 813, 814, 7, 110, 2, 2, 814, 815, 7, 113, 2, 2, 815, 816, 7, 105, 2, 2, 816, 817, 7, 117, 2, 2, 817, 818, 7, 114, 2, 2, 818, 819, 7, 99, 2, 2, 819, 820, 7, 101, 2, 2, 820, 821, 7, 103, 2, 2, 821, 110, 3, 2, 2, 2, 822, 823, 7, 118, 2, 2, 823, 824, 7, 113, 2, 2, 824, 825, 7, 114, 2, 2, 825, 826, 7, 109, 2, 2, 826, 112, 3, 2, 2, 2, 827, 828, 7, 100, 2, 2, 828, 829, 7, 113, 2, 2, 829, 830, 7, 118, 2, 2, 830, 831, 7, 109, 2, 2, 831, 114, 3, 2, 2, 2, 832, 833, 7, 114, 2, 2, 833, 834, 7, 107, 2, 2, 834, 835, 7, 112, 2, 2, 835, 836, 7, 120, 2, 2, 836, 116, 3, 2, 2, 2, 837, 838, 7, 117, 2, 2, 838, 839, 7, 119, 2, 2, 839, 840, 7, 111, 2, 2, 840, 118, 3, 2, 2, 2, 841, 842, 7, 111, 2, 2, 842, 843, 7, 103, 2, 2, 843, 844, 7, 99, 2, 2, 844, 845, 7, 112, 2, 2, 845, 120, 3, 2, 2, 2, 846, 847, 7, 117, 2, 2, 847, 848, 7, 118, 2, 2, 848, 849, 7, 102, 2, 2, 849, 122, 3, 2, 2, 2, 850, 851, 7, 120, 2, 2, 851, 852, 7, 99, 2, 2, 852, 853, 7, 116, 2, 2, 853, 124, 3, 2, 2, 2, 854, 855, 7, 115, 2, 2, 855, 856, 7, 119, 2, 2, 856, 857, 7, 99, 2, 2, 857, 858, 7, 116, 2, 2, 858, 859, 7, 118, 2, 2, 859, 860, 7, 107, 2, 2, 860, 861, 7, 110, 2, 2, 861, 870, 7, 103, 2, 2, 862, 863, 7, 115, 2, 2, 863, 864, 7, 119, 2, 2, 864, 865, 7, 99, 2, 2, 865, 866, 7, 116, 2, 2, 866, 867, 7, 118, 2, 2, 867, 868, 7, 107, 2, 2, 868, 870, 7, 110, 2, 2, 869, 854, 3, 2, 2, 2, 869, 862, 3, 2, 2, 2, 870, 126, 3, 2, 2, 2, 871, 872, 7, 114, 2, 2, 872, 873, 7, 103, 2, 2, 873, 874, 7, 116, 2, 2, 874, 875, 7, 101, 2, 2, 875, 876, 7, 103, 2, 2, 876, 877, 7, 112, 2, 2, 877, 878, 7, 118, 2, 2, 878, 879, 7, 107, 2, 2, 879, 880, 7, 110, 2, 2, 880, 887, 7, 103, 2, 2, 881, 882, 7, 114, 2, 2, 882, 883, 7, 116, 2, 2, 883, 884, 7, 101, 2, 2, 884, 885, 7, 112, 2, 2, 885, 887, 7, 118, 2, 2, 886, 871, 3, 2, 2, 2, 886, 881, 3, 2, 2, 2, 887, 128, 3, 2, 2, 2, 888, 889, 7, 115, 2, 2, 889, 890, 7, 119, 2, 2, 890, 891, 7, 99, 2, 2, 891, 892, 7, 112, 2, 2, 892, 893, 7, 118, 2, 2, 893, 894, 7, 107, 2, 2, 894, 895, 7, 110, 2, 2, 895, 896, 7, 103, 2, 2, 896, 130, 3, 2, 2, 2, 897, 898, 7, 102, 2, 2, 898, 899, 7, 113, 2, 2, 899, 900, 7, 118, 2, 2, 900, 132, 3, 2, 2, 2, 901, 902, 7, 111, 2, 2, 902, 903, 7, 113, 2, 2, 903, 904, 7, 111, 2, 2, 904, 905, 7, 103, 2, 2, 905, 906, 7, 112, 2, 2, 906, 907, 7, 118, 2, 2, 907, 134, 3, 2, 2, 2, 908, 909, 7, 103, 2, 2, 909, 910, 7, 116, 2, 2, 910, 911, 7, 104, 2, 2, 911, 136, 3, 2, 2, 2, 912, 913, 7, 103, 2, 2, 913, 914, 7, 116, 2, 2, 914, 915, 7, 104, 2, 2, 915, 916, 7, 107, 2, 2, 916, 917, 7, 112, 2, 2, 917, 918, 7, 120, 2, 2, 918, 138, 3, 2, 2, 2, 919, 920, 7, 99, 2, 2, 920, 921, 7, 112, 2, 2, 921, 922, 7, 123, 2, 2, 922, 140, 3, 2, 2, 2, 923, 924, 7, 99, 2, 2, 924, 925, 7, 110, 2, 2, 925, 926, 7, 110, 2, 2, 926, 142, 3, 2, 2, 2, 927, 928, 7, 103, 2, 2, 928, 929, 7, 102, 2, 2, 929, 930, 7, 105, 2, 2, 930, 931, 7, 103, 2, 2, 931, 144, 3, 2, 2, 2, 932, 933, 7, 100, 2, 2, 933, 934, 7, 110, 2, 2, 934, 935, 7, 119, 2, 2, 935, 945, 7, 116, 2, 2, 936, 937, 7, 105, 2, 2, 937, 938, 7, 99, 2, 2, 938, 939, 7, 119, 2, 2, 939, 940, 7, 117, 2, 2, 940, 941, 7, 117, 2, 2, 941, 942, 7, 107, 2, 2, 942, 943, 7, 99, 2, 2, 943, 945, 7, 112, 2, 2, 944, 932, 3, 2, 2, 2, 944, 936, 3, 2, 2, 2, 945, 146, 3, 2, 2, 2, 946, 947, 7, 111, 2, 2, 947, 948, 7, 103, 2, 2, 948, 949, 7, 102, 2, 2, 949, 950, 7, 107, 2, 2, 950, 951, 7, 99, 2, 2, 951, 952, 7, 112, 2, 2, 952, 148, 3, 2, 2, 2, 953, 954, 7, 111, 2, 2, 954, 955, 7, 113, 2, 2, 955, 956, 7, 102, 2, 2, 956, 957, 7, 103, 2, 2, 957, 150, 3, 2, 2, 2, 958, 959, 7, 101, 2, 2, 959, 960, 7, 119, 2, 2, 960, 961, 7, 111, 2, 2, 961, 962, 7, 117, 2, 2, 962, 963, 7, 119, 2, 2, 963, 964, 7, 111, 2, 2, 964, 152, 3, 2, 2, 2, 965, 966, 7, 101, 2, 2, 966, 967, 7, 119, 2, 2, 967, 968, 7, 111, 2, 2, 968, 969, 7, 114, 2, 2, 969, 970, 7, 116, 2, 2, 970, 971, 7, 113, 2, 2, 971, 972, 7, 102, 2, 2, 972, 154, 3, 2, 2, 2, 973, 974, 7, 118, 2, 2, 974, 975, 7, 113, 2, 2, 975, 976, 7, 114, 2, 2, 976, 977, 7, 109, 2, 2, 977, 978, 7, 97, 2, 2, 978, 979, 7, 107, 2, 2, 979, 980, 7, 112, 2, 2, 980, 994, 7, 102, 2, 2, 981, 982, 7, 118, 2, 2, 982, 983, 7, 113, 2, 2, 983, 984, 7, 114, 2, 2, 984, 985, 7, 109, 2, 2, 985, 986, 7, 97, 2, 2, 986, 987, 7, 107, 2, 2, 987, 988, 7, 112, 2, 2, 988, 989, 7, 102, 2, 2, 989, 990, 7, 107, 2, 2, 990, 991, 7, 101, 2, 2, 991, 992, 7, 103, 2, 2, 992, 994, 7, 117, 2, 2, 993, 973, 3, 2, 2, 2, 993, 981, 3, 2, 2, 2, 994, 156, 3, 2, 2, 2, 995, 996, 7, 100, 2, 2, 996, 997, 7, 113, 2, 2, 997, 998, 7, 118, 2, 2, 998, 999, 7, 109, 2, 2, 999, 1000, 7, 97, 2, 2, 1000, 1001, 7, 107, 2, 2, 1001, 1002, 7, 112, 2, 2, 1002, 1016, 7, 102, 2, 2, 1003, 1004, 7, 100, 2, 2, 1004, 1005, 7, 113, 2, 2, 1005, 1006, 7, 118, 2, 2, 1006, 1007, 7, 109, 2, 2, 1007, 1008, 7, 97, 2, 2, 1008, 1009, 7, 107, 2, 2, 1009, 1010, 7, 112, 2, 2, 1010, 1011, 7, 102, 2, 2, 1011, 1012, 7, 107, 2, 2, 1012, 1013, 7, 101, 2, 2, 1013, 1014, 7, 103, 2, 2, 1014, 1016, 7, 117, 2, 2, 1015, 995, 3, 2, 2, 2, 1015, 1003, 3, 2, 2, 2, 1016, 158, 3, 2, 2, 2, 1017, 1018, 7, 101, 2, 2, 1018, 1019, 7, 119, 2, 2, 1019, 1020, 7, 100, 2, 2, 1020, 1021, 7, 107, 2, 2, 1021, 1022, 7, 101, 2, 2, 1022, 1023, 7, 97, 2, 2, 1023, 1024, 7, 103, 2, 2, 1024, 1025, 7, 99, 2, 2, 1025, 1026, 7, 117, 2, 2, 1026, 1033, 7, 103, 2, 2, 1027, 1028, 7, 101, 2, 2, 1028, 1029, 7, 119, 2, 2, 1029, 1030, 7, 100, 2, 2, 1030, 1031, 7, 107, 2, 2, 1031, 1033, 7, 101, 2, 2, 1032, 1017, 3, 2, 2, 2, 1032, 1027, 3, 2, 2, 2, 1033, 160, 3, 2, 2, 2, 1034, 1035, 7, 103, 2, 2, 1035, 1036, 7, 110, 2, 2, 1036, 1037, 7, 99, 2, 2, 1037, 1038, 7, 117, 2, 2, 1038, 1039, 7, 118, 2, 2, 1039, 1040, 7, 107, 2, 2, 1040, 1041, 7, 101, 2, 2, 1041, 1042, 7, 97, 2, 2, 1042, 1043, 7, 103, 2, 2, 1043, 1044, 7, 99, 2, 2, 1044, 1045, 7, 117, 2, 2, 1045, 1054, 7, 103, 2, 2, 1046, 1047, 7, 103, 2, 2, 1047, 1048, 7, 110, 2, 2, 1048, 1049, 7, 99, 2, 2, 1049, 1050, 7, 117, 2, 2, 1050, 1051, 7, 118, 2, 2, 1051, 1052, 7, 107, 2, 2, 1052, 1054, 7, 101, 2, 2, 1053, 1034, 3, 2, 2, 2, 1053, 1046, 3, 2, 2, 2, 1054, 162, 3, 2, 2, 2, 1055, 1056, 7, 117, 2, 2, 1056, 1057, 7, 107, 2, 2, 1057, 1058, 7, 112, 2, 2, 1058, 1059, 7, 103, 2, 2, 1059, 1060, 7, 97, 2, 2, 1060, 1061, 7, 103, 2, 2, 1061, 1062, 7, 99, 2, 2, 1062, 1063, 7, 117, 2, 2, 1063, 1069, 7, 103, 2, 2, 1064, 1065, 7, 117, 2, 2, 1065, 1066, 7, 107, 2, 2, 1066, 1067, 7, 112, 2, 2, 1067, 1069, 7, 103, 2, 2, 1068, 1055, 3, 2, 2, 2, 1068, 1064, 3, 2, 2, 2, 1069, 164, 3, 2, 2, 2, 1070, 1071, 7, 117, 2, 2, 1071, 1072, 7, 111, 2, 2, 1072, 1073, 7, 113, 2, 2, 1073, 1074, 7, 113, 2, 2, 1074, 1075, 7, 118, 2, 2, 1075, 1076, 7, 106, 2, 2, 1076, 1077, 7, 103, 2, 2, 1077, 1078, 7, 116, 2, 2, 1078, 1079, 7, 117, 2, 2, 1079, 1080, 7, 118, 2, 2, 1080, 1081, 7, 103, 2, 2, 1081, 1082, 7, 114, 2, 2, 1082, 166, 3, 2, 2, 2, 1083, 1084, 7, 102, 2, 2, 1084, 1085, 7, 107, 2, 2, 1085, 1086, 7, 117, 2, 2, 1086, 1096, 7, 118, 2, 2, 1087, 1088, 7, 102, 2, 2, 1088, 1089, 7, 107, 2, 2, 1089, 1090, 7, 117, 2, 2, 1090, 1091, 7, 118, 2, 2, 1091, 1092, 7, 99, 2, 2, 1092, 1093, 7, 112, 2, 2, 1093, 1094, 7, 101, 2, 2, 1094, 1096, 7, 103, 2, 2, 1095, 1083, 3, 2, 2, 2, 1095, 1087, 3, 2, 2, 2, 1096, 168, 3, 2, 2, 2, 1097, 1098, 7, 116, 2, 2, 1098, 1099, 7, 103, 2, 2, 1099, 1100, 7, 111, 2, 2, 1100, 1101, 7, 99, 2, 2, 1101, 1102, 7, 114, 2, 2, 1102, 170, 3, 2, 2, 2, 1103, 1104, 7, 101, 2, 2, 1104, 1105, 7, 113, 2, 2, 1105, 1106, 7, 117, 2, 2, 1106, 1107, 7, 117, 2, 2, 1107, 1108, 7, 107, 2, 2, 1108, 1127, 7, 111, 2, 2, 1109, 1110, 7, 101, 2, 2, 1110, 1111, 7, 113, 2, 2, 1111, 1112, 7, 117, 2, 2, 1112, 1113, 7, 107, 2, 2, 1113, 1114, 7, 112, 2, 2, 1114, 1115, 7, 103, 2, 2, 1115, 1116, 7, 97, 2, 2, 1116, 1117, 7, 117, 2, 2, 1117, 1118, 7, 107, 2, 2, 1118, 1119, 7, 111, 2, 2, 1119, 1120, 7, 107, 2, 2, 1120, 1121, 7, 110, 2, 2, 1121, 1122, 7, 99, 2, 2, 1122, 1123, 7, 116, 2, 2, 1123, 1124, 7, 107, 2, 2, 1124, 1125, 7, 118, 2, 2, 1125, 1127, 7, 123, 2, 2, 1126, 1103, 3, 2, 2, 2, 1126, 1109, 3, 2, 2, 2, 1127, 172, 3, 2, 2, 2, 1128, 1129, 7, 101, 2, 2, 1129, 1130, 7, 113, 2, 2, 1130, 1131, 7, 119, 2, 2, 1131, 1132, 7, 112, 2, 2, 1132, 1143, 7, 118, 2, 2, 1133, 1134, 7, 101, 2, 2, 1134, 1135, 7, 112, 2, 2, 1135, 1143, 7, 118, 2, 2, 1136, 1137, 7, 110, 2, 2, 1137, 1138, 7, 103, 2, 2, 1138, 1139, 7, 112, 2, 2, 1139, 1140, 7, 105, 2, 2, 1140, 1141, 7, 118, 2, 2, 1141, 1143, 7, 106, 2, 2, 1142, 1128, 3, 2, 2, 2, 1142, 1133, 3, 2, 2, 2, 1142, 1136, 3, 2, 2, 2, 1143, 174, 3, 2, 2, 2, 1144, 1145, 7, 116, 2, 2, 1145, 1146, 7, 103, 2, 2, 1146, 1147, 7, 114, 2, 2, 1147, 1148, 7, 103, 2, 2, 1148, 1149, 7, 99, 2, 2, 1149, 1150, 7, 118, 2, 2, 1150, 176, 3, 2, 2, 2, 1151, 1152, 7, 104, 2, 2, 1152, 1153, 7, 110, 2, 2, 1153, 1154, 7, 99, 2, 2, 1154, 1155, 7, 118, 2, 2, 1155, 1156, 7, 118, 2, 2, 1156, 1157, 7, 103, 2, 2, 1157, 1158, 7, 112, 2, 2, 1158, 178, 3, 2, 2, 2, 1159, 1160, 7, 99, 2, 2, 1160, 1161, 7, 114, 2, 2, 1161, 1162, 7, 114, 2, 2, 1162, 1163, 7, 103, 2, 2, 1163, 1164, 7, 112, 2, 2, 1164, 1165, 7, 102, 2, 2, 1165, 180, 3, 2, 2, 2, 1166, 1167, 7, 105, 2, 2, 1167, 1168, 7, 103, 2, 2, 1168, 1169, 7, 118, 2, 2, 1169, 1170, 7, 97, 2, 2, 1170, 1171, 7, 120, 2, 2, 1171, 1172, 7, 99, 2, 2, 1172, 1173, 7, 110, 2, 2, 1173, 1174, 7, 119, 2, 2, 1174, 1175, 7, 103, 2, 2, 1175, 182, 3, 2, 2, 2, 1176, 1177, 7, 104, 2, 2, 1177, 1178, 7, 110, 2, 2, 1178, 1179, 7, 113, 2, 2, 1179, 1180, 7, 121, 2, 2, 1180, 1181, 7, 97, 2, 2, 1181, 1182, 7, 99, 2, 2, 1182, 1183, 7, 114, 2, 2, 1183, 1184, 7, 114, 2, 2, 1184, 1185, 7, 110, 2, 2, 1185, 1186, 7, 123, 2, 2, 1186, 184, 3, 2, 2, 2, 1187, 1188, 7, 100, 2, 2, 1188, 1189, 7, 99, 2, 2, 1189, 1190, 7, 118, 2, 2, 1190, 1191, 7, 101, 2, 2, 1191, 1192, 7, 106, 2, 2, 1192, 1193, 7, 97, 2, 2, 1193, 1194, 7, 117, 2, 2, 1194, 1195, 7, 106, 2, 2, 1195, 1196, 7, 119, 2, 2, 1196, 1197, 7, 104, 2, 2, 1197, 1198, 7, 104, 2, 2, 1198, 1199, 7, 110, 2, 2, 1199, 1214, 7, 103, 2, 2, 1200, 1201, 7, 117, 2, 2, 1201, 1202, 7, 106, 2, 2, 1202, 1203, 7, 119, 2, 2, 1203, 1204, 7, 104, 2, 2, 1204, 1205, 7, 104, 2, 2, 1205, 1206, 7, 110, 2, 2, 1206, 1214, 7, 103, 2, 2, 1207, 1208, 7, 117, 2, 2, 1208, 1209, 7, 103, 2, 2, 1209, 1210, 7, 110, 2, 2, 1210, 1211, 7, 103, 2, 2, 1211, 1212, 7, 101, 2, 2, 1212, 1214, 7, 118, 2, 2, 1213, 1187, 3, 2, 2, 2, 1213, 1200, 3, 2, 2, 2, 1213, 1207, 3, 2, 2, 2, 1214, 186, 3, 2, 2, 2, 1215, 1216, 7, 111, 2, 2, 1216, 1217, 7, 113, 2, 2, 1217, 1218, 7, 118, 2, 2, 1218, 1219, 7, 107, 2, 2, 1219, 1220, 7, 113, 2, 2, 1220, 1221, 7, 112, 2, 2, 1221, 1222, 7, 97, 2, 2, 1222, 1223, 7, 111, 2, 2, 1223, 1224, 7, 99, 2, 2, 1224, 1225, 7, 117, 2, 2, 1225, 1226, 7, 109, 2, 2, 1226, 188, 3, 2, 2, 2, 1227, 1228, 7, 104, 2, 2, 1228, 1229, 7, 110, 2, 2, 1229, 1230, 7, 113, 2, 2, 1230, 1231, 7, 121, 2, 2, 1231, 1232, 7, 97, 2, 2, 1232, 1233, 7, 118, 2, 2, 1233, 1234, 7, 113, 2, 2, 1234, 1235, 7, 97, 2, 2, 1235, 1236, 7, 107, 2, 2, 1236, 1237, 7, 111, 2, 2, 1237, 1238, 7, 99, 2, 2, 1238, 1239, 7, 105, 2, 2, 1239, 1240, 7, 103, 2, 2, 1240, 190, 3, 2, 2, 2, 1241, 1242, 7, 104, 2, 2, 1242, 1243, 7, 110, 2, 2, 1243, 1244, 7, 113, 2, 2, 1244, 1245, 7, 121, 2, 2, 1245, 1246, 7, 97, 2, 2, 1246, 1247, 7, 111, 2, 2, 1247, 1248, 7, 99, 2, 2, 1248, 1264, 7, 105, 2, 2, 1249, 1250, 7, 104, 2, 2, 1250, 1251, 7, 110, 2, 2, 1251, 1252, 7, 113, 2, 2, 1252, 1253, 7, 121, 2, 2, 1253, 1254, 7, 97, 2, 2, 1254, 1255, 7, 111, 2, 2, 1255, 1256, 7, 99, 2, 2, 1256, 1257, 7, 105, 2, 2, 1257, 1258, 7, 112, 2, 2, 1258, 1259, 7, 107, 2, 2, 1259, 1260, 7, 118, 2, 2, 1260, 1261, 7, 119, 2, 2, 1261, 1262, 7, 102, 2, 2, 1262, 1264, 7, 103, 2, 2, 1263, 1241, 3, 2, 2, 2, 1263, 1249, 3, 2, 2, 2, 1264, 192, 3, 2, 2, 2, 1265, 1266, 7, 104, 2, 2, 1266, 1267, 7, 110, 2, 2, 1267, 1268, 7, 113, 2, 2, 1268, 1269, 7, 121, 2, 2, 1269, 1270, 7, 97, 2, 2, 1270, 1271, 7, 99, 2, 2, 1271, 1272, 7, 112, 2, 2, 1272, 1284, 7, 105, 2, 2, 1273, 1274, 7, 104, 2, 2, 1274, 1275, 7, 110, 2, 2, 1275, 1276, 7, 113, 2, 2, 1276, 1277, 7, 121, 2, 2, 1277, 1278, 7, 97, 2, 2, 1278, 1279, 7, 99, 2, 2, 1279, 1280, 7, 112, 2, 2, 1280, 1281, 7, 105, 2, 2, 1281, 1282, 7, 110, 2, 2, 1282, 1284, 7, 103, 2, 2, 1283, 1265, 3, 2, 2, 2, 1283, 1273, 3, 2, 2, 2, 1284, 194, 3, 2, 2, 2, 1285, 1286, 7, 121, 2, 2, 1286, 1287, 7, 106, 2, 2, 1287, 1288, 7, 103, 2, 2, 1288, 1289, 7, 116, 2, 2, 1289, 1290, 7, 103, 2, 2, 1290, 196, 3, 2, 2, 2, 1291, 1292, 7, 106, 2, 2, 1292, 1293, 7, 107, 2, 2, 1293, 1294, 7, 117, 2, 2, 1294, 1295, 7, 118, 2, 2, 1295, 1296, 7, 113, 2, 2, 1296, 1297, 7, 105, 2, 2, 1297, 1298, 7, 116, 2, 2, 1298, 1299, 7, 99, 2, 2, 1299, 1305, 7, 111, 2, 2, 1300, 1301, 7, 106, 2, 2, 1301, 1302, 7, 107, 2, 2, 1302, 1303, 7, 117, 2, 2, 1303, 1305, 7, 118, 2, 2, 1304, 1291, 3, 2, 2, 2, 1304, 1300, 3, 2, 2, 2, 1305, 198, 3, 2, 2, 2, 1306, 1307, 7, 113, 2, 2, 1307, 1308, 7, 120, 2, 2, 1308, 1309, 7, 103, 2, 2, 1309, 1310, 7, 116, 2, 2, 1310, 1311, 7, 110, 2, 2, 1311, 1312, 7, 99, 2, 2, 1312, 1313, 7, 123, 2, 2, 1313, 200, 3, 2, 2, 2, 1314, 1315, 7, 114, 2, 2, 1315, 1316, 7, 99, 2, 2, 1316, 1317, 7, 102, 2, 2, 1317, 202, 3, 2, 2, 2, 1318, 1319, 7, 101, 2, 2, 1319, 1320, 7, 116, 2, 2, 1320, 1321, 7, 113, 2, 2, 1321, 1322, 7, 117, 2, 2, 1322, 1323, 7, 117, 2, 2, 1323, 204, 3, 2, 2, 2, 1324, 1325, 7, 111, 2, 2, 1325, 1326, 7, 99, 2, 2, 1326, 1327, 7, 118, 2, 2, 1327, 1328, 7, 111, 2, 2, 1328, 1329, 7, 119, 2, 2, 1329, 1330, 7, 110, 2, 2, 1330, 206, 3, 2, 2, 2, 1331, 1332, 7, 116, 2, 2, 1332, 1333, 7, 107, 2, 2, 1333, 1334, 7, 104, 2, 2, 1334, 1335, 7, 103, 2, 2, 1335, 208, 3, 2, 2, 2, 1336, 1337, 7, 100, 2, 2, 1337, 1338, 7, 112, 2, 2, 1338, 1339, 7, 113, 2, 2, 1339, 1352, 7, 118, 2, 2, 1340, 1341, 7, 100, 2, 2, 1341, 1342, 7, 107, 2, 2, 1342, 1343, 7, 118, 2, 2, 1343, 1344, 7, 121, 2, 2, 1344, 1345, 7, 107, 2, 2, 1345, 1346, 7, 117, 2, 2, 1346, 1347, 7, 103, 2, 2, 1347, 1348, 7, 97, 2, 2, 1348, 1349, 7, 112, 2, 2, 1349, 1350, 7, 113, 2, 2, 1350, 1352, 7, 118, 2, 2, 1351, 1336, 3, 2, 2, 2, 1351, 1340, 3, 2, 2, 2, 1352, 210, 3, 2, 2, 2, 1353, 1354, 7, 100, 2, 2, 1354, 1355, 7, 107, 2, 2, 1355, 1356, 7, 118, 2, 2, 1356, 1357, 7, 101, 2, 2, 1357, 1358, 7, 113, 2, 2, 1358, 1359, 7, 119, 2, 2, 1359, 1360, 7, 112, 2, 2, 1360, 1376, 7, 118, 2, 2, 1361, 1362, 7, 114, 2, 2, 1362, 1363, 7, 113, 2, 2, 1363, 1364, 7, 114, 2, 2, 1364, 1365, 7, 101, 2, 2, 1365, 1366, 7, 113, 2, 2, 1366, 1367, 7, 119, 2, 2, 1367, 1368, 7, 112, 2, 2, 1368, 1376, 7, 118, 2, 2, 1369, 1370, 7, 114, 2, 2, 1370, 1371, 7, 113, 2, 2, 1371, 1372, 7, 114, 2, 2, 1372, 1373, 7, 101, 2, 2, 1373, 1374, 7, 112, 2, 2, 1374, 1376, 7, 118, 2, 2, 1375, 1353, 3, 2, 2, 2, 1375, 1361, 3, 2, 2, 2, 1375, 1369, 3, 2, 2, 2, 1376, 212, 3, 2, 2, 2, 1377, 1378, 7, 117, 2, 2, 1378, 1379, 7, 106, 2, 2, 1379, 1380, 7, 99, 2, 2, 1380, 1381, 7, 114, 2, 2, 1381, 1382, 7, 103, 2, 2, 1382, 214, 3, 2, 2, 2, 1383, 1384, 7, 100, 2, 2, 1384, 1385, 7, 99, 2, 2, 1385, 1386, 7, 112, 2, 2, 1386, 1399, 7, 102, 2, 2, 1387, 1388, 7, 100, 2, 2, 1388, 1389, 7, 107, 2, 2, 1389, 1390, 7, 118, 2, 2, 1390, 1391, 7, 121, 2, 2, 1391, 1392, 7, 107, 2, 2, 1392, 1393, 7, 117, 2, 2, 1393, 1394, 7, 103, 2, 2, 1394, 1395, 7, 97, 2, 2, 1395, 1396, 7, 99, 2, 2, 1396, 1397, 7, 112, 2, 2, 1397, 1399, 7, 102, 2, 2, 1398, 1383, 3, 2, 2, 2, 1398, 1387, 3, 2, 2, 2, 1399, 216, 3, 2, 2, 2, 1400, 1401, 7, 100, 2, 2, 1401, 1402, 7, 122, 2, 2, 1402, 1403, 7, 113, 2, 2, 1403, 1416, 7, 116, 2, 2, 1404, 1405, 7, 100, 2, 2, 1405, 1406, 7, 107, 2, 2, 1406, 1407, 7, 118, 2, 2, 1407, 1408, 7, 121, 2, 2, 1408, 1409, 7, 107, 2, 2, 1409, 1410, 7, 117, 2, 2, 1410, 1411, 7, 103, 2, 2, 1411, 1412, 7, 97, 2, 2, 1412, 1413, 7, 122, 2, 2, 1413, 1414, 7, 113, 2, 2, 1414, 1416, 7, 116, 2, 2, 1415, 1400, 3, 2, 2, 2, 1415, 1404, 3, 2, 2, 2, 1416, 218, 3, 2, 2, 2, 1417, 1418, 7, 100, 2, 2, 1418, 1419, 7, 113, 2, 2, 1419, 1431, 7, 116, 2, 2, 1420, 1421, 7, 100, 2, 2, 1421, 1422, 7, 107, 2, 2, 1422, 1423, 7, 118, 2, 2, 1423, 1424, 7, 121, 2, 2, 1424, 1425, 7, 107, 2, 2, 1425, 1426, 7, 117, 2, 2, 1426, 1427, 7, 103, 2, 2, 1427, 1428, 7, 97, 2, 2, 1428, 1429, 7, 113, 2, 2, 1429, 1431, 7, 116, 2, 2, 1430, 1417, 3, 2, 2, 2, 1430, 1420, 3, 2, 2, 2, 1431, 220, 3, 2, 2, 2, 1432, 1433, 7, 118, 2, 2, 1433, 1434, 7, 103, 2, 2, 1434, 1435, 7, 112, 2, 2, 1435, 1436, 7, 117, 2, 2, 1436, 1437, 7, 113, 2, 2, 1437, 1438, 7, 116, 2, 2, 1438, 222, 3, 2, 2, 2, 1439, 1440, 7, 117, 2, 2, 1440, 1441, 7, 118, 2, 2, 1441, 1442, 7, 99, 2, 2, 1442, 1443, 7, 101, 2, 2, 1443, 1444, 7, 109, 2, 2, 1444, 1445, 7, 97, 2, 2, 1445, 1446, 7, 114, 2, 2, 1446, 1447, 7, 119, 2, 2, 1447, 1448, 7, 117, 2, 2, 1448, 1449, 7, 106, 2, 2, 1449, 224, 3, 2, 2, 2, 1450, 1451, 7, 117, 2, 2, 1451, 1452, 7, 118, 2, 2, 1452, 1453, 7, 99, 2, 2, 1453, 1454, 7, 101, 2, 2, 1454, 1455, 7, 109, 2, 2, 1455, 1456, 7, 97, 2, 2, 1456, 1457, 7, 114, 2, 2, 1457, 1458, 7, 113, 2, 2, 1458, 1459, 7, 114, 2, 2, 1459, 226, 3, 2, 2, 2, 1460, 1461, 7, 117, 2, 2, 1461, 1462, 7, 118, 2, 2, 1462, 1463, 7, 99, 2, 2, 1463, 1464, 7, 101, 2, 2, 1464, 1465, 7, 109, 2, 2, 1465, 1466, 7, 97, 2, 2, 1466, 1467, 7, 101, 2, 2, 1467, 1468, 7, 110, 2, 2, 1468, 1469, 7, 103, 2, 2, 1469, 1470, 7, 99, 2, 2, 1470, 1471, 7, 116, 2, 2, 1471, 228, 3, 2, 2, 2, 1472, 1473, 7, 117, 2, 2, 1473, 1474, 7, 118, 2, 2, 1474, 1475, 7, 99, 2, 2, 1475, 1476, 7, 101, 2, 2, 1476, 1477, 7, 109, 2, 2, 1477, 1478, 7, 97, 2, 2, 1478, 1479, 7, 106, 2, 2, 1479, 1480, 7, 99, 2, 2, 1480, 1481, 7, 117, 2, 2, 1481, 230, 3, 2, 2, 2, 1482, 1483, 7, 117, 2, 2, 1483, 1484, 7, 118, 2, 2, 1484, 1485, 7, 99, 2, 2, 1485, 1486, 7, 101, 2, 2, 1486, 1487, 7, 109, 2, 2, 1487, 1488, 7, 97, 2, 2, 1488, 1489, 7, 105, 2, 2, 1489, 1490, 7, 103, 2, 2, 1490, 1491, 7, 118, 2, 2, 1491, 232, 3, 2, 2, 2, 1492, 1493, 7, 101, 2, 2, 1493, 1494, 7, 99, 2, 2, 1494, 1513, 7, 118, 2, 2, 1495, 1496, 7, 101, 2, 2, 1496, 1497, 7, 113, 2, 2, 1497, 1498, 7, 112, 2, 2, 1498, 1499, 7, 101, 2, 2, 1499, 1500, 7, 99, 2, 2, 1500, 1513, 7, 118, 2, 2, 1501, 1502, 7, 101, 2, 2, 1502, 1503, 7, 113, 2, 2, 1503, 1504, 7, 112, 2, 2, 1504, 1505, 7, 101, 2, 2, 1505, 1506, 7, 99, 2, 2, 1506, 1507, 7, 118, 2, 2, 1507, 1508, 7, 103, 2, 2, 1508, 1509, 7, 112, 2, 2, 1509, 1510, 7, 99, 2, 2, 1510, 1511, 7, 118, 2, 2, 1511, 1513, 7, 103, 2, 2, 1512, 1492, 3, 2, 2, 2, 1512, 1495, 3, 2, 2, 2, 1512, 1501, 3, 2, 2, 2, 1513, 234, 3, 2, 2, 2, 1514, 1515, 7, 107, 2, 2, 1515, 1516, 7, 112, 2, 2, 1516, 1517, 7, 118, 2, 2, 1517, 236, 3, 2, 2, 2, 1518, 1519, 7, 104, 2, 2, 1519, 1520, 7, 110, 2, 2, 1520, 1521, 7, 113, 2, 2, 1521, 1522, 7, 99, 2, 2, 1522, 1523, 7, 118, 2, 2, 1523, 238, 3, 2, 2, 2, 1524, 1525, 7, 119, 2, 2, 1525, 1526, 7, 114, 2, 2, 1526, 1527, 7, 114, 2, 2, 1527, 1528, 7, 103, 2, 2, 1528, 1529, 7, 116, 2, 2, 1529, 240, 3, 2, 2, 2, 1530, 1531, 7, 110, 2, 2, 1531, 1532, 7, 113, 2, 2, 1532, 1533, 7, 121, 2, 2, 1533, 1534, 7, 103, 2, 2, 1534, 1535, 7, 116, 2, 2, 1535, 242, 3, 2, 2, 2, 1536, 1537, 7, 118, 2, 2, 1537, 1538, 7, 116, 2, 2, 1538, 1539, 7, 107, 2, 2, 1539, 1540, 7, 111, 2, 2, 1540, 244, 3, 2, 2, 2, 1541, 1542, 7, 117, 2, 2, 1542, 1543, 7, 114, 2, 2, 1543, 1544, 7, 110, 2, 2, 1544, 1545, 7, 107, 2, 2, 1545, 1546, 7, 118, 2, 2, 1546, 246, 3, 2, 2, 2, 1547, 1548, 7, 108, 2, 2, 1548, 1549, 7, 113, 2, 2, 1549, 1550, 7, 107, 2, 2, 1550, 1551, 7, 112, 2, 2, 1551, 248, 3, 2, 2, 2, 1552, 1553, 7, 117, 2, 2, 1553, 1554, 7, 119, 2, 2, 1554, 1555, 7, 100, 2, 2, 1555, 1556, 7, 117, 2, 2, 1556, 1557, 7, 118, 2, 2, 1557, 1558, 7, 116, 2, 2, 1558, 1559, 7, 107, 2, 2, 1559, 1560, 7, 112, 2, 2, 1560, 1568, 7, 105, 2, 2, 1561, 1562, 7, 117, 2, 2, 1562, 1563, 7, 119, 2, 2, 1563, 1564, 7, 100, 2, 2, 1564, 1565, 7, 117, 2, 2, 1565, 1566, 7, 118, 2, 2, 1566, 1568, 7, 116, 2, 2, 1567, 1552, 3, 2, 2, 2, 1567, 1561, 3, 2, 2, 2, 1568, 250, 3, 2, 2, 2, 1569, 1570, 7, 104, 2, 2, 1570, 1571, 7, 107, 2, 2, 1571, 1572, 7, 112, 2, 2, 1572, 1573, 7, 102, 2, 2, 1573, 252, 3, 2, 2, 2, 1574, 1575, 7, 116, 2, 2, 1575, 1576, 7, 103, 2, 2, 1576, 1577, 7, 114, 2, 2, 1577, 1578, 7, 110, 2, 2, 1578, 1579, 7, 99, 2, 2, 1579, 1580, 7, 101, 2, 2, 1580, 1581, 7, 103, 2, 2, 1581, 254, 3, 2, 2, 2, 1582, 1583, 7, 102, 2, 2, 1583, 1584, 7, 107, 2, 2, 1584, 1585, 7, 110, 2, 2, 1585, 1586, 7, 99, 2, 2, 1586, 1587, 7, 118, 2, 2, 1587, 1588, 7, 103, 2, 2, 1588, 256, 3, 2, 2, 2, 1589, 1590, 7, 103, 2, 2, 1590, 1591, 7, 116, 2, 2, 1591, 1592, 7, 113, 2, 2, 1592, 1593, 7, 102, 2, 2, 1593, 1594, 7, 103, 2, 2, 1594, 258, 3, 2, 2, 2, 1595, 1596, 7, 111, 2, 2, 1596, 1597, 7, 113, 2, 2, 1597, 1598, 7, 116, 2, 2, 1598, 1599, 7, 114, 2, 2, 1599, 1600, 7, 106, 2, 2, 1600, 1601, 7, 97, 2, 2, 1601, 1602, 7, 113, 2, 2, 1602, 1603, 7, 114, 2, 2, 1603, 1604, 7, 103, 2, 2, 1604, 1605, 7, 112, 2, 2, 1605, 260, 3, 2, 2, 2, 1606, 1607, 7, 111, 2, 2, 1607, 1608, 7, 113, 2, 2, 1608, 1609, 7, 116, 2, 2, 1609, 1610, 7, 114, 2, 2, 1610, 1611, 7, 106, 2, 2, 1611, 1612, 7, 97, 2, 2, 1612, 1613, 7, 101, 2, 2, 1613, 1614, 7, 110, 2, 2, 1614, 1615, 7, 113, 2, 2, 1615, 1616, 7, 117, 2, 2, 1616, 1617, 7, 103, 2, 2, 1617, 262, 3, 2, 2, 2, 1618, 1619, 7, 116, 2, 2, 1619, 1620, 7, 105, 2, 2, 1620, 1621, 7, 100, 2, 2, 1621, 1622, 7, 97, 2, 2, 1622, 1623, 7, 118, 2, 2, 1623, 1624, 7, 113, 2, 2, 1624, 1625, 7, 97, 2, 2, 1625, 1626, 7, 113, 2, 2, 1626, 1627, 7, 109, 2, 2, 1627, 1628, 7, 110, 2, 2, 1628, 1629, 7, 99, 2, 2, 1629, 1630, 7, 100, 2, 2, 1630, 264, 3, 2, 2, 2, 1631, 1632, 7, 116, 2, 2, 1632, 1633, 7, 105, 2, 2, 1633, 1634, 7, 100, 2, 2, 1634, 1635, 7, 97, 2, 2, 1635, 1636, 7, 118, 2, 2, 1636, 1637, 7, 113, 2, 2, 1637, 1638, 7, 97, 2, 2, 1638, 1639, 7, 101, 2, 2, 1639, 1640, 7, 107, 2, 2, 1640, 1641, 7, 103, 2, 2, 1641, 1642, 7, 110, 2, 2, 1642, 1643, 7, 99, 2, 2, 1643, 1644, 7, 100, 2, 2, 1644, 266, 3, 2, 2, 2, 1645, 1646, 7, 113, 2, 2, 1646, 1647, 7, 109, 2, 2, 1647, 1648, 7, 110, 2, 2, 1648, 1649, 7, 99, 2, 2, 1649, 1650, 7, 100, 2, 2, 1650, 1651, 7, 97, 2, 2, 1651, 1652, 7, 118, 2, 2, 1652, 1653, 7, 113, 2, 2, 1653, 1654, 7, 97, 2, 2, 1654, 1655, 7, 116, 2, 2, 1655, 1656, 7, 105, 2, 2, 1656, 1657, 7, 100, 2, 2, 1657, 268, 3, 2, 2, 2, 1658, 1659, 7, 101, 2, 2, 1659, 1660, 7, 107, 2, 2, 1660, 1661, 7, 103, 2, 2, 1661, 1662, 7, 110, 2, 2, 1662, 1663, 7, 99, 2, 2, 1663, 1664, 7, 100, 2, 2, 1664, 1665, 7, 97, 2, 2, 1665, 1666, 7, 118, 2, 2, 1666, 1667, 7, 113, 2, 2, 1667, 1668, 7, 97, 2, 2, 1668, 1669, 7, 116, 2, 2, 1669, 1670, 7, 105, 2, 2, 1670, 1671, 7, 100, 2, 2, 1671, 270, 3, 2, 2, 2, 1672, 1673, 7, 116, 2, 2, 1673, 1674, 7, 105, 2, 2, 1674, 1675, 7, 100, 2, 2, 1675, 1676, 7, 97, 2, 2, 1676, 1677, 7, 118, 2, 2, 1677, 1678, 7, 113, 2, 2, 1678, 1679, 7, 97, 2, 2, 1679, 1680, 7, 106, 2, 2, 1680, 1681, 7, 117, 2, 2, 1681, 1682, 7, 120, 2, 2, 1682, 272, 3, 2, 2, 2, 1683, 1684, 7, 106, 2, 2, 1684, 1685, 7, 117, 2, 2, 1685, 1686, 7, 120, 2, 2, 1686, 1687, 7, 97, 2, 2, 1687, 1688, 7, 118, 2, 2, 1688, 1689, 7, 113, 2, 2, 1689, 1690, 7, 97, 2, 2, 1690, 1691, 7, 116, 2, 2, 1691, 1692, 7, 105, 2, 2, 1692, 1693, 7, 100, 2, 2, 1693, 274, 3, 2, 2, 2, 1694, 1695, 7, 107, 2, 2, 1695, 1696, 7, 112, 2, 2, 1696, 1697, 7, 118, 2, 2, 1697, 1698, 7, 97, 2, 2, 1698, 1699, 7, 118, 2, 2, 1699, 1700, 7, 113, 2, 2, 1700, 1701, 7, 97, 2, 2, 1701, 1702, 7, 116, 2, 2, 1702, 1703, 7, 105, 2, 2, 1703, 1704, 7, 100, 2, 2, 1704, 276, 3, 2, 2, 2, 1705, 1706, 7, 116, 2, 2, 1706, 1707, 7, 105, 2, 2, 1707, 1708, 7, 100, 2, 2, 1708, 1709, 7, 97, 2, 2, 1709, 1710, 7, 118, 2, 2, 1710, 1711, 7, 113, 2, 2, 1711, 1712, 7, 97, 2, 2, 1712, 1713, 7, 107, 2, 2, 1713, 1714, 7, 112, 2, 2, 1714, 1715, 7, 118, 2, 2, 1715, 278, 3, 2, 2, 2, 1716, 1717, 7, 107, 2, 2, 1717, 1718, 7, 112, 2, 2, 1718, 1719, 7, 118, 2, 2, 1719, 1720, 7, 103, 2, 2, 1720, 1721, 7, 116, 2, 2, 1721, 1722, 7, 114, 2, 2, 1722, 1723, 7, 113, 2, 2, 1723, 1724, 7, 110, 2, 2, 1724, 1725, 7, 99, 2, 2, 1725, 1726, 7, 118, 2, 2, 1726, 1727, 7, 103, 2, 2, 1727, 1728, 7, 97, 2, 2, 1728, 1729, 7, 110, 2, 2, 1729, 1730, 7, 107, 2, 2, 1730, 1731, 7, 112, 2, 2, 1731, 1732, 7, 103, 2, 2, 1732, 1733, 7, 99, 2, 2, 1733, 1734, 7, 116, 2, 2, 1734, 280, 3, 2, 2, 2, 1735, 1736, 7, 107, 2, 2, 1736, 1737, 7, 112, 2, 2, 1737, 1738, 7, 118, 2, 2, 1738, 1739, 7, 103, 2, 2, 1739, 1740, 7, 116, 2, 2, 1740, 1741, 7, 114, 2, 2, 1741, 1742, 7, 113, 2, 2, 1742, 1743, 7, 110, 2, 2, 1743, 1744, 7, 99, 2, 2, 1744, 1745, 7, 118, 2, 2, 1745, 1746, 7, 103, 2, 2, 1746, 1747, 7, 97, 2, 2, 1747, 1748, 7, 99, 2, 2, 1748, 1749, 7, 116, 2, 2, 1749, 1750, 7, 103, 2, 2, 1750, 1751, 7, 99, 2, 2, 1751, 282, 3, 2, 2, 2, 1752, 1753, 7, 107, 2, 2, 1753, 1754, 7, 112, 2, 2, 1754, 1755, 7, 118, 2, 2, 1755, 1756, 7, 103, 2, 2, 1756, 1757, 7, 116, 2, 2, 1757, 1758, 7, 114, 2, 2, 1758, 1759, 7, 113, 2, 2, 1759, 1760, 7, 110, 2, 2, 1760, 1761, 7, 99, 2, 2, 1761, 1762, 7, 118, 2, 2, 1762, 1763, 7, 103, 2, 2, 1763, 1764, 7, 97, 2, 2, 1764, 1765, 7, 112, 2, 2, 1765, 1766, 7, 103, 2, 2, 1766, 1767, 7, 99, 2, 2, 1767, 1768, 7, 116, 2, 2, 1768, 1769, 7, 103, 2, 2, 1769, 1770, 7, 117, 2, 2, 1770, 1797, 7, 118, 2, 2, 1771, 1772, 7, 107, 2, 2, 1772, 1773, 7, 112, 2, 2, 1773, 1774, 7, 118, 2, 2, 1774, 1775, 7, 103, 2, 2, 1775, 1776, 7, 116, 2, 2, 1776, 1777, 7, 114, 2, 2, 1777, 1778, 7, 113, 2, 2, 1778, 1779, 7, 110, 2, 2, 1779, 1780, 7, 99, 2, 2, 1780, 1781, 7, 118, 2, 2, 1781, 1782, 7, 103, 2, 2, 1782, 1783, 7, 97, 2, 2, 1783, 1784, 7, 112, 2, 2, 1784, 1785, 7, 103, 2, 2, 1785, 1786, 7, 99, 2, 2, 1786, 1787, 7, 116, 2, 2, 1787, 1788, 7, 103, 2, 2, 1788, 1789, 7, 117, 2, 2, 1789, 1790, 7, 118, 2, 2, 1790, 1791, 7, 97, 2, 2, 1791, 1792, 7, 103, 2, 2, 1792, 1793, 7, 122, 2, 2, 1793, 1794, 7, 99, 2, 2, 1794, 1795, 7, 101, 2, 2, 1795, 1797, 7, 118, 2, 2, 1796, 1752, 3, 2, 2, 2, 1796, 1771, 3, 2, 2, 2, 1797, 284, 3, 2, 2, 2, 1798, 1799, 7, 118, 2, 2, 1799, 1800, 7, 103, 2, 2, 1800, 1801, 7, 122, 2, 2, 1801, 1802, 7, 118, 2, 2, 1802, 1803, 7, 97, 2, 2, 1803, 1804, 7, 107, 2, 2, 1804, 1805, 7, 111, 2, 2, 1805, 1806, 7, 99, 2, 2, 1806, 1807, 7, 105, 2, 2, 1807, 1808, 7, 103, 2, 2, 1808, 286, 3, 2, 2, 2, 1809, 1810, 7, 99, 2, 2, 1810, 1811, 7, 117, 2, 2, 1811, 1812, 7, 97, 2, 2, 1812, 1813, 7, 112, 2, 2, 1813, 1814, 7, 103, 2, 2, 1814, 1815, 7, 117, 2, 2, 1815, 1816, 7, 118, 2, 2, 1816, 1817, 7, 103, 2, 2, 1817, 1818, 7, 102, 2, 2, 1818, 1819, 7, 97, 2, 2, 1819, 1820, 7, 118, 2, 2, 1820, 1821, 7, 103, 2, 2, 1821, 1822, 7, 112, 2, 2, 1822, 1823, 7, 117, 2, 2, 1823, 1824, 7, 113, 2, 2, 1824, 1825, 7, 116, 2, 2, 1825, 288, 3, 2, 2, 2, 1826, 1827, 7, 117, 2, 2, 1827, 1828, 7, 120, 2, 2, 1828, 1858, 7, 102, 2, 2, 1829, 1830, 7, 117, 2, 2, 1830, 1831, 7, 107, 2, 2, 1831, 1832, 7, 112, 2, 2, 1832, 1833, 7, 105, 2, 2, 1833, 1834, 7, 119, 2, 2, 1834, 1835, 7, 110, 2, 2, 1835, 1836, 7, 99, 2, 2, 1836, 1837, 7, 116, 2, 2, 1837, 1838, 7, 97, 2, 2, 1838, 1839, 7, 120, 2, 2, 1839, 1840, 7, 99, 2, 2, 1840, 1841, 7, 110, 2, 2, 1841, 1842, 7, 119, 2, 2, 1842, 1843, 7, 103, 2, 2, 1843, 1844, 7, 97, 2, 2, 1844, 1845, 7, 102, 2, 2, 1845, 1846, 7, 103, 2, 2, 1846, 1847, 7, 101, 2, 2, 1847, 1848, 7, 113, 2, 2, 1848, 1849, 7, 111, 2, 2, 1849, 1850, 7, 114, 2, 2, 1850, 1851, 7, 113, 2, 2, 1851, 1852, 7, 117, 2, 2, 1852, 1853, 7, 107, 2, 2, 1853, 1854, 7, 118, 2, 2, 1854, 1855, 7, 107, 2, 2, 1855, 1856, 7, 113, 2, 2, 1856, 1858, 7, 112, 2, 2, 1857, 1826, 3, 2, 2, 2, 1857, 1829, 3, 2, 2, 2, 1858, 290, 3, 2, 2, 2, 1859, 1860, 7, 102, 2, 2, 1860, 1861, 7, 107, 2, 2, 1861, 1862, 7, 99, 2, 2, 1862, 1863, 7, 105, 2, 2, 1863, 1864, 7, 113, 2, 2, 1864, 1865, 7, 112, 2, 2, 1865, 1866, 7, 99, 2, 2, 1866, 1867, 7, 110, 2, 2, 1867, 1868, 7, 97, 2, 2, 1868, 1869, 7, 111, 2, 2, 1869, 1870, 7, 99, 2, 2, 1870, 1871, 7, 118, 2, 2, 1871, 1872, 7, 116, 2, 2, 1872, 1873, 7, 107, 2, 2, 1873, 1879, 7, 122, 2, 2, 1874, 1875, 7, 102, 2, 2, 1875, 1876, 7, 107, 2, 2, 1876, 1877, 7, 99, 2, 2, 1877, 1879, 7, 105, 2, 2, 1878, 1859, 3, 2, 2, 2, 1878, 1874, 3, 2, 2, 2, 1879, 292, 3, 2, 2, 2, 1880, 1881, 7, 107, 2, 2, 1881, 1882, 7, 104, 2, 2, 1882, 294, 3, 2, 2, 2, 1883, 1884, 7, 103, 2, 2, 1884, 1885, 7, 110, 2, 2, 1885, 1886, 7, 117, 2, 2, 1886, 1887, 7, 103, 2, 2, 1887, 296, 3, 2, 2, 2, 1888, 1889, 7, 121, 2, 2, 1889, 1890, 7, 106, 2, 2, 1890, 1891, 7, 107, 2, 2, 1891, 1892, 7, 110, 2, 2, 1892, 1893, 7, 103, 2, 2, 1893, 298, 3, 2, 2, 2, 1894, 1895, 7, 104, 2, 2, 1895, 1896, 7, 113, 2, 2, 1896, 1897, 7, 116, 2, 2, 1897, 300, 3, 2, 2, 2, 1898, 1899, 7, 107, 2, 2, 1899, 1900, 7, 112, 2, 2, 1900, 302, 3, 2, 2, 2, 1901, 1902, 7, 100, 2, 2, 1902, 1903, 7, 116, 2, 2, 1903, 1904, 7, 103, 2, 2, 1904, 1905, 7, 99, 2, 2, 1905, 1906, 7, 109, 2, 2, 1906, 304, 3, 2, 2, 2, 1907, 1908, 7, 101, 2, 2, 1908, 1909, 7, 113, 2, 2, 1909, 1910, 7, 112, 2, 2, 1910, 1911, 7, 118, 2, 2, 1911, 1912, 7, 107, 2, 2, 1912, 1913, 7, 112, 2, 2, 1913, 1914, 7, 119, 2, 2, 1914, 1915, 7, 103, 2, 2, 1915, 306, 3, 2, 2, 2, 1916, 1917, 7, 116, 2, 2, 1917, 1918, 7, 103, 2, 2, 1918, 1919, 7, 118, 2, 2, 1919, 1920, 7, 119, 2, 2, 1920, 1921, 7, 116, 2, 2, 1921, 1922, 7, 112, 2, 2, 1922, 308, 3, 2, 2, 2, 1923, 1924, 7, 118, 2, 2, 1924, 1925, 7, 107, 2, 2, 1925, 1926, 7, 111, 2, 2, 1926, 1927, 7, 103, 2, 2, 1927, 1928, 7, 117, 2, 2, 1928, 1929, 7, 118, 2, 2, 1929, 1930, 7, 99, 2, 2, 1930, 1931, 7, 111, 2, 2, 1931, 1936, 7, 114, 2, 2, 1932, 1933, 7, 112, 2, 2, 1933, 1934, 7, 113, 2, 2, 1934, 1936, 7, 121, 2, 2, 1935, 1923, 3, 2, 2, 2, 1935, 1932, 3, 2, 2, 2, 1936, 310, 3, 2, 2, 2, 1937, 1938, 7, 117, 2, 2, 1938, 1939, 7, 113, 2, 2, 1939, 1940, 7, 116, 2, 2, 1940, 1941, 7, 118, 2, 2, 1941, 312, 3, 2, 2, 2, 1942, 1943, 7, 99, 2, 2, 1943, 1944, 7, 116, 2, 2, 1944, 1945, 7, 105, 2, 2, 1945, 1946, 7, 117, 2, 2, 1946, 1947, 7, 113, 2, 2, 1947, 1948, 7, 116, 2, 2, 1948, 1949, 7, 118, 2, 2, 1949, 314, 3, 2, 2, 2, 1950, 1951, 7, 99, 2, 2, 1951, 1952, 7, 116, 2, 2, 1952, 1953, 7, 105, 2, 2, 1953, 1954, 7, 111, 2, 2, 1954, 1955, 7, 107, 2, 2, 1955, 1956, 7, 112, 2, 2, 1956, 316, 3, 2, 2, 2, 1957, 1958, 7, 99, 2, 2, 1958, 1959, 7, 116, 2, 2, 1959, 1960, 7, 105, 2, 2, 1960, 1961, 7, 111, 2, 2, 1961, 1962, 7, 99, 2, 2, 1962, 1963, 7, 122, 2, 2, 1963, 318, 3, 2, 2, 2, 1964, 1965, 7, 117, 2, 2, 1965, 1966, 7, 113, 2, 2, 1966, 1967, 7, 104, 2, 2, 1967, 1968, 7, 118, 2, 2, 1968, 1969, 7, 111, 2, 2, 1969, 1970, 7, 99, 2, 2, 1970, 1971, 7, 122, 2, 2, 1971, 320, 3, 2, 2, 2, 1972, 1973, 7, 117, 2, 2, 1973, 1974, 7, 113, 2, 2, 1974, 1975, 7, 104, 2, 2, 1975, 1976, 7, 118, 2, 2, 1976, 1977, 7, 111, 2, 2, 1977, 1978, 7, 107, 2, 2, 1978, 1979, 7, 112, 2, 2, 1979, 322, 3, 2, 2, 2, 1980, 1981, 7, 119, 2, 2, 1981, 1982, 7, 112, 2, 2, 1982, 1983, 7, 107, 2, 2, 1983, 1984, 7, 115, 2, 2, 1984, 1985, 7, 119, 2, 2, 1985, 1986, 7, 103, 2, 2, 1986, 324, 3, 2, 2, 2, 1987, 1988, 7, 104, 2, 2, 1988, 1989, 7, 110, 2, 2, 1989, 1990, 7, 107, 2, 2, 1990, 1991, 7, 114, 2, 2, 1991, 326, 3, 2, 2, 2, 1992, 1993, 7, 117, 2, 2, 1993, 1994, 7, 118, 2, 2, 1994, 1995, 7, 99, 2, 2, 1995, 1996, 7, 116, 2, 2, 1996, 1997, 7, 118, 2, 2, 1997, 1998, 7, 117, 2, 2, 1998, 1999, 7, 121, 2, 2, 1999, 2000, 7, 107, 2, 2, 2000, 2001, 7, 118, 2, 2, 2001, 2002, 7, 106, 2, 2, 2002, 328, 3, 2, 2, 2, 2003, 2004, 7, 103, 2, 2, 2004, 2005, 7, 112, 2, 2, 2005, 2006, 7, 102, 2, 2, 2006, 2007, 7, 117, 2, 2, 2007, 2008, 7, 121, 2, 2, 2008, 2009, 7, 107, 2, 2, 2009, 2010, 7, 118, 2, 2, 2010, 2011, 7, 106, 2, 2, 2011, 330, 3, 2, 2, 2, 2012, 2013, 7, 117, 2, 2, 2013, 2014, 7, 115, 2, 2, 2014, 2015, 7, 119, 2, 2, 2015, 2016, 7, 103, 2, 2, 2016, 2017, 7, 103, 2, 2, 2017, 2018, 7, 124, 2, 2, 2018, 2019, 7, 103, 2, 2, 2019, 332, 3, 2, 2, 2, 2020, 2021, 7, 119, 2, 2, 2021, 2022, 7, 112, 2, 2, 2022, 2023, 7, 117, 2, 2, 2023, 2024, 7, 115, 2, 2, 2024, 2025, 7, 119, 2, 2, 2025, 2026, 7, 103, 2, 2, 2026, 2027, 7, 103, 2, 2, 2027, 2028, 7, 124, 2, 2, 2028, 2029, 7, 103, 2, 2, 2029, 334, 3, 2, 2, 2, 2030, 2031, 7, 116, 2, 2, 2031, 2032, 7, 113, 2, 2, 2032, 2033, 7, 110, 2, 2, 2033, 2034, 7, 110, 2, 2, 2034, 336, 3, 2, 2, 2, 2035, 2036, 7, 101, 2, 2, 2036, 2037, 7, 113, 2, 2, 2037, 2038, 7, 120, 2, 2, 2038, 338, 3, 2, 2, 2, 2039, 2040, 7, 101, 2, 2, 2040, 2041, 7, 113, 2, 2, 2041, 2042, 7, 116, 2, 2, 2042, 2055, 7, 116, 2, 2, 2043, 2044, 7, 101, 2, 2, 2044, 2045, 7, 113, 2, 2, 2045, 2046, 7, 116, 2, 2, 2046, 2047, 7, 116, 2, 2, 2047, 2048, 7, 103, 2, 2, 2048, 2049, 7, 110, 2, 2, 2049, 2050, 7, 99, 2, 2, 2050, 2051, 7, 118, 2, 2, 2051, 2052, 7, 107, 2, 2, 2052, 2053, 7, 113, 2, 2, 2053, 2055, 7, 112, 2, 2, 2054, 2039, 3, 2, 2, 2, 2054, 2043, 3, 2, 2, 2, 2055, 340, 3, 2, 2, 2, 2056, 2057, 7, 103, 2, 2, 2057, 2058, 7, 112, 2, 2, 2058, 2059, 7, 118, 2, 2, 2059, 2060, 7, 116, 2, 2, 2060, 2061, 7, 113, 2, 2, 2061, 2062, 7, 114, 2, 2, 2062, 2063, 7, 123, 2, 2, 2063, 342, 3, 2, 2, 2, 2064, 2065, 7, 101, 2, 2, 2065, 2066, 7, 116, 2, 2, 2066, 2067, 7, 113, 2, 2, 2067, 2068, 7, 114, 2, 2, 2068, 344, 3, 2, 2, 2, 2069, 2070, 7, 112, 2, 2, 2070, 2071, 7, 113, 2, 2, 2071, 2072, 7, 112, 2, 2, 2072, 2086, 7, 103, 2, 2, 2073, 2074, 7, 80, 2, 2, 2074, 2075, 7, 113, 2, 2, 2075, 2076, 7, 112, 2, 2, 2076, 2086, 7, 103, 2, 2, 2077, 2078, 7, 112, 2, 2, 2078, 2079, 7, 119, 2, 2, 2079, 2080, 7, 110, 2, 2, 2080, 2086, 7, 110, 2, 2, 2081, 2082, 7, 80, 2, 2, 2082, 2083, 7, 87, 2, 2, 2083, 2084, 7, 78, 2, 2, 2084, 2086, 7, 78, 2, 2, 2085, 2069, 3, 2, 2, 2, 2085, 2073, 3, 2, 2, 2, 2085, 2077, 3, 2, 2, 2, 2085, 2081, 3, 2, 2, 2, 2086, 346, 3, 2, 2, 2, 2087, 2088, 7, 101, 2, 2, 2088, 2089, 7, 113, 2, 2, 2089, 2090, 7, 113, 2, 2, 2090, 2091, 7, 116, 2, 2, 2091, 2092, 7, 102, 2, 2, 2092, 2105, 7, 117, 2, 2, 2093, 2094, 7, 101, 2, 2, 2094, 2095, 7, 113, 2, 2, 2095, 2096, 7, 113, 2, 2, 2096, 2097, 7, 116, 2, 2, 2097, 2098, 7, 102, 2, 2, 2098, 2099, 7, 107, 2, 2, 2099, 2100, 7, 112, 2, 2, 2100, 2101, 7, 99, 2, 2, 2101, 2102, 7, 118, 2, 2, 2102, 2103, 7, 103, 2, 2, 2103, 2105, 7, 117, 2, 2, 2104, 2087, 3, 2, 2, 2, 2104, 2093, 3, 2, 2, 2, 2105, 348, 3, 2, 2, 2, 2106, 2107, 7, 112, 2, 2, 2107, 2108, 7, 113, 2, 2, 2108, 2109, 7, 107, 2, 2, 2109, 2110, 7, 117, 2, 2, 2110, 2130, 7, 103, 2, 2, 2111, 2112, 7, 116, 2, 2, 2112, 2113, 7, 99, 2, 2, 2113, 2114, 7, 112, 2, 2, 2114, 2115, 7, 102, 2, 2, 2115, 2130, 7, 112, 2, 2, 2116, 2117, 7, 116, 2, 2, 2117, 2118, 7, 99, 2, 2, 2118, 2119, 7, 112, 2, 2, 2119, 2120, 7, 102, 2, 2, 2120, 2121, 7, 113, 2, 2, 2121, 2122, 7, 111, 2, 2, 2122, 2123, 7, 97, 2, 2, 2123, 2124, 7, 112, 2, 2, 2124, 2125, 7, 113, 2, 2, 2125, 2126, 7, 116, 2, 2, 2126, 2127, 7, 111, 2, 2, 2127, 2128, 7, 99, 2, 2, 2128, 2130, 7, 110, 2, 2, 2129, 2106, 3, 2, 2, 2, 2129, 2111, 3, 2, 2, 2, 2129, 2116, 3, 2, 2, 2, 2130, 350, 3, 2, 2, 2, 2131, 2132, 7, 116, 2, 2, 2132, 2133, 7, 99, 2, 2, 2133, 2134, 7, 112, 2, 2, 2134, 2155, 7, 102, 2, 2, 2135, 2136, 7, 116, 2, 2, 2136, 2137, 7, 99, 2, 2, 2137, 2138, 7, 112, 2, 2, 2138, 2139, 7, 102, 2, 2, 2139, 2155, 7, 119, 2, 2, 2140, 2141, 7, 116, 2, 2, 2141, 2142, 7, 99, 2, 2, 2142, 2143, 7, 112, 2, 2, 2143, 2144, 7, 102, 2, 2, 2144, 2145, 7, 113, 2, 2, 2145, 2146, 7, 111, 2, 2, 2146, 2147, 7, 97, 2, 2, 2147, 2148, 7, 119, 2, 2, 2148, 2149, 7, 112, 2, 2, 2149, 2150, 7, 107, 2, 2, 2150, 2151, 7, 104, 2, 2, 2151, 2152, 7, 113, 2, 2, 2152, 2153, 7, 116, 2, 2, 2153, 2155, 7, 111, 2, 2, 2154, 2131, 3, 2, 2, 2, 2154, 2135, 3, 2, 2, 2, 2154, 2140, 3, 2, 2, 2, 2155, 352, 3, 2, 2, 2, 2156, 2157, 7, 116, 2, 2, 2157, 2158, 7, 99, 2, 2, 2158, 2159, 7, 112, 2, 2, 2159, 2160, 7, 102, 2, 2, 2160, 2175, 7, 101, 2, 2, 2161, 2162, 7, 116, 2, 2, 2162, 2163, 7, 99, 2, 2, 2163, 2164, 7, 112, 2, 2, 2164, 2165, 7, 102, 2, 2, 2165, 2166, 7, 113, 2, 2, 2166, 2167, 7, 111, 2, 2, 2167, 2168, 7, 97, 2, 2, 2168, 2169, 7, 101, 2, 2, 2169, 2170, 7, 99, 2, 2, 2170, 2171, 7, 119, 2, 2, 2171, 2172, 7, 101, 2, 2, 2172, 2173, 7, 106, 2, 2, 2173, 2175, 7, 123, 2, 2, 2174, 2156, 3, 2, 2, 2, 2174, 2161, 3, 2, 2, 2, 2175, 354, 3, 2, 2, 2, 2176, 2177, 7, 116, 2, 2, 2177, 2178, 7, 99, 2, 2, 2178, 2179, 7, 112, 2, 2, 2179, 2180, 7, 102, 2, 2, 2180, 2200, 7, 103, 2, 2, 2181, 2182, 7, 116, 2, 2, 2182, 2183, 7, 99, 2, 2, 2183, 2184, 7, 112, 2, 2, 2184, 2185, 7, 102, 2, 2, 2185, 2186, 7, 113, 2, 2, 2186, 2187, 7, 111, 2, 2, 2187, 2188, 7, 97, 2, 2, 2188, 2189, 7, 103, 2, 2, 2189, 2190, 7, 122, 2, 2, 2190, 2191, 7, 114, 2, 2, 2191, 2192, 7, 113, 2, 2, 2192, 2193, 7, 112, 2, 2, 2193, 2194, 7, 103, 2, 2, 2194, 2195, 7, 112, 2, 2, 2195, 2196, 7, 118, 2, 2, 2196, 2197, 7, 107, 2, 2, 2197, 2198, 7, 99, 2, 2, 2198, 2200, 7, 110, 2, 2, 2199, 2176, 3, 2, 2, 2, 2199, 2181, 3, 2, 2, 2, 2200, 356, 3, 2, 2, 2, 2201, 2202, 7, 116, 2, 2, 2202, 2203, 7, 99, 2, 2, 2203, 2204, 7, 112, 2, 2, 2204, 2205, 7, 102, 2, 2, 2205, 2206, 7, 110, 2, 2, 2206, 2225, 7, 112, 2, 2, 2207, 2208, 7, 116, 2, 2, 2208, 2209, 7, 99, 2, 2, 2209, 2210, 7, 112, 2, 2, 2210, 2211, 7, 102, 2, 2, 2211, 2212, 7, 113, 2, 2, 2212, 2213, 7, 111, 2, 2, 2213, 2214, 7, 97, 2, 2, 2214, 2215, 7, 110, 2, 2, 2215, 2216, 7, 113, 2, 2, 2216, 2217, 7, 105, 2, 2, 2217, 2218, 7, 97, 2, 2, 2218, 2219, 7, 112, 2, 2, 2219, 2220, 7, 113, 2, 2, 2220, 2221, 7, 116, 2, 2, 2221, 2222, 7, 111, 2, 2, 2222, 2223, 7, 99, 2, 2, 2223, 2225, 7, 110, 2, 2, 2224, 2201, 3, 2, 2, 2, 2224, 2207, 3, 2, 2, 2, 2225, 358, 3, 2, 2, 2, 2226, 2227, 7, 116, 2, 2, 2227, 2228, 7, 99, 2, 2, 2228, 2229, 7, 112, 2, 2, 2229, 2230, 7, 102, 2, 2, 2230, 2248, 7, 100, 2, 2, 2231, 2232, 7, 116, 2, 2, 2232, 2233, 7, 99, 2, 2, 2233, 2234, 7, 112, 2, 2, 2234, 2235, 7, 102, 2, 2, 2235, 2236, 7, 113, 2, 2, 2236, 2237, 7, 111, 2, 2, 2237, 2238, 7, 97, 2, 2, 2238, 2239, 7, 100, 2, 2, 2239, 2240, 7, 103, 2, 2, 2240, 2241, 7, 116, 2, 2, 2241, 2242, 7, 112, 2, 2, 2242, 2243, 7, 113, 2, 2, 2243, 2244, 7, 119, 2, 2, 2244, 2245, 7, 110, 2, 2, 2245, 2246, 7, 110, 2, 2, 2246, 2248, 7, 107, 2, 2, 2247, 2226, 3, 2, 2, 2, 2247, 2231, 3, 2, 2, 2, 2248, 360, 3, 2, 2, 2, 2249, 2250, 7, 116, 2, 2, 2250, 2251, 7, 99, 2, 2, 2251, 2252, 7, 112, 2, 2, 2252, 2253, 7, 102, 2, 2, 2253, 2269, 7, 114, 2, 2, 2254, 2255, 7, 116, 2, 2, 2255, 2256, 7, 99, 2, 2, 2256, 2257, 7, 112, 2, 2, 2257, 2258, 7, 102, 2, 2, 2258, 2259, 7, 113, 2, 2, 2259, 2260, 7, 111, 2, 2, 2260, 2261, 7, 97, 2, 2, 2261, 2262, 7, 114, 2, 2, 2262, 2263, 7, 113, 2, 2, 2263, 2264, 7, 107, 2, 2, 2264, 2265, 7, 117, 2, 2, 2265, 2266, 7, 117, 2, 2, 2266, 2267, 7, 113, 2, 2, 2267, 2269, 7, 112, 2, 2, 2268, 2249, 3, 2, 2, 2, 2268, 2254, 3, 2, 2, 2, 2269, 362, 3, 2, 2, 2, 2270, 2271, 7, 116, 2, 2, 2271, 2272, 7, 99, 2, 2, 2272, 2273, 7, 112, 2, 2, 2273, 2274, 7, 102, 2, 2, 2274, 2288, 7, 105, 2, 2, 2275, 2276, 7, 116, 2, 2, 2276, 2277, 7, 99, 2, 2, 2277, 2278, 7, 112, 2, 2, 2278, 2279, 7, 102, 2, 2, 2279, 2280, 7, 113, 2, 2, 2280, 2281, 7, 111, 2, 2, 2281, 2282, 7, 97, 2, 2, 2282, 2283, 7, 105, 2, 2, 2283, 2284, 7, 99, 2, 2, 2284, 2285, 7, 111, 2, 2, 2285, 2286, 7, 111, 2, 2, 2286, 2288, 7, 99, 2, 2, 2287, 2270, 3, 2, 2, 2, 2287, 2275, 3, 2, 2, 2, 2288, 364, 3, 2, 2, 2, 2289, 2290, 7, 116, 2, 2, 2290, 2291, 7, 99, 2, 2, 2291, 2292, 7, 112, 2, 2, 2292, 2293, 7, 102, 2, 2, 2293, 2294, 7, 100, 2, 2, 2294, 2295, 7, 103, 2, 2, 2295, 2296, 7, 118, 2, 2, 2296, 2309, 7, 99, 2, 2, 2297, 2298, 7, 116, 2, 2, 2298, 2299, 7, 99, 2, 2, 2299, 2300, 7, 112, 2, 2, 2300, 2301, 7, 102, 2, 2, 2301, 2302, 7, 113, 2, 2, 2302, 2303, 7, 111, 2, 2, 2303, 2304, 7, 97, 2, 2, 2304, 2305, 7, 100, 2, 2, 2305, 2306, 7, 103, 2, 2, 2306, 2307, 7, 118, 2, 2, 2307, 2309, 7, 99, 2, 2, 2308, 2289, 3, 2, 2, 2, 2308, 2297, 3, 2, 2, 2, 2309, 366, 3, 2, 2, 2, 2310, 2311, 7, 116, 2, 2, 2311, 2312, 7, 99, 2, 2, 2312, 2313, 7, 112, 2, 2, 2313, 2314, 7, 102, 2, 2, 2314, 2330, 7, 110, 2, 2, 2315, 2316, 7, 116, 2, 2, 2316, 2317, 7, 99, 2, 2, 2317, 2318, 7, 112, 2, 2, 2318, 2319, 7, 102, 2, 2, 2319, 2320, 7, 113, 2, 2, 2320, 2321, 7, 111, 2, 2, 2321, 2322, 7, 97, 2, 2, 2322, 2323, 7, 110, 2, 2, 2323, 2324, 7, 99, 2, 2, 2324, 2325, 7, 114, 2, 2, 2325, 2326, 7, 110, 2, 2, 2326, 2327, 7, 99, 2, 2, 2327, 2328, 7, 101, 2, 2, 2328, 2330, 7, 103, 2, 2, 2329, 2310, 3, 2, 2, 2, 2329, 2315, 3, 2, 2, 2, 2330, 368, 3, 2, 2, 2, 2331, 2332, 7, 116, 2, 2, 2332, 2333, 7, 99, 2, 2, 2333, 2334, 7, 112, 2, 2, 2334, 2335, 7, 102, 2, 2, 2335, 2336, 7, 105, 2, 2, 2336, 2337, 7, 119, 2, 2, 2337, 2338, 7, 111, 2, 2, 2338, 2339, 7, 100, 2, 2, 2339, 2340, 7, 103, 2, 2, 2340, 2355, 7, 110, 2, 2, 2341, 2342, 7, 116, 2, 2, 2342, 2343, 7, 99, 2, 2, 2343, 2344, 7, 112, 2, 2, 2344, 2345, 7, 102, 2, 2, 2345, 2346, 7, 113, 2, 2, 2346, 2347, 7, 111, 2, 2, 2347, 2348, 7, 97, 2, 2, 2348, 2349, 7, 105, 2, 2, 2349, 2350, 7, 119, 2, 2, 2350, 2351, 7, 111, 2, 2, 2351, 2352, 7, 100, 2, 2, 2352, 2353, 7, 103, 2, 2, 2353, 2355, 7, 110, 2, 2, 2354, 2331, 3, 2, 2, 2, 2354, 2341, 3, 2, 2, 2, 2355, 370, 3, 2, 2, 2, 2356, 2357, 7, 116, 2, 2, 2357, 2358, 7, 99, 2, 2, 2358, 2359, 7, 112, 2, 2, 2359, 2360, 7, 102, 2, 2, 2360, 2376, 7, 121, 2, 2, 2361, 2362, 7, 116, 2, 2, 2362, 2363, 7, 99, 2, 2, 2363, 2364, 7, 112, 2, 2, 2364, 2365, 7, 102, 2, 2, 2365, 2366, 7, 113, 2, 2, 2366, 2367, 7, 111, 2, 2, 2367, 2368, 7, 97, 2, 2, 2368, 2369, 7, 121, 2, 2, 2369, 2370, 7, 103, 2, 2, 2370, 2371, 7, 107, 2, 2, 2371, 2372, 7, 100, 2, 2, 2372, 2373, 7, 119, 2, 2, 2373, 2374, 7, 110, 2, 2, 2374, 2376, 7, 110, 2, 2, 2375, 2356, 3, 2, 2, 2, 2375, 2361, 3, 2, 2, 2, 2376, 372, 3, 2, 2, 2, 2377, 2378, 7, 116, 2, 2, 2378, 2379, 7, 99, 2, 2, 2379, 2380, 7, 112, 2, 2, 2380, 2381, 7, 102, 2, 2, 2381, 2382, 7, 101, 2, 2, 2382, 2383, 7, 106, 2, 2, 2383, 2384, 7, 107, 2, 2, 2384, 2397, 7, 52, 2, 2, 2385, 2386, 7, 116, 2, 2, 2386, 2387, 7, 99, 2, 2, 2387, 2388, 7, 112, 2, 2, 2388, 2389, 7, 102, 2, 2, 2389, 2390, 7, 113, 2, 2, 2390, 2391, 7, 111, 2, 2, 2391, 2392, 7, 97, 2, 2, 2392, 2393, 7, 101, 2, 2, 2393, 2394, 7, 106, 2, 2, 2394, 2395, 7, 107, 2, 2, 2395, 2397, 7, 52, 2, 2, 2396, 2377, 3, 2, 2, 2, 2396, 2385, 3, 2, 2, 2, 2397, 374, 3, 2, 2, 2, 2398, 2399, 7, 116, 2, 2, 2399, 2400, 7, 99, 2, 2, 2400, 2401, 7, 112, 2, 2, 2401, 2402, 7, 102, 2, 2, 2402, 2419, 7, 118, 2, 2, 2403, 2404, 7, 116, 2, 2, 2404, 2405, 7, 99, 2, 2, 2405, 2406, 7, 112, 2, 2, 2406, 2407, 7, 102, 2, 2, 2407, 2408, 7, 113, 2, 2, 2408, 2409, 7, 111, 2, 2, 2409, 2410, 7, 97, 2, 2, 2410, 2411, 7, 117, 2, 2, 2411, 2412, 7, 118, 2, 2, 2412, 2413, 7, 119, 2, 2, 2413, 2414, 7, 102, 2, 2, 2414, 2415, 7, 103, 2, 2, 2415, 2416, 7, 112, 2, 2, 2416, 2417, 7, 118, 2, 2, 2417, 2419, 7, 118, 2, 2, 2418, 2398, 3, 2, 2, 2, 2418, 2403, 3, 2, 2, 2, 2419, 376, 3, 2, 2, 2, 2420, 2421, 7, 114, 2, 2, 2421, 2422, 7, 103, 2, 2, 2422, 2423, 7, 116, 2, 2, 2423, 2424, 7, 110, 2, 2, 2424, 2425, 7, 107, 2, 2, 2425, 2439, 7, 112, 2, 2, 2426, 2427, 7, 114, 2, 2, 2427, 2428, 7, 103, 2, 2, 2428, 2429, 7, 116, 2, 2, 2429, 2430, 7, 110, 2, 2, 2430, 2431, 7, 107, 2, 2, 2431, 2432, 7, 112, 2, 2, 2432, 2433, 7, 97, 2, 2, 2433, 2434, 7, 112, 2, 2, 2434, 2435, 7, 113, 2, 2, 2435, 2436, 7, 107, 2, 2, 2436, 2437, 7, 117, 2, 2, 2437, 2439, 7, 103, 2, 2, 2438, 2420, 3, 2, 2, 2, 2438, 2426, 3, 2, 2, 2, 2439, 378, 3, 2, 2, 2, 2440, 2441, 7, 101, 2, 2, 2441, 2442, 7, 103, 2, 2, 2442, 2443, 7, 110, 2, 2, 2443, 2444, 7, 110, 2, 2, 2444, 2445, 7, 119, 2, 2, 2445, 2446, 7, 110, 2, 2, 2446, 2447, 7, 99, 2, 2, 2447, 2489, 7, 116, 2, 2, 2448, 2449, 7, 120, 2, 2, 2449, 2450, 7, 113, 2, 2, 2450, 2451, 7, 116, 2, 2, 2451, 2452, 7, 113, 2, 2, 2452, 2453, 7, 112, 2, 2, 2453, 2454, 7, 113, 2, 2, 2454, 2489, 7, 107, 2, 2, 2455, 2456, 7, 121, 2, 2, 2456, 2457, 7, 113, 2, 2, 2457, 2458, 7, 116, 2, 2, 2458, 2459, 7, 110, 2, 2, 2459, 2460, 7, 103, 2, 2, 2460, 2489, 7, 123, 2, 2, 2461, 2462, 7, 101, 2, 2, 2462, 2463, 7, 103, 2, 2, 2463, 2464, 7, 110, 2, 2, 2464, 2465, 7, 110, 2, 2, 2465, 2466, 7, 119, 2, 2, 2466, 2467, 7, 110, 2, 2, 2467, 2468, 7, 99, 2, 2, 2468, 2469, 7, 116, 2, 2, 2469, 2470, 7, 97, 2, 2, 2470, 2471, 7, 112, 2, 2, 2471, 2472, 7, 113, 2, 2, 2472, 2473, 7, 107, 2, 2, 2473, 2474, 7, 117, 2, 2, 2474, 2489, 7, 103, 2, 2, 2475, 2476, 7, 120, 2, 2, 2476, 2477, 7, 113, 2, 2, 2477, 2478, 7, 116, 2, 2, 2478, 2479, 7, 113, 2, 2, 2479, 2480, 7, 112, 2, 2, 2480, 2481, 7, 113, 2, 2, 2481, 2482, 7, 107, 2, 2, 2482, 2483, 7, 97, 2, 2, 2483, 2484, 7, 112, 2, 2, 2484, 2485, 7, 113, 2, 2, 2485, 2486, 7, 107, 2, 2, 2486, 2487, 7, 117, 2, 2, 2487, 2489, 7, 103, 2, 2, 2488, 2440, 3, 2, 2, 2, 2488, 2448, 3, 2, 2, 2, 2488, 2455, 3, 2, 2, 2, 2488, 2461, 3, 2, 2, 2, 2488, 2475, 3, 2, 2, 2, 2489, 380, 3, 2, 2, 2, 2490, 2491, 7, 114, 2, 2, 2491, 2492, 7, 110, 2, 2, 2492, 2493, 7, 99, 2, 2, 2493, 2494, 7, 117, 2, 2, 2494, 2495, 7, 111, 2, 2, 2495, 2519, 7, 99, 2, 2, 2496, 2497, 7, 118, 2, 2, 2497, 2498, 7, 119, 2, 2, 2498, 2499, 7, 116, 2, 2, 2499, 2500, 7, 100, 2, 2, 2500, 2501, 7, 119, 2, 2, 2501, 2502, 7, 110, 2, 2, 2502, 2503, 7, 103, 2, 2, 2503, 2504, 7, 112, 2, 2, 2504, 2505, 7, 101, 2, 2, 2505, 2519, 7, 103, 2, 2, 2506, 2507, 7, 114, 2, 2, 2507, 2508, 7, 110, 2, 2, 2508, 2509, 7, 99, 2, 2, 2509, 2510, 7, 117, 2, 2, 2510, 2511, 7, 111, 2, 2, 2511, 2512, 7, 99, 2, 2, 2512, 2513, 7, 97, 2, 2, 2513, 2514, 7, 112, 2, 2, 2514, 2515, 7, 113, 2, 2, 2515, 2516, 7, 107, 2, 2, 2516, 2517, 7, 117, 2, 2, 2517, 2519, 7, 103, 2, 2, 2518, 2490, 3, 2, 2, 2, 2518, 2496, 3, 2, 2, 2, 2518, 2506, 3, 2, 2, 2, 2519, 382, 3, 2, 2, 2, 2520, 2521, 7, 116, 2, 2, 2521, 2522, 7, 107, 2, 2, 2522, 2523, 7, 102, 2, 2, 2523, 2524, 7, 105, 2, 2, 2524, 2525, 7, 103, 2, 2, 2525, 2539, 7, 102, 2, 2, 2526, 2527, 7, 116, 2, 2, 2527, 2528, 7, 107, 2, 2, 2528, 2529, 7, 102, 2, 2, 2529, 2530, 7, 105, 2, 2, 2530, 2531, 7, 103, 2, 2, 2531, 2532, 7, 102, 2, 2, 2532, 2533, 7, 97, 2, 2, 2533, 2534, 7, 112, 2, 2, 2534, 2535, 7, 113, 2, 2, 2535, 2536, 7, 107, 2, 2, 2536, 2537, 7, 117, 2, 2, 2537, 2539, 7, 103, 2, 2, 2538, 2520, 3, 2, 2, 2, 2538, 2526, 3, 2, 2, 2, 2539, 384, 3, 2, 2, 2, 2540, 2541, 7, 102, 2, 2, 2541, 2542, 7, 113, 2, 2, 2542, 2543, 7, 111, 2, 2, 2543, 2544, 7, 99, 2, 2, 2544, 2545, 7, 107, 2, 2, 2545, 2546, 7, 112, 2, 2, 2546, 2547, 7, 97, 2, 2, 2547, 2548, 7, 121, 2, 2, 2548, 2549, 7, 99, 2, 2, 2549, 2550, 7, 116, 2, 2, 2550, 2569, 7, 114, 2, 2, 2551, 2552, 7, 102, 2, 2, 2552, 2553, 7, 113, 2, 2, 2553, 2554, 7, 111, 2, 2, 2554, 2555, 7, 99, 2, 2, 2555, 2556, 7, 107, 2, 2, 2556, 2557, 7, 112, 2, 2, 2557, 2558, 7, 97, 2, 2, 2558, 2559, 7, 121, 2, 2, 2559, 2560, 7, 99, 2, 2, 2560, 2561, 7, 116, 2, 2, 2561, 2562, 7, 114, 2, 2, 2562, 2563, 7, 97, 2, 2, 2563, 2564, 7, 112, 2, 2, 2564, 2565, 7, 113, 2, 2, 2565, 2566, 7, 107, 2, 2, 2566, 2567, 7, 117, 2, 2, 2567, 2569, 7, 103, 2, 2, 2568, 2540, 3, 2, 2, 2, 2568, 2551, 3, 2, 2, 2, 2569, 386, 3, 2, 2, 2, 2570, 2571, 7, 45, 2, 2, 2571, 388, 3, 2, 2, 2, 2572, 2573, 7, 47, 2, 2, 2573, 390, 3, 2, 2, 2, 2574, 2575, 7, 44, 2, 2, 2575, 392, 3, 2, 2, 2, 2576, 2577, 7, 49, 2, 2, 2577, 394, 3, 2, 2, 2, 2578, 2579, 7, 39, 2, 2, 2579, 396, 3, 2, 2, 2, 2580, 2581, 7, 96, 2, 2, 2581, 398, 3, 2, 2, 2, 2582, 2583, 7, 62, 2, 2, 2583, 2584, 7, 62, 2, 2, 2584, 400, 3, 2, 2, 2, 2585, 2586, 7, 64, 2, 2, 2586, 2587, 7, 64, 2, 2, 2587, 402, 3, 2, 2, 2, 2588, 2589, 7, 64, 2, 2, 2589, 2590, 7, 63, 2, 2, 2590, 404, 3, 2, 2, 2, 2591, 2592, 7, 64, 2, 2, 2592, 406, 3, 2, 2, 2, 2593, 2594, 7, 62, 2, 2, 2594, 2595, 7, 63, 2, 2, 2595, 408, 3, 2, 2, 2, 2596, 2597, 7, 62, 2, 2, 2597, 410, 3, 2, 2, 2, 2598, 2599, 7, 63, 2, 2, 2599, 2600, 7, 63, 2, 2, 2600, 412, 3, 2, 2, 2, 2601, 2602, 7, 63, 2, 2, 2602, 414, 3, 2, 2, 2, 2603, 2604, 7, 45, 2, 2, 2604, 2605, 7, 63, 2, 2, 2605, 416, 3, 2, 2, 2, 2606, 2607, 7, 47, 2, 2, 2607, 2608, 7, 63, 2, 2, 2608, 418, 3, 2, 2, 2, 2609, 2610, 7, 44, 2, 2, 2610, 2611, 7, 63, 2, 2, 2611, 420, 3, 2, 2, 2, 2612, 2613, 7, 49, 2, 2, 2613, 2614, 7, 63, 2, 2, 2614, 422, 3, 2, 2, 2, 2615, 2616, 7, 39, 2, 2, 2616, 2617, 7, 63, 2, 2, 2617, 424, 3, 2, 2, 2, 2618, 2619, 7, 35, 2, 2, 2619, 2620, 7, 63, 2, 2, 2620, 426, 3, 2, 2, 2, 2621, 2622, 7, 126, 2, 2, 2622, 428, 3, 2, 2, 2, 2623, 2624, 7, 42, 2, 2, 2624, 430, 3, 2, 2, 2, 2625, 2626, 7, 43, 2, 2, 2626, 432, 3, 2, 2, 2, 2627, 2628, 7, 46, 2, 2, 2628, 434, 3, 2, 2, 2, 2629, 2630, 7, 61, 2, 2, 2630, 436, 3, 2, 2, 2, 2631, 2632, 7, 47, 2, 2, 2632, 2633, 7, 64, 2, 2, 2633, 438, 3, 2, 2, 2, 2634, 2635, 7, 93, 2, 2, 2635, 440, 3, 2, 2, 2, 2636, 2637, 7, 95, 2, 2, 2637, 442, 3, 2, 2, 2, 2638, 2639, 7, 65, 2, 2, 2639, 444, 3, 2, 2, 2, 2640, 2641, 7, 60, 2, 2, 2641, 446, 3, 2, 2, 2, 2642, 2643, 7, 125, 2, 2, 2643, 448, 3, 2, 2, 2, 2644, 2645, 7, 127, 2, 2, 2645, 450, 3, 2, 2, 2, 2646, 2648, 9, 2, 2, 2, 2647, 2646, 3, 2, 2, 2, 2648, 2649, 3, 2, 2, 2, 2649, 2647, 3, 2, 2, 2, 2649, 2650, 3, 2, 2, 2, 2650, 2658, 3, 2, 2, 2, 2651, 2655, 7, 48, 2, 2, 2652, 2654, 9, 2, 2, 2, 2653, 2652, 3, 2, 2, 2, 2654, 2657, 3, 2, 2, 2, 2655, 2653, 3, 2, 2, 2, 2655, 2656, 3, 2, 2, 2, 2656, 2659, 3, 2, 2, 2, 2657, 2655, 3, 2, 2, 2, 2658, 2651, 3, 2, 2, 2, 2658, 2659, 3, 2, 2, 2, 2659, 2667, 3, 2, 2, 2, 2660, 2662, 7, 48, 2, 2, 2661, 2663, 9, 2, 2, 2, 2662, 2661, 3, 2, 2, 2, 2663, 2664, 3, 2, 2, 2, 2664, 2662, 3, 2, 2, 2, 2664, 2665, 3, 2, 2, 2, 2665, 2667, 3, 2, 2, 2, 2666, 2647, 3, 2, 2, 2, 2666, 2660, 3, 2, 2, 2, 2667, 2677, 3, 2, 2, 2, 2668, 2670, 9, 3, 2, 2, 2669, 2671, 9, 4, 2, 2, 2670, 2669, 3, 2, 2, 2, 2670, 2671, 3, 2, 2, 2, 2671, 2673, 3, 2, 2, 2, 2672, 2674, 9, 2, 2, 2, 2673, 2672, 3, 2, 2, 2, 2674, 2675, 3, 2, 2, 2, 2675, 2673, 3, 2, 2, 2, 2675, 2676, 3, 2, 2, 2, 2676, 2678, 3, 2, 2, 2, 2677, 2668, 3, 2, 2, 2, 2677, 2678, 3, 2, 2, 2, 2678, 452, 3, 2, 2, 2, 2679, 2680, 7, 114, 2, 2, 2680, 2685, 7, 107, 2, 2, 2681, 2682, 7, 82, 2, 2, 2682, 2685, 7, 75, 2, 2, 2683, 2685, 9, 3, 2, 2, 2684, 2679, 3, 2, 2, 2, 2684, 2681, 3, 2, 2, 2, 2684, 2683, 3, 2, 2, 2, 2685, 454, 3, 2, 2, 2, 2686, 2692, 7, 36, 2, 2, 2687, 2691, 10, 5, 2, 2, 2688, 2689, 7, 94, 2, 2, 2689, 2691, 11, 2, 2, 2, 2690, 2687, 3, 2, 2, 2, 2690, 2688, 3, 2, 2, 2, 2691, 2694, 3, 2, 2, 2, 2692, 2690, 3, 2, 2, 2, 2692, 2693, 3, 2, 2, 2, 2693, 2695, 3, 2, 2, 2, 2694, 2692, 3, 2, 2, 2, 2695, 2707, 7, 36, 2, 2, 2696, 2702, 7, 41, 2, 2, 2697, 2701, 10, 6, 2, 2, 2698, 2699, 7, 94, 2, 2, 2699, 2701, 11, 2, 2, 2, 2700, 2697, 3, 2, 2, 2, 2700, 2698, 3, 2, 2, 2, 2701, 2704, 3, 2, 2, 2, 2702, 2700, 3, 2, 2, 2, 2702, 2703, 3, 2, 2, 2, 2703, 2705, 3, 2, 2, 2, 2704, 2702, 3, 2, 2, 2, 2705, 2707, 7, 41, 2, 2, 2706, 2686, 3, 2, 2, 2, 2706, 2696, 3, 2, 2, 2, 2707, 456, 3, 2, 2, 2, 2708, 2712, 9, 7, 2, 2, 2709, 2711, 9, 8, 2, 2, 2710, 2709, 3, 2, 2, 2, 2711, 2714, 3, 2, 2, 2, 2712, 2710, 3, 2, 2, 2, 2712, 2713, 3, 2, 2, 2, 2713, 458, 3, 2, 2, 2, 2714, 2712, 3, 2, 2, 2, 2715, 2719, 7, 37, 2, 2, 2716, 2718, 10, 9, 2, 2, 2717, 2716, 3, 2, 2, 2, 2718, 2721, 3, 2, 2, 2, 2719, 2717, 3, 2, 2, 2, 2719, 2720, 3, 2, 2, 2, 2720, 2722, 3, 2, 2, 2, 2721, 2719, 3, 2, 2, 2, 2722, 2723, 8, 230, 2, 2, 2723, 460, 3, 2, 2, 2, 2724, 2725, 7, 49, 2, 2, 2725, 2726, 7, 44, 2, 2, 2726, 2730, 3, 2, 2, 2, 2727, 2729, 11, 2, 2, 2, 2728, 2727, 3, 2, 2, 2, 2729, 2732, 3, 2, 2, 2, 2730, 2731, 3, 2, 2, 2, 2730, 2728, 3, 2, 2, 2, 2731, 2733, 3, 2, 2, 2, 2732, 2730, 3, 2, 2, 2, 2733, 2734, 7, 44, 2, 2, 2734, 2735, 7, 49, 2, 2, 2735, 2736, 3, 2, 2, 2, 2736, 2737, 8, 231, 2, 2, 2737, 462, 3, 2, 2, 2, 2738, 2740, 9, 10, 2, 2, 2739, 2738, 3, 2, 2, 2, 2740, 2741, 3, 2, 2, 2, 2741, 2739, 3, 2, 2, 2, 2741, 2742, 3, 2, 2, 2, 2742, 2743, 3, 2, 2, 2, 2743, 2744, 8, 232, 2, 2, 2744, 464, 3, 2, 2, 2, 75, 2, 657, 672, 748, 765, 783, 796, 869, 886, 944, 993, 1015, 1032, 1053, 1068, 1095, 1126, 1142, 1213, 1263, 1283, 1304, 1351, 1375, 1398, 1415, 1430, 1512, 1567, 1796, 1857, 1878, 1935, 2054, 2085, 2104, 2129, 2154, 2174, 2199, 2224, 2247, 2268, 2287, 2308, 2329, 2354, 2375, 2396, 2418, 2438, 2488, 2518, 2538, 2568, 2649, 2655, 2658, 2664, 2666, 2670, 2675, 2677, 2684, 2690, 2692, 2700, 2702, 2706, 2712, 2719, 2730, 2741, 3, 8, 2, 2] \ No newline at end of file diff --git a/more_math/Parser/legacy/MathExprLexer.py b/more_math/Parser/legacy/MathExprLexer.py index 6db6692..e9e4112 100644 --- a/more_math/Parser/legacy/MathExprLexer.py +++ b/more_math/Parser/legacy/MathExprLexer.py @@ -11,8 +11,8 @@ else: def serializedATN(): with StringIO() as buf: - buf.write("\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2\u00e8") - buf.write("\u0aa4\b\1\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7") + buf.write("\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2\u00e9") + buf.write("\u0ab9\b\1\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7") buf.write("\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t\13\4\f\t\f\4\r\t\r") buf.write("\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22\4\23") buf.write("\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30") @@ -58,1233 +58,1244 @@ def serializedATN(): buf.write("\t\u00db\4\u00dc\t\u00dc\4\u00dd\t\u00dd\4\u00de\t\u00de") buf.write("\4\u00df\t\u00df\4\u00e0\t\u00e0\4\u00e1\t\u00e1\4\u00e2") buf.write("\t\u00e2\4\u00e3\t\u00e3\4\u00e4\t\u00e4\4\u00e5\t\u00e5") - buf.write("\4\u00e6\t\u00e6\4\u00e7\t\u00e7\3\2\3\2\3\2\3\2\3\3\3") - buf.write("\3\3\3\3\3\3\4\3\4\3\4\3\4\3\5\3\5\3\5\3\5\3\5\3\6\3\6") - buf.write("\3\6\3\6\3\6\3\7\3\7\3\7\3\7\3\7\3\b\3\b\3\b\3\b\3\b\3") - buf.write("\b\3\t\3\t\3\t\3\t\3\t\3\n\3\n\3\n\3\n\3\n\3\13\3\13\3") - buf.write("\13\3\13\3\13\3\f\3\f\3\f\3\f\3\f\3\f\3\r\3\r\3\r\3\r") - buf.write("\3\r\3\r\3\16\3\16\3\16\3\16\3\16\3\16\3\17\3\17\3\17") - buf.write("\3\17\3\20\3\20\3\20\3\20\3\20\3\21\3\21\3\21\3\22\3\22") - buf.write("\3\22\3\22\3\23\3\23\3\23\3\23\3\24\3\24\3\24\3\24\3\24") - buf.write("\3\25\3\25\3\25\3\25\3\25\3\26\3\26\3\26\3\26\3\26\3\27") - buf.write("\3\27\3\27\3\27\3\27\3\30\3\30\3\30\3\30\3\30\3\30\3\31") - buf.write("\3\31\3\31\3\31\3\31\3\31\3\32\3\32\3\32\3\32\3\32\3\32") - buf.write("\3\33\3\33\3\33\3\33\3\33\3\34\3\34\3\34\3\34\3\34\3\34") - buf.write("\3\35\3\35\3\35\3\35\3\35\3\35\3\36\3\36\3\36\3\36\3\37") - buf.write("\3\37\3\37\3\37\3\37\3 \3 \3 \3 \3 \3 \3!\3!\3!\3!\3\"") - buf.write("\3\"\3\"\3\"\3\"\3#\3#\3#\3#\3#\3#\3$\3$\3$\3$\3$\3$\3") - buf.write("%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\5%\u0290\n") - buf.write("%\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\5&\u029f\n&\3") - buf.write("\'\3\'\3\'\3\'\3\'\3(\3(\3(\3(\3(\3)\3)\3)\3)\3)\3)\3") - buf.write(")\3)\3)\3)\3)\3*\3*\3*\3*\3*\3*\3+\3+\3+\3+\3+\3,\3,\3") - buf.write(",\3,\3,\3,\3,\3,\3,\3-\3-\3-\3-\3-\3.\3.\3.\3.\3.\3/\3") - buf.write("/\3/\3/\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3") - buf.write("\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\5\60") - buf.write("\u02eb\n\60\3\61\3\61\3\61\3\61\3\61\3\61\3\61\3\61\3") - buf.write("\61\3\61\3\61\3\61\3\61\3\61\3\61\5\61\u02fc\n\61\3\62") - buf.write("\3\62\3\62\3\62\3\62\3\63\3\63\3\63\3\63\3\63\3\63\3\63") - buf.write("\3\63\3\63\3\63\3\63\5\63\u030e\n\63\3\64\3\64\3\64\3") - buf.write("\64\3\64\3\64\3\64\3\64\3\64\3\64\3\64\5\64\u031b\n\64") - buf.write("\3\65\3\65\3\65\3\65\3\65\3\65\3\66\3\66\3\66\3\66\3\66") - buf.write("\3\66\3\66\3\66\3\66\3\67\3\67\3\67\3\67\3\67\3\67\3\67") - buf.write("\3\67\3\67\38\38\38\38\38\39\39\39\39\39\3:\3:\3:\3:\3") - buf.write(":\3;\3;\3;\3;\3<\3<\3<\3<\3<\3=\3=\3=\3=\3>\3>\3>\3>\3") - buf.write("?\3?\3?\3?\3?\3?\3?\3?\3?\3?\3?\3?\3?\3?\3?\5?\u0364\n") - buf.write("?\3@\3@\3@\3@\3@\3@\3@\3@\3@\3@\3@\3@\3@\3@\3@\5@\u0375") - buf.write("\n@\3A\3A\3A\3A\3A\3A\3A\3A\3A\3B\3B\3B\3B\3C\3C\3C\3") - buf.write("C\3C\3C\3C\3D\3D\3D\3D\3E\3E\3E\3E\3E\3E\3E\3F\3F\3F\3") - buf.write("F\3G\3G\3G\3G\3H\3H\3H\3H\3H\3I\3I\3I\3I\3I\3I\3I\3I\3") - buf.write("I\3I\3I\3I\5I\u03af\nI\3J\3J\3J\3J\3J\3J\3J\3K\3K\3K\3") - buf.write("K\3K\3L\3L\3L\3L\3L\3L\3L\3M\3M\3M\3M\3M\3M\3M\3M\3N\3") - buf.write("N\3N\3N\3N\3N\3N\3N\3N\3N\3N\3N\3N\3N\3N\3N\3N\3N\3N\3") - buf.write("N\5N\u03e0\nN\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3") - buf.write("O\3O\3O\3O\3O\3O\3O\5O\u03f6\nO\3P\3P\3P\3P\3P\3P\3P\3") - buf.write("P\3P\3P\3P\3P\3P\3P\3P\5P\u0407\nP\3Q\3Q\3Q\3Q\3Q\3Q\3") - buf.write("Q\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3Q\5Q\u041c\nQ\3R\3") - buf.write("R\3R\3R\3R\3R\3R\3R\3R\3R\3R\3R\3R\5R\u042b\nR\3S\3S\3") - buf.write("S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3T\3T\3T\3T\3T\3T\3T\3") - buf.write("T\3T\3T\3T\3T\5T\u0446\nT\3U\3U\3U\3U\3U\3U\3V\3V\3V\3") - buf.write("V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3") - buf.write("V\3V\5V\u0465\nV\3W\3W\3W\3W\3W\3W\3W\3W\3W\3W\3W\3W\3") - buf.write("W\3W\5W\u0475\nW\3X\3X\3X\3X\3X\3X\3X\3Y\3Y\3Y\3Y\3Y\3") - buf.write("Y\3Y\3Y\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3[\3[\3[\3[\3[\3[\3[\3[\3") - buf.write("[\3[\3\\\3\\\3\\\3\\\3\\\3\\\3\\\3\\\3\\\3\\\3\\\3]\3") - buf.write("]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3") - buf.write("]\3]\3]\3]\3]\3]\3]\5]\u04bc\n]\3^\3^\3^\3^\3^\3^\3^\3") - buf.write("^\3^\3^\3^\3^\3_\3_\3_\3_\3_\3_\3_\3_\3_\3_\3_\3_\3_\3") - buf.write("_\3`\3`\3`\3`\3`\3`\3`\3`\3`\3`\3`\3`\3`\3`\3`\3`\3`\3") - buf.write("`\3`\3`\3`\3`\5`\u04ee\n`\3a\3a\3a\3a\3a\3a\3a\3a\3a\3") - buf.write("a\3a\3a\3a\3a\3a\3a\3a\3a\5a\u0502\na\3b\3b\3b\3b\3b\3") - buf.write("b\3c\3c\3c\3c\3c\3c\3c\3c\3c\3c\3c\3c\3c\5c\u0517\nc\3") - buf.write("d\3d\3d\3d\3d\3d\3d\3d\3e\3e\3e\3e\3f\3f\3f\3f\3f\3f\3") - buf.write("g\3g\3g\3g\3g\3g\3g\3h\3h\3h\3h\3h\3i\3i\3i\3i\3i\3i\3") - buf.write("i\3i\3i\3i\3i\3i\3i\3i\3i\5i\u0546\ni\3j\3j\3j\3j\3j\3") - buf.write("j\3j\3j\3j\3j\3j\3j\3j\3j\3j\3j\3j\3j\3j\3j\3j\3j\5j\u055e") - buf.write("\nj\3k\3k\3k\3k\3k\3k\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3") - buf.write("l\3l\3l\3l\3l\5l\u0575\nl\3m\3m\3m\3m\3m\3m\3m\3m\3m\3") - buf.write("m\3m\3m\3m\3m\3m\5m\u0586\nm\3n\3n\3n\3n\3n\3n\3n\3n\3") - buf.write("n\3n\3n\3n\3n\5n\u0595\nn\3o\3o\3o\3o\3o\3o\3o\3p\3p\3") - buf.write("p\3p\3p\3p\3p\3p\3p\3p\3p\3q\3q\3q\3q\3q\3q\3q\3q\3q\3") - buf.write("q\3r\3r\3r\3r\3r\3r\3r\3r\3r\3r\3r\3r\3s\3s\3s\3s\3s\3") - buf.write("s\3s\3s\3s\3s\3t\3t\3t\3t\3t\3t\3t\3t\3t\3t\3u\3u\3u\3") - buf.write("u\3u\3u\3u\3u\3u\3u\3u\3u\3u\3u\3u\3u\3u\3u\3u\3u\5u\u05e7") - buf.write("\nu\3v\3v\3v\3v\3w\3w\3w\3w\3w\3w\3x\3x\3x\3x\3x\3x\3") - buf.write("y\3y\3y\3y\3y\3y\3z\3z\3z\3z\3z\3{\3{\3{\3{\3{\3{\3|\3") - buf.write("|\3|\3|\3|\3}\3}\3}\3}\3}\3}\3}\3}\3}\3}\3}\3}\3}\3}\3") - buf.write("}\5}\u061e\n}\3~\3~\3~\3~\3~\3\177\3\177\3\177\3\177\3") - buf.write("\177\3\177\3\177\3\177\3\u0080\3\u0080\3\u0080\3\u0080") - buf.write("\3\u0080\3\u0080\3\u0080\3\u0081\3\u0081\3\u0081\3\u0081") - buf.write("\3\u0081\3\u0081\3\u0082\3\u0082\3\u0082\3\u0082\3\u0082") - buf.write("\3\u0082\3\u0082\3\u0082\3\u0082\3\u0082\3\u0082\3\u0083") + buf.write("\4\u00e6\t\u00e6\4\u00e7\t\u00e7\4\u00e8\t\u00e8\3\2\3") + buf.write("\2\3\2\3\2\3\3\3\3\3\3\3\3\3\4\3\4\3\4\3\4\3\5\3\5\3\5") + buf.write("\3\5\3\5\3\6\3\6\3\6\3\6\3\6\3\7\3\7\3\7\3\7\3\7\3\b\3") + buf.write("\b\3\b\3\b\3\b\3\b\3\t\3\t\3\t\3\t\3\t\3\n\3\n\3\n\3\n") + buf.write("\3\n\3\13\3\13\3\13\3\13\3\13\3\f\3\f\3\f\3\f\3\f\3\f") + buf.write("\3\r\3\r\3\r\3\r\3\r\3\r\3\16\3\16\3\16\3\16\3\16\3\16") + buf.write("\3\17\3\17\3\17\3\17\3\20\3\20\3\20\3\20\3\20\3\21\3\21") + buf.write("\3\21\3\22\3\22\3\22\3\22\3\23\3\23\3\23\3\23\3\24\3\24") + buf.write("\3\24\3\24\3\24\3\25\3\25\3\25\3\25\3\25\3\26\3\26\3\26") + buf.write("\3\26\3\26\3\27\3\27\3\27\3\27\3\27\3\30\3\30\3\30\3\30") + buf.write("\3\30\3\30\3\31\3\31\3\31\3\31\3\31\3\31\3\32\3\32\3\32") + buf.write("\3\32\3\32\3\32\3\33\3\33\3\33\3\33\3\33\3\34\3\34\3\34") + buf.write("\3\34\3\34\3\34\3\35\3\35\3\35\3\35\3\35\3\35\3\36\3\36") + buf.write("\3\36\3\36\3\37\3\37\3\37\3\37\3\37\3 \3 \3 \3 \3 \3 ") + buf.write("\3!\3!\3!\3!\3\"\3\"\3\"\3\"\3\"\3#\3#\3#\3#\3#\3#\3$") + buf.write("\3$\3$\3$\3$\3$\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3") + buf.write("%\3%\3%\5%\u0292\n%\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3") + buf.write("&\3&\5&\u02a1\n&\3\'\3\'\3\'\3\'\3\'\3(\3(\3(\3(\3(\3") + buf.write(")\3)\3)\3)\3)\3)\3)\3)\3)\3)\3)\3*\3*\3*\3*\3*\3*\3+\3") + buf.write("+\3+\3+\3+\3,\3,\3,\3,\3,\3,\3,\3,\3,\3-\3-\3-\3-\3-\3") + buf.write(".\3.\3.\3.\3.\3/\3/\3/\3/\3\60\3\60\3\60\3\60\3\60\3\60") + buf.write("\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\60") + buf.write("\3\60\3\60\5\60\u02ed\n\60\3\61\3\61\3\61\3\61\3\61\3") + buf.write("\61\3\61\3\61\3\61\3\61\3\61\3\61\3\61\3\61\3\61\5\61") + buf.write("\u02fe\n\61\3\62\3\62\3\62\3\62\3\62\3\63\3\63\3\63\3") + buf.write("\63\3\63\3\63\3\63\3\63\3\63\3\63\3\63\5\63\u0310\n\63") + buf.write("\3\64\3\64\3\64\3\64\3\64\3\64\3\64\3\64\3\64\3\64\3\64") + buf.write("\5\64\u031d\n\64\3\65\3\65\3\65\3\65\3\65\3\65\3\66\3") + buf.write("\66\3\66\3\66\3\66\3\66\3\66\3\66\3\66\3\67\3\67\3\67") + buf.write("\3\67\3\67\3\67\3\67\3\67\3\67\38\38\38\38\38\39\39\3") + buf.write("9\39\39\3:\3:\3:\3:\3:\3;\3;\3;\3;\3<\3<\3<\3<\3<\3=\3") + buf.write("=\3=\3=\3>\3>\3>\3>\3?\3?\3?\3?\3?\3?\3?\3?\3?\3?\3?\3") + buf.write("?\3?\3?\3?\5?\u0366\n?\3@\3@\3@\3@\3@\3@\3@\3@\3@\3@\3") + buf.write("@\3@\3@\3@\3@\5@\u0377\n@\3A\3A\3A\3A\3A\3A\3A\3A\3A\3") + buf.write("B\3B\3B\3B\3C\3C\3C\3C\3C\3C\3C\3D\3D\3D\3D\3E\3E\3E\3") + buf.write("E\3E\3E\3E\3F\3F\3F\3F\3G\3G\3G\3G\3H\3H\3H\3H\3H\3I\3") + buf.write("I\3I\3I\3I\3I\3I\3I\3I\3I\3I\3I\5I\u03b1\nI\3J\3J\3J\3") + buf.write("J\3J\3J\3J\3K\3K\3K\3K\3K\3L\3L\3L\3L\3L\3L\3L\3M\3M\3") + buf.write("M\3M\3M\3M\3M\3M\3N\3N\3N\3N\3N\3N\3N\3N\3N\3N\3N\3N\3") + buf.write("N\3N\3N\3N\3N\3N\3N\3N\5N\u03e2\nN\3O\3O\3O\3O\3O\3O\3") + buf.write("O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\3O\5O\u03f8\nO\3") + buf.write("P\3P\3P\3P\3P\3P\3P\3P\3P\3P\3P\3P\3P\3P\3P\5P\u0409\n") + buf.write("P\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3Q\3") + buf.write("Q\3Q\5Q\u041e\nQ\3R\3R\3R\3R\3R\3R\3R\3R\3R\3R\3R\3R\3") + buf.write("R\5R\u042d\nR\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3") + buf.write("T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\5T\u0448\nT\3U\3U\3") + buf.write("U\3U\3U\3U\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3") + buf.write("V\3V\3V\3V\3V\3V\3V\3V\3V\5V\u0467\nV\3W\3W\3W\3W\3W\3") + buf.write("W\3W\3W\3W\3W\3W\3W\3W\3W\5W\u0477\nW\3X\3X\3X\3X\3X\3") + buf.write("X\3X\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Z\3Z\3Z\3Z\3Z\3Z\3Z\3[\3") + buf.write("[\3[\3[\3[\3[\3[\3[\3[\3[\3\\\3\\\3\\\3\\\3\\\3\\\3\\") + buf.write("\3\\\3\\\3\\\3\\\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3") + buf.write("]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\3]\5]\u04be\n]\3") + buf.write("^\3^\3^\3^\3^\3^\3^\3^\3^\3^\3^\3^\3_\3_\3_\3_\3_\3_\3") + buf.write("_\3_\3_\3_\3_\3_\3_\3_\3`\3`\3`\3`\3`\3`\3`\3`\3`\3`\3") + buf.write("`\3`\3`\3`\3`\3`\3`\3`\3`\3`\3`\3`\5`\u04f0\n`\3a\3a\3") + buf.write("a\3a\3a\3a\3a\3a\3a\3a\3a\3a\3a\3a\3a\3a\3a\3a\5a\u0504") + buf.write("\na\3b\3b\3b\3b\3b\3b\3c\3c\3c\3c\3c\3c\3c\3c\3c\3c\3") + buf.write("c\3c\3c\5c\u0519\nc\3d\3d\3d\3d\3d\3d\3d\3d\3e\3e\3e\3") + buf.write("e\3f\3f\3f\3f\3f\3f\3g\3g\3g\3g\3g\3g\3g\3h\3h\3h\3h\3") + buf.write("h\3i\3i\3i\3i\3i\3i\3i\3i\3i\3i\3i\3i\3i\3i\3i\5i\u0548") + buf.write("\ni\3j\3j\3j\3j\3j\3j\3j\3j\3j\3j\3j\3j\3j\3j\3j\3j\3") + buf.write("j\3j\3j\3j\3j\3j\5j\u0560\nj\3k\3k\3k\3k\3k\3k\3l\3l\3") + buf.write("l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\3l\5l\u0577\nl\3m\3") + buf.write("m\3m\3m\3m\3m\3m\3m\3m\3m\3m\3m\3m\3m\3m\5m\u0588\nm\3") + buf.write("n\3n\3n\3n\3n\3n\3n\3n\3n\3n\3n\3n\3n\5n\u0597\nn\3o\3") + buf.write("o\3o\3o\3o\3o\3o\3p\3p\3p\3p\3p\3p\3p\3p\3p\3p\3p\3q\3") + buf.write("q\3q\3q\3q\3q\3q\3q\3q\3q\3r\3r\3r\3r\3r\3r\3r\3r\3r\3") + buf.write("r\3r\3r\3s\3s\3s\3s\3s\3s\3s\3s\3s\3s\3t\3t\3t\3t\3t\3") + buf.write("t\3t\3t\3t\3t\3u\3u\3u\3u\3u\3u\3u\3u\3u\3u\3u\3u\3u\3") + buf.write("u\3u\3u\3u\3u\3u\3u\5u\u05e9\nu\3v\3v\3v\3v\3w\3w\3w\3") + buf.write("w\3w\3w\3x\3x\3x\3x\3x\3x\3y\3y\3y\3y\3y\3y\3z\3z\3z\3") + buf.write("z\3z\3{\3{\3{\3{\3{\3{\3|\3|\3|\3|\3|\3}\3}\3}\3}\3}\3") + buf.write("}\3}\3}\3}\3}\3}\3}\3}\3}\3}\5}\u0620\n}\3~\3~\3~\3~\3") + buf.write("~\3\177\3\177\3\177\3\177\3\177\3\177\3\177\3\177\3\u0080") + buf.write("\3\u0080\3\u0080\3\u0080\3\u0080\3\u0080\3\u0080\3\u0081") + buf.write("\3\u0081\3\u0081\3\u0081\3\u0081\3\u0081\3\u0082\3\u0082") + buf.write("\3\u0082\3\u0082\3\u0082\3\u0082\3\u0082\3\u0082\3\u0082") + buf.write("\3\u0082\3\u0082\3\u0083\3\u0083\3\u0083\3\u0083\3\u0083") buf.write("\3\u0083\3\u0083\3\u0083\3\u0083\3\u0083\3\u0083\3\u0083") - buf.write("\3\u0083\3\u0083\3\u0083\3\u0083\3\u0084\3\u0084\3\u0084") buf.write("\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084") - buf.write("\3\u0084\3\u0084\3\u0084\3\u0085\3\u0085\3\u0085\3\u0085") + buf.write("\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0084\3\u0085") buf.write("\3\u0085\3\u0085\3\u0085\3\u0085\3\u0085\3\u0085\3\u0085") - buf.write("\3\u0085\3\u0085\3\u0085\3\u0086\3\u0086\3\u0086\3\u0086") + buf.write("\3\u0085\3\u0085\3\u0085\3\u0085\3\u0085\3\u0085\3\u0086") buf.write("\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086") - buf.write("\3\u0086\3\u0086\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087") + buf.write("\3\u0086\3\u0086\3\u0086\3\u0086\3\u0086\3\u0087\3\u0087") buf.write("\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087") - buf.write("\3\u0087\3\u0087\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088") - buf.write("\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0089") - buf.write("\3\u0089\3\u0089\3\u0089\3\u0089\3\u0089\3\u0089\3\u0089") - buf.write("\3\u0089\3\u0089\3\u0089\3\u008a\3\u008a\3\u008a\3\u008a") + buf.write("\3\u0087\3\u0087\3\u0087\3\u0087\3\u0087\3\u0088\3\u0088") + buf.write("\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088\3\u0088") + buf.write("\3\u0088\3\u0088\3\u0089\3\u0089\3\u0089\3\u0089\3\u0089") + buf.write("\3\u0089\3\u0089\3\u0089\3\u0089\3\u0089\3\u0089\3\u008a") buf.write("\3\u008a\3\u008a\3\u008a\3\u008a\3\u008a\3\u008a\3\u008a") + buf.write("\3\u008a\3\u008a\3\u008a\3\u008b\3\u008b\3\u008b\3\u008b") buf.write("\3\u008b\3\u008b\3\u008b\3\u008b\3\u008b\3\u008b\3\u008b") - buf.write("\3\u008b\3\u008b\3\u008b\3\u008b\3\u008c\3\u008c\3\u008c") buf.write("\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c") buf.write("\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c") - buf.write("\3\u008c\3\u008c\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d") + buf.write("\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c\3\u008d\3\u008d") buf.write("\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d") - buf.write("\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d\3\u008e\3\u008e") + buf.write("\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d\3\u008d") + buf.write("\3\u008d\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e") buf.write("\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e") buf.write("\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e") buf.write("\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e") buf.write("\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e") buf.write("\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e") - buf.write("\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e\3\u008e") - buf.write("\5\u008e\u0703\n\u008e\3\u008f\3\u008f\3\u008f\3\u008f") + buf.write("\3\u008e\3\u008e\3\u008e\5\u008e\u0705\n\u008e\3\u008f") buf.write("\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f\3\u008f") + buf.write("\3\u008f\3\u008f\3\u008f\3\u0090\3\u0090\3\u0090\3\u0090") buf.write("\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090") - buf.write("\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090") - buf.write("\3\u0090\3\u0090\3\u0090\3\u0091\3\u0091\3\u0091\3\u0091") + buf.write("\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0090\3\u0091") buf.write("\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091") buf.write("\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091") buf.write("\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091") - buf.write("\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\5\u0091") - buf.write("\u0740\n\u0091\3\u0092\3\u0092\3\u0092\3\u0092\3\u0092") + buf.write("\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091") + buf.write("\3\u0091\3\u0091\5\u0091\u0742\n\u0091\3\u0092\3\u0092") buf.write("\3\u0092\3\u0092\3\u0092\3\u0092\3\u0092\3\u0092\3\u0092") buf.write("\3\u0092\3\u0092\3\u0092\3\u0092\3\u0092\3\u0092\3\u0092") - buf.write("\5\u0092\u0755\n\u0092\3\u0093\3\u0093\3\u0093\3\u0094") - buf.write("\3\u0094\3\u0094\3\u0094\3\u0094\3\u0095\3\u0095\3\u0095") - buf.write("\3\u0095\3\u0095\3\u0095\3\u0096\3\u0096\3\u0096\3\u0096") - buf.write("\3\u0097\3\u0097\3\u0097\3\u0098\3\u0098\3\u0098\3\u0098") - buf.write("\3\u0098\3\u0098\3\u0099\3\u0099\3\u0099\3\u0099\3\u0099") - buf.write("\3\u0099\3\u0099\3\u0099\3\u0099\3\u009a\3\u009a\3\u009a") - buf.write("\3\u009a\3\u009a\3\u009a\3\u009a\3\u009b\3\u009b\3\u009b") + buf.write("\3\u0092\3\u0092\3\u0092\5\u0092\u0757\n\u0092\3\u0093") + buf.write("\3\u0093\3\u0093\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094") + buf.write("\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095\3\u0096") + buf.write("\3\u0096\3\u0096\3\u0096\3\u0097\3\u0097\3\u0097\3\u0098") + buf.write("\3\u0098\3\u0098\3\u0098\3\u0098\3\u0098\3\u0099\3\u0099") + buf.write("\3\u0099\3\u0099\3\u0099\3\u0099\3\u0099\3\u0099\3\u0099") + buf.write("\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a") buf.write("\3\u009b\3\u009b\3\u009b\3\u009b\3\u009b\3\u009b\3\u009b") - buf.write("\3\u009b\3\u009b\5\u009b\u078e\n\u009b\3\u009c\3\u009c") - buf.write("\3\u009c\3\u009c\3\u009c\3\u009d\3\u009d\3\u009d\3\u009d") - buf.write("\3\u009d\3\u009d\3\u009d\3\u009d\3\u009e\3\u009e\3\u009e") - buf.write("\3\u009e\3\u009e\3\u009e\3\u009e\3\u009f\3\u009f\3\u009f") - buf.write("\3\u009f\3\u009f\3\u009f\3\u009f\3\u00a0\3\u00a0\3\u00a0") - buf.write("\3\u00a0\3\u00a0\3\u00a0\3\u00a0\3\u00a0\3\u00a1\3\u00a1") - buf.write("\3\u00a1\3\u00a1\3\u00a1\3\u00a1\3\u00a1\3\u00a1\3\u00a2") - buf.write("\3\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a3") - buf.write("\3\u00a3\3\u00a3\3\u00a3\3\u00a3\3\u00a4\3\u00a4\3\u00a4") + buf.write("\3\u009b\3\u009b\3\u009b\3\u009b\3\u009b\5\u009b\u0790") + buf.write("\n\u009b\3\u009c\3\u009c\3\u009c\3\u009c\3\u009c\3\u009d") + buf.write("\3\u009d\3\u009d\3\u009d\3\u009d\3\u009d\3\u009d\3\u009d") + buf.write("\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e\3\u009e") + buf.write("\3\u009f\3\u009f\3\u009f\3\u009f\3\u009f\3\u009f\3\u009f") + buf.write("\3\u00a0\3\u00a0\3\u00a0\3\u00a0\3\u00a0\3\u00a0\3\u00a0") + buf.write("\3\u00a0\3\u00a1\3\u00a1\3\u00a1\3\u00a1\3\u00a1\3\u00a1") + buf.write("\3\u00a1\3\u00a1\3\u00a2\3\u00a2\3\u00a2\3\u00a2\3\u00a2") + buf.write("\3\u00a2\3\u00a2\3\u00a3\3\u00a3\3\u00a3\3\u00a3\3\u00a3") buf.write("\3\u00a4\3\u00a4\3\u00a4\3\u00a4\3\u00a4\3\u00a4\3\u00a4") - buf.write("\3\u00a4\3\u00a5\3\u00a5\3\u00a5\3\u00a5\3\u00a5\3\u00a5") - buf.write("\3\u00a5\3\u00a5\3\u00a5\3\u00a6\3\u00a6\3\u00a6\3\u00a6") - buf.write("\3\u00a6\3\u00a6\3\u00a6\3\u00a6\3\u00a7\3\u00a7\3\u00a7") + buf.write("\3\u00a4\3\u00a4\3\u00a4\3\u00a4\3\u00a5\3\u00a5\3\u00a5") + buf.write("\3\u00a5\3\u00a5\3\u00a5\3\u00a5\3\u00a5\3\u00a5\3\u00a6") + buf.write("\3\u00a6\3\u00a6\3\u00a6\3\u00a6\3\u00a6\3\u00a6\3\u00a6") buf.write("\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a7") - buf.write("\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a8\3\u00a9\3\u00a9") - buf.write("\3\u00a9\3\u00a9\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00aa") + buf.write("\3\u00a7\3\u00a7\3\u00a7\3\u00a8\3\u00a8\3\u00a8\3\u00a8") + buf.write("\3\u00a8\3\u00a9\3\u00a9\3\u00a9\3\u00a9\3\u00aa\3\u00aa") buf.write("\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00aa") - buf.write("\3\u00aa\3\u00aa\3\u00aa\5\u00aa\u0805\n\u00aa\3\u00ab") - buf.write("\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab") - buf.write("\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ad\3\u00ad") + buf.write("\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00aa\3\u00aa\5\u00aa") + buf.write("\u0807\n\u00aa\3\u00ab\3\u00ab\3\u00ab\3\u00ab\3\u00ab") + buf.write("\3\u00ab\3\u00ab\3\u00ab\3\u00ac\3\u00ac\3\u00ac\3\u00ac") + buf.write("\3\u00ac\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad") buf.write("\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad") - buf.write("\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad") - buf.write("\5\u00ad\u0824\n\u00ad\3\u00ae\3\u00ae\3\u00ae\3\u00ae") + buf.write("\3\u00ad\3\u00ad\3\u00ad\5\u00ad\u0826\n\u00ad\3\u00ae") buf.write("\3\u00ae\3\u00ae\3\u00ae\3\u00ae\3\u00ae\3\u00ae\3\u00ae") buf.write("\3\u00ae\3\u00ae\3\u00ae\3\u00ae\3\u00ae\3\u00ae\3\u00ae") - buf.write("\3\u00ae\3\u00ae\3\u00ae\3\u00ae\3\u00ae\5\u00ae\u083d") - buf.write("\n\u00ae\3\u00af\3\u00af\3\u00af\3\u00af\3\u00af\3\u00af") + buf.write("\3\u00ae\3\u00ae\5\u00ae\u0839\n\u00ae\3\u00af\3\u00af") buf.write("\3\u00af\3\u00af\3\u00af\3\u00af\3\u00af\3\u00af\3\u00af") buf.write("\3\u00af\3\u00af\3\u00af\3\u00af\3\u00af\3\u00af\3\u00af") - buf.write("\3\u00af\3\u00af\3\u00af\5\u00af\u0856\n\u00af\3\u00b0") + buf.write("\3\u00af\3\u00af\3\u00af\3\u00af\3\u00af\3\u00af\3\u00af") + buf.write("\5\u00af\u0852\n\u00af\3\u00b0\3\u00b0\3\u00b0\3\u00b0") buf.write("\3\u00b0\3\u00b0\3\u00b0\3\u00b0\3\u00b0\3\u00b0\3\u00b0") buf.write("\3\u00b0\3\u00b0\3\u00b0\3\u00b0\3\u00b0\3\u00b0\3\u00b0") - buf.write("\3\u00b0\3\u00b0\3\u00b0\5\u00b0\u086a\n\u00b0\3\u00b1") + buf.write("\3\u00b0\3\u00b0\3\u00b0\3\u00b0\3\u00b0\5\u00b0\u086b") + buf.write("\n\u00b0\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1") buf.write("\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1") - buf.write("\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1") - buf.write("\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1") - buf.write("\3\u00b1\5\u00b1\u0883\n\u00b1\3\u00b2\3\u00b2\3\u00b2") + buf.write("\3\u00b1\3\u00b1\3\u00b1\3\u00b1\3\u00b1\5\u00b1\u087f") + buf.write("\n\u00b1\3\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2") buf.write("\3\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2") buf.write("\3\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2") - buf.write("\3\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2\3\u00b2\5\u00b2") - buf.write("\u089c\n\u00b2\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b3") + buf.write("\3\u00b2\3\u00b2\3\u00b2\5\u00b2\u0898\n\u00b2\3\u00b3") buf.write("\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b3") buf.write("\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b3") - buf.write("\3\u00b3\3\u00b3\5\u00b3\u08b3\n\u00b3\3\u00b4\3\u00b4") + buf.write("\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b3\3\u00b3") + buf.write("\3\u00b3\5\u00b3\u08b1\n\u00b3\3\u00b4\3\u00b4\3\u00b4") buf.write("\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4") buf.write("\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4\3\u00b4") - buf.write("\3\u00b4\3\u00b4\3\u00b4\5\u00b4\u08c8\n\u00b4\3\u00b5") + buf.write("\3\u00b4\3\u00b4\3\u00b4\3\u00b4\5\u00b4\u08c8\n\u00b4") buf.write("\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5") buf.write("\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5") - buf.write("\3\u00b5\3\u00b5\5\u00b5\u08db\n\u00b5\3\u00b6\3\u00b6") + buf.write("\3\u00b5\3\u00b5\3\u00b5\3\u00b5\3\u00b5\5\u00b5\u08dd") + buf.write("\n\u00b5\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6") buf.write("\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6") - buf.write("\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6") - buf.write("\3\u00b6\3\u00b6\3\u00b6\5\u00b6\u08f0\n\u00b6\3\u00b7") + buf.write("\3\u00b6\3\u00b6\3\u00b6\3\u00b6\5\u00b6\u08f0\n\u00b6") buf.write("\3\u00b7\3\u00b7\3\u00b7\3\u00b7\3\u00b7\3\u00b7\3\u00b7") buf.write("\3\u00b7\3\u00b7\3\u00b7\3\u00b7\3\u00b7\3\u00b7\3\u00b7") - buf.write("\3\u00b7\3\u00b7\3\u00b7\3\u00b7\5\u00b7\u0905\n\u00b7") + buf.write("\3\u00b7\3\u00b7\3\u00b7\3\u00b7\3\u00b7\5\u00b7\u0905") + buf.write("\n\u00b7\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8") buf.write("\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8") - buf.write("\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8") - buf.write("\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8") - buf.write("\3\u00b8\3\u00b8\5\u00b8\u091e\n\u00b8\3\u00b9\3\u00b9") + buf.write("\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\3\u00b8\5\u00b8") + buf.write("\u091a\n\u00b8\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9") buf.write("\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9") buf.write("\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9") - buf.write("\3\u00b9\3\u00b9\3\u00b9\5\u00b9\u0933\n\u00b9\3\u00ba") + buf.write("\3\u00b9\3\u00b9\3\u00b9\3\u00b9\5\u00b9\u0933\n\u00b9") buf.write("\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba") buf.write("\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba") - buf.write("\3\u00ba\3\u00ba\3\u00ba\3\u00ba\5\u00ba\u0948\n\u00ba") - buf.write("\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb") + buf.write("\3\u00ba\3\u00ba\3\u00ba\3\u00ba\3\u00ba\5\u00ba\u0948") + buf.write("\n\u00ba\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb") buf.write("\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb") buf.write("\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\5\u00bb") - buf.write("\u095e\n\u00bb\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc") + buf.write("\u095d\n\u00bb\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc") buf.write("\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc") - buf.write("\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\5\u00bc") - buf.write("\u0972\n\u00bc\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd") + buf.write("\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc\3\u00bc") + buf.write("\3\u00bc\5\u00bc\u0973\n\u00bc\3\u00bd\3\u00bd\3\u00bd") buf.write("\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd") buf.write("\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd") - buf.write("\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd") - buf.write("\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd") - buf.write("\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd") - buf.write("\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd\3\u00bd") - buf.write("\3\u00bd\5\u00bd\u09a4\n\u00bd\3\u00be\3\u00be\3\u00be") + buf.write("\3\u00bd\5\u00bd\u0987\n\u00bd\3\u00be\3\u00be\3\u00be") buf.write("\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be") buf.write("\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be") buf.write("\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be") - buf.write("\3\u00be\3\u00be\3\u00be\3\u00be\5\u00be\u09c2\n\u00be") + buf.write("\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be") + buf.write("\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be") + buf.write("\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be\3\u00be") + buf.write("\3\u00be\3\u00be\3\u00be\5\u00be\u09b9\n\u00be\3\u00bf") buf.write("\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf") buf.write("\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf") - buf.write("\3\u00bf\3\u00bf\3\u00bf\3\u00bf\5\u00bf\u09d6\n\u00bf") + buf.write("\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf") + buf.write("\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\5\u00bf") + buf.write("\u09d7\n\u00bf\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c0") buf.write("\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c0") - buf.write("\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c0") - buf.write("\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c0") - buf.write("\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c0") - buf.write("\5\u00c0\u09f4\n\u00c0\3\u00c1\3\u00c1\3\u00c2\3\u00c2") + buf.write("\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c0\3\u00c0\5\u00c0") + buf.write("\u09eb\n\u00c0\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1") + buf.write("\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1") + buf.write("\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1") + buf.write("\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1") + buf.write("\3\u00c1\3\u00c1\5\u00c1\u0a09\n\u00c1\3\u00c2\3\u00c2") buf.write("\3\u00c3\3\u00c3\3\u00c4\3\u00c4\3\u00c5\3\u00c5\3\u00c6") - buf.write("\3\u00c6\3\u00c7\3\u00c7\3\u00c7\3\u00c8\3\u00c8\3\u00c8") - buf.write("\3\u00c9\3\u00c9\3\u00c9\3\u00ca\3\u00ca\3\u00cb\3\u00cb") - buf.write("\3\u00cb\3\u00cc\3\u00cc\3\u00cd\3\u00cd\3\u00cd\3\u00ce") - buf.write("\3\u00ce\3\u00cf\3\u00cf\3\u00cf\3\u00d0\3\u00d0\3\u00d0") - buf.write("\3\u00d1\3\u00d1\3\u00d1\3\u00d2\3\u00d2\3\u00d2\3\u00d3") - buf.write("\3\u00d3\3\u00d3\3\u00d4\3\u00d4\3\u00d4\3\u00d5\3\u00d5") + buf.write("\3\u00c6\3\u00c7\3\u00c7\3\u00c8\3\u00c8\3\u00c8\3\u00c9") + buf.write("\3\u00c9\3\u00c9\3\u00ca\3\u00ca\3\u00ca\3\u00cb\3\u00cb") + buf.write("\3\u00cc\3\u00cc\3\u00cc\3\u00cd\3\u00cd\3\u00ce\3\u00ce") + buf.write("\3\u00ce\3\u00cf\3\u00cf\3\u00d0\3\u00d0\3\u00d0\3\u00d1") + buf.write("\3\u00d1\3\u00d1\3\u00d2\3\u00d2\3\u00d2\3\u00d3\3\u00d3") + buf.write("\3\u00d3\3\u00d4\3\u00d4\3\u00d4\3\u00d5\3\u00d5\3\u00d5") buf.write("\3\u00d6\3\u00d6\3\u00d7\3\u00d7\3\u00d8\3\u00d8\3\u00d9") - buf.write("\3\u00d9\3\u00da\3\u00da\3\u00da\3\u00db\3\u00db\3\u00dc") + buf.write("\3\u00d9\3\u00da\3\u00da\3\u00db\3\u00db\3\u00db\3\u00dc") buf.write("\3\u00dc\3\u00dd\3\u00dd\3\u00de\3\u00de\3\u00df\3\u00df") - buf.write("\3\u00e0\3\u00e0\3\u00e1\6\u00e1\u0a43\n\u00e1\r\u00e1") - buf.write("\16\u00e1\u0a44\3\u00e1\3\u00e1\7\u00e1\u0a49\n\u00e1") - buf.write("\f\u00e1\16\u00e1\u0a4c\13\u00e1\5\u00e1\u0a4e\n\u00e1") - buf.write("\3\u00e1\3\u00e1\6\u00e1\u0a52\n\u00e1\r\u00e1\16\u00e1") - buf.write("\u0a53\5\u00e1\u0a56\n\u00e1\3\u00e1\3\u00e1\5\u00e1\u0a5a") - buf.write("\n\u00e1\3\u00e1\6\u00e1\u0a5d\n\u00e1\r\u00e1\16\u00e1") - buf.write("\u0a5e\5\u00e1\u0a61\n\u00e1\3\u00e2\3\u00e2\3\u00e2\3") - buf.write("\u00e2\3\u00e2\5\u00e2\u0a68\n\u00e2\3\u00e3\3\u00e3\3") - buf.write("\u00e3\3\u00e3\7\u00e3\u0a6e\n\u00e3\f\u00e3\16\u00e3") - buf.write("\u0a71\13\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3") - buf.write("\7\u00e3\u0a78\n\u00e3\f\u00e3\16\u00e3\u0a7b\13\u00e3") - buf.write("\3\u00e3\5\u00e3\u0a7e\n\u00e3\3\u00e4\3\u00e4\7\u00e4") - buf.write("\u0a82\n\u00e4\f\u00e4\16\u00e4\u0a85\13\u00e4\3\u00e5") - buf.write("\3\u00e5\7\u00e5\u0a89\n\u00e5\f\u00e5\16\u00e5\u0a8c") - buf.write("\13\u00e5\3\u00e5\3\u00e5\3\u00e6\3\u00e6\3\u00e6\3\u00e6") - buf.write("\7\u00e6\u0a94\n\u00e6\f\u00e6\16\u00e6\u0a97\13\u00e6") - buf.write("\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e6\3\u00e7\6\u00e7") - buf.write("\u0a9f\n\u00e7\r\u00e7\16\u00e7\u0aa0\3\u00e7\3\u00e7") - buf.write("\3\u0a95\2\u00e8\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23") - buf.write("\13\25\f\27\r\31\16\33\17\35\20\37\21!\22#\23%\24\'\25") - buf.write(")\26+\27-\30/\31\61\32\63\33\65\34\67\359\36;\37= ?!A") - buf.write("\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]\60_\61a\62c\63e\64g\65") - buf.write("i\66k\67m8o9q:s;u{?}@\177A\u0081B\u0083C\u0085D\u0087") - buf.write("E\u0089F\u008bG\u008dH\u008fI\u0091J\u0093K\u0095L\u0097") - buf.write("M\u0099N\u009bO\u009dP\u009fQ\u00a1R\u00a3S\u00a5T\u00a7") - buf.write("U\u00a9V\u00abW\u00adX\u00afY\u00b1Z\u00b3[\u00b5\\\u00b7") - buf.write("]\u00b9^\u00bb_\u00bd`\u00bfa\u00c1b\u00c3c\u00c5d\u00c7") - buf.write("e\u00c9f\u00cbg\u00cdh\u00cfi\u00d1j\u00d3k\u00d5l\u00d7") - buf.write("m\u00d9n\u00dbo\u00ddp\u00dfq\u00e1r\u00e3s\u00e5t\u00e7") - buf.write("u\u00e9v\u00ebw\u00edx\u00efy\u00f1z\u00f3{\u00f5|\u00f7") - buf.write("}\u00f9~\u00fb\177\u00fd\u0080\u00ff\u0081\u0101\u0082") - buf.write("\u0103\u0083\u0105\u0084\u0107\u0085\u0109\u0086\u010b") - buf.write("\u0087\u010d\u0088\u010f\u0089\u0111\u008a\u0113\u008b") - buf.write("\u0115\u008c\u0117\u008d\u0119\u008e\u011b\u008f\u011d") - buf.write("\u0090\u011f\u0091\u0121\u0092\u0123\u0093\u0125\u0094") - buf.write("\u0127\u0095\u0129\u0096\u012b\u0097\u012d\u0098\u012f") - buf.write("\u0099\u0131\u009a\u0133\u009b\u0135\u009c\u0137\u009d") - buf.write("\u0139\u009e\u013b\u009f\u013d\u00a0\u013f\u00a1\u0141") - buf.write("\u00a2\u0143\u00a3\u0145\u00a4\u0147\u00a5\u0149\u00a6") - buf.write("\u014b\u00a7\u014d\u00a8\u014f\u00a9\u0151\u00aa\u0153") - buf.write("\u00ab\u0155\u00ac\u0157\u00ad\u0159\u00ae\u015b\u00af") - buf.write("\u015d\u00b0\u015f\u00b1\u0161\u00b2\u0163\u00b3\u0165") - buf.write("\u00b4\u0167\u00b5\u0169\u00b6\u016b\u00b7\u016d\u00b8") - buf.write("\u016f\u00b9\u0171\u00ba\u0173\u00bb\u0175\u00bc\u0177") - buf.write("\u00bd\u0179\u00be\u017b\u00bf\u017d\u00c0\u017f\u00c1") - buf.write("\u0181\u00c2\u0183\u00c3\u0185\u00c4\u0187\u00c5\u0189") - buf.write("\u00c6\u018b\u00c7\u018d\u00c8\u018f\u00c9\u0191\u00ca") - buf.write("\u0193\u00cb\u0195\u00cc\u0197\u00cd\u0199\u00ce\u019b") - buf.write("\u00cf\u019d\u00d0\u019f\u00d1\u01a1\u00d2\u01a3\u00d3") - buf.write("\u01a5\u00d4\u01a7\u00d5\u01a9\u00d6\u01ab\u00d7\u01ad") - buf.write("\u00d8\u01af\u00d9\u01b1\u00da\u01b3\u00db\u01b5\u00dc") - buf.write("\u01b7\u00dd\u01b9\u00de\u01bb\u00df\u01bd\u00e0\u01bf") - buf.write("\u00e1\u01c1\u00e2\u01c3\u00e3\u01c5\u00e4\u01c7\u00e5") - buf.write("\u01c9\u00e6\u01cb\u00e7\u01cd\u00e8\3\2\13\3\2\62;\4") - buf.write("\2GGgg\4\2--//\6\2\f\f\17\17$$^^\6\2\f\f\17\17))^^\5\2") - buf.write("C\\aac|\6\2\62;C\\aac|\4\2\f\f\17\17\5\2\13\f\17\17\"") - buf.write("\"\2\u0af7\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2") - buf.write("\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2") - buf.write("\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2") - buf.write("\2\33\3\2\2\2\2\35\3\2\2\2\2\37\3\2\2\2\2!\3\2\2\2\2#") - buf.write("\3\2\2\2\2%\3\2\2\2\2\'\3\2\2\2\2)\3\2\2\2\2+\3\2\2\2") - buf.write("\2-\3\2\2\2\2/\3\2\2\2\2\61\3\2\2\2\2\63\3\2\2\2\2\65") - buf.write("\3\2\2\2\2\67\3\2\2\2\29\3\2\2\2\2;\3\2\2\2\2=\3\2\2\2") - buf.write("\2?\3\2\2\2\2A\3\2\2\2\2C\3\2\2\2\2E\3\2\2\2\2G\3\2\2") - buf.write("\2\2I\3\2\2\2\2K\3\2\2\2\2M\3\2\2\2\2O\3\2\2\2\2Q\3\2") - buf.write("\2\2\2S\3\2\2\2\2U\3\2\2\2\2W\3\2\2\2\2Y\3\2\2\2\2[\3") - buf.write("\2\2\2\2]\3\2\2\2\2_\3\2\2\2\2a\3\2\2\2\2c\3\2\2\2\2e") - buf.write("\3\2\2\2\2g\3\2\2\2\2i\3\2\2\2\2k\3\2\2\2\2m\3\2\2\2\2") - buf.write("o\3\2\2\2\2q\3\2\2\2\2s\3\2\2\2\2u\3\2\2\2\2w\3\2\2\2") - buf.write("\2y\3\2\2\2\2{\3\2\2\2\2}\3\2\2\2\2\177\3\2\2\2\2\u0081") - buf.write("\3\2\2\2\2\u0083\3\2\2\2\2\u0085\3\2\2\2\2\u0087\3\2\2") - buf.write("\2\2\u0089\3\2\2\2\2\u008b\3\2\2\2\2\u008d\3\2\2\2\2\u008f") - buf.write("\3\2\2\2\2\u0091\3\2\2\2\2\u0093\3\2\2\2\2\u0095\3\2\2") - buf.write("\2\2\u0097\3\2\2\2\2\u0099\3\2\2\2\2\u009b\3\2\2\2\2\u009d") - buf.write("\3\2\2\2\2\u009f\3\2\2\2\2\u00a1\3\2\2\2\2\u00a3\3\2\2") - buf.write("\2\2\u00a5\3\2\2\2\2\u00a7\3\2\2\2\2\u00a9\3\2\2\2\2\u00ab") - buf.write("\3\2\2\2\2\u00ad\3\2\2\2\2\u00af\3\2\2\2\2\u00b1\3\2\2") - buf.write("\2\2\u00b3\3\2\2\2\2\u00b5\3\2\2\2\2\u00b7\3\2\2\2\2\u00b9") - buf.write("\3\2\2\2\2\u00bb\3\2\2\2\2\u00bd\3\2\2\2\2\u00bf\3\2\2") - buf.write("\2\2\u00c1\3\2\2\2\2\u00c3\3\2\2\2\2\u00c5\3\2\2\2\2\u00c7") - buf.write("\3\2\2\2\2\u00c9\3\2\2\2\2\u00cb\3\2\2\2\2\u00cd\3\2\2") - buf.write("\2\2\u00cf\3\2\2\2\2\u00d1\3\2\2\2\2\u00d3\3\2\2\2\2\u00d5") - buf.write("\3\2\2\2\2\u00d7\3\2\2\2\2\u00d9\3\2\2\2\2\u00db\3\2\2") - buf.write("\2\2\u00dd\3\2\2\2\2\u00df\3\2\2\2\2\u00e1\3\2\2\2\2\u00e3") - buf.write("\3\2\2\2\2\u00e5\3\2\2\2\2\u00e7\3\2\2\2\2\u00e9\3\2\2") - buf.write("\2\2\u00eb\3\2\2\2\2\u00ed\3\2\2\2\2\u00ef\3\2\2\2\2\u00f1") - buf.write("\3\2\2\2\2\u00f3\3\2\2\2\2\u00f5\3\2\2\2\2\u00f7\3\2\2") - buf.write("\2\2\u00f9\3\2\2\2\2\u00fb\3\2\2\2\2\u00fd\3\2\2\2\2\u00ff") - buf.write("\3\2\2\2\2\u0101\3\2\2\2\2\u0103\3\2\2\2\2\u0105\3\2\2") - buf.write("\2\2\u0107\3\2\2\2\2\u0109\3\2\2\2\2\u010b\3\2\2\2\2\u010d") - buf.write("\3\2\2\2\2\u010f\3\2\2\2\2\u0111\3\2\2\2\2\u0113\3\2\2") - buf.write("\2\2\u0115\3\2\2\2\2\u0117\3\2\2\2\2\u0119\3\2\2\2\2\u011b") - buf.write("\3\2\2\2\2\u011d\3\2\2\2\2\u011f\3\2\2\2\2\u0121\3\2\2") - buf.write("\2\2\u0123\3\2\2\2\2\u0125\3\2\2\2\2\u0127\3\2\2\2\2\u0129") - buf.write("\3\2\2\2\2\u012b\3\2\2\2\2\u012d\3\2\2\2\2\u012f\3\2\2") - buf.write("\2\2\u0131\3\2\2\2\2\u0133\3\2\2\2\2\u0135\3\2\2\2\2\u0137") - buf.write("\3\2\2\2\2\u0139\3\2\2\2\2\u013b\3\2\2\2\2\u013d\3\2\2") - buf.write("\2\2\u013f\3\2\2\2\2\u0141\3\2\2\2\2\u0143\3\2\2\2\2\u0145") - buf.write("\3\2\2\2\2\u0147\3\2\2\2\2\u0149\3\2\2\2\2\u014b\3\2\2") - buf.write("\2\2\u014d\3\2\2\2\2\u014f\3\2\2\2\2\u0151\3\2\2\2\2\u0153") - buf.write("\3\2\2\2\2\u0155\3\2\2\2\2\u0157\3\2\2\2\2\u0159\3\2\2") - buf.write("\2\2\u015b\3\2\2\2\2\u015d\3\2\2\2\2\u015f\3\2\2\2\2\u0161") - buf.write("\3\2\2\2\2\u0163\3\2\2\2\2\u0165\3\2\2\2\2\u0167\3\2\2") - buf.write("\2\2\u0169\3\2\2\2\2\u016b\3\2\2\2\2\u016d\3\2\2\2\2\u016f") - buf.write("\3\2\2\2\2\u0171\3\2\2\2\2\u0173\3\2\2\2\2\u0175\3\2\2") - buf.write("\2\2\u0177\3\2\2\2\2\u0179\3\2\2\2\2\u017b\3\2\2\2\2\u017d") - buf.write("\3\2\2\2\2\u017f\3\2\2\2\2\u0181\3\2\2\2\2\u0183\3\2\2") - buf.write("\2\2\u0185\3\2\2\2\2\u0187\3\2\2\2\2\u0189\3\2\2\2\2\u018b") - buf.write("\3\2\2\2\2\u018d\3\2\2\2\2\u018f\3\2\2\2\2\u0191\3\2\2") - buf.write("\2\2\u0193\3\2\2\2\2\u0195\3\2\2\2\2\u0197\3\2\2\2\2\u0199") - buf.write("\3\2\2\2\2\u019b\3\2\2\2\2\u019d\3\2\2\2\2\u019f\3\2\2") - buf.write("\2\2\u01a1\3\2\2\2\2\u01a3\3\2\2\2\2\u01a5\3\2\2\2\2\u01a7") - buf.write("\3\2\2\2\2\u01a9\3\2\2\2\2\u01ab\3\2\2\2\2\u01ad\3\2\2") - buf.write("\2\2\u01af\3\2\2\2\2\u01b1\3\2\2\2\2\u01b3\3\2\2\2\2\u01b5") - buf.write("\3\2\2\2\2\u01b7\3\2\2\2\2\u01b9\3\2\2\2\2\u01bb\3\2\2") - buf.write("\2\2\u01bd\3\2\2\2\2\u01bf\3\2\2\2\2\u01c1\3\2\2\2\2\u01c3") - buf.write("\3\2\2\2\2\u01c5\3\2\2\2\2\u01c7\3\2\2\2\2\u01c9\3\2\2") - buf.write("\2\2\u01cb\3\2\2\2\2\u01cd\3\2\2\2\3\u01cf\3\2\2\2\5\u01d3") - buf.write("\3\2\2\2\7\u01d7\3\2\2\2\t\u01db\3\2\2\2\13\u01e0\3\2") - buf.write("\2\2\r\u01e5\3\2\2\2\17\u01ea\3\2\2\2\21\u01f0\3\2\2\2") - buf.write("\23\u01f5\3\2\2\2\25\u01fa\3\2\2\2\27\u01ff\3\2\2\2\31") - buf.write("\u0205\3\2\2\2\33\u020b\3\2\2\2\35\u0211\3\2\2\2\37\u0215") - buf.write("\3\2\2\2!\u021a\3\2\2\2#\u021d\3\2\2\2%\u0221\3\2\2\2") - buf.write("\'\u0225\3\2\2\2)\u022a\3\2\2\2+\u022f\3\2\2\2-\u0234") - buf.write("\3\2\2\2/\u0239\3\2\2\2\61\u023f\3\2\2\2\63\u0245\3\2") - buf.write("\2\2\65\u024b\3\2\2\2\67\u0250\3\2\2\29\u0256\3\2\2\2") - buf.write(";\u025c\3\2\2\2=\u0260\3\2\2\2?\u0265\3\2\2\2A\u026b\3") - buf.write("\2\2\2C\u026f\3\2\2\2E\u0274\3\2\2\2G\u027a\3\2\2\2I\u028f") - buf.write("\3\2\2\2K\u029e\3\2\2\2M\u02a0\3\2\2\2O\u02a5\3\2\2\2") - buf.write("Q\u02aa\3\2\2\2S\u02b5\3\2\2\2U\u02bb\3\2\2\2W\u02c0\3") - buf.write("\2\2\2Y\u02c9\3\2\2\2[\u02ce\3\2\2\2]\u02d3\3\2\2\2_\u02ea") - buf.write("\3\2\2\2a\u02fb\3\2\2\2c\u02fd\3\2\2\2e\u030d\3\2\2\2") - buf.write("g\u031a\3\2\2\2i\u031c\3\2\2\2k\u0322\3\2\2\2m\u032b\3") - buf.write("\2\2\2o\u0334\3\2\2\2q\u0339\3\2\2\2s\u033e\3\2\2\2u\u0343") - buf.write("\3\2\2\2w\u0347\3\2\2\2y\u034c\3\2\2\2{\u0350\3\2\2\2") - buf.write("}\u0363\3\2\2\2\177\u0374\3\2\2\2\u0081\u0376\3\2\2\2") - buf.write("\u0083\u037f\3\2\2\2\u0085\u0383\3\2\2\2\u0087\u038a\3") - buf.write("\2\2\2\u0089\u038e\3\2\2\2\u008b\u0395\3\2\2\2\u008d\u0399") - buf.write("\3\2\2\2\u008f\u039d\3\2\2\2\u0091\u03ae\3\2\2\2\u0093") - buf.write("\u03b0\3\2\2\2\u0095\u03b7\3\2\2\2\u0097\u03bc\3\2\2\2") - buf.write("\u0099\u03c3\3\2\2\2\u009b\u03df\3\2\2\2\u009d\u03f5\3") - buf.write("\2\2\2\u009f\u0406\3\2\2\2\u00a1\u041b\3\2\2\2\u00a3\u042a") - buf.write("\3\2\2\2\u00a5\u042c\3\2\2\2\u00a7\u0445\3\2\2\2\u00a9") - buf.write("\u0447\3\2\2\2\u00ab\u0464\3\2\2\2\u00ad\u0474\3\2\2\2") - buf.write("\u00af\u0476\3\2\2\2\u00b1\u047d\3\2\2\2\u00b3\u0485\3") - buf.write("\2\2\2\u00b5\u048c\3\2\2\2\u00b7\u0496\3\2\2\2\u00b9\u04bb") - buf.write("\3\2\2\2\u00bb\u04bd\3\2\2\2\u00bd\u04c9\3\2\2\2\u00bf") - buf.write("\u04ed\3\2\2\2\u00c1\u0501\3\2\2\2\u00c3\u0503\3\2\2\2") - buf.write("\u00c5\u0516\3\2\2\2\u00c7\u0518\3\2\2\2\u00c9\u0520\3") - buf.write("\2\2\2\u00cb\u0524\3\2\2\2\u00cd\u052a\3\2\2\2\u00cf\u0531") - buf.write("\3\2\2\2\u00d1\u0545\3\2\2\2\u00d3\u055d\3\2\2\2\u00d5") - buf.write("\u055f\3\2\2\2\u00d7\u0574\3\2\2\2\u00d9\u0585\3\2\2\2") - buf.write("\u00db\u0594\3\2\2\2\u00dd\u0596\3\2\2\2\u00df\u059d\3") - buf.write("\2\2\2\u00e1\u05a8\3\2\2\2\u00e3\u05b2\3\2\2\2\u00e5\u05be") - buf.write("\3\2\2\2\u00e7\u05c8\3\2\2\2\u00e9\u05e6\3\2\2\2\u00eb") - buf.write("\u05e8\3\2\2\2\u00ed\u05ec\3\2\2\2\u00ef\u05f2\3\2\2\2") - buf.write("\u00f1\u05f8\3\2\2\2\u00f3\u05fe\3\2\2\2\u00f5\u0603\3") - buf.write("\2\2\2\u00f7\u0609\3\2\2\2\u00f9\u061d\3\2\2\2\u00fb\u061f") - buf.write("\3\2\2\2\u00fd\u0624\3\2\2\2\u00ff\u062c\3\2\2\2\u0101") - buf.write("\u0633\3\2\2\2\u0103\u0639\3\2\2\2\u0105\u0644\3\2\2\2") - buf.write("\u0107\u0650\3\2\2\2\u0109\u065d\3\2\2\2\u010b\u066b\3") - buf.write("\2\2\2\u010d\u0678\3\2\2\2\u010f\u0686\3\2\2\2\u0111\u0691") - buf.write("\3\2\2\2\u0113\u069c\3\2\2\2\u0115\u06a7\3\2\2\2\u0117") - buf.write("\u06b2\3\2\2\2\u0119\u06c5\3\2\2\2\u011b\u0702\3\2\2\2") - buf.write("\u011d\u0704\3\2\2\2\u011f\u070f\3\2\2\2\u0121\u073f\3") - buf.write("\2\2\2\u0123\u0754\3\2\2\2\u0125\u0756\3\2\2\2\u0127\u0759") - buf.write("\3\2\2\2\u0129\u075e\3\2\2\2\u012b\u0764\3\2\2\2\u012d") - buf.write("\u0768\3\2\2\2\u012f\u076b\3\2\2\2\u0131\u0771\3\2\2\2") - buf.write("\u0133\u077a\3\2\2\2\u0135\u078d\3\2\2\2\u0137\u078f\3") - buf.write("\2\2\2\u0139\u0794\3\2\2\2\u013b\u079c\3\2\2\2\u013d\u07a3") - buf.write("\3\2\2\2\u013f\u07aa\3\2\2\2\u0141\u07b2\3\2\2\2\u0143") - buf.write("\u07ba\3\2\2\2\u0145\u07c1\3\2\2\2\u0147\u07c6\3\2\2\2") - buf.write("\u0149\u07d1\3\2\2\2\u014b\u07da\3\2\2\2\u014d\u07e2\3") - buf.write("\2\2\2\u014f\u07ec\3\2\2\2\u0151\u07f1\3\2\2\2\u0153\u0804") - buf.write("\3\2\2\2\u0155\u0806\3\2\2\2\u0157\u080e\3\2\2\2\u0159") - buf.write("\u0823\3\2\2\2\u015b\u083c\3\2\2\2\u015d\u0855\3\2\2\2") - buf.write("\u015f\u0869\3\2\2\2\u0161\u0882\3\2\2\2\u0163\u089b\3") - buf.write("\2\2\2\u0165\u08b2\3\2\2\2\u0167\u08c7\3\2\2\2\u0169\u08da") - buf.write("\3\2\2\2\u016b\u08ef\3\2\2\2\u016d\u0904\3\2\2\2\u016f") - buf.write("\u091d\3\2\2\2\u0171\u0932\3\2\2\2\u0173\u0947\3\2\2\2") - buf.write("\u0175\u095d\3\2\2\2\u0177\u0971\3\2\2\2\u0179\u09a3\3") - buf.write("\2\2\2\u017b\u09c1\3\2\2\2\u017d\u09d5\3\2\2\2\u017f\u09f3") - buf.write("\3\2\2\2\u0181\u09f5\3\2\2\2\u0183\u09f7\3\2\2\2\u0185") - buf.write("\u09f9\3\2\2\2\u0187\u09fb\3\2\2\2\u0189\u09fd\3\2\2\2") - buf.write("\u018b\u09ff\3\2\2\2\u018d\u0a01\3\2\2\2\u018f\u0a04\3") - buf.write("\2\2\2\u0191\u0a07\3\2\2\2\u0193\u0a0a\3\2\2\2\u0195\u0a0c") - buf.write("\3\2\2\2\u0197\u0a0f\3\2\2\2\u0199\u0a11\3\2\2\2\u019b") - buf.write("\u0a14\3\2\2\2\u019d\u0a16\3\2\2\2\u019f\u0a19\3\2\2\2") - buf.write("\u01a1\u0a1c\3\2\2\2\u01a3\u0a1f\3\2\2\2\u01a5\u0a22\3") - buf.write("\2\2\2\u01a7\u0a25\3\2\2\2\u01a9\u0a28\3\2\2\2\u01ab\u0a2a") - buf.write("\3\2\2\2\u01ad\u0a2c\3\2\2\2\u01af\u0a2e\3\2\2\2\u01b1") - buf.write("\u0a30\3\2\2\2\u01b3\u0a32\3\2\2\2\u01b5\u0a35\3\2\2\2") - buf.write("\u01b7\u0a37\3\2\2\2\u01b9\u0a39\3\2\2\2\u01bb\u0a3b\3") - buf.write("\2\2\2\u01bd\u0a3d\3\2\2\2\u01bf\u0a3f\3\2\2\2\u01c1\u0a55") - buf.write("\3\2\2\2\u01c3\u0a67\3\2\2\2\u01c5\u0a7d\3\2\2\2\u01c7") - buf.write("\u0a7f\3\2\2\2\u01c9\u0a86\3\2\2\2\u01cb\u0a8f\3\2\2\2") - buf.write("\u01cd\u0a9e\3\2\2\2\u01cf\u01d0\7u\2\2\u01d0\u01d1\7") - buf.write("k\2\2\u01d1\u01d2\7p\2\2\u01d2\4\3\2\2\2\u01d3\u01d4\7") - buf.write("e\2\2\u01d4\u01d5\7q\2\2\u01d5\u01d6\7u\2\2\u01d6\6\3") - buf.write("\2\2\2\u01d7\u01d8\7v\2\2\u01d8\u01d9\7c\2\2\u01d9\u01da") - buf.write("\7p\2\2\u01da\b\3\2\2\2\u01db\u01dc\7c\2\2\u01dc\u01dd") - buf.write("\7u\2\2\u01dd\u01de\7k\2\2\u01de\u01df\7p\2\2\u01df\n") - buf.write("\3\2\2\2\u01e0\u01e1\7c\2\2\u01e1\u01e2\7e\2\2\u01e2\u01e3") - buf.write("\7q\2\2\u01e3\u01e4\7u\2\2\u01e4\f\3\2\2\2\u01e5\u01e6") - buf.write("\7c\2\2\u01e6\u01e7\7v\2\2\u01e7\u01e8\7c\2\2\u01e8\u01e9") - buf.write("\7p\2\2\u01e9\16\3\2\2\2\u01ea\u01eb\7c\2\2\u01eb\u01ec") - buf.write("\7v\2\2\u01ec\u01ed\7c\2\2\u01ed\u01ee\7p\2\2\u01ee\u01ef") - buf.write("\7\64\2\2\u01ef\20\3\2\2\2\u01f0\u01f1\7u\2\2\u01f1\u01f2") - buf.write("\7k\2\2\u01f2\u01f3\7p\2\2\u01f3\u01f4\7j\2\2\u01f4\22") - buf.write("\3\2\2\2\u01f5\u01f6\7e\2\2\u01f6\u01f7\7q\2\2\u01f7\u01f8") - buf.write("\7u\2\2\u01f8\u01f9\7j\2\2\u01f9\24\3\2\2\2\u01fa\u01fb") - buf.write("\7v\2\2\u01fb\u01fc\7c\2\2\u01fc\u01fd\7p\2\2\u01fd\u01fe") - buf.write("\7j\2\2\u01fe\26\3\2\2\2\u01ff\u0200\7c\2\2\u0200\u0201") - buf.write("\7u\2\2\u0201\u0202\7k\2\2\u0202\u0203\7p\2\2\u0203\u0204") - buf.write("\7j\2\2\u0204\30\3\2\2\2\u0205\u0206\7c\2\2\u0206\u0207") - buf.write("\7e\2\2\u0207\u0208\7q\2\2\u0208\u0209\7u\2\2\u0209\u020a") - buf.write("\7j\2\2\u020a\32\3\2\2\2\u020b\u020c\7c\2\2\u020c\u020d") - buf.write("\7v\2\2\u020d\u020e\7c\2\2\u020e\u020f\7p\2\2\u020f\u0210") - buf.write("\7j\2\2\u0210\34\3\2\2\2\u0211\u0212\7c\2\2\u0212\u0213") - buf.write("\7d\2\2\u0213\u0214\7u\2\2\u0214\36\3\2\2\2\u0215\u0216") - buf.write("\7u\2\2\u0216\u0217\7s\2\2\u0217\u0218\7t\2\2\u0218\u0219") - buf.write("\7v\2\2\u0219 \3\2\2\2\u021a\u021b\7n\2\2\u021b\u021c") - buf.write("\7p\2\2\u021c\"\3\2\2\2\u021d\u021e\7n\2\2\u021e\u021f") - buf.write("\7q\2\2\u021f\u0220\7i\2\2\u0220$\3\2\2\2\u0221\u0222") - buf.write("\7g\2\2\u0222\u0223\7z\2\2\u0223\u0224\7r\2\2\u0224&\3") - buf.write("\2\2\2\u0225\u0226\7u\2\2\u0226\u0227\7o\2\2\u0227\u0228") - buf.write("\7k\2\2\u0228\u0229\7p\2\2\u0229(\3\2\2\2\u022a\u022b") - buf.write("\7u\2\2\u022b\u022c\7o\2\2\u022c\u022d\7c\2\2\u022d\u022e") - buf.write("\7z\2\2\u022e*\3\2\2\2\u022f\u0230\7v\2\2\u0230\u0231") - buf.write("\7o\2\2\u0231\u0232\7k\2\2\u0232\u0233\7p\2\2\u0233,\3") - buf.write("\2\2\2\u0234\u0235\7v\2\2\u0235\u0236\7o\2\2\u0236\u0237") - buf.write("\7c\2\2\u0237\u0238\7z\2\2\u0238.\3\2\2\2\u0239\u023a") - buf.write("\7v\2\2\u023a\u023b\7p\2\2\u023b\u023c\7q\2\2\u023c\u023d") - buf.write("\7t\2\2\u023d\u023e\7o\2\2\u023e\60\3\2\2\2\u023f\u0240") - buf.write("\7u\2\2\u0240\u0241\7p\2\2\u0241\u0242\7q\2\2\u0242\u0243") - buf.write("\7t\2\2\u0243\u0244\7o\2\2\u0244\62\3\2\2\2\u0245\u0246") - buf.write("\7h\2\2\u0246\u0247\7n\2\2\u0247\u0248\7q\2\2\u0248\u0249") - buf.write("\7q\2\2\u0249\u024a\7t\2\2\u024a\64\3\2\2\2\u024b\u024c") - buf.write("\7e\2\2\u024c\u024d\7g\2\2\u024d\u024e\7k\2\2\u024e\u024f") - buf.write("\7n\2\2\u024f\66\3\2\2\2\u0250\u0251\7t\2\2\u0251\u0252") - buf.write("\7q\2\2\u0252\u0253\7w\2\2\u0253\u0254\7p\2\2\u0254\u0255") - buf.write("\7f\2\2\u02558\3\2\2\2\u0256\u0257\7i\2\2\u0257\u0258") - buf.write("\7c\2\2\u0258\u0259\7o\2\2\u0259\u025a\7o\2\2\u025a\u025b") - buf.write("\7c\2\2\u025b:\3\2\2\2\u025c\u025d\7r\2\2\u025d\u025e") - buf.write("\7q\2\2\u025e\u025f\7y\2\2\u025f<\3\2\2\2\u0260\u0261") - buf.write("\7u\2\2\u0261\u0262\7k\2\2\u0262\u0263\7i\2\2\u0263\u0264") - buf.write("\7o\2\2\u0264>\3\2\2\2\u0265\u0266\7e\2\2\u0266\u0267") - buf.write("\7n\2\2\u0267\u0268\7c\2\2\u0268\u0269\7o\2\2\u0269\u026a") - buf.write("\7r\2\2\u026a@\3\2\2\2\u026b\u026c\7h\2\2\u026c\u026d") - buf.write("\7h\2\2\u026d\u026e\7v\2\2\u026eB\3\2\2\2\u026f\u0270") - buf.write("\7k\2\2\u0270\u0271\7h\2\2\u0271\u0272\7h\2\2\u0272\u0273") - buf.write("\7v\2\2\u0273D\3\2\2\2\u0274\u0275\7c\2\2\u0275\u0276") - buf.write("\7p\2\2\u0276\u0277\7i\2\2\u0277\u0278\7n\2\2\u0278\u0279") - buf.write("\7g\2\2\u0279F\3\2\2\2\u027a\u027b\7r\2\2\u027b\u027c") - buf.write("\7t\2\2\u027c\u027d\7k\2\2\u027d\u027e\7p\2\2\u027e\u027f") - buf.write("\7v\2\2\u027fH\3\2\2\2\u0280\u0281\7r\2\2\u0281\u0282") - buf.write("\7t\2\2\u0282\u0283\7k\2\2\u0283\u0284\7p\2\2\u0284\u0285") - buf.write("\7v\2\2\u0285\u0286\7a\2\2\u0286\u0287\7u\2\2\u0287\u0288") - buf.write("\7j\2\2\u0288\u0289\7c\2\2\u0289\u028a\7r\2\2\u028a\u0290") - buf.write("\7g\2\2\u028b\u028c\7r\2\2\u028c\u028d\7u\2\2\u028d\u028e") - buf.write("\7j\2\2\u028e\u0290\7r\2\2\u028f\u0280\3\2\2\2\u028f\u028b") - buf.write("\3\2\2\2\u0290J\3\2\2\2\u0291\u0292\7p\2\2\u0292\u0293") - buf.write("\7x\2\2\u0293\u029f\7n\2\2\u0294\u0295\7p\2\2\u0295\u0296") - buf.write("\7c\2\2\u0296\u0297\7p\2\2\u0297\u0298\7a\2\2\u0298\u0299") - buf.write("\7v\2\2\u0299\u029a\7q\2\2\u029a\u029b\7a\2\2\u029b\u029c") - buf.write("\7p\2\2\u029c\u029d\7w\2\2\u029d\u029f\7o\2\2\u029e\u0291") - buf.write("\3\2\2\2\u029e\u0294\3\2\2\2\u029fL\3\2\2\2\u02a0\u02a1") - buf.write("\7n\2\2\u02a1\u02a2\7g\2\2\u02a2\u02a3\7t\2\2\u02a3\u02a4") - buf.write("\7r\2\2\u02a4N\3\2\2\2\u02a5\u02a6\7u\2\2\u02a6\u02a7") - buf.write("\7v\2\2\u02a7\u02a8\7g\2\2\u02a8\u02a9\7r\2\2\u02a9P\3") - buf.write("\2\2\2\u02aa\u02ab\7u\2\2\u02ab\u02ac\7o\2\2\u02ac\u02ad") - buf.write("\7q\2\2\u02ad\u02ae\7q\2\2\u02ae\u02af\7v\2\2\u02af\u02b0") - buf.write("\7j\2\2\u02b0\u02b1\7u\2\2\u02b1\u02b2\7v\2\2\u02b2\u02b3") - buf.write("\7g\2\2\u02b3\u02b4\7r\2\2\u02b4R\3\2\2\2\u02b5\u02b6") - buf.write("\7h\2\2\u02b6\u02b7\7t\2\2\u02b7\u02b8\7c\2\2\u02b8\u02b9") - buf.write("\7e\2\2\u02b9\u02ba\7v\2\2\u02baT\3\2\2\2\u02bb\u02bc") - buf.write("\7t\2\2\u02bc\u02bd\7g\2\2\u02bd\u02be\7n\2\2\u02be\u02bf") - buf.write("\7w\2\2\u02bfV\3\2\2\2\u02c0\u02c1\7u\2\2\u02c1\u02c2") - buf.write("\7q\2\2\u02c2\u02c3\7h\2\2\u02c3\u02c4\7v\2\2\u02c4\u02c5") - buf.write("\7r\2\2\u02c5\u02c6\7n\2\2\u02c6\u02c7\7w\2\2\u02c7\u02c8") - buf.write("\7u\2\2\u02c8X\3\2\2\2\u02c9\u02ca\7i\2\2\u02ca\u02cb") - buf.write("\7g\2\2\u02cb\u02cc\7n\2\2\u02cc\u02cd\7w\2\2\u02cdZ\3") - buf.write("\2\2\2\u02ce\u02cf\7u\2\2\u02cf\u02d0\7k\2\2\u02d0\u02d1") - buf.write("\7i\2\2\u02d1\u02d2\7p\2\2\u02d2\\\3\2\2\2\u02d3\u02d4") - buf.write("\7o\2\2\u02d4\u02d5\7c\2\2\u02d5\u02d6\7r\2\2\u02d6^\3") - buf.write("\2\2\2\u02d7\u02d8\7g\2\2\u02d8\u02d9\7|\2\2\u02d9\u02da") - buf.write("\7e\2\2\u02da\u02db\7q\2\2\u02db\u02dc\7p\2\2\u02dc\u02dd") - buf.write("\7x\2\2\u02dd\u02de\7q\2\2\u02de\u02df\7n\2\2\u02df\u02e0") - buf.write("\7w\2\2\u02e0\u02e1\7v\2\2\u02e1\u02e2\7k\2\2\u02e2\u02e3") - buf.write("\7q\2\2\u02e3\u02eb\7p\2\2\u02e4\u02e5\7g\2\2\u02e5\u02e6") - buf.write("\7|\2\2\u02e6\u02e7\7e\2\2\u02e7\u02e8\7q\2\2\u02e8\u02e9") - buf.write("\7p\2\2\u02e9\u02eb\7x\2\2\u02ea\u02d7\3\2\2\2\u02ea\u02e4") - buf.write("\3\2\2\2\u02eb`\3\2\2\2\u02ec\u02ed\7e\2\2\u02ed\u02ee") - buf.write("\7q\2\2\u02ee\u02ef\7p\2\2\u02ef\u02f0\7x\2\2\u02f0\u02f1") - buf.write("\7q\2\2\u02f1\u02f2\7n\2\2\u02f2\u02f3\7w\2\2\u02f3\u02f4") - buf.write("\7v\2\2\u02f4\u02f5\7k\2\2\u02f5\u02f6\7q\2\2\u02f6\u02fc") - buf.write("\7p\2\2\u02f7\u02f8\7e\2\2\u02f8\u02f9\7q\2\2\u02f9\u02fa") - buf.write("\7p\2\2\u02fa\u02fc\7x\2\2\u02fb\u02ec\3\2\2\2\u02fb\u02f7") - buf.write("\3\2\2\2\u02fcb\3\2\2\2\u02fd\u02fe\7u\2\2\u02fe\u02ff") - buf.write("\7y\2\2\u02ff\u0300\7c\2\2\u0300\u0301\7r\2\2\u0301d\3") - buf.write("\2\2\2\u0302\u0303\7r\2\2\u0303\u0304\7g\2\2\u0304\u0305") - buf.write("\7t\2\2\u0305\u0306\7o\2\2\u0306\u0307\7w\2\2\u0307\u0308") - buf.write("\7v\2\2\u0308\u030e\7g\2\2\u0309\u030a\7r\2\2\u030a\u030b") - buf.write("\7g\2\2\u030b\u030c\7t\2\2\u030c\u030e\7o\2\2\u030d\u0302") - buf.write("\3\2\2\2\u030d\u0309\3\2\2\2\u030ef\3\2\2\2\u030f\u0310") - buf.write("\7t\2\2\u0310\u0311\7g\2\2\u0311\u0312\7u\2\2\u0312\u0313") - buf.write("\7j\2\2\u0313\u0314\7c\2\2\u0314\u0315\7r\2\2\u0315\u031b") - buf.write("\7g\2\2\u0316\u0317\7t\2\2\u0317\u0318\7u\2\2\u0318\u0319") - buf.write("\7j\2\2\u0319\u031b\7r\2\2\u031a\u030f\3\2\2\2\u031a\u0316") - buf.write("\3\2\2\2\u031bh\3\2\2\2\u031c\u031d\7t\2\2\u031d\u031e") - buf.write("\7c\2\2\u031e\u031f\7p\2\2\u031f\u0320\7i\2\2\u0320\u0321") - buf.write("\7g\2\2\u0321j\3\2\2\2\u0322\u0323\7n\2\2\u0323\u0324") - buf.write("\7k\2\2\u0324\u0325\7p\2\2\u0325\u0326\7u\2\2\u0326\u0327") - buf.write("\7r\2\2\u0327\u0328\7c\2\2\u0328\u0329\7e\2\2\u0329\u032a") - buf.write("\7g\2\2\u032al\3\2\2\2\u032b\u032c\7n\2\2\u032c\u032d") - buf.write("\7q\2\2\u032d\u032e\7i\2\2\u032e\u032f\7u\2\2\u032f\u0330") - buf.write("\7r\2\2\u0330\u0331\7c\2\2\u0331\u0332\7e\2\2\u0332\u0333") - buf.write("\7g\2\2\u0333n\3\2\2\2\u0334\u0335\7v\2\2\u0335\u0336") - buf.write("\7q\2\2\u0336\u0337\7r\2\2\u0337\u0338\7m\2\2\u0338p\3") - buf.write("\2\2\2\u0339\u033a\7d\2\2\u033a\u033b\7q\2\2\u033b\u033c") - buf.write("\7v\2\2\u033c\u033d\7m\2\2\u033dr\3\2\2\2\u033e\u033f") - buf.write("\7r\2\2\u033f\u0340\7k\2\2\u0340\u0341\7p\2\2\u0341\u0342") - buf.write("\7x\2\2\u0342t\3\2\2\2\u0343\u0344\7u\2\2\u0344\u0345") - buf.write("\7w\2\2\u0345\u0346\7o\2\2\u0346v\3\2\2\2\u0347\u0348") - buf.write("\7o\2\2\u0348\u0349\7g\2\2\u0349\u034a\7c\2\2\u034a\u034b") - buf.write("\7p\2\2\u034bx\3\2\2\2\u034c\u034d\7u\2\2\u034d\u034e") - buf.write("\7v\2\2\u034e\u034f\7f\2\2\u034fz\3\2\2\2\u0350\u0351") - buf.write("\7x\2\2\u0351\u0352\7c\2\2\u0352\u0353\7t\2\2\u0353|\3") - buf.write("\2\2\2\u0354\u0355\7s\2\2\u0355\u0356\7w\2\2\u0356\u0357") - buf.write("\7c\2\2\u0357\u0358\7t\2\2\u0358\u0359\7v\2\2\u0359\u035a") - buf.write("\7k\2\2\u035a\u035b\7n\2\2\u035b\u0364\7g\2\2\u035c\u035d") - buf.write("\7s\2\2\u035d\u035e\7w\2\2\u035e\u035f\7c\2\2\u035f\u0360") - buf.write("\7t\2\2\u0360\u0361\7v\2\2\u0361\u0362\7k\2\2\u0362\u0364") - buf.write("\7n\2\2\u0363\u0354\3\2\2\2\u0363\u035c\3\2\2\2\u0364") - buf.write("~\3\2\2\2\u0365\u0366\7r\2\2\u0366\u0367\7g\2\2\u0367") - buf.write("\u0368\7t\2\2\u0368\u0369\7e\2\2\u0369\u036a\7g\2\2\u036a") - buf.write("\u036b\7p\2\2\u036b\u036c\7v\2\2\u036c\u036d\7k\2\2\u036d") - buf.write("\u036e\7n\2\2\u036e\u0375\7g\2\2\u036f\u0370\7r\2\2\u0370") - buf.write("\u0371\7t\2\2\u0371\u0372\7e\2\2\u0372\u0373\7p\2\2\u0373") - buf.write("\u0375\7v\2\2\u0374\u0365\3\2\2\2\u0374\u036f\3\2\2\2") - buf.write("\u0375\u0080\3\2\2\2\u0376\u0377\7s\2\2\u0377\u0378\7") - buf.write("w\2\2\u0378\u0379\7c\2\2\u0379\u037a\7p\2\2\u037a\u037b") - buf.write("\7v\2\2\u037b\u037c\7k\2\2\u037c\u037d\7n\2\2\u037d\u037e") - buf.write("\7g\2\2\u037e\u0082\3\2\2\2\u037f\u0380\7f\2\2\u0380\u0381") - buf.write("\7q\2\2\u0381\u0382\7v\2\2\u0382\u0084\3\2\2\2\u0383\u0384") - buf.write("\7o\2\2\u0384\u0385\7q\2\2\u0385\u0386\7o\2\2\u0386\u0387") - buf.write("\7g\2\2\u0387\u0388\7p\2\2\u0388\u0389\7v\2\2\u0389\u0086") - buf.write("\3\2\2\2\u038a\u038b\7g\2\2\u038b\u038c\7t\2\2\u038c\u038d") - buf.write("\7h\2\2\u038d\u0088\3\2\2\2\u038e\u038f\7g\2\2\u038f\u0390") - buf.write("\7t\2\2\u0390\u0391\7h\2\2\u0391\u0392\7k\2\2\u0392\u0393") - buf.write("\7p\2\2\u0393\u0394\7x\2\2\u0394\u008a\3\2\2\2\u0395\u0396") - buf.write("\7c\2\2\u0396\u0397\7p\2\2\u0397\u0398\7{\2\2\u0398\u008c") - buf.write("\3\2\2\2\u0399\u039a\7c\2\2\u039a\u039b\7n\2\2\u039b\u039c") - buf.write("\7n\2\2\u039c\u008e\3\2\2\2\u039d\u039e\7g\2\2\u039e\u039f") - buf.write("\7f\2\2\u039f\u03a0\7i\2\2\u03a0\u03a1\7g\2\2\u03a1\u0090") - buf.write("\3\2\2\2\u03a2\u03a3\7d\2\2\u03a3\u03a4\7n\2\2\u03a4\u03a5") - buf.write("\7w\2\2\u03a5\u03af\7t\2\2\u03a6\u03a7\7i\2\2\u03a7\u03a8") - buf.write("\7c\2\2\u03a8\u03a9\7w\2\2\u03a9\u03aa\7u\2\2\u03aa\u03ab") - buf.write("\7u\2\2\u03ab\u03ac\7k\2\2\u03ac\u03ad\7c\2\2\u03ad\u03af") - buf.write("\7p\2\2\u03ae\u03a2\3\2\2\2\u03ae\u03a6\3\2\2\2\u03af") - buf.write("\u0092\3\2\2\2\u03b0\u03b1\7o\2\2\u03b1\u03b2\7g\2\2\u03b2") - buf.write("\u03b3\7f\2\2\u03b3\u03b4\7k\2\2\u03b4\u03b5\7c\2\2\u03b5") - buf.write("\u03b6\7p\2\2\u03b6\u0094\3\2\2\2\u03b7\u03b8\7o\2\2\u03b8") - buf.write("\u03b9\7q\2\2\u03b9\u03ba\7f\2\2\u03ba\u03bb\7g\2\2\u03bb") - buf.write("\u0096\3\2\2\2\u03bc\u03bd\7e\2\2\u03bd\u03be\7w\2\2\u03be") - buf.write("\u03bf\7o\2\2\u03bf\u03c0\7u\2\2\u03c0\u03c1\7w\2\2\u03c1") - buf.write("\u03c2\7o\2\2\u03c2\u0098\3\2\2\2\u03c3\u03c4\7e\2\2\u03c4") - buf.write("\u03c5\7w\2\2\u03c5\u03c6\7o\2\2\u03c6\u03c7\7r\2\2\u03c7") - buf.write("\u03c8\7t\2\2\u03c8\u03c9\7q\2\2\u03c9\u03ca\7f\2\2\u03ca") - buf.write("\u009a\3\2\2\2\u03cb\u03cc\7v\2\2\u03cc\u03cd\7q\2\2\u03cd") - buf.write("\u03ce\7r\2\2\u03ce\u03cf\7m\2\2\u03cf\u03d0\7a\2\2\u03d0") - buf.write("\u03d1\7k\2\2\u03d1\u03d2\7p\2\2\u03d2\u03e0\7f\2\2\u03d3") - buf.write("\u03d4\7v\2\2\u03d4\u03d5\7q\2\2\u03d5\u03d6\7r\2\2\u03d6") - buf.write("\u03d7\7m\2\2\u03d7\u03d8\7a\2\2\u03d8\u03d9\7k\2\2\u03d9") - buf.write("\u03da\7p\2\2\u03da\u03db\7f\2\2\u03db\u03dc\7k\2\2\u03dc") - buf.write("\u03dd\7e\2\2\u03dd\u03de\7g\2\2\u03de\u03e0\7u\2\2\u03df") - buf.write("\u03cb\3\2\2\2\u03df\u03d3\3\2\2\2\u03e0\u009c\3\2\2\2") - buf.write("\u03e1\u03e2\7d\2\2\u03e2\u03e3\7q\2\2\u03e3\u03e4\7v") - buf.write("\2\2\u03e4\u03e5\7m\2\2\u03e5\u03e6\7a\2\2\u03e6\u03e7") - buf.write("\7k\2\2\u03e7\u03e8\7p\2\2\u03e8\u03f6\7f\2\2\u03e9\u03ea") - buf.write("\7d\2\2\u03ea\u03eb\7q\2\2\u03eb\u03ec\7v\2\2\u03ec\u03ed") - buf.write("\7m\2\2\u03ed\u03ee\7a\2\2\u03ee\u03ef\7k\2\2\u03ef\u03f0") - buf.write("\7p\2\2\u03f0\u03f1\7f\2\2\u03f1\u03f2\7k\2\2\u03f2\u03f3") - buf.write("\7e\2\2\u03f3\u03f4\7g\2\2\u03f4\u03f6\7u\2\2\u03f5\u03e1") - buf.write("\3\2\2\2\u03f5\u03e9\3\2\2\2\u03f6\u009e\3\2\2\2\u03f7") - buf.write("\u03f8\7e\2\2\u03f8\u03f9\7w\2\2\u03f9\u03fa\7d\2\2\u03fa") - buf.write("\u03fb\7k\2\2\u03fb\u03fc\7e\2\2\u03fc\u03fd\7a\2\2\u03fd") - buf.write("\u03fe\7g\2\2\u03fe\u03ff\7c\2\2\u03ff\u0400\7u\2\2\u0400") - buf.write("\u0407\7g\2\2\u0401\u0402\7e\2\2\u0402\u0403\7w\2\2\u0403") - buf.write("\u0404\7d\2\2\u0404\u0405\7k\2\2\u0405\u0407\7e\2\2\u0406") - buf.write("\u03f7\3\2\2\2\u0406\u0401\3\2\2\2\u0407\u00a0\3\2\2\2") - buf.write("\u0408\u0409\7g\2\2\u0409\u040a\7n\2\2\u040a\u040b\7c") - buf.write("\2\2\u040b\u040c\7u\2\2\u040c\u040d\7v\2\2\u040d\u040e") - buf.write("\7k\2\2\u040e\u040f\7e\2\2\u040f\u0410\7a\2\2\u0410\u0411") - buf.write("\7g\2\2\u0411\u0412\7c\2\2\u0412\u0413\7u\2\2\u0413\u041c") - buf.write("\7g\2\2\u0414\u0415\7g\2\2\u0415\u0416\7n\2\2\u0416\u0417") - buf.write("\7c\2\2\u0417\u0418\7u\2\2\u0418\u0419\7v\2\2\u0419\u041a") - buf.write("\7k\2\2\u041a\u041c\7e\2\2\u041b\u0408\3\2\2\2\u041b\u0414") - buf.write("\3\2\2\2\u041c\u00a2\3\2\2\2\u041d\u041e\7u\2\2\u041e") - buf.write("\u041f\7k\2\2\u041f\u0420\7p\2\2\u0420\u0421\7g\2\2\u0421") - buf.write("\u0422\7a\2\2\u0422\u0423\7g\2\2\u0423\u0424\7c\2\2\u0424") - buf.write("\u0425\7u\2\2\u0425\u042b\7g\2\2\u0426\u0427\7u\2\2\u0427") - buf.write("\u0428\7k\2\2\u0428\u0429\7p\2\2\u0429\u042b\7g\2\2\u042a") - buf.write("\u041d\3\2\2\2\u042a\u0426\3\2\2\2\u042b\u00a4\3\2\2\2") - buf.write("\u042c\u042d\7u\2\2\u042d\u042e\7o\2\2\u042e\u042f\7q") - buf.write("\2\2\u042f\u0430\7q\2\2\u0430\u0431\7v\2\2\u0431\u0432") - buf.write("\7j\2\2\u0432\u0433\7g\2\2\u0433\u0434\7t\2\2\u0434\u0435") - buf.write("\7u\2\2\u0435\u0436\7v\2\2\u0436\u0437\7g\2\2\u0437\u0438") - buf.write("\7r\2\2\u0438\u00a6\3\2\2\2\u0439\u043a\7f\2\2\u043a\u043b") - buf.write("\7k\2\2\u043b\u043c\7u\2\2\u043c\u0446\7v\2\2\u043d\u043e") - buf.write("\7f\2\2\u043e\u043f\7k\2\2\u043f\u0440\7u\2\2\u0440\u0441") - buf.write("\7v\2\2\u0441\u0442\7c\2\2\u0442\u0443\7p\2\2\u0443\u0444") - buf.write("\7e\2\2\u0444\u0446\7g\2\2\u0445\u0439\3\2\2\2\u0445\u043d") - buf.write("\3\2\2\2\u0446\u00a8\3\2\2\2\u0447\u0448\7t\2\2\u0448") - buf.write("\u0449\7g\2\2\u0449\u044a\7o\2\2\u044a\u044b\7c\2\2\u044b") - buf.write("\u044c\7r\2\2\u044c\u00aa\3\2\2\2\u044d\u044e\7e\2\2\u044e") - buf.write("\u044f\7q\2\2\u044f\u0450\7u\2\2\u0450\u0451\7u\2\2\u0451") - buf.write("\u0452\7k\2\2\u0452\u0465\7o\2\2\u0453\u0454\7e\2\2\u0454") - buf.write("\u0455\7q\2\2\u0455\u0456\7u\2\2\u0456\u0457\7k\2\2\u0457") - buf.write("\u0458\7p\2\2\u0458\u0459\7g\2\2\u0459\u045a\7a\2\2\u045a") - buf.write("\u045b\7u\2\2\u045b\u045c\7k\2\2\u045c\u045d\7o\2\2\u045d") - buf.write("\u045e\7k\2\2\u045e\u045f\7n\2\2\u045f\u0460\7c\2\2\u0460") - buf.write("\u0461\7t\2\2\u0461\u0462\7k\2\2\u0462\u0463\7v\2\2\u0463") - buf.write("\u0465\7{\2\2\u0464\u044d\3\2\2\2\u0464\u0453\3\2\2\2") - buf.write("\u0465\u00ac\3\2\2\2\u0466\u0467\7e\2\2\u0467\u0468\7") - buf.write("q\2\2\u0468\u0469\7w\2\2\u0469\u046a\7p\2\2\u046a\u0475") - buf.write("\7v\2\2\u046b\u046c\7e\2\2\u046c\u046d\7p\2\2\u046d\u0475") - buf.write("\7v\2\2\u046e\u046f\7n\2\2\u046f\u0470\7g\2\2\u0470\u0471") - buf.write("\7p\2\2\u0471\u0472\7i\2\2\u0472\u0473\7v\2\2\u0473\u0475") - buf.write("\7j\2\2\u0474\u0466\3\2\2\2\u0474\u046b\3\2\2\2\u0474") - buf.write("\u046e\3\2\2\2\u0475\u00ae\3\2\2\2\u0476\u0477\7t\2\2") - buf.write("\u0477\u0478\7g\2\2\u0478\u0479\7r\2\2\u0479\u047a\7g") - buf.write("\2\2\u047a\u047b\7c\2\2\u047b\u047c\7v\2\2\u047c\u00b0") - buf.write("\3\2\2\2\u047d\u047e\7h\2\2\u047e\u047f\7n\2\2\u047f\u0480") - buf.write("\7c\2\2\u0480\u0481\7v\2\2\u0481\u0482\7v\2\2\u0482\u0483") - buf.write("\7g\2\2\u0483\u0484\7p\2\2\u0484\u00b2\3\2\2\2\u0485\u0486") - buf.write("\7c\2\2\u0486\u0487\7r\2\2\u0487\u0488\7r\2\2\u0488\u0489") - buf.write("\7g\2\2\u0489\u048a\7p\2\2\u048a\u048b\7f\2\2\u048b\u00b4") - buf.write("\3\2\2\2\u048c\u048d\7i\2\2\u048d\u048e\7g\2\2\u048e\u048f") - buf.write("\7v\2\2\u048f\u0490\7a\2\2\u0490\u0491\7x\2\2\u0491\u0492") - buf.write("\7c\2\2\u0492\u0493\7n\2\2\u0493\u0494\7w\2\2\u0494\u0495") - buf.write("\7g\2\2\u0495\u00b6\3\2\2\2\u0496\u0497\7h\2\2\u0497\u0498") - buf.write("\7n\2\2\u0498\u0499\7q\2\2\u0499\u049a\7y\2\2\u049a\u049b") - buf.write("\7a\2\2\u049b\u049c\7c\2\2\u049c\u049d\7r\2\2\u049d\u049e") - buf.write("\7r\2\2\u049e\u049f\7n\2\2\u049f\u04a0\7{\2\2\u04a0\u00b8") - buf.write("\3\2\2\2\u04a1\u04a2\7d\2\2\u04a2\u04a3\7c\2\2\u04a3\u04a4") - buf.write("\7v\2\2\u04a4\u04a5\7e\2\2\u04a5\u04a6\7j\2\2\u04a6\u04a7") - buf.write("\7a\2\2\u04a7\u04a8\7u\2\2\u04a8\u04a9\7j\2\2\u04a9\u04aa") - buf.write("\7w\2\2\u04aa\u04ab\7h\2\2\u04ab\u04ac\7h\2\2\u04ac\u04ad") - buf.write("\7n\2\2\u04ad\u04bc\7g\2\2\u04ae\u04af\7u\2\2\u04af\u04b0") - buf.write("\7j\2\2\u04b0\u04b1\7w\2\2\u04b1\u04b2\7h\2\2\u04b2\u04b3") - buf.write("\7h\2\2\u04b3\u04b4\7n\2\2\u04b4\u04bc\7g\2\2\u04b5\u04b6") - buf.write("\7u\2\2\u04b6\u04b7\7g\2\2\u04b7\u04b8\7n\2\2\u04b8\u04b9") - buf.write("\7g\2\2\u04b9\u04ba\7e\2\2\u04ba\u04bc\7v\2\2\u04bb\u04a1") - buf.write("\3\2\2\2\u04bb\u04ae\3\2\2\2\u04bb\u04b5\3\2\2\2\u04bc") - buf.write("\u00ba\3\2\2\2\u04bd\u04be\7o\2\2\u04be\u04bf\7q\2\2\u04bf") - buf.write("\u04c0\7v\2\2\u04c0\u04c1\7k\2\2\u04c1\u04c2\7q\2\2\u04c2") - buf.write("\u04c3\7p\2\2\u04c3\u04c4\7a\2\2\u04c4\u04c5\7o\2\2\u04c5") - buf.write("\u04c6\7c\2\2\u04c6\u04c7\7u\2\2\u04c7\u04c8\7m\2\2\u04c8") - buf.write("\u00bc\3\2\2\2\u04c9\u04ca\7h\2\2\u04ca\u04cb\7n\2\2\u04cb") - buf.write("\u04cc\7q\2\2\u04cc\u04cd\7y\2\2\u04cd\u04ce\7a\2\2\u04ce") - buf.write("\u04cf\7v\2\2\u04cf\u04d0\7q\2\2\u04d0\u04d1\7a\2\2\u04d1") - buf.write("\u04d2\7k\2\2\u04d2\u04d3\7o\2\2\u04d3\u04d4\7c\2\2\u04d4") - buf.write("\u04d5\7i\2\2\u04d5\u04d6\7g\2\2\u04d6\u00be\3\2\2\2\u04d7") - buf.write("\u04d8\7h\2\2\u04d8\u04d9\7n\2\2\u04d9\u04da\7q\2\2\u04da") - buf.write("\u04db\7y\2\2\u04db\u04dc\7a\2\2\u04dc\u04dd\7o\2\2\u04dd") - buf.write("\u04de\7c\2\2\u04de\u04ee\7i\2\2\u04df\u04e0\7h\2\2\u04e0") - buf.write("\u04e1\7n\2\2\u04e1\u04e2\7q\2\2\u04e2\u04e3\7y\2\2\u04e3") - buf.write("\u04e4\7a\2\2\u04e4\u04e5\7o\2\2\u04e5\u04e6\7c\2\2\u04e6") - buf.write("\u04e7\7i\2\2\u04e7\u04e8\7p\2\2\u04e8\u04e9\7k\2\2\u04e9") - buf.write("\u04ea\7v\2\2\u04ea\u04eb\7w\2\2\u04eb\u04ec\7f\2\2\u04ec") - buf.write("\u04ee\7g\2\2\u04ed\u04d7\3\2\2\2\u04ed\u04df\3\2\2\2") - buf.write("\u04ee\u00c0\3\2\2\2\u04ef\u04f0\7h\2\2\u04f0\u04f1\7") - buf.write("n\2\2\u04f1\u04f2\7q\2\2\u04f2\u04f3\7y\2\2\u04f3\u04f4") - buf.write("\7a\2\2\u04f4\u04f5\7c\2\2\u04f5\u04f6\7p\2\2\u04f6\u0502") - buf.write("\7i\2\2\u04f7\u04f8\7h\2\2\u04f8\u04f9\7n\2\2\u04f9\u04fa") - buf.write("\7q\2\2\u04fa\u04fb\7y\2\2\u04fb\u04fc\7a\2\2\u04fc\u04fd") - buf.write("\7c\2\2\u04fd\u04fe\7p\2\2\u04fe\u04ff\7i\2\2\u04ff\u0500") - buf.write("\7n\2\2\u0500\u0502\7g\2\2\u0501\u04ef\3\2\2\2\u0501\u04f7") - buf.write("\3\2\2\2\u0502\u00c2\3\2\2\2\u0503\u0504\7y\2\2\u0504") - buf.write("\u0505\7j\2\2\u0505\u0506\7g\2\2\u0506\u0507\7t\2\2\u0507") - buf.write("\u0508\7g\2\2\u0508\u00c4\3\2\2\2\u0509\u050a\7j\2\2\u050a") - buf.write("\u050b\7k\2\2\u050b\u050c\7u\2\2\u050c\u050d\7v\2\2\u050d") - buf.write("\u050e\7q\2\2\u050e\u050f\7i\2\2\u050f\u0510\7t\2\2\u0510") - buf.write("\u0511\7c\2\2\u0511\u0517\7o\2\2\u0512\u0513\7j\2\2\u0513") - buf.write("\u0514\7k\2\2\u0514\u0515\7u\2\2\u0515\u0517\7v\2\2\u0516") - buf.write("\u0509\3\2\2\2\u0516\u0512\3\2\2\2\u0517\u00c6\3\2\2\2") - buf.write("\u0518\u0519\7q\2\2\u0519\u051a\7x\2\2\u051a\u051b\7g") - buf.write("\2\2\u051b\u051c\7t\2\2\u051c\u051d\7n\2\2\u051d\u051e") - buf.write("\7c\2\2\u051e\u051f\7{\2\2\u051f\u00c8\3\2\2\2\u0520\u0521") - buf.write("\7r\2\2\u0521\u0522\7c\2\2\u0522\u0523\7f\2\2\u0523\u00ca") - buf.write("\3\2\2\2\u0524\u0525\7e\2\2\u0525\u0526\7t\2\2\u0526\u0527") - buf.write("\7q\2\2\u0527\u0528\7u\2\2\u0528\u0529\7u\2\2\u0529\u00cc") - buf.write("\3\2\2\2\u052a\u052b\7o\2\2\u052b\u052c\7c\2\2\u052c\u052d") - buf.write("\7v\2\2\u052d\u052e\7o\2\2\u052e\u052f\7w\2\2\u052f\u0530") - buf.write("\7n\2\2\u0530\u00ce\3\2\2\2\u0531\u0532\7t\2\2\u0532\u0533") - buf.write("\7k\2\2\u0533\u0534\7h\2\2\u0534\u0535\7g\2\2\u0535\u00d0") - buf.write("\3\2\2\2\u0536\u0537\7d\2\2\u0537\u0538\7p\2\2\u0538\u0539") - buf.write("\7q\2\2\u0539\u0546\7v\2\2\u053a\u053b\7d\2\2\u053b\u053c") - buf.write("\7k\2\2\u053c\u053d\7v\2\2\u053d\u053e\7y\2\2\u053e\u053f") - buf.write("\7k\2\2\u053f\u0540\7u\2\2\u0540\u0541\7g\2\2\u0541\u0542") - buf.write("\7a\2\2\u0542\u0543\7p\2\2\u0543\u0544\7q\2\2\u0544\u0546") - buf.write("\7v\2\2\u0545\u0536\3\2\2\2\u0545\u053a\3\2\2\2\u0546") - buf.write("\u00d2\3\2\2\2\u0547\u0548\7d\2\2\u0548\u0549\7k\2\2\u0549") - buf.write("\u054a\7v\2\2\u054a\u054b\7e\2\2\u054b\u054c\7q\2\2\u054c") - buf.write("\u054d\7w\2\2\u054d\u054e\7p\2\2\u054e\u055e\7v\2\2\u054f") - buf.write("\u0550\7r\2\2\u0550\u0551\7q\2\2\u0551\u0552\7r\2\2\u0552") - buf.write("\u0553\7e\2\2\u0553\u0554\7q\2\2\u0554\u0555\7w\2\2\u0555") - buf.write("\u0556\7p\2\2\u0556\u055e\7v\2\2\u0557\u0558\7r\2\2\u0558") - buf.write("\u0559\7q\2\2\u0559\u055a\7r\2\2\u055a\u055b\7e\2\2\u055b") - buf.write("\u055c\7p\2\2\u055c\u055e\7v\2\2\u055d\u0547\3\2\2\2\u055d") - buf.write("\u054f\3\2\2\2\u055d\u0557\3\2\2\2\u055e\u00d4\3\2\2\2") - buf.write("\u055f\u0560\7u\2\2\u0560\u0561\7j\2\2\u0561\u0562\7c") - buf.write("\2\2\u0562\u0563\7r\2\2\u0563\u0564\7g\2\2\u0564\u00d6") - buf.write("\3\2\2\2\u0565\u0566\7d\2\2\u0566\u0567\7c\2\2\u0567\u0568") - buf.write("\7p\2\2\u0568\u0575\7f\2\2\u0569\u056a\7d\2\2\u056a\u056b") - buf.write("\7k\2\2\u056b\u056c\7v\2\2\u056c\u056d\7y\2\2\u056d\u056e") - buf.write("\7k\2\2\u056e\u056f\7u\2\2\u056f\u0570\7g\2\2\u0570\u0571") - buf.write("\7a\2\2\u0571\u0572\7c\2\2\u0572\u0573\7p\2\2\u0573\u0575") - buf.write("\7f\2\2\u0574\u0565\3\2\2\2\u0574\u0569\3\2\2\2\u0575") - buf.write("\u00d8\3\2\2\2\u0576\u0577\7d\2\2\u0577\u0578\7z\2\2\u0578") - buf.write("\u0579\7q\2\2\u0579\u0586\7t\2\2\u057a\u057b\7d\2\2\u057b") - buf.write("\u057c\7k\2\2\u057c\u057d\7v\2\2\u057d\u057e\7y\2\2\u057e") - buf.write("\u057f\7k\2\2\u057f\u0580\7u\2\2\u0580\u0581\7g\2\2\u0581") - buf.write("\u0582\7a\2\2\u0582\u0583\7z\2\2\u0583\u0584\7q\2\2\u0584") - buf.write("\u0586\7t\2\2\u0585\u0576\3\2\2\2\u0585\u057a\3\2\2\2") - buf.write("\u0586\u00da\3\2\2\2\u0587\u0588\7d\2\2\u0588\u0589\7") - buf.write("q\2\2\u0589\u0595\7t\2\2\u058a\u058b\7d\2\2\u058b\u058c") - buf.write("\7k\2\2\u058c\u058d\7v\2\2\u058d\u058e\7y\2\2\u058e\u058f") - buf.write("\7k\2\2\u058f\u0590\7u\2\2\u0590\u0591\7g\2\2\u0591\u0592") - buf.write("\7a\2\2\u0592\u0593\7q\2\2\u0593\u0595\7t\2\2\u0594\u0587") - buf.write("\3\2\2\2\u0594\u058a\3\2\2\2\u0595\u00dc\3\2\2\2\u0596") - buf.write("\u0597\7v\2\2\u0597\u0598\7g\2\2\u0598\u0599\7p\2\2\u0599") - buf.write("\u059a\7u\2\2\u059a\u059b\7q\2\2\u059b\u059c\7t\2\2\u059c") - buf.write("\u00de\3\2\2\2\u059d\u059e\7u\2\2\u059e\u059f\7v\2\2\u059f") - buf.write("\u05a0\7c\2\2\u05a0\u05a1\7e\2\2\u05a1\u05a2\7m\2\2\u05a2") - buf.write("\u05a3\7a\2\2\u05a3\u05a4\7r\2\2\u05a4\u05a5\7w\2\2\u05a5") - buf.write("\u05a6\7u\2\2\u05a6\u05a7\7j\2\2\u05a7\u00e0\3\2\2\2\u05a8") - buf.write("\u05a9\7u\2\2\u05a9\u05aa\7v\2\2\u05aa\u05ab\7c\2\2\u05ab") - buf.write("\u05ac\7e\2\2\u05ac\u05ad\7m\2\2\u05ad\u05ae\7a\2\2\u05ae") - buf.write("\u05af\7r\2\2\u05af\u05b0\7q\2\2\u05b0\u05b1\7r\2\2\u05b1") - buf.write("\u00e2\3\2\2\2\u05b2\u05b3\7u\2\2\u05b3\u05b4\7v\2\2\u05b4") - buf.write("\u05b5\7c\2\2\u05b5\u05b6\7e\2\2\u05b6\u05b7\7m\2\2\u05b7") - buf.write("\u05b8\7a\2\2\u05b8\u05b9\7e\2\2\u05b9\u05ba\7n\2\2\u05ba") - buf.write("\u05bb\7g\2\2\u05bb\u05bc\7c\2\2\u05bc\u05bd\7t\2\2\u05bd") - buf.write("\u00e4\3\2\2\2\u05be\u05bf\7u\2\2\u05bf\u05c0\7v\2\2\u05c0") - buf.write("\u05c1\7c\2\2\u05c1\u05c2\7e\2\2\u05c2\u05c3\7m\2\2\u05c3") - buf.write("\u05c4\7a\2\2\u05c4\u05c5\7j\2\2\u05c5\u05c6\7c\2\2\u05c6") - buf.write("\u05c7\7u\2\2\u05c7\u00e6\3\2\2\2\u05c8\u05c9\7u\2\2\u05c9") - buf.write("\u05ca\7v\2\2\u05ca\u05cb\7c\2\2\u05cb\u05cc\7e\2\2\u05cc") - buf.write("\u05cd\7m\2\2\u05cd\u05ce\7a\2\2\u05ce\u05cf\7i\2\2\u05cf") - buf.write("\u05d0\7g\2\2\u05d0\u05d1\7v\2\2\u05d1\u00e8\3\2\2\2\u05d2") - buf.write("\u05d3\7e\2\2\u05d3\u05d4\7c\2\2\u05d4\u05e7\7v\2\2\u05d5") - buf.write("\u05d6\7e\2\2\u05d6\u05d7\7q\2\2\u05d7\u05d8\7p\2\2\u05d8") - buf.write("\u05d9\7e\2\2\u05d9\u05da\7c\2\2\u05da\u05e7\7v\2\2\u05db") - buf.write("\u05dc\7e\2\2\u05dc\u05dd\7q\2\2\u05dd\u05de\7p\2\2\u05de") - buf.write("\u05df\7e\2\2\u05df\u05e0\7c\2\2\u05e0\u05e1\7v\2\2\u05e1") - buf.write("\u05e2\7g\2\2\u05e2\u05e3\7p\2\2\u05e3\u05e4\7c\2\2\u05e4") - buf.write("\u05e5\7v\2\2\u05e5\u05e7\7g\2\2\u05e6\u05d2\3\2\2\2\u05e6") - buf.write("\u05d5\3\2\2\2\u05e6\u05db\3\2\2\2\u05e7\u00ea\3\2\2\2") - buf.write("\u05e8\u05e9\7k\2\2\u05e9\u05ea\7p\2\2\u05ea\u05eb\7v") - buf.write("\2\2\u05eb\u00ec\3\2\2\2\u05ec\u05ed\7h\2\2\u05ed\u05ee") - buf.write("\7n\2\2\u05ee\u05ef\7q\2\2\u05ef\u05f0\7c\2\2\u05f0\u05f1") - buf.write("\7v\2\2\u05f1\u00ee\3\2\2\2\u05f2\u05f3\7w\2\2\u05f3\u05f4") - buf.write("\7r\2\2\u05f4\u05f5\7r\2\2\u05f5\u05f6\7g\2\2\u05f6\u05f7") - buf.write("\7t\2\2\u05f7\u00f0\3\2\2\2\u05f8\u05f9\7n\2\2\u05f9\u05fa") - buf.write("\7q\2\2\u05fa\u05fb\7y\2\2\u05fb\u05fc\7g\2\2\u05fc\u05fd") - buf.write("\7t\2\2\u05fd\u00f2\3\2\2\2\u05fe\u05ff\7v\2\2\u05ff\u0600") - buf.write("\7t\2\2\u0600\u0601\7k\2\2\u0601\u0602\7o\2\2\u0602\u00f4") - buf.write("\3\2\2\2\u0603\u0604\7u\2\2\u0604\u0605\7r\2\2\u0605\u0606") - buf.write("\7n\2\2\u0606\u0607\7k\2\2\u0607\u0608\7v\2\2\u0608\u00f6") - buf.write("\3\2\2\2\u0609\u060a\7l\2\2\u060a\u060b\7q\2\2\u060b\u060c") - buf.write("\7k\2\2\u060c\u060d\7p\2\2\u060d\u00f8\3\2\2\2\u060e\u060f") - buf.write("\7u\2\2\u060f\u0610\7w\2\2\u0610\u0611\7d\2\2\u0611\u0612") - buf.write("\7u\2\2\u0612\u0613\7v\2\2\u0613\u0614\7t\2\2\u0614\u0615") - buf.write("\7k\2\2\u0615\u0616\7p\2\2\u0616\u061e\7i\2\2\u0617\u0618") - buf.write("\7u\2\2\u0618\u0619\7w\2\2\u0619\u061a\7d\2\2\u061a\u061b") - buf.write("\7u\2\2\u061b\u061c\7v\2\2\u061c\u061e\7t\2\2\u061d\u060e") - buf.write("\3\2\2\2\u061d\u0617\3\2\2\2\u061e\u00fa\3\2\2\2\u061f") - buf.write("\u0620\7h\2\2\u0620\u0621\7k\2\2\u0621\u0622\7p\2\2\u0622") - buf.write("\u0623\7f\2\2\u0623\u00fc\3\2\2\2\u0624\u0625\7t\2\2\u0625") - buf.write("\u0626\7g\2\2\u0626\u0627\7r\2\2\u0627\u0628\7n\2\2\u0628") - buf.write("\u0629\7c\2\2\u0629\u062a\7e\2\2\u062a\u062b\7g\2\2\u062b") - buf.write("\u00fe\3\2\2\2\u062c\u062d\7f\2\2\u062d\u062e\7k\2\2\u062e") - buf.write("\u062f\7n\2\2\u062f\u0630\7c\2\2\u0630\u0631\7v\2\2\u0631") - buf.write("\u0632\7g\2\2\u0632\u0100\3\2\2\2\u0633\u0634\7g\2\2\u0634") - buf.write("\u0635\7t\2\2\u0635\u0636\7q\2\2\u0636\u0637\7f\2\2\u0637") - buf.write("\u0638\7g\2\2\u0638\u0102\3\2\2\2\u0639\u063a\7o\2\2\u063a") - buf.write("\u063b\7q\2\2\u063b\u063c\7t\2\2\u063c\u063d\7r\2\2\u063d") - buf.write("\u063e\7j\2\2\u063e\u063f\7a\2\2\u063f\u0640\7q\2\2\u0640") - buf.write("\u0641\7r\2\2\u0641\u0642\7g\2\2\u0642\u0643\7p\2\2\u0643") - buf.write("\u0104\3\2\2\2\u0644\u0645\7o\2\2\u0645\u0646\7q\2\2\u0646") - buf.write("\u0647\7t\2\2\u0647\u0648\7r\2\2\u0648\u0649\7j\2\2\u0649") - buf.write("\u064a\7a\2\2\u064a\u064b\7e\2\2\u064b\u064c\7n\2\2\u064c") - buf.write("\u064d\7q\2\2\u064d\u064e\7u\2\2\u064e\u064f\7g\2\2\u064f") - buf.write("\u0106\3\2\2\2\u0650\u0651\7t\2\2\u0651\u0652\7i\2\2\u0652") - buf.write("\u0653\7d\2\2\u0653\u0654\7a\2\2\u0654\u0655\7v\2\2\u0655") - buf.write("\u0656\7q\2\2\u0656\u0657\7a\2\2\u0657\u0658\7q\2\2\u0658") - buf.write("\u0659\7m\2\2\u0659\u065a\7n\2\2\u065a\u065b\7c\2\2\u065b") - buf.write("\u065c\7d\2\2\u065c\u0108\3\2\2\2\u065d\u065e\7t\2\2\u065e") - buf.write("\u065f\7i\2\2\u065f\u0660\7d\2\2\u0660\u0661\7a\2\2\u0661") - buf.write("\u0662\7v\2\2\u0662\u0663\7q\2\2\u0663\u0664\7a\2\2\u0664") - buf.write("\u0665\7e\2\2\u0665\u0666\7k\2\2\u0666\u0667\7g\2\2\u0667") - buf.write("\u0668\7n\2\2\u0668\u0669\7c\2\2\u0669\u066a\7d\2\2\u066a") - buf.write("\u010a\3\2\2\2\u066b\u066c\7q\2\2\u066c\u066d\7m\2\2\u066d") - buf.write("\u066e\7n\2\2\u066e\u066f\7c\2\2\u066f\u0670\7d\2\2\u0670") - buf.write("\u0671\7a\2\2\u0671\u0672\7v\2\2\u0672\u0673\7q\2\2\u0673") - buf.write("\u0674\7a\2\2\u0674\u0675\7t\2\2\u0675\u0676\7i\2\2\u0676") - buf.write("\u0677\7d\2\2\u0677\u010c\3\2\2\2\u0678\u0679\7e\2\2\u0679") - buf.write("\u067a\7k\2\2\u067a\u067b\7g\2\2\u067b\u067c\7n\2\2\u067c") - buf.write("\u067d\7c\2\2\u067d\u067e\7d\2\2\u067e\u067f\7a\2\2\u067f") - buf.write("\u0680\7v\2\2\u0680\u0681\7q\2\2\u0681\u0682\7a\2\2\u0682") - buf.write("\u0683\7t\2\2\u0683\u0684\7i\2\2\u0684\u0685\7d\2\2\u0685") - buf.write("\u010e\3\2\2\2\u0686\u0687\7t\2\2\u0687\u0688\7i\2\2\u0688") - buf.write("\u0689\7d\2\2\u0689\u068a\7a\2\2\u068a\u068b\7v\2\2\u068b") - buf.write("\u068c\7q\2\2\u068c\u068d\7a\2\2\u068d\u068e\7j\2\2\u068e") - buf.write("\u068f\7u\2\2\u068f\u0690\7x\2\2\u0690\u0110\3\2\2\2\u0691") - buf.write("\u0692\7j\2\2\u0692\u0693\7u\2\2\u0693\u0694\7x\2\2\u0694") - buf.write("\u0695\7a\2\2\u0695\u0696\7v\2\2\u0696\u0697\7q\2\2\u0697") - buf.write("\u0698\7a\2\2\u0698\u0699\7t\2\2\u0699\u069a\7i\2\2\u069a") - buf.write("\u069b\7d\2\2\u069b\u0112\3\2\2\2\u069c\u069d\7k\2\2\u069d") - buf.write("\u069e\7p\2\2\u069e\u069f\7v\2\2\u069f\u06a0\7a\2\2\u06a0") - buf.write("\u06a1\7v\2\2\u06a1\u06a2\7q\2\2\u06a2\u06a3\7a\2\2\u06a3") - buf.write("\u06a4\7t\2\2\u06a4\u06a5\7i\2\2\u06a5\u06a6\7d\2\2\u06a6") - buf.write("\u0114\3\2\2\2\u06a7\u06a8\7t\2\2\u06a8\u06a9\7i\2\2\u06a9") - buf.write("\u06aa\7d\2\2\u06aa\u06ab\7a\2\2\u06ab\u06ac\7v\2\2\u06ac") - buf.write("\u06ad\7q\2\2\u06ad\u06ae\7a\2\2\u06ae\u06af\7k\2\2\u06af") - buf.write("\u06b0\7p\2\2\u06b0\u06b1\7v\2\2\u06b1\u0116\3\2\2\2\u06b2") - buf.write("\u06b3\7k\2\2\u06b3\u06b4\7p\2\2\u06b4\u06b5\7v\2\2\u06b5") - buf.write("\u06b6\7g\2\2\u06b6\u06b7\7t\2\2\u06b7\u06b8\7r\2\2\u06b8") - buf.write("\u06b9\7q\2\2\u06b9\u06ba\7n\2\2\u06ba\u06bb\7c\2\2\u06bb") - buf.write("\u06bc\7v\2\2\u06bc\u06bd\7g\2\2\u06bd\u06be\7a\2\2\u06be") - buf.write("\u06bf\7n\2\2\u06bf\u06c0\7k\2\2\u06c0\u06c1\7p\2\2\u06c1") - buf.write("\u06c2\7g\2\2\u06c2\u06c3\7c\2\2\u06c3\u06c4\7t\2\2\u06c4") - buf.write("\u0118\3\2\2\2\u06c5\u06c6\7k\2\2\u06c6\u06c7\7p\2\2\u06c7") - buf.write("\u06c8\7v\2\2\u06c8\u06c9\7g\2\2\u06c9\u06ca\7t\2\2\u06ca") - buf.write("\u06cb\7r\2\2\u06cb\u06cc\7q\2\2\u06cc\u06cd\7n\2\2\u06cd") - buf.write("\u06ce\7c\2\2\u06ce\u06cf\7v\2\2\u06cf\u06d0\7g\2\2\u06d0") - buf.write("\u06d1\7a\2\2\u06d1\u06d2\7c\2\2\u06d2\u06d3\7t\2\2\u06d3") - buf.write("\u06d4\7g\2\2\u06d4\u06d5\7c\2\2\u06d5\u011a\3\2\2\2\u06d6") - buf.write("\u06d7\7k\2\2\u06d7\u06d8\7p\2\2\u06d8\u06d9\7v\2\2\u06d9") - buf.write("\u06da\7g\2\2\u06da\u06db\7t\2\2\u06db\u06dc\7r\2\2\u06dc") - buf.write("\u06dd\7q\2\2\u06dd\u06de\7n\2\2\u06de\u06df\7c\2\2\u06df") - buf.write("\u06e0\7v\2\2\u06e0\u06e1\7g\2\2\u06e1\u06e2\7a\2\2\u06e2") - buf.write("\u06e3\7p\2\2\u06e3\u06e4\7g\2\2\u06e4\u06e5\7c\2\2\u06e5") - buf.write("\u06e6\7t\2\2\u06e6\u06e7\7g\2\2\u06e7\u06e8\7u\2\2\u06e8") - buf.write("\u0703\7v\2\2\u06e9\u06ea\7k\2\2\u06ea\u06eb\7p\2\2\u06eb") - buf.write("\u06ec\7v\2\2\u06ec\u06ed\7g\2\2\u06ed\u06ee\7t\2\2\u06ee") - buf.write("\u06ef\7r\2\2\u06ef\u06f0\7q\2\2\u06f0\u06f1\7n\2\2\u06f1") - buf.write("\u06f2\7c\2\2\u06f2\u06f3\7v\2\2\u06f3\u06f4\7g\2\2\u06f4") - buf.write("\u06f5\7a\2\2\u06f5\u06f6\7p\2\2\u06f6\u06f7\7g\2\2\u06f7") - buf.write("\u06f8\7c\2\2\u06f8\u06f9\7t\2\2\u06f9\u06fa\7g\2\2\u06fa") - buf.write("\u06fb\7u\2\2\u06fb\u06fc\7v\2\2\u06fc\u06fd\7a\2\2\u06fd") - buf.write("\u06fe\7g\2\2\u06fe\u06ff\7z\2\2\u06ff\u0700\7c\2\2\u0700") - buf.write("\u0701\7e\2\2\u0701\u0703\7v\2\2\u0702\u06d6\3\2\2\2\u0702") - buf.write("\u06e9\3\2\2\2\u0703\u011c\3\2\2\2\u0704\u0705\7v\2\2") - buf.write("\u0705\u0706\7g\2\2\u0706\u0707\7z\2\2\u0707\u0708\7v") - buf.write("\2\2\u0708\u0709\7a\2\2\u0709\u070a\7k\2\2\u070a\u070b") - buf.write("\7o\2\2\u070b\u070c\7c\2\2\u070c\u070d\7i\2\2\u070d\u070e") - buf.write("\7g\2\2\u070e\u011e\3\2\2\2\u070f\u0710\7c\2\2\u0710\u0711") - buf.write("\7u\2\2\u0711\u0712\7a\2\2\u0712\u0713\7p\2\2\u0713\u0714") - buf.write("\7g\2\2\u0714\u0715\7u\2\2\u0715\u0716\7v\2\2\u0716\u0717") - buf.write("\7g\2\2\u0717\u0718\7f\2\2\u0718\u0719\7a\2\2\u0719\u071a") - buf.write("\7v\2\2\u071a\u071b\7g\2\2\u071b\u071c\7p\2\2\u071c\u071d") - buf.write("\7u\2\2\u071d\u071e\7q\2\2\u071e\u071f\7t\2\2\u071f\u0120") - buf.write("\3\2\2\2\u0720\u0721\7u\2\2\u0721\u0722\7x\2\2\u0722\u0740") - buf.write("\7f\2\2\u0723\u0724\7u\2\2\u0724\u0725\7k\2\2\u0725\u0726") - buf.write("\7p\2\2\u0726\u0727\7i\2\2\u0727\u0728\7w\2\2\u0728\u0729") - buf.write("\7n\2\2\u0729\u072a\7c\2\2\u072a\u072b\7t\2\2\u072b\u072c") - buf.write("\7a\2\2\u072c\u072d\7x\2\2\u072d\u072e\7c\2\2\u072e\u072f") - buf.write("\7n\2\2\u072f\u0730\7w\2\2\u0730\u0731\7g\2\2\u0731\u0732") - buf.write("\7a\2\2\u0732\u0733\7f\2\2\u0733\u0734\7g\2\2\u0734\u0735") - buf.write("\7e\2\2\u0735\u0736\7q\2\2\u0736\u0737\7o\2\2\u0737\u0738") - buf.write("\7r\2\2\u0738\u0739\7q\2\2\u0739\u073a\7u\2\2\u073a\u073b") - buf.write("\7k\2\2\u073b\u073c\7v\2\2\u073c\u073d\7k\2\2\u073d\u073e") - buf.write("\7q\2\2\u073e\u0740\7p\2\2\u073f\u0720\3\2\2\2\u073f\u0723") - buf.write("\3\2\2\2\u0740\u0122\3\2\2\2\u0741\u0742\7f\2\2\u0742") - buf.write("\u0743\7k\2\2\u0743\u0744\7c\2\2\u0744\u0745\7i\2\2\u0745") - buf.write("\u0746\7q\2\2\u0746\u0747\7p\2\2\u0747\u0748\7c\2\2\u0748") - buf.write("\u0749\7n\2\2\u0749\u074a\7a\2\2\u074a\u074b\7o\2\2\u074b") - buf.write("\u074c\7c\2\2\u074c\u074d\7v\2\2\u074d\u074e\7t\2\2\u074e") - buf.write("\u074f\7k\2\2\u074f\u0755\7z\2\2\u0750\u0751\7f\2\2\u0751") - buf.write("\u0752\7k\2\2\u0752\u0753\7c\2\2\u0753\u0755\7i\2\2\u0754") - buf.write("\u0741\3\2\2\2\u0754\u0750\3\2\2\2\u0755\u0124\3\2\2\2") - buf.write("\u0756\u0757\7k\2\2\u0757\u0758\7h\2\2\u0758\u0126\3\2") - buf.write("\2\2\u0759\u075a\7g\2\2\u075a\u075b\7n\2\2\u075b\u075c") - buf.write("\7u\2\2\u075c\u075d\7g\2\2\u075d\u0128\3\2\2\2\u075e\u075f") - buf.write("\7y\2\2\u075f\u0760\7j\2\2\u0760\u0761\7k\2\2\u0761\u0762") - buf.write("\7n\2\2\u0762\u0763\7g\2\2\u0763\u012a\3\2\2\2\u0764\u0765") - buf.write("\7h\2\2\u0765\u0766\7q\2\2\u0766\u0767\7t\2\2\u0767\u012c") - buf.write("\3\2\2\2\u0768\u0769\7k\2\2\u0769\u076a\7p\2\2\u076a\u012e") - buf.write("\3\2\2\2\u076b\u076c\7d\2\2\u076c\u076d\7t\2\2\u076d\u076e") - buf.write("\7g\2\2\u076e\u076f\7c\2\2\u076f\u0770\7m\2\2\u0770\u0130") - buf.write("\3\2\2\2\u0771\u0772\7e\2\2\u0772\u0773\7q\2\2\u0773\u0774") - buf.write("\7p\2\2\u0774\u0775\7v\2\2\u0775\u0776\7k\2\2\u0776\u0777") - buf.write("\7p\2\2\u0777\u0778\7w\2\2\u0778\u0779\7g\2\2\u0779\u0132") - buf.write("\3\2\2\2\u077a\u077b\7t\2\2\u077b\u077c\7g\2\2\u077c\u077d") - buf.write("\7v\2\2\u077d\u077e\7w\2\2\u077e\u077f\7t\2\2\u077f\u0780") - buf.write("\7p\2\2\u0780\u0134\3\2\2\2\u0781\u0782\7v\2\2\u0782\u0783") - buf.write("\7k\2\2\u0783\u0784\7o\2\2\u0784\u0785\7g\2\2\u0785\u0786") - buf.write("\7u\2\2\u0786\u0787\7v\2\2\u0787\u0788\7c\2\2\u0788\u0789") - buf.write("\7o\2\2\u0789\u078e\7r\2\2\u078a\u078b\7p\2\2\u078b\u078c") - buf.write("\7q\2\2\u078c\u078e\7y\2\2\u078d\u0781\3\2\2\2\u078d\u078a") - buf.write("\3\2\2\2\u078e\u0136\3\2\2\2\u078f\u0790\7u\2\2\u0790") - buf.write("\u0791\7q\2\2\u0791\u0792\7t\2\2\u0792\u0793\7v\2\2\u0793") - buf.write("\u0138\3\2\2\2\u0794\u0795\7c\2\2\u0795\u0796\7t\2\2\u0796") - buf.write("\u0797\7i\2\2\u0797\u0798\7u\2\2\u0798\u0799\7q\2\2\u0799") - buf.write("\u079a\7t\2\2\u079a\u079b\7v\2\2\u079b\u013a\3\2\2\2\u079c") - buf.write("\u079d\7c\2\2\u079d\u079e\7t\2\2\u079e\u079f\7i\2\2\u079f") - buf.write("\u07a0\7o\2\2\u07a0\u07a1\7k\2\2\u07a1\u07a2\7p\2\2\u07a2") - buf.write("\u013c\3\2\2\2\u07a3\u07a4\7c\2\2\u07a4\u07a5\7t\2\2\u07a5") - buf.write("\u07a6\7i\2\2\u07a6\u07a7\7o\2\2\u07a7\u07a8\7c\2\2\u07a8") - buf.write("\u07a9\7z\2\2\u07a9\u013e\3\2\2\2\u07aa\u07ab\7u\2\2\u07ab") - buf.write("\u07ac\7q\2\2\u07ac\u07ad\7h\2\2\u07ad\u07ae\7v\2\2\u07ae") - buf.write("\u07af\7o\2\2\u07af\u07b0\7c\2\2\u07b0\u07b1\7z\2\2\u07b1") - buf.write("\u0140\3\2\2\2\u07b2\u07b3\7u\2\2\u07b3\u07b4\7q\2\2\u07b4") - buf.write("\u07b5\7h\2\2\u07b5\u07b6\7v\2\2\u07b6\u07b7\7o\2\2\u07b7") - buf.write("\u07b8\7k\2\2\u07b8\u07b9\7p\2\2\u07b9\u0142\3\2\2\2\u07ba") - buf.write("\u07bb\7w\2\2\u07bb\u07bc\7p\2\2\u07bc\u07bd\7k\2\2\u07bd") - buf.write("\u07be\7s\2\2\u07be\u07bf\7w\2\2\u07bf\u07c0\7g\2\2\u07c0") - buf.write("\u0144\3\2\2\2\u07c1\u07c2\7h\2\2\u07c2\u07c3\7n\2\2\u07c3") - buf.write("\u07c4\7k\2\2\u07c4\u07c5\7r\2\2\u07c5\u0146\3\2\2\2\u07c6") - buf.write("\u07c7\7u\2\2\u07c7\u07c8\7v\2\2\u07c8\u07c9\7c\2\2\u07c9") - buf.write("\u07ca\7t\2\2\u07ca\u07cb\7v\2\2\u07cb\u07cc\7u\2\2\u07cc") - buf.write("\u07cd\7y\2\2\u07cd\u07ce\7k\2\2\u07ce\u07cf\7v\2\2\u07cf") - buf.write("\u07d0\7j\2\2\u07d0\u0148\3\2\2\2\u07d1\u07d2\7g\2\2\u07d2") - buf.write("\u07d3\7p\2\2\u07d3\u07d4\7f\2\2\u07d4\u07d5\7u\2\2\u07d5") - buf.write("\u07d6\7y\2\2\u07d6\u07d7\7k\2\2\u07d7\u07d8\7v\2\2\u07d8") - buf.write("\u07d9\7j\2\2\u07d9\u014a\3\2\2\2\u07da\u07db\7u\2\2\u07db") - buf.write("\u07dc\7s\2\2\u07dc\u07dd\7w\2\2\u07dd\u07de\7g\2\2\u07de") - buf.write("\u07df\7g\2\2\u07df\u07e0\7|\2\2\u07e0\u07e1\7g\2\2\u07e1") - buf.write("\u014c\3\2\2\2\u07e2\u07e3\7w\2\2\u07e3\u07e4\7p\2\2\u07e4") - buf.write("\u07e5\7u\2\2\u07e5\u07e6\7s\2\2\u07e6\u07e7\7w\2\2\u07e7") - buf.write("\u07e8\7g\2\2\u07e8\u07e9\7g\2\2\u07e9\u07ea\7|\2\2\u07ea") - buf.write("\u07eb\7g\2\2\u07eb\u014e\3\2\2\2\u07ec\u07ed\7t\2\2\u07ed") - buf.write("\u07ee\7q\2\2\u07ee\u07ef\7n\2\2\u07ef\u07f0\7n\2\2\u07f0") - buf.write("\u0150\3\2\2\2\u07f1\u07f2\7e\2\2\u07f2\u07f3\7q\2\2\u07f3") - buf.write("\u07f4\7x\2\2\u07f4\u0152\3\2\2\2\u07f5\u07f6\7e\2\2\u07f6") - buf.write("\u07f7\7q\2\2\u07f7\u07f8\7t\2\2\u07f8\u0805\7t\2\2\u07f9") - buf.write("\u07fa\7e\2\2\u07fa\u07fb\7q\2\2\u07fb\u07fc\7t\2\2\u07fc") - buf.write("\u07fd\7t\2\2\u07fd\u07fe\7g\2\2\u07fe\u07ff\7n\2\2\u07ff") - buf.write("\u0800\7c\2\2\u0800\u0801\7v\2\2\u0801\u0802\7k\2\2\u0802") - buf.write("\u0803\7q\2\2\u0803\u0805\7p\2\2\u0804\u07f5\3\2\2\2\u0804") - buf.write("\u07f9\3\2\2\2\u0805\u0154\3\2\2\2\u0806\u0807\7g\2\2") - buf.write("\u0807\u0808\7p\2\2\u0808\u0809\7v\2\2\u0809\u080a\7t") - buf.write("\2\2\u080a\u080b\7q\2\2\u080b\u080c\7r\2\2\u080c\u080d") - buf.write("\7{\2\2\u080d\u0156\3\2\2\2\u080e\u080f\7e\2\2\u080f\u0810") - buf.write("\7t\2\2\u0810\u0811\7q\2\2\u0811\u0812\7r\2\2\u0812\u0158") - buf.write("\3\2\2\2\u0813\u0814\7p\2\2\u0814\u0815\7q\2\2\u0815\u0816") - buf.write("\7p\2\2\u0816\u0824\7g\2\2\u0817\u0818\7P\2\2\u0818\u0819") - buf.write("\7q\2\2\u0819\u081a\7p\2\2\u081a\u0824\7g\2\2\u081b\u081c") - buf.write("\7p\2\2\u081c\u081d\7w\2\2\u081d\u081e\7n\2\2\u081e\u0824") - buf.write("\7n\2\2\u081f\u0820\7P\2\2\u0820\u0821\7W\2\2\u0821\u0822") - buf.write("\7N\2\2\u0822\u0824\7N\2\2\u0823\u0813\3\2\2\2\u0823\u0817") - buf.write("\3\2\2\2\u0823\u081b\3\2\2\2\u0823\u081f\3\2\2\2\u0824") - buf.write("\u015a\3\2\2\2\u0825\u0826\7p\2\2\u0826\u0827\7q\2\2\u0827") - buf.write("\u0828\7k\2\2\u0828\u0829\7u\2\2\u0829\u083d\7g\2\2\u082a") - buf.write("\u082b\7t\2\2\u082b\u082c\7c\2\2\u082c\u082d\7p\2\2\u082d") - buf.write("\u082e\7f\2\2\u082e\u083d\7p\2\2\u082f\u0830\7t\2\2\u0830") - buf.write("\u0831\7c\2\2\u0831\u0832\7p\2\2\u0832\u0833\7f\2\2\u0833") - buf.write("\u0834\7q\2\2\u0834\u0835\7o\2\2\u0835\u0836\7a\2\2\u0836") - buf.write("\u0837\7p\2\2\u0837\u0838\7q\2\2\u0838\u0839\7t\2\2\u0839") - buf.write("\u083a\7o\2\2\u083a\u083b\7c\2\2\u083b\u083d\7n\2\2\u083c") - buf.write("\u0825\3\2\2\2\u083c\u082a\3\2\2\2\u083c\u082f\3\2\2\2") - buf.write("\u083d\u015c\3\2\2\2\u083e\u083f\7t\2\2\u083f\u0840\7") - buf.write("c\2\2\u0840\u0841\7p\2\2\u0841\u0856\7f\2\2\u0842\u0843") - buf.write("\7t\2\2\u0843\u0844\7c\2\2\u0844\u0845\7p\2\2\u0845\u0846") - buf.write("\7f\2\2\u0846\u0856\7w\2\2\u0847\u0848\7t\2\2\u0848\u0849") - buf.write("\7c\2\2\u0849\u084a\7p\2\2\u084a\u084b\7f\2\2\u084b\u084c") - buf.write("\7q\2\2\u084c\u084d\7o\2\2\u084d\u084e\7a\2\2\u084e\u084f") - buf.write("\7w\2\2\u084f\u0850\7p\2\2\u0850\u0851\7k\2\2\u0851\u0852") - buf.write("\7h\2\2\u0852\u0853\7q\2\2\u0853\u0854\7t\2\2\u0854\u0856") - buf.write("\7o\2\2\u0855\u083e\3\2\2\2\u0855\u0842\3\2\2\2\u0855") - buf.write("\u0847\3\2\2\2\u0856\u015e\3\2\2\2\u0857\u0858\7t\2\2") - buf.write("\u0858\u0859\7c\2\2\u0859\u085a\7p\2\2\u085a\u085b\7f") - buf.write("\2\2\u085b\u086a\7e\2\2\u085c\u085d\7t\2\2\u085d\u085e") - buf.write("\7c\2\2\u085e\u085f\7p\2\2\u085f\u0860\7f\2\2\u0860\u0861") - buf.write("\7q\2\2\u0861\u0862\7o\2\2\u0862\u0863\7a\2\2\u0863\u0864") - buf.write("\7e\2\2\u0864\u0865\7c\2\2\u0865\u0866\7w\2\2\u0866\u0867") - buf.write("\7e\2\2\u0867\u0868\7j\2\2\u0868\u086a\7{\2\2\u0869\u0857") - buf.write("\3\2\2\2\u0869\u085c\3\2\2\2\u086a\u0160\3\2\2\2\u086b") - buf.write("\u086c\7t\2\2\u086c\u086d\7c\2\2\u086d\u086e\7p\2\2\u086e") - buf.write("\u086f\7f\2\2\u086f\u0883\7g\2\2\u0870\u0871\7t\2\2\u0871") - buf.write("\u0872\7c\2\2\u0872\u0873\7p\2\2\u0873\u0874\7f\2\2\u0874") - buf.write("\u0875\7q\2\2\u0875\u0876\7o\2\2\u0876\u0877\7a\2\2\u0877") - buf.write("\u0878\7g\2\2\u0878\u0879\7z\2\2\u0879\u087a\7r\2\2\u087a") - buf.write("\u087b\7q\2\2\u087b\u087c\7p\2\2\u087c\u087d\7g\2\2\u087d") - buf.write("\u087e\7p\2\2\u087e\u087f\7v\2\2\u087f\u0880\7k\2\2\u0880") - buf.write("\u0881\7c\2\2\u0881\u0883\7n\2\2\u0882\u086b\3\2\2\2\u0882") - buf.write("\u0870\3\2\2\2\u0883\u0162\3\2\2\2\u0884\u0885\7t\2\2") - buf.write("\u0885\u0886\7c\2\2\u0886\u0887\7p\2\2\u0887\u0888\7f") - buf.write("\2\2\u0888\u0889\7n\2\2\u0889\u089c\7p\2\2\u088a\u088b") - buf.write("\7t\2\2\u088b\u088c\7c\2\2\u088c\u088d\7p\2\2\u088d\u088e") - buf.write("\7f\2\2\u088e\u088f\7q\2\2\u088f\u0890\7o\2\2\u0890\u0891") - buf.write("\7a\2\2\u0891\u0892\7n\2\2\u0892\u0893\7q\2\2\u0893\u0894") - buf.write("\7i\2\2\u0894\u0895\7a\2\2\u0895\u0896\7p\2\2\u0896\u0897") - buf.write("\7q\2\2\u0897\u0898\7t\2\2\u0898\u0899\7o\2\2\u0899\u089a") - buf.write("\7c\2\2\u089a\u089c\7n\2\2\u089b\u0884\3\2\2\2\u089b\u088a") - buf.write("\3\2\2\2\u089c\u0164\3\2\2\2\u089d\u089e\7t\2\2\u089e") - buf.write("\u089f\7c\2\2\u089f\u08a0\7p\2\2\u08a0\u08a1\7f\2\2\u08a1") - buf.write("\u08b3\7d\2\2\u08a2\u08a3\7t\2\2\u08a3\u08a4\7c\2\2\u08a4") - buf.write("\u08a5\7p\2\2\u08a5\u08a6\7f\2\2\u08a6\u08a7\7q\2\2\u08a7") - buf.write("\u08a8\7o\2\2\u08a8\u08a9\7a\2\2\u08a9\u08aa\7d\2\2\u08aa") - buf.write("\u08ab\7g\2\2\u08ab\u08ac\7t\2\2\u08ac\u08ad\7p\2\2\u08ad") - buf.write("\u08ae\7q\2\2\u08ae\u08af\7w\2\2\u08af\u08b0\7n\2\2\u08b0") - buf.write("\u08b1\7n\2\2\u08b1\u08b3\7k\2\2\u08b2\u089d\3\2\2\2\u08b2") - buf.write("\u08a2\3\2\2\2\u08b3\u0166\3\2\2\2\u08b4\u08b5\7t\2\2") - buf.write("\u08b5\u08b6\7c\2\2\u08b6\u08b7\7p\2\2\u08b7\u08b8\7f") - buf.write("\2\2\u08b8\u08c8\7r\2\2\u08b9\u08ba\7t\2\2\u08ba\u08bb") - buf.write("\7c\2\2\u08bb\u08bc\7p\2\2\u08bc\u08bd\7f\2\2\u08bd\u08be") - buf.write("\7q\2\2\u08be\u08bf\7o\2\2\u08bf\u08c0\7a\2\2\u08c0\u08c1") - buf.write("\7r\2\2\u08c1\u08c2\7q\2\2\u08c2\u08c3\7k\2\2\u08c3\u08c4") - buf.write("\7u\2\2\u08c4\u08c5\7u\2\2\u08c5\u08c6\7q\2\2\u08c6\u08c8") - buf.write("\7p\2\2\u08c7\u08b4\3\2\2\2\u08c7\u08b9\3\2\2\2\u08c8") - buf.write("\u0168\3\2\2\2\u08c9\u08ca\7t\2\2\u08ca\u08cb\7c\2\2\u08cb") - buf.write("\u08cc\7p\2\2\u08cc\u08cd\7f\2\2\u08cd\u08db\7i\2\2\u08ce") - buf.write("\u08cf\7t\2\2\u08cf\u08d0\7c\2\2\u08d0\u08d1\7p\2\2\u08d1") - buf.write("\u08d2\7f\2\2\u08d2\u08d3\7q\2\2\u08d3\u08d4\7o\2\2\u08d4") - buf.write("\u08d5\7a\2\2\u08d5\u08d6\7i\2\2\u08d6\u08d7\7c\2\2\u08d7") - buf.write("\u08d8\7o\2\2\u08d8\u08d9\7o\2\2\u08d9\u08db\7c\2\2\u08da") - buf.write("\u08c9\3\2\2\2\u08da\u08ce\3\2\2\2\u08db\u016a\3\2\2\2") - buf.write("\u08dc\u08dd\7t\2\2\u08dd\u08de\7c\2\2\u08de\u08df\7p") - buf.write("\2\2\u08df\u08e0\7f\2\2\u08e0\u08e1\7d\2\2\u08e1\u08e2") - buf.write("\7g\2\2\u08e2\u08e3\7v\2\2\u08e3\u08f0\7c\2\2\u08e4\u08e5") - buf.write("\7t\2\2\u08e5\u08e6\7c\2\2\u08e6\u08e7\7p\2\2\u08e7\u08e8") - buf.write("\7f\2\2\u08e8\u08e9\7q\2\2\u08e9\u08ea\7o\2\2\u08ea\u08eb") - buf.write("\7a\2\2\u08eb\u08ec\7d\2\2\u08ec\u08ed\7g\2\2\u08ed\u08ee") - buf.write("\7v\2\2\u08ee\u08f0\7c\2\2\u08ef\u08dc\3\2\2\2\u08ef\u08e4") - buf.write("\3\2\2\2\u08f0\u016c\3\2\2\2\u08f1\u08f2\7t\2\2\u08f2") - buf.write("\u08f3\7c\2\2\u08f3\u08f4\7p\2\2\u08f4\u08f5\7f\2\2\u08f5") - buf.write("\u0905\7n\2\2\u08f6\u08f7\7t\2\2\u08f7\u08f8\7c\2\2\u08f8") - buf.write("\u08f9\7p\2\2\u08f9\u08fa\7f\2\2\u08fa\u08fb\7q\2\2\u08fb") - buf.write("\u08fc\7o\2\2\u08fc\u08fd\7a\2\2\u08fd\u08fe\7n\2\2\u08fe") - buf.write("\u08ff\7c\2\2\u08ff\u0900\7r\2\2\u0900\u0901\7n\2\2\u0901") - buf.write("\u0902\7c\2\2\u0902\u0903\7e\2\2\u0903\u0905\7g\2\2\u0904") - buf.write("\u08f1\3\2\2\2\u0904\u08f6\3\2\2\2\u0905\u016e\3\2\2\2") - buf.write("\u0906\u0907\7t\2\2\u0907\u0908\7c\2\2\u0908\u0909\7p") - buf.write("\2\2\u0909\u090a\7f\2\2\u090a\u090b\7i\2\2\u090b\u090c") - buf.write("\7w\2\2\u090c\u090d\7o\2\2\u090d\u090e\7d\2\2\u090e\u090f") - buf.write("\7g\2\2\u090f\u091e\7n\2\2\u0910\u0911\7t\2\2\u0911\u0912") - buf.write("\7c\2\2\u0912\u0913\7p\2\2\u0913\u0914\7f\2\2\u0914\u0915") - buf.write("\7q\2\2\u0915\u0916\7o\2\2\u0916\u0917\7a\2\2\u0917\u0918") - buf.write("\7i\2\2\u0918\u0919\7w\2\2\u0919\u091a\7o\2\2\u091a\u091b") - buf.write("\7d\2\2\u091b\u091c\7g\2\2\u091c\u091e\7n\2\2\u091d\u0906") - buf.write("\3\2\2\2\u091d\u0910\3\2\2\2\u091e\u0170\3\2\2\2\u091f") - buf.write("\u0920\7t\2\2\u0920\u0921\7c\2\2\u0921\u0922\7p\2\2\u0922") - buf.write("\u0923\7f\2\2\u0923\u0933\7y\2\2\u0924\u0925\7t\2\2\u0925") - buf.write("\u0926\7c\2\2\u0926\u0927\7p\2\2\u0927\u0928\7f\2\2\u0928") - buf.write("\u0929\7q\2\2\u0929\u092a\7o\2\2\u092a\u092b\7a\2\2\u092b") - buf.write("\u092c\7y\2\2\u092c\u092d\7g\2\2\u092d\u092e\7k\2\2\u092e") - buf.write("\u092f\7d\2\2\u092f\u0930\7w\2\2\u0930\u0931\7n\2\2\u0931") - buf.write("\u0933\7n\2\2\u0932\u091f\3\2\2\2\u0932\u0924\3\2\2\2") - buf.write("\u0933\u0172\3\2\2\2\u0934\u0935\7t\2\2\u0935\u0936\7") - buf.write("c\2\2\u0936\u0937\7p\2\2\u0937\u0938\7f\2\2\u0938\u0939") - buf.write("\7e\2\2\u0939\u093a\7j\2\2\u093a\u093b\7k\2\2\u093b\u0948") - buf.write("\7\64\2\2\u093c\u093d\7t\2\2\u093d\u093e\7c\2\2\u093e") - buf.write("\u093f\7p\2\2\u093f\u0940\7f\2\2\u0940\u0941\7q\2\2\u0941") - buf.write("\u0942\7o\2\2\u0942\u0943\7a\2\2\u0943\u0944\7e\2\2\u0944") - buf.write("\u0945\7j\2\2\u0945\u0946\7k\2\2\u0946\u0948\7\64\2\2") - buf.write("\u0947\u0934\3\2\2\2\u0947\u093c\3\2\2\2\u0948\u0174\3") - buf.write("\2\2\2\u0949\u094a\7t\2\2\u094a\u094b\7c\2\2\u094b\u094c") - buf.write("\7p\2\2\u094c\u094d\7f\2\2\u094d\u095e\7v\2\2\u094e\u094f") - buf.write("\7t\2\2\u094f\u0950\7c\2\2\u0950\u0951\7p\2\2\u0951\u0952") - buf.write("\7f\2\2\u0952\u0953\7q\2\2\u0953\u0954\7o\2\2\u0954\u0955") - buf.write("\7a\2\2\u0955\u0956\7u\2\2\u0956\u0957\7v\2\2\u0957\u0958") - buf.write("\7w\2\2\u0958\u0959\7f\2\2\u0959\u095a\7g\2\2\u095a\u095b") - buf.write("\7p\2\2\u095b\u095c\7v\2\2\u095c\u095e\7v\2\2\u095d\u0949") - buf.write("\3\2\2\2\u095d\u094e\3\2\2\2\u095e\u0176\3\2\2\2\u095f") - buf.write("\u0960\7r\2\2\u0960\u0961\7g\2\2\u0961\u0962\7t\2\2\u0962") - buf.write("\u0963\7n\2\2\u0963\u0964\7k\2\2\u0964\u0972\7p\2\2\u0965") - buf.write("\u0966\7r\2\2\u0966\u0967\7g\2\2\u0967\u0968\7t\2\2\u0968") - buf.write("\u0969\7n\2\2\u0969\u096a\7k\2\2\u096a\u096b\7p\2\2\u096b") - buf.write("\u096c\7a\2\2\u096c\u096d\7p\2\2\u096d\u096e\7q\2\2\u096e") - buf.write("\u096f\7k\2\2\u096f\u0970\7u\2\2\u0970\u0972\7g\2\2\u0971") - buf.write("\u095f\3\2\2\2\u0971\u0965\3\2\2\2\u0972\u0178\3\2\2\2") - buf.write("\u0973\u0974\7e\2\2\u0974\u0975\7g\2\2\u0975\u0976\7n") - buf.write("\2\2\u0976\u0977\7n\2\2\u0977\u0978\7w\2\2\u0978\u0979") - buf.write("\7n\2\2\u0979\u097a\7c\2\2\u097a\u09a4\7t\2\2\u097b\u097c") - buf.write("\7x\2\2\u097c\u097d\7q\2\2\u097d\u097e\7t\2\2\u097e\u097f") - buf.write("\7q\2\2\u097f\u0980\7p\2\2\u0980\u0981\7q\2\2\u0981\u09a4") - buf.write("\7k\2\2\u0982\u0983\7y\2\2\u0983\u0984\7q\2\2\u0984\u0985") - buf.write("\7t\2\2\u0985\u0986\7n\2\2\u0986\u0987\7g\2\2\u0987\u09a4") - buf.write("\7{\2\2\u0988\u0989\7e\2\2\u0989\u098a\7g\2\2\u098a\u098b") - buf.write("\7n\2\2\u098b\u098c\7n\2\2\u098c\u098d\7w\2\2\u098d\u098e") - buf.write("\7n\2\2\u098e\u098f\7c\2\2\u098f\u0990\7t\2\2\u0990\u0991") - buf.write("\7a\2\2\u0991\u0992\7p\2\2\u0992\u0993\7q\2\2\u0993\u0994") - buf.write("\7k\2\2\u0994\u0995\7u\2\2\u0995\u09a4\7g\2\2\u0996\u0997") - buf.write("\7x\2\2\u0997\u0998\7q\2\2\u0998\u0999\7t\2\2\u0999\u099a") - buf.write("\7q\2\2\u099a\u099b\7p\2\2\u099b\u099c\7q\2\2\u099c\u099d") - buf.write("\7k\2\2\u099d\u099e\7a\2\2\u099e\u099f\7p\2\2\u099f\u09a0") - buf.write("\7q\2\2\u09a0\u09a1\7k\2\2\u09a1\u09a2\7u\2\2\u09a2\u09a4") - buf.write("\7g\2\2\u09a3\u0973\3\2\2\2\u09a3\u097b\3\2\2\2\u09a3") - buf.write("\u0982\3\2\2\2\u09a3\u0988\3\2\2\2\u09a3\u0996\3\2\2\2") - buf.write("\u09a4\u017a\3\2\2\2\u09a5\u09a6\7r\2\2\u09a6\u09a7\7") - buf.write("n\2\2\u09a7\u09a8\7c\2\2\u09a8\u09a9\7u\2\2\u09a9\u09aa") - buf.write("\7o\2\2\u09aa\u09c2\7c\2\2\u09ab\u09ac\7v\2\2\u09ac\u09ad") - buf.write("\7w\2\2\u09ad\u09ae\7t\2\2\u09ae\u09af\7d\2\2\u09af\u09b0") - buf.write("\7w\2\2\u09b0\u09b1\7n\2\2\u09b1\u09b2\7g\2\2\u09b2\u09b3") - buf.write("\7p\2\2\u09b3\u09b4\7e\2\2\u09b4\u09c2\7g\2\2\u09b5\u09b6") - buf.write("\7r\2\2\u09b6\u09b7\7n\2\2\u09b7\u09b8\7c\2\2\u09b8\u09b9") - buf.write("\7u\2\2\u09b9\u09ba\7o\2\2\u09ba\u09bb\7c\2\2\u09bb\u09bc") - buf.write("\7a\2\2\u09bc\u09bd\7p\2\2\u09bd\u09be\7q\2\2\u09be\u09bf") - buf.write("\7k\2\2\u09bf\u09c0\7u\2\2\u09c0\u09c2\7g\2\2\u09c1\u09a5") - buf.write("\3\2\2\2\u09c1\u09ab\3\2\2\2\u09c1\u09b5\3\2\2\2\u09c2") - buf.write("\u017c\3\2\2\2\u09c3\u09c4\7t\2\2\u09c4\u09c5\7k\2\2\u09c5") - buf.write("\u09c6\7f\2\2\u09c6\u09c7\7i\2\2\u09c7\u09c8\7g\2\2\u09c8") - buf.write("\u09d6\7f\2\2\u09c9\u09ca\7t\2\2\u09ca\u09cb\7k\2\2\u09cb") - buf.write("\u09cc\7f\2\2\u09cc\u09cd\7i\2\2\u09cd\u09ce\7g\2\2\u09ce") - buf.write("\u09cf\7f\2\2\u09cf\u09d0\7a\2\2\u09d0\u09d1\7p\2\2\u09d1") - buf.write("\u09d2\7q\2\2\u09d2\u09d3\7k\2\2\u09d3\u09d4\7u\2\2\u09d4") - buf.write("\u09d6\7g\2\2\u09d5\u09c3\3\2\2\2\u09d5\u09c9\3\2\2\2") - buf.write("\u09d6\u017e\3\2\2\2\u09d7\u09d8\7f\2\2\u09d8\u09d9\7") - buf.write("q\2\2\u09d9\u09da\7o\2\2\u09da\u09db\7c\2\2\u09db\u09dc") - buf.write("\7k\2\2\u09dc\u09dd\7p\2\2\u09dd\u09de\7a\2\2\u09de\u09df") - buf.write("\7y\2\2\u09df\u09e0\7c\2\2\u09e0\u09e1\7t\2\2\u09e1\u09f4") - buf.write("\7r\2\2\u09e2\u09e3\7f\2\2\u09e3\u09e4\7q\2\2\u09e4\u09e5") - buf.write("\7o\2\2\u09e5\u09e6\7c\2\2\u09e6\u09e7\7k\2\2\u09e7\u09e8") - buf.write("\7p\2\2\u09e8\u09e9\7a\2\2\u09e9\u09ea\7y\2\2\u09ea\u09eb") - buf.write("\7c\2\2\u09eb\u09ec\7t\2\2\u09ec\u09ed\7r\2\2\u09ed\u09ee") - buf.write("\7a\2\2\u09ee\u09ef\7p\2\2\u09ef\u09f0\7q\2\2\u09f0\u09f1") - buf.write("\7k\2\2\u09f1\u09f2\7u\2\2\u09f2\u09f4\7g\2\2\u09f3\u09d7") - buf.write("\3\2\2\2\u09f3\u09e2\3\2\2\2\u09f4\u0180\3\2\2\2\u09f5") - buf.write("\u09f6\7-\2\2\u09f6\u0182\3\2\2\2\u09f7\u09f8\7/\2\2\u09f8") - buf.write("\u0184\3\2\2\2\u09f9\u09fa\7,\2\2\u09fa\u0186\3\2\2\2") - buf.write("\u09fb\u09fc\7\61\2\2\u09fc\u0188\3\2\2\2\u09fd\u09fe") - buf.write("\7\'\2\2\u09fe\u018a\3\2\2\2\u09ff\u0a00\7`\2\2\u0a00") - buf.write("\u018c\3\2\2\2\u0a01\u0a02\7>\2\2\u0a02\u0a03\7>\2\2\u0a03") - buf.write("\u018e\3\2\2\2\u0a04\u0a05\7@\2\2\u0a05\u0a06\7@\2\2\u0a06") - buf.write("\u0190\3\2\2\2\u0a07\u0a08\7@\2\2\u0a08\u0a09\7?\2\2\u0a09") - buf.write("\u0192\3\2\2\2\u0a0a\u0a0b\7@\2\2\u0a0b\u0194\3\2\2\2") - buf.write("\u0a0c\u0a0d\7>\2\2\u0a0d\u0a0e\7?\2\2\u0a0e\u0196\3\2") - buf.write("\2\2\u0a0f\u0a10\7>\2\2\u0a10\u0198\3\2\2\2\u0a11\u0a12") - buf.write("\7?\2\2\u0a12\u0a13\7?\2\2\u0a13\u019a\3\2\2\2\u0a14\u0a15") - buf.write("\7?\2\2\u0a15\u019c\3\2\2\2\u0a16\u0a17\7-\2\2\u0a17\u0a18") - buf.write("\7?\2\2\u0a18\u019e\3\2\2\2\u0a19\u0a1a\7/\2\2\u0a1a\u0a1b") - buf.write("\7?\2\2\u0a1b\u01a0\3\2\2\2\u0a1c\u0a1d\7,\2\2\u0a1d\u0a1e") - buf.write("\7?\2\2\u0a1e\u01a2\3\2\2\2\u0a1f\u0a20\7\61\2\2\u0a20") - buf.write("\u0a21\7?\2\2\u0a21\u01a4\3\2\2\2\u0a22\u0a23\7\'\2\2") - buf.write("\u0a23\u0a24\7?\2\2\u0a24\u01a6\3\2\2\2\u0a25\u0a26\7") - buf.write("#\2\2\u0a26\u0a27\7?\2\2\u0a27\u01a8\3\2\2\2\u0a28\u0a29") - buf.write("\7~\2\2\u0a29\u01aa\3\2\2\2\u0a2a\u0a2b\7*\2\2\u0a2b\u01ac") - buf.write("\3\2\2\2\u0a2c\u0a2d\7+\2\2\u0a2d\u01ae\3\2\2\2\u0a2e") - buf.write("\u0a2f\7.\2\2\u0a2f\u01b0\3\2\2\2\u0a30\u0a31\7=\2\2\u0a31") - buf.write("\u01b2\3\2\2\2\u0a32\u0a33\7/\2\2\u0a33\u0a34\7@\2\2\u0a34") - buf.write("\u01b4\3\2\2\2\u0a35\u0a36\7]\2\2\u0a36\u01b6\3\2\2\2") - buf.write("\u0a37\u0a38\7_\2\2\u0a38\u01b8\3\2\2\2\u0a39\u0a3a\7") - buf.write("A\2\2\u0a3a\u01ba\3\2\2\2\u0a3b\u0a3c\7<\2\2\u0a3c\u01bc") - buf.write("\3\2\2\2\u0a3d\u0a3e\7}\2\2\u0a3e\u01be\3\2\2\2\u0a3f") - buf.write("\u0a40\7\177\2\2\u0a40\u01c0\3\2\2\2\u0a41\u0a43\t\2\2") - buf.write("\2\u0a42\u0a41\3\2\2\2\u0a43\u0a44\3\2\2\2\u0a44\u0a42") - buf.write("\3\2\2\2\u0a44\u0a45\3\2\2\2\u0a45\u0a4d\3\2\2\2\u0a46") - buf.write("\u0a4a\7\60\2\2\u0a47\u0a49\t\2\2\2\u0a48\u0a47\3\2\2") - buf.write("\2\u0a49\u0a4c\3\2\2\2\u0a4a\u0a48\3\2\2\2\u0a4a\u0a4b") - buf.write("\3\2\2\2\u0a4b\u0a4e\3\2\2\2\u0a4c\u0a4a\3\2\2\2\u0a4d") - buf.write("\u0a46\3\2\2\2\u0a4d\u0a4e\3\2\2\2\u0a4e\u0a56\3\2\2\2") - buf.write("\u0a4f\u0a51\7\60\2\2\u0a50\u0a52\t\2\2\2\u0a51\u0a50") - buf.write("\3\2\2\2\u0a52\u0a53\3\2\2\2\u0a53\u0a51\3\2\2\2\u0a53") - buf.write("\u0a54\3\2\2\2\u0a54\u0a56\3\2\2\2\u0a55\u0a42\3\2\2\2") - buf.write("\u0a55\u0a4f\3\2\2\2\u0a56\u0a60\3\2\2\2\u0a57\u0a59\t") - buf.write("\3\2\2\u0a58\u0a5a\t\4\2\2\u0a59\u0a58\3\2\2\2\u0a59\u0a5a") - buf.write("\3\2\2\2\u0a5a\u0a5c\3\2\2\2\u0a5b\u0a5d\t\2\2\2\u0a5c") - buf.write("\u0a5b\3\2\2\2\u0a5d\u0a5e\3\2\2\2\u0a5e\u0a5c\3\2\2\2") - buf.write("\u0a5e\u0a5f\3\2\2\2\u0a5f\u0a61\3\2\2\2\u0a60\u0a57\3") - buf.write("\2\2\2\u0a60\u0a61\3\2\2\2\u0a61\u01c2\3\2\2\2\u0a62\u0a63") - buf.write("\7r\2\2\u0a63\u0a68\7k\2\2\u0a64\u0a65\7R\2\2\u0a65\u0a68") - buf.write("\7K\2\2\u0a66\u0a68\t\3\2\2\u0a67\u0a62\3\2\2\2\u0a67") - buf.write("\u0a64\3\2\2\2\u0a67\u0a66\3\2\2\2\u0a68\u01c4\3\2\2\2") - buf.write("\u0a69\u0a6f\7$\2\2\u0a6a\u0a6e\n\5\2\2\u0a6b\u0a6c\7") - buf.write("^\2\2\u0a6c\u0a6e\13\2\2\2\u0a6d\u0a6a\3\2\2\2\u0a6d\u0a6b") - buf.write("\3\2\2\2\u0a6e\u0a71\3\2\2\2\u0a6f\u0a6d\3\2\2\2\u0a6f") - buf.write("\u0a70\3\2\2\2\u0a70\u0a72\3\2\2\2\u0a71\u0a6f\3\2\2\2") - buf.write("\u0a72\u0a7e\7$\2\2\u0a73\u0a79\7)\2\2\u0a74\u0a78\n\6") - buf.write("\2\2\u0a75\u0a76\7^\2\2\u0a76\u0a78\13\2\2\2\u0a77\u0a74") - buf.write("\3\2\2\2\u0a77\u0a75\3\2\2\2\u0a78\u0a7b\3\2\2\2\u0a79") - buf.write("\u0a77\3\2\2\2\u0a79\u0a7a\3\2\2\2\u0a7a\u0a7c\3\2\2\2") - buf.write("\u0a7b\u0a79\3\2\2\2\u0a7c\u0a7e\7)\2\2\u0a7d\u0a69\3") - buf.write("\2\2\2\u0a7d\u0a73\3\2\2\2\u0a7e\u01c6\3\2\2\2\u0a7f\u0a83") - buf.write("\t\7\2\2\u0a80\u0a82\t\b\2\2\u0a81\u0a80\3\2\2\2\u0a82") - buf.write("\u0a85\3\2\2\2\u0a83\u0a81\3\2\2\2\u0a83\u0a84\3\2\2\2") - buf.write("\u0a84\u01c8\3\2\2\2\u0a85\u0a83\3\2\2\2\u0a86\u0a8a\7") - buf.write("%\2\2\u0a87\u0a89\n\t\2\2\u0a88\u0a87\3\2\2\2\u0a89\u0a8c") - buf.write("\3\2\2\2\u0a8a\u0a88\3\2\2\2\u0a8a\u0a8b\3\2\2\2\u0a8b") - buf.write("\u0a8d\3\2\2\2\u0a8c\u0a8a\3\2\2\2\u0a8d\u0a8e\b\u00e5") - buf.write("\2\2\u0a8e\u01ca\3\2\2\2\u0a8f\u0a90\7\61\2\2\u0a90\u0a91") - buf.write("\7,\2\2\u0a91\u0a95\3\2\2\2\u0a92\u0a94\13\2\2\2\u0a93") - buf.write("\u0a92\3\2\2\2\u0a94\u0a97\3\2\2\2\u0a95\u0a96\3\2\2\2") - buf.write("\u0a95\u0a93\3\2\2\2\u0a96\u0a98\3\2\2\2\u0a97\u0a95\3") - buf.write("\2\2\2\u0a98\u0a99\7,\2\2\u0a99\u0a9a\7\61\2\2\u0a9a\u0a9b") - buf.write("\3\2\2\2\u0a9b\u0a9c\b\u00e6\2\2\u0a9c\u01cc\3\2\2\2\u0a9d") - buf.write("\u0a9f\t\n\2\2\u0a9e\u0a9d\3\2\2\2\u0a9f\u0aa0\3\2\2\2") - buf.write("\u0aa0\u0a9e\3\2\2\2\u0aa0\u0aa1\3\2\2\2\u0aa1\u0aa2\3") - buf.write("\2\2\2\u0aa2\u0aa3\b\u00e7\2\2\u0aa3\u01ce\3\2\2\2J\2") - buf.write("\u028f\u029e\u02ea\u02fb\u030d\u031a\u0363\u0374\u03ae") - buf.write("\u03df\u03f5\u0406\u041b\u042a\u0445\u0464\u0474\u04bb") - buf.write("\u04ed\u0501\u0516\u0545\u055d\u0574\u0585\u0594\u05e6") - buf.write("\u061d\u0702\u073f\u0754\u078d\u0804\u0823\u083c\u0855") - buf.write("\u0869\u0882\u089b\u08b2\u08c7\u08da\u08ef\u0904\u091d") - buf.write("\u0932\u0947\u095d\u0971\u09a3\u09c1\u09d5\u09f3\u0a44") - buf.write("\u0a4a\u0a4d\u0a53\u0a55\u0a59\u0a5e\u0a60\u0a67\u0a6d") - buf.write("\u0a6f\u0a77\u0a79\u0a7d\u0a83\u0a8a\u0a95\u0aa0\3\b\2") + buf.write("\3\u00e0\3\u00e0\3\u00e1\3\u00e1\3\u00e2\6\u00e2\u0a58") + buf.write("\n\u00e2\r\u00e2\16\u00e2\u0a59\3\u00e2\3\u00e2\7\u00e2") + buf.write("\u0a5e\n\u00e2\f\u00e2\16\u00e2\u0a61\13\u00e2\5\u00e2") + buf.write("\u0a63\n\u00e2\3\u00e2\3\u00e2\6\u00e2\u0a67\n\u00e2\r") + buf.write("\u00e2\16\u00e2\u0a68\5\u00e2\u0a6b\n\u00e2\3\u00e2\3") + buf.write("\u00e2\5\u00e2\u0a6f\n\u00e2\3\u00e2\6\u00e2\u0a72\n\u00e2") + buf.write("\r\u00e2\16\u00e2\u0a73\5\u00e2\u0a76\n\u00e2\3\u00e3") + buf.write("\3\u00e3\3\u00e3\3\u00e3\3\u00e3\5\u00e3\u0a7d\n\u00e3") + buf.write("\3\u00e4\3\u00e4\3\u00e4\3\u00e4\7\u00e4\u0a83\n\u00e4") + buf.write("\f\u00e4\16\u00e4\u0a86\13\u00e4\3\u00e4\3\u00e4\3\u00e4") + buf.write("\3\u00e4\3\u00e4\7\u00e4\u0a8d\n\u00e4\f\u00e4\16\u00e4") + buf.write("\u0a90\13\u00e4\3\u00e4\5\u00e4\u0a93\n\u00e4\3\u00e5") + buf.write("\3\u00e5\7\u00e5\u0a97\n\u00e5\f\u00e5\16\u00e5\u0a9a") + buf.write("\13\u00e5\3\u00e6\3\u00e6\7\u00e6\u0a9e\n\u00e6\f\u00e6") + buf.write("\16\u00e6\u0aa1\13\u00e6\3\u00e6\3\u00e6\3\u00e7\3\u00e7") + buf.write("\3\u00e7\3\u00e7\7\u00e7\u0aa9\n\u00e7\f\u00e7\16\u00e7") + buf.write("\u0aac\13\u00e7\3\u00e7\3\u00e7\3\u00e7\3\u00e7\3\u00e7") + buf.write("\3\u00e8\6\u00e8\u0ab4\n\u00e8\r\u00e8\16\u00e8\u0ab5") + buf.write("\3\u00e8\3\u00e8\3\u0aaa\2\u00e9\3\3\5\4\7\5\t\6\13\7") + buf.write("\r\b\17\t\21\n\23\13\25\f\27\r\31\16\33\17\35\20\37\21") + buf.write("!\22#\23%\24\'\25)\26+\27-\30/\31\61\32\63\33\65\34\67") + buf.write("\359\36;\37= ?!A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]\60_\61") + buf.write("a\62c\63e\64g\65i\66k\67m8o9q:s;u{?}@\177A\u0081") + buf.write("B\u0083C\u0085D\u0087E\u0089F\u008bG\u008dH\u008fI\u0091") + buf.write("J\u0093K\u0095L\u0097M\u0099N\u009bO\u009dP\u009fQ\u00a1") + buf.write("R\u00a3S\u00a5T\u00a7U\u00a9V\u00abW\u00adX\u00afY\u00b1") + buf.write("Z\u00b3[\u00b5\\\u00b7]\u00b9^\u00bb_\u00bd`\u00bfa\u00c1") + buf.write("b\u00c3c\u00c5d\u00c7e\u00c9f\u00cbg\u00cdh\u00cfi\u00d1") + buf.write("j\u00d3k\u00d5l\u00d7m\u00d9n\u00dbo\u00ddp\u00dfq\u00e1") + buf.write("r\u00e3s\u00e5t\u00e7u\u00e9v\u00ebw\u00edx\u00efy\u00f1") + buf.write("z\u00f3{\u00f5|\u00f7}\u00f9~\u00fb\177\u00fd\u0080\u00ff") + buf.write("\u0081\u0101\u0082\u0103\u0083\u0105\u0084\u0107\u0085") + buf.write("\u0109\u0086\u010b\u0087\u010d\u0088\u010f\u0089\u0111") + buf.write("\u008a\u0113\u008b\u0115\u008c\u0117\u008d\u0119\u008e") + buf.write("\u011b\u008f\u011d\u0090\u011f\u0091\u0121\u0092\u0123") + buf.write("\u0093\u0125\u0094\u0127\u0095\u0129\u0096\u012b\u0097") + buf.write("\u012d\u0098\u012f\u0099\u0131\u009a\u0133\u009b\u0135") + buf.write("\u009c\u0137\u009d\u0139\u009e\u013b\u009f\u013d\u00a0") + buf.write("\u013f\u00a1\u0141\u00a2\u0143\u00a3\u0145\u00a4\u0147") + buf.write("\u00a5\u0149\u00a6\u014b\u00a7\u014d\u00a8\u014f\u00a9") + buf.write("\u0151\u00aa\u0153\u00ab\u0155\u00ac\u0157\u00ad\u0159") + buf.write("\u00ae\u015b\u00af\u015d\u00b0\u015f\u00b1\u0161\u00b2") + buf.write("\u0163\u00b3\u0165\u00b4\u0167\u00b5\u0169\u00b6\u016b") + buf.write("\u00b7\u016d\u00b8\u016f\u00b9\u0171\u00ba\u0173\u00bb") + buf.write("\u0175\u00bc\u0177\u00bd\u0179\u00be\u017b\u00bf\u017d") + buf.write("\u00c0\u017f\u00c1\u0181\u00c2\u0183\u00c3\u0185\u00c4") + buf.write("\u0187\u00c5\u0189\u00c6\u018b\u00c7\u018d\u00c8\u018f") + buf.write("\u00c9\u0191\u00ca\u0193\u00cb\u0195\u00cc\u0197\u00cd") + buf.write("\u0199\u00ce\u019b\u00cf\u019d\u00d0\u019f\u00d1\u01a1") + buf.write("\u00d2\u01a3\u00d3\u01a5\u00d4\u01a7\u00d5\u01a9\u00d6") + buf.write("\u01ab\u00d7\u01ad\u00d8\u01af\u00d9\u01b1\u00da\u01b3") + buf.write("\u00db\u01b5\u00dc\u01b7\u00dd\u01b9\u00de\u01bb\u00df") + buf.write("\u01bd\u00e0\u01bf\u00e1\u01c1\u00e2\u01c3\u00e3\u01c5") + buf.write("\u00e4\u01c7\u00e5\u01c9\u00e6\u01cb\u00e7\u01cd\u00e8") + buf.write("\u01cf\u00e9\3\2\13\3\2\62;\4\2GGgg\4\2--//\6\2\f\f\17") + buf.write("\17$$^^\6\2\f\f\17\17))^^\5\2C\\aac|\6\2\62;C\\aac|\4") + buf.write("\2\f\f\17\17\5\2\13\f\17\17\"\"\2\u0b0d\2\3\3\2\2\2\2") + buf.write("\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3") + buf.write("\2\2\2\2\17\3\2\2\2\2\21\3\2\2\2\2\23\3\2\2\2\2\25\3\2") + buf.write("\2\2\2\27\3\2\2\2\2\31\3\2\2\2\2\33\3\2\2\2\2\35\3\2\2") + buf.write("\2\2\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3") + buf.write("\2\2\2\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61") + buf.write("\3\2\2\2\2\63\3\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2") + buf.write("\2\2\2;\3\2\2\2\2=\3\2\2\2\2?\3\2\2\2\2A\3\2\2\2\2C\3") + buf.write("\2\2\2\2E\3\2\2\2\2G\3\2\2\2\2I\3\2\2\2\2K\3\2\2\2\2M") + buf.write("\3\2\2\2\2O\3\2\2\2\2Q\3\2\2\2\2S\3\2\2\2\2U\3\2\2\2\2") + buf.write("W\3\2\2\2\2Y\3\2\2\2\2[\3\2\2\2\2]\3\2\2\2\2_\3\2\2\2") + buf.write("\2a\3\2\2\2\2c\3\2\2\2\2e\3\2\2\2\2g\3\2\2\2\2i\3\2\2") + buf.write("\2\2k\3\2\2\2\2m\3\2\2\2\2o\3\2\2\2\2q\3\2\2\2\2s\3\2") + buf.write("\2\2\2u\3\2\2\2\2w\3\2\2\2\2y\3\2\2\2\2{\3\2\2\2\2}\3") + buf.write("\2\2\2\2\177\3\2\2\2\2\u0081\3\2\2\2\2\u0083\3\2\2\2\2") + buf.write("\u0085\3\2\2\2\2\u0087\3\2\2\2\2\u0089\3\2\2\2\2\u008b") + buf.write("\3\2\2\2\2\u008d\3\2\2\2\2\u008f\3\2\2\2\2\u0091\3\2\2") + buf.write("\2\2\u0093\3\2\2\2\2\u0095\3\2\2\2\2\u0097\3\2\2\2\2\u0099") + buf.write("\3\2\2\2\2\u009b\3\2\2\2\2\u009d\3\2\2\2\2\u009f\3\2\2") + buf.write("\2\2\u00a1\3\2\2\2\2\u00a3\3\2\2\2\2\u00a5\3\2\2\2\2\u00a7") + buf.write("\3\2\2\2\2\u00a9\3\2\2\2\2\u00ab\3\2\2\2\2\u00ad\3\2\2") + buf.write("\2\2\u00af\3\2\2\2\2\u00b1\3\2\2\2\2\u00b3\3\2\2\2\2\u00b5") + buf.write("\3\2\2\2\2\u00b7\3\2\2\2\2\u00b9\3\2\2\2\2\u00bb\3\2\2") + buf.write("\2\2\u00bd\3\2\2\2\2\u00bf\3\2\2\2\2\u00c1\3\2\2\2\2\u00c3") + buf.write("\3\2\2\2\2\u00c5\3\2\2\2\2\u00c7\3\2\2\2\2\u00c9\3\2\2") + buf.write("\2\2\u00cb\3\2\2\2\2\u00cd\3\2\2\2\2\u00cf\3\2\2\2\2\u00d1") + buf.write("\3\2\2\2\2\u00d3\3\2\2\2\2\u00d5\3\2\2\2\2\u00d7\3\2\2") + buf.write("\2\2\u00d9\3\2\2\2\2\u00db\3\2\2\2\2\u00dd\3\2\2\2\2\u00df") + buf.write("\3\2\2\2\2\u00e1\3\2\2\2\2\u00e3\3\2\2\2\2\u00e5\3\2\2") + buf.write("\2\2\u00e7\3\2\2\2\2\u00e9\3\2\2\2\2\u00eb\3\2\2\2\2\u00ed") + buf.write("\3\2\2\2\2\u00ef\3\2\2\2\2\u00f1\3\2\2\2\2\u00f3\3\2\2") + buf.write("\2\2\u00f5\3\2\2\2\2\u00f7\3\2\2\2\2\u00f9\3\2\2\2\2\u00fb") + buf.write("\3\2\2\2\2\u00fd\3\2\2\2\2\u00ff\3\2\2\2\2\u0101\3\2\2") + buf.write("\2\2\u0103\3\2\2\2\2\u0105\3\2\2\2\2\u0107\3\2\2\2\2\u0109") + buf.write("\3\2\2\2\2\u010b\3\2\2\2\2\u010d\3\2\2\2\2\u010f\3\2\2") + buf.write("\2\2\u0111\3\2\2\2\2\u0113\3\2\2\2\2\u0115\3\2\2\2\2\u0117") + buf.write("\3\2\2\2\2\u0119\3\2\2\2\2\u011b\3\2\2\2\2\u011d\3\2\2") + buf.write("\2\2\u011f\3\2\2\2\2\u0121\3\2\2\2\2\u0123\3\2\2\2\2\u0125") + buf.write("\3\2\2\2\2\u0127\3\2\2\2\2\u0129\3\2\2\2\2\u012b\3\2\2") + buf.write("\2\2\u012d\3\2\2\2\2\u012f\3\2\2\2\2\u0131\3\2\2\2\2\u0133") + buf.write("\3\2\2\2\2\u0135\3\2\2\2\2\u0137\3\2\2\2\2\u0139\3\2\2") + buf.write("\2\2\u013b\3\2\2\2\2\u013d\3\2\2\2\2\u013f\3\2\2\2\2\u0141") + buf.write("\3\2\2\2\2\u0143\3\2\2\2\2\u0145\3\2\2\2\2\u0147\3\2\2") + buf.write("\2\2\u0149\3\2\2\2\2\u014b\3\2\2\2\2\u014d\3\2\2\2\2\u014f") + buf.write("\3\2\2\2\2\u0151\3\2\2\2\2\u0153\3\2\2\2\2\u0155\3\2\2") + buf.write("\2\2\u0157\3\2\2\2\2\u0159\3\2\2\2\2\u015b\3\2\2\2\2\u015d") + buf.write("\3\2\2\2\2\u015f\3\2\2\2\2\u0161\3\2\2\2\2\u0163\3\2\2") + buf.write("\2\2\u0165\3\2\2\2\2\u0167\3\2\2\2\2\u0169\3\2\2\2\2\u016b") + buf.write("\3\2\2\2\2\u016d\3\2\2\2\2\u016f\3\2\2\2\2\u0171\3\2\2") + buf.write("\2\2\u0173\3\2\2\2\2\u0175\3\2\2\2\2\u0177\3\2\2\2\2\u0179") + buf.write("\3\2\2\2\2\u017b\3\2\2\2\2\u017d\3\2\2\2\2\u017f\3\2\2") + buf.write("\2\2\u0181\3\2\2\2\2\u0183\3\2\2\2\2\u0185\3\2\2\2\2\u0187") + buf.write("\3\2\2\2\2\u0189\3\2\2\2\2\u018b\3\2\2\2\2\u018d\3\2\2") + buf.write("\2\2\u018f\3\2\2\2\2\u0191\3\2\2\2\2\u0193\3\2\2\2\2\u0195") + buf.write("\3\2\2\2\2\u0197\3\2\2\2\2\u0199\3\2\2\2\2\u019b\3\2\2") + buf.write("\2\2\u019d\3\2\2\2\2\u019f\3\2\2\2\2\u01a1\3\2\2\2\2\u01a3") + buf.write("\3\2\2\2\2\u01a5\3\2\2\2\2\u01a7\3\2\2\2\2\u01a9\3\2\2") + buf.write("\2\2\u01ab\3\2\2\2\2\u01ad\3\2\2\2\2\u01af\3\2\2\2\2\u01b1") + buf.write("\3\2\2\2\2\u01b3\3\2\2\2\2\u01b5\3\2\2\2\2\u01b7\3\2\2") + buf.write("\2\2\u01b9\3\2\2\2\2\u01bb\3\2\2\2\2\u01bd\3\2\2\2\2\u01bf") + buf.write("\3\2\2\2\2\u01c1\3\2\2\2\2\u01c3\3\2\2\2\2\u01c5\3\2\2") + buf.write("\2\2\u01c7\3\2\2\2\2\u01c9\3\2\2\2\2\u01cb\3\2\2\2\2\u01cd") + buf.write("\3\2\2\2\2\u01cf\3\2\2\2\3\u01d1\3\2\2\2\5\u01d5\3\2\2") + buf.write("\2\7\u01d9\3\2\2\2\t\u01dd\3\2\2\2\13\u01e2\3\2\2\2\r") + buf.write("\u01e7\3\2\2\2\17\u01ec\3\2\2\2\21\u01f2\3\2\2\2\23\u01f7") + buf.write("\3\2\2\2\25\u01fc\3\2\2\2\27\u0201\3\2\2\2\31\u0207\3") + buf.write("\2\2\2\33\u020d\3\2\2\2\35\u0213\3\2\2\2\37\u0217\3\2") + buf.write("\2\2!\u021c\3\2\2\2#\u021f\3\2\2\2%\u0223\3\2\2\2\'\u0227") + buf.write("\3\2\2\2)\u022c\3\2\2\2+\u0231\3\2\2\2-\u0236\3\2\2\2") + buf.write("/\u023b\3\2\2\2\61\u0241\3\2\2\2\63\u0247\3\2\2\2\65\u024d") + buf.write("\3\2\2\2\67\u0252\3\2\2\29\u0258\3\2\2\2;\u025e\3\2\2") + buf.write("\2=\u0262\3\2\2\2?\u0267\3\2\2\2A\u026d\3\2\2\2C\u0271") + buf.write("\3\2\2\2E\u0276\3\2\2\2G\u027c\3\2\2\2I\u0291\3\2\2\2") + buf.write("K\u02a0\3\2\2\2M\u02a2\3\2\2\2O\u02a7\3\2\2\2Q\u02ac\3") + buf.write("\2\2\2S\u02b7\3\2\2\2U\u02bd\3\2\2\2W\u02c2\3\2\2\2Y\u02cb") + buf.write("\3\2\2\2[\u02d0\3\2\2\2]\u02d5\3\2\2\2_\u02ec\3\2\2\2") + buf.write("a\u02fd\3\2\2\2c\u02ff\3\2\2\2e\u030f\3\2\2\2g\u031c\3") + buf.write("\2\2\2i\u031e\3\2\2\2k\u0324\3\2\2\2m\u032d\3\2\2\2o\u0336") + buf.write("\3\2\2\2q\u033b\3\2\2\2s\u0340\3\2\2\2u\u0345\3\2\2\2") + buf.write("w\u0349\3\2\2\2y\u034e\3\2\2\2{\u0352\3\2\2\2}\u0365\3") + buf.write("\2\2\2\177\u0376\3\2\2\2\u0081\u0378\3\2\2\2\u0083\u0381") + buf.write("\3\2\2\2\u0085\u0385\3\2\2\2\u0087\u038c\3\2\2\2\u0089") + buf.write("\u0390\3\2\2\2\u008b\u0397\3\2\2\2\u008d\u039b\3\2\2\2") + buf.write("\u008f\u039f\3\2\2\2\u0091\u03b0\3\2\2\2\u0093\u03b2\3") + buf.write("\2\2\2\u0095\u03b9\3\2\2\2\u0097\u03be\3\2\2\2\u0099\u03c5") + buf.write("\3\2\2\2\u009b\u03e1\3\2\2\2\u009d\u03f7\3\2\2\2\u009f") + buf.write("\u0408\3\2\2\2\u00a1\u041d\3\2\2\2\u00a3\u042c\3\2\2\2") + buf.write("\u00a5\u042e\3\2\2\2\u00a7\u0447\3\2\2\2\u00a9\u0449\3") + buf.write("\2\2\2\u00ab\u0466\3\2\2\2\u00ad\u0476\3\2\2\2\u00af\u0478") + buf.write("\3\2\2\2\u00b1\u047f\3\2\2\2\u00b3\u0487\3\2\2\2\u00b5") + buf.write("\u048e\3\2\2\2\u00b7\u0498\3\2\2\2\u00b9\u04bd\3\2\2\2") + buf.write("\u00bb\u04bf\3\2\2\2\u00bd\u04cb\3\2\2\2\u00bf\u04ef\3") + buf.write("\2\2\2\u00c1\u0503\3\2\2\2\u00c3\u0505\3\2\2\2\u00c5\u0518") + buf.write("\3\2\2\2\u00c7\u051a\3\2\2\2\u00c9\u0522\3\2\2\2\u00cb") + buf.write("\u0526\3\2\2\2\u00cd\u052c\3\2\2\2\u00cf\u0533\3\2\2\2") + buf.write("\u00d1\u0547\3\2\2\2\u00d3\u055f\3\2\2\2\u00d5\u0561\3") + buf.write("\2\2\2\u00d7\u0576\3\2\2\2\u00d9\u0587\3\2\2\2\u00db\u0596") + buf.write("\3\2\2\2\u00dd\u0598\3\2\2\2\u00df\u059f\3\2\2\2\u00e1") + buf.write("\u05aa\3\2\2\2\u00e3\u05b4\3\2\2\2\u00e5\u05c0\3\2\2\2") + buf.write("\u00e7\u05ca\3\2\2\2\u00e9\u05e8\3\2\2\2\u00eb\u05ea\3") + buf.write("\2\2\2\u00ed\u05ee\3\2\2\2\u00ef\u05f4\3\2\2\2\u00f1\u05fa") + buf.write("\3\2\2\2\u00f3\u0600\3\2\2\2\u00f5\u0605\3\2\2\2\u00f7") + buf.write("\u060b\3\2\2\2\u00f9\u061f\3\2\2\2\u00fb\u0621\3\2\2\2") + buf.write("\u00fd\u0626\3\2\2\2\u00ff\u062e\3\2\2\2\u0101\u0635\3") + buf.write("\2\2\2\u0103\u063b\3\2\2\2\u0105\u0646\3\2\2\2\u0107\u0652") + buf.write("\3\2\2\2\u0109\u065f\3\2\2\2\u010b\u066d\3\2\2\2\u010d") + buf.write("\u067a\3\2\2\2\u010f\u0688\3\2\2\2\u0111\u0693\3\2\2\2") + buf.write("\u0113\u069e\3\2\2\2\u0115\u06a9\3\2\2\2\u0117\u06b4\3") + buf.write("\2\2\2\u0119\u06c7\3\2\2\2\u011b\u0704\3\2\2\2\u011d\u0706") + buf.write("\3\2\2\2\u011f\u0711\3\2\2\2\u0121\u0741\3\2\2\2\u0123") + buf.write("\u0756\3\2\2\2\u0125\u0758\3\2\2\2\u0127\u075b\3\2\2\2") + buf.write("\u0129\u0760\3\2\2\2\u012b\u0766\3\2\2\2\u012d\u076a\3") + buf.write("\2\2\2\u012f\u076d\3\2\2\2\u0131\u0773\3\2\2\2\u0133\u077c") + buf.write("\3\2\2\2\u0135\u078f\3\2\2\2\u0137\u0791\3\2\2\2\u0139") + buf.write("\u0796\3\2\2\2\u013b\u079e\3\2\2\2\u013d\u07a5\3\2\2\2") + buf.write("\u013f\u07ac\3\2\2\2\u0141\u07b4\3\2\2\2\u0143\u07bc\3") + buf.write("\2\2\2\u0145\u07c3\3\2\2\2\u0147\u07c8\3\2\2\2\u0149\u07d3") + buf.write("\3\2\2\2\u014b\u07dc\3\2\2\2\u014d\u07e4\3\2\2\2\u014f") + buf.write("\u07ee\3\2\2\2\u0151\u07f3\3\2\2\2\u0153\u0806\3\2\2\2") + buf.write("\u0155\u0808\3\2\2\2\u0157\u0810\3\2\2\2\u0159\u0825\3") + buf.write("\2\2\2\u015b\u0838\3\2\2\2\u015d\u0851\3\2\2\2\u015f\u086a") + buf.write("\3\2\2\2\u0161\u087e\3\2\2\2\u0163\u0897\3\2\2\2\u0165") + buf.write("\u08b0\3\2\2\2\u0167\u08c7\3\2\2\2\u0169\u08dc\3\2\2\2") + buf.write("\u016b\u08ef\3\2\2\2\u016d\u0904\3\2\2\2\u016f\u0919\3") + buf.write("\2\2\2\u0171\u0932\3\2\2\2\u0173\u0947\3\2\2\2\u0175\u095c") + buf.write("\3\2\2\2\u0177\u0972\3\2\2\2\u0179\u0986\3\2\2\2\u017b") + buf.write("\u09b8\3\2\2\2\u017d\u09d6\3\2\2\2\u017f\u09ea\3\2\2\2") + buf.write("\u0181\u0a08\3\2\2\2\u0183\u0a0a\3\2\2\2\u0185\u0a0c\3") + buf.write("\2\2\2\u0187\u0a0e\3\2\2\2\u0189\u0a10\3\2\2\2\u018b\u0a12") + buf.write("\3\2\2\2\u018d\u0a14\3\2\2\2\u018f\u0a16\3\2\2\2\u0191") + buf.write("\u0a19\3\2\2\2\u0193\u0a1c\3\2\2\2\u0195\u0a1f\3\2\2\2") + buf.write("\u0197\u0a21\3\2\2\2\u0199\u0a24\3\2\2\2\u019b\u0a26\3") + buf.write("\2\2\2\u019d\u0a29\3\2\2\2\u019f\u0a2b\3\2\2\2\u01a1\u0a2e") + buf.write("\3\2\2\2\u01a3\u0a31\3\2\2\2\u01a5\u0a34\3\2\2\2\u01a7") + buf.write("\u0a37\3\2\2\2\u01a9\u0a3a\3\2\2\2\u01ab\u0a3d\3\2\2\2") + buf.write("\u01ad\u0a3f\3\2\2\2\u01af\u0a41\3\2\2\2\u01b1\u0a43\3") + buf.write("\2\2\2\u01b3\u0a45\3\2\2\2\u01b5\u0a47\3\2\2\2\u01b7\u0a4a") + buf.write("\3\2\2\2\u01b9\u0a4c\3\2\2\2\u01bb\u0a4e\3\2\2\2\u01bd") + buf.write("\u0a50\3\2\2\2\u01bf\u0a52\3\2\2\2\u01c1\u0a54\3\2\2\2") + buf.write("\u01c3\u0a6a\3\2\2\2\u01c5\u0a7c\3\2\2\2\u01c7\u0a92\3") + buf.write("\2\2\2\u01c9\u0a94\3\2\2\2\u01cb\u0a9b\3\2\2\2\u01cd\u0aa4") + buf.write("\3\2\2\2\u01cf\u0ab3\3\2\2\2\u01d1\u01d2\7u\2\2\u01d2") + buf.write("\u01d3\7k\2\2\u01d3\u01d4\7p\2\2\u01d4\4\3\2\2\2\u01d5") + buf.write("\u01d6\7e\2\2\u01d6\u01d7\7q\2\2\u01d7\u01d8\7u\2\2\u01d8") + buf.write("\6\3\2\2\2\u01d9\u01da\7v\2\2\u01da\u01db\7c\2\2\u01db") + buf.write("\u01dc\7p\2\2\u01dc\b\3\2\2\2\u01dd\u01de\7c\2\2\u01de") + buf.write("\u01df\7u\2\2\u01df\u01e0\7k\2\2\u01e0\u01e1\7p\2\2\u01e1") + buf.write("\n\3\2\2\2\u01e2\u01e3\7c\2\2\u01e3\u01e4\7e\2\2\u01e4") + buf.write("\u01e5\7q\2\2\u01e5\u01e6\7u\2\2\u01e6\f\3\2\2\2\u01e7") + buf.write("\u01e8\7c\2\2\u01e8\u01e9\7v\2\2\u01e9\u01ea\7c\2\2\u01ea") + buf.write("\u01eb\7p\2\2\u01eb\16\3\2\2\2\u01ec\u01ed\7c\2\2\u01ed") + buf.write("\u01ee\7v\2\2\u01ee\u01ef\7c\2\2\u01ef\u01f0\7p\2\2\u01f0") + buf.write("\u01f1\7\64\2\2\u01f1\20\3\2\2\2\u01f2\u01f3\7u\2\2\u01f3") + buf.write("\u01f4\7k\2\2\u01f4\u01f5\7p\2\2\u01f5\u01f6\7j\2\2\u01f6") + buf.write("\22\3\2\2\2\u01f7\u01f8\7e\2\2\u01f8\u01f9\7q\2\2\u01f9") + buf.write("\u01fa\7u\2\2\u01fa\u01fb\7j\2\2\u01fb\24\3\2\2\2\u01fc") + buf.write("\u01fd\7v\2\2\u01fd\u01fe\7c\2\2\u01fe\u01ff\7p\2\2\u01ff") + buf.write("\u0200\7j\2\2\u0200\26\3\2\2\2\u0201\u0202\7c\2\2\u0202") + buf.write("\u0203\7u\2\2\u0203\u0204\7k\2\2\u0204\u0205\7p\2\2\u0205") + buf.write("\u0206\7j\2\2\u0206\30\3\2\2\2\u0207\u0208\7c\2\2\u0208") + buf.write("\u0209\7e\2\2\u0209\u020a\7q\2\2\u020a\u020b\7u\2\2\u020b") + buf.write("\u020c\7j\2\2\u020c\32\3\2\2\2\u020d\u020e\7c\2\2\u020e") + buf.write("\u020f\7v\2\2\u020f\u0210\7c\2\2\u0210\u0211\7p\2\2\u0211") + buf.write("\u0212\7j\2\2\u0212\34\3\2\2\2\u0213\u0214\7c\2\2\u0214") + buf.write("\u0215\7d\2\2\u0215\u0216\7u\2\2\u0216\36\3\2\2\2\u0217") + buf.write("\u0218\7u\2\2\u0218\u0219\7s\2\2\u0219\u021a\7t\2\2\u021a") + buf.write("\u021b\7v\2\2\u021b \3\2\2\2\u021c\u021d\7n\2\2\u021d") + buf.write("\u021e\7p\2\2\u021e\"\3\2\2\2\u021f\u0220\7n\2\2\u0220") + buf.write("\u0221\7q\2\2\u0221\u0222\7i\2\2\u0222$\3\2\2\2\u0223") + buf.write("\u0224\7g\2\2\u0224\u0225\7z\2\2\u0225\u0226\7r\2\2\u0226") + buf.write("&\3\2\2\2\u0227\u0228\7u\2\2\u0228\u0229\7o\2\2\u0229") + buf.write("\u022a\7k\2\2\u022a\u022b\7p\2\2\u022b(\3\2\2\2\u022c") + buf.write("\u022d\7u\2\2\u022d\u022e\7o\2\2\u022e\u022f\7c\2\2\u022f") + buf.write("\u0230\7z\2\2\u0230*\3\2\2\2\u0231\u0232\7v\2\2\u0232") + buf.write("\u0233\7o\2\2\u0233\u0234\7k\2\2\u0234\u0235\7p\2\2\u0235") + buf.write(",\3\2\2\2\u0236\u0237\7v\2\2\u0237\u0238\7o\2\2\u0238") + buf.write("\u0239\7c\2\2\u0239\u023a\7z\2\2\u023a.\3\2\2\2\u023b") + buf.write("\u023c\7v\2\2\u023c\u023d\7p\2\2\u023d\u023e\7q\2\2\u023e") + buf.write("\u023f\7t\2\2\u023f\u0240\7o\2\2\u0240\60\3\2\2\2\u0241") + buf.write("\u0242\7u\2\2\u0242\u0243\7p\2\2\u0243\u0244\7q\2\2\u0244") + buf.write("\u0245\7t\2\2\u0245\u0246\7o\2\2\u0246\62\3\2\2\2\u0247") + buf.write("\u0248\7h\2\2\u0248\u0249\7n\2\2\u0249\u024a\7q\2\2\u024a") + buf.write("\u024b\7q\2\2\u024b\u024c\7t\2\2\u024c\64\3\2\2\2\u024d") + buf.write("\u024e\7e\2\2\u024e\u024f\7g\2\2\u024f\u0250\7k\2\2\u0250") + buf.write("\u0251\7n\2\2\u0251\66\3\2\2\2\u0252\u0253\7t\2\2\u0253") + buf.write("\u0254\7q\2\2\u0254\u0255\7w\2\2\u0255\u0256\7p\2\2\u0256") + buf.write("\u0257\7f\2\2\u02578\3\2\2\2\u0258\u0259\7i\2\2\u0259") + buf.write("\u025a\7c\2\2\u025a\u025b\7o\2\2\u025b\u025c\7o\2\2\u025c") + buf.write("\u025d\7c\2\2\u025d:\3\2\2\2\u025e\u025f\7r\2\2\u025f") + buf.write("\u0260\7q\2\2\u0260\u0261\7y\2\2\u0261<\3\2\2\2\u0262") + buf.write("\u0263\7u\2\2\u0263\u0264\7k\2\2\u0264\u0265\7i\2\2\u0265") + buf.write("\u0266\7o\2\2\u0266>\3\2\2\2\u0267\u0268\7e\2\2\u0268") + buf.write("\u0269\7n\2\2\u0269\u026a\7c\2\2\u026a\u026b\7o\2\2\u026b") + buf.write("\u026c\7r\2\2\u026c@\3\2\2\2\u026d\u026e\7h\2\2\u026e") + buf.write("\u026f\7h\2\2\u026f\u0270\7v\2\2\u0270B\3\2\2\2\u0271") + buf.write("\u0272\7k\2\2\u0272\u0273\7h\2\2\u0273\u0274\7h\2\2\u0274") + buf.write("\u0275\7v\2\2\u0275D\3\2\2\2\u0276\u0277\7c\2\2\u0277") + buf.write("\u0278\7p\2\2\u0278\u0279\7i\2\2\u0279\u027a\7n\2\2\u027a") + buf.write("\u027b\7g\2\2\u027bF\3\2\2\2\u027c\u027d\7r\2\2\u027d") + buf.write("\u027e\7t\2\2\u027e\u027f\7k\2\2\u027f\u0280\7p\2\2\u0280") + buf.write("\u0281\7v\2\2\u0281H\3\2\2\2\u0282\u0283\7r\2\2\u0283") + buf.write("\u0284\7t\2\2\u0284\u0285\7k\2\2\u0285\u0286\7p\2\2\u0286") + buf.write("\u0287\7v\2\2\u0287\u0288\7a\2\2\u0288\u0289\7u\2\2\u0289") + buf.write("\u028a\7j\2\2\u028a\u028b\7c\2\2\u028b\u028c\7r\2\2\u028c") + buf.write("\u0292\7g\2\2\u028d\u028e\7r\2\2\u028e\u028f\7u\2\2\u028f") + buf.write("\u0290\7j\2\2\u0290\u0292\7r\2\2\u0291\u0282\3\2\2\2\u0291") + buf.write("\u028d\3\2\2\2\u0292J\3\2\2\2\u0293\u0294\7p\2\2\u0294") + buf.write("\u0295\7x\2\2\u0295\u02a1\7n\2\2\u0296\u0297\7p\2\2\u0297") + buf.write("\u0298\7c\2\2\u0298\u0299\7p\2\2\u0299\u029a\7a\2\2\u029a") + buf.write("\u029b\7v\2\2\u029b\u029c\7q\2\2\u029c\u029d\7a\2\2\u029d") + buf.write("\u029e\7p\2\2\u029e\u029f\7w\2\2\u029f\u02a1\7o\2\2\u02a0") + buf.write("\u0293\3\2\2\2\u02a0\u0296\3\2\2\2\u02a1L\3\2\2\2\u02a2") + buf.write("\u02a3\7n\2\2\u02a3\u02a4\7g\2\2\u02a4\u02a5\7t\2\2\u02a5") + buf.write("\u02a6\7r\2\2\u02a6N\3\2\2\2\u02a7\u02a8\7u\2\2\u02a8") + buf.write("\u02a9\7v\2\2\u02a9\u02aa\7g\2\2\u02aa\u02ab\7r\2\2\u02ab") + buf.write("P\3\2\2\2\u02ac\u02ad\7u\2\2\u02ad\u02ae\7o\2\2\u02ae") + buf.write("\u02af\7q\2\2\u02af\u02b0\7q\2\2\u02b0\u02b1\7v\2\2\u02b1") + buf.write("\u02b2\7j\2\2\u02b2\u02b3\7u\2\2\u02b3\u02b4\7v\2\2\u02b4") + buf.write("\u02b5\7g\2\2\u02b5\u02b6\7r\2\2\u02b6R\3\2\2\2\u02b7") + buf.write("\u02b8\7h\2\2\u02b8\u02b9\7t\2\2\u02b9\u02ba\7c\2\2\u02ba") + buf.write("\u02bb\7e\2\2\u02bb\u02bc\7v\2\2\u02bcT\3\2\2\2\u02bd") + buf.write("\u02be\7t\2\2\u02be\u02bf\7g\2\2\u02bf\u02c0\7n\2\2\u02c0") + buf.write("\u02c1\7w\2\2\u02c1V\3\2\2\2\u02c2\u02c3\7u\2\2\u02c3") + buf.write("\u02c4\7q\2\2\u02c4\u02c5\7h\2\2\u02c5\u02c6\7v\2\2\u02c6") + buf.write("\u02c7\7r\2\2\u02c7\u02c8\7n\2\2\u02c8\u02c9\7w\2\2\u02c9") + buf.write("\u02ca\7u\2\2\u02caX\3\2\2\2\u02cb\u02cc\7i\2\2\u02cc") + buf.write("\u02cd\7g\2\2\u02cd\u02ce\7n\2\2\u02ce\u02cf\7w\2\2\u02cf") + buf.write("Z\3\2\2\2\u02d0\u02d1\7u\2\2\u02d1\u02d2\7k\2\2\u02d2") + buf.write("\u02d3\7i\2\2\u02d3\u02d4\7p\2\2\u02d4\\\3\2\2\2\u02d5") + buf.write("\u02d6\7o\2\2\u02d6\u02d7\7c\2\2\u02d7\u02d8\7r\2\2\u02d8") + buf.write("^\3\2\2\2\u02d9\u02da\7g\2\2\u02da\u02db\7|\2\2\u02db") + buf.write("\u02dc\7e\2\2\u02dc\u02dd\7q\2\2\u02dd\u02de\7p\2\2\u02de") + buf.write("\u02df\7x\2\2\u02df\u02e0\7q\2\2\u02e0\u02e1\7n\2\2\u02e1") + buf.write("\u02e2\7w\2\2\u02e2\u02e3\7v\2\2\u02e3\u02e4\7k\2\2\u02e4") + buf.write("\u02e5\7q\2\2\u02e5\u02ed\7p\2\2\u02e6\u02e7\7g\2\2\u02e7") + buf.write("\u02e8\7|\2\2\u02e8\u02e9\7e\2\2\u02e9\u02ea\7q\2\2\u02ea") + buf.write("\u02eb\7p\2\2\u02eb\u02ed\7x\2\2\u02ec\u02d9\3\2\2\2\u02ec") + buf.write("\u02e6\3\2\2\2\u02ed`\3\2\2\2\u02ee\u02ef\7e\2\2\u02ef") + buf.write("\u02f0\7q\2\2\u02f0\u02f1\7p\2\2\u02f1\u02f2\7x\2\2\u02f2") + buf.write("\u02f3\7q\2\2\u02f3\u02f4\7n\2\2\u02f4\u02f5\7w\2\2\u02f5") + buf.write("\u02f6\7v\2\2\u02f6\u02f7\7k\2\2\u02f7\u02f8\7q\2\2\u02f8") + buf.write("\u02fe\7p\2\2\u02f9\u02fa\7e\2\2\u02fa\u02fb\7q\2\2\u02fb") + buf.write("\u02fc\7p\2\2\u02fc\u02fe\7x\2\2\u02fd\u02ee\3\2\2\2\u02fd") + buf.write("\u02f9\3\2\2\2\u02feb\3\2\2\2\u02ff\u0300\7u\2\2\u0300") + buf.write("\u0301\7y\2\2\u0301\u0302\7c\2\2\u0302\u0303\7r\2\2\u0303") + buf.write("d\3\2\2\2\u0304\u0305\7r\2\2\u0305\u0306\7g\2\2\u0306") + buf.write("\u0307\7t\2\2\u0307\u0308\7o\2\2\u0308\u0309\7w\2\2\u0309") + buf.write("\u030a\7v\2\2\u030a\u0310\7g\2\2\u030b\u030c\7r\2\2\u030c") + buf.write("\u030d\7g\2\2\u030d\u030e\7t\2\2\u030e\u0310\7o\2\2\u030f") + buf.write("\u0304\3\2\2\2\u030f\u030b\3\2\2\2\u0310f\3\2\2\2\u0311") + buf.write("\u0312\7t\2\2\u0312\u0313\7g\2\2\u0313\u0314\7u\2\2\u0314") + buf.write("\u0315\7j\2\2\u0315\u0316\7c\2\2\u0316\u0317\7r\2\2\u0317") + buf.write("\u031d\7g\2\2\u0318\u0319\7t\2\2\u0319\u031a\7u\2\2\u031a") + buf.write("\u031b\7j\2\2\u031b\u031d\7r\2\2\u031c\u0311\3\2\2\2\u031c") + buf.write("\u0318\3\2\2\2\u031dh\3\2\2\2\u031e\u031f\7t\2\2\u031f") + buf.write("\u0320\7c\2\2\u0320\u0321\7p\2\2\u0321\u0322\7i\2\2\u0322") + buf.write("\u0323\7g\2\2\u0323j\3\2\2\2\u0324\u0325\7n\2\2\u0325") + buf.write("\u0326\7k\2\2\u0326\u0327\7p\2\2\u0327\u0328\7u\2\2\u0328") + buf.write("\u0329\7r\2\2\u0329\u032a\7c\2\2\u032a\u032b\7e\2\2\u032b") + buf.write("\u032c\7g\2\2\u032cl\3\2\2\2\u032d\u032e\7n\2\2\u032e") + buf.write("\u032f\7q\2\2\u032f\u0330\7i\2\2\u0330\u0331\7u\2\2\u0331") + buf.write("\u0332\7r\2\2\u0332\u0333\7c\2\2\u0333\u0334\7e\2\2\u0334") + buf.write("\u0335\7g\2\2\u0335n\3\2\2\2\u0336\u0337\7v\2\2\u0337") + buf.write("\u0338\7q\2\2\u0338\u0339\7r\2\2\u0339\u033a\7m\2\2\u033a") + buf.write("p\3\2\2\2\u033b\u033c\7d\2\2\u033c\u033d\7q\2\2\u033d") + buf.write("\u033e\7v\2\2\u033e\u033f\7m\2\2\u033fr\3\2\2\2\u0340") + buf.write("\u0341\7r\2\2\u0341\u0342\7k\2\2\u0342\u0343\7p\2\2\u0343") + buf.write("\u0344\7x\2\2\u0344t\3\2\2\2\u0345\u0346\7u\2\2\u0346") + buf.write("\u0347\7w\2\2\u0347\u0348\7o\2\2\u0348v\3\2\2\2\u0349") + buf.write("\u034a\7o\2\2\u034a\u034b\7g\2\2\u034b\u034c\7c\2\2\u034c") + buf.write("\u034d\7p\2\2\u034dx\3\2\2\2\u034e\u034f\7u\2\2\u034f") + buf.write("\u0350\7v\2\2\u0350\u0351\7f\2\2\u0351z\3\2\2\2\u0352") + buf.write("\u0353\7x\2\2\u0353\u0354\7c\2\2\u0354\u0355\7t\2\2\u0355") + buf.write("|\3\2\2\2\u0356\u0357\7s\2\2\u0357\u0358\7w\2\2\u0358") + buf.write("\u0359\7c\2\2\u0359\u035a\7t\2\2\u035a\u035b\7v\2\2\u035b") + buf.write("\u035c\7k\2\2\u035c\u035d\7n\2\2\u035d\u0366\7g\2\2\u035e") + buf.write("\u035f\7s\2\2\u035f\u0360\7w\2\2\u0360\u0361\7c\2\2\u0361") + buf.write("\u0362\7t\2\2\u0362\u0363\7v\2\2\u0363\u0364\7k\2\2\u0364") + buf.write("\u0366\7n\2\2\u0365\u0356\3\2\2\2\u0365\u035e\3\2\2\2") + buf.write("\u0366~\3\2\2\2\u0367\u0368\7r\2\2\u0368\u0369\7g\2\2") + buf.write("\u0369\u036a\7t\2\2\u036a\u036b\7e\2\2\u036b\u036c\7g") + buf.write("\2\2\u036c\u036d\7p\2\2\u036d\u036e\7v\2\2\u036e\u036f") + buf.write("\7k\2\2\u036f\u0370\7n\2\2\u0370\u0377\7g\2\2\u0371\u0372") + buf.write("\7r\2\2\u0372\u0373\7t\2\2\u0373\u0374\7e\2\2\u0374\u0375") + buf.write("\7p\2\2\u0375\u0377\7v\2\2\u0376\u0367\3\2\2\2\u0376\u0371") + buf.write("\3\2\2\2\u0377\u0080\3\2\2\2\u0378\u0379\7s\2\2\u0379") + buf.write("\u037a\7w\2\2\u037a\u037b\7c\2\2\u037b\u037c\7p\2\2\u037c") + buf.write("\u037d\7v\2\2\u037d\u037e\7k\2\2\u037e\u037f\7n\2\2\u037f") + buf.write("\u0380\7g\2\2\u0380\u0082\3\2\2\2\u0381\u0382\7f\2\2\u0382") + buf.write("\u0383\7q\2\2\u0383\u0384\7v\2\2\u0384\u0084\3\2\2\2\u0385") + buf.write("\u0386\7o\2\2\u0386\u0387\7q\2\2\u0387\u0388\7o\2\2\u0388") + buf.write("\u0389\7g\2\2\u0389\u038a\7p\2\2\u038a\u038b\7v\2\2\u038b") + buf.write("\u0086\3\2\2\2\u038c\u038d\7g\2\2\u038d\u038e\7t\2\2\u038e") + buf.write("\u038f\7h\2\2\u038f\u0088\3\2\2\2\u0390\u0391\7g\2\2\u0391") + buf.write("\u0392\7t\2\2\u0392\u0393\7h\2\2\u0393\u0394\7k\2\2\u0394") + buf.write("\u0395\7p\2\2\u0395\u0396\7x\2\2\u0396\u008a\3\2\2\2\u0397") + buf.write("\u0398\7c\2\2\u0398\u0399\7p\2\2\u0399\u039a\7{\2\2\u039a") + buf.write("\u008c\3\2\2\2\u039b\u039c\7c\2\2\u039c\u039d\7n\2\2\u039d") + buf.write("\u039e\7n\2\2\u039e\u008e\3\2\2\2\u039f\u03a0\7g\2\2\u03a0") + buf.write("\u03a1\7f\2\2\u03a1\u03a2\7i\2\2\u03a2\u03a3\7g\2\2\u03a3") + buf.write("\u0090\3\2\2\2\u03a4\u03a5\7d\2\2\u03a5\u03a6\7n\2\2\u03a6") + buf.write("\u03a7\7w\2\2\u03a7\u03b1\7t\2\2\u03a8\u03a9\7i\2\2\u03a9") + buf.write("\u03aa\7c\2\2\u03aa\u03ab\7w\2\2\u03ab\u03ac\7u\2\2\u03ac") + buf.write("\u03ad\7u\2\2\u03ad\u03ae\7k\2\2\u03ae\u03af\7c\2\2\u03af") + buf.write("\u03b1\7p\2\2\u03b0\u03a4\3\2\2\2\u03b0\u03a8\3\2\2\2") + buf.write("\u03b1\u0092\3\2\2\2\u03b2\u03b3\7o\2\2\u03b3\u03b4\7") + buf.write("g\2\2\u03b4\u03b5\7f\2\2\u03b5\u03b6\7k\2\2\u03b6\u03b7") + buf.write("\7c\2\2\u03b7\u03b8\7p\2\2\u03b8\u0094\3\2\2\2\u03b9\u03ba") + buf.write("\7o\2\2\u03ba\u03bb\7q\2\2\u03bb\u03bc\7f\2\2\u03bc\u03bd") + buf.write("\7g\2\2\u03bd\u0096\3\2\2\2\u03be\u03bf\7e\2\2\u03bf\u03c0") + buf.write("\7w\2\2\u03c0\u03c1\7o\2\2\u03c1\u03c2\7u\2\2\u03c2\u03c3") + buf.write("\7w\2\2\u03c3\u03c4\7o\2\2\u03c4\u0098\3\2\2\2\u03c5\u03c6") + buf.write("\7e\2\2\u03c6\u03c7\7w\2\2\u03c7\u03c8\7o\2\2\u03c8\u03c9") + buf.write("\7r\2\2\u03c9\u03ca\7t\2\2\u03ca\u03cb\7q\2\2\u03cb\u03cc") + buf.write("\7f\2\2\u03cc\u009a\3\2\2\2\u03cd\u03ce\7v\2\2\u03ce\u03cf") + buf.write("\7q\2\2\u03cf\u03d0\7r\2\2\u03d0\u03d1\7m\2\2\u03d1\u03d2") + buf.write("\7a\2\2\u03d2\u03d3\7k\2\2\u03d3\u03d4\7p\2\2\u03d4\u03e2") + buf.write("\7f\2\2\u03d5\u03d6\7v\2\2\u03d6\u03d7\7q\2\2\u03d7\u03d8") + buf.write("\7r\2\2\u03d8\u03d9\7m\2\2\u03d9\u03da\7a\2\2\u03da\u03db") + buf.write("\7k\2\2\u03db\u03dc\7p\2\2\u03dc\u03dd\7f\2\2\u03dd\u03de") + buf.write("\7k\2\2\u03de\u03df\7e\2\2\u03df\u03e0\7g\2\2\u03e0\u03e2") + buf.write("\7u\2\2\u03e1\u03cd\3\2\2\2\u03e1\u03d5\3\2\2\2\u03e2") + buf.write("\u009c\3\2\2\2\u03e3\u03e4\7d\2\2\u03e4\u03e5\7q\2\2\u03e5") + buf.write("\u03e6\7v\2\2\u03e6\u03e7\7m\2\2\u03e7\u03e8\7a\2\2\u03e8") + buf.write("\u03e9\7k\2\2\u03e9\u03ea\7p\2\2\u03ea\u03f8\7f\2\2\u03eb") + buf.write("\u03ec\7d\2\2\u03ec\u03ed\7q\2\2\u03ed\u03ee\7v\2\2\u03ee") + buf.write("\u03ef\7m\2\2\u03ef\u03f0\7a\2\2\u03f0\u03f1\7k\2\2\u03f1") + buf.write("\u03f2\7p\2\2\u03f2\u03f3\7f\2\2\u03f3\u03f4\7k\2\2\u03f4") + buf.write("\u03f5\7e\2\2\u03f5\u03f6\7g\2\2\u03f6\u03f8\7u\2\2\u03f7") + buf.write("\u03e3\3\2\2\2\u03f7\u03eb\3\2\2\2\u03f8\u009e\3\2\2\2") + buf.write("\u03f9\u03fa\7e\2\2\u03fa\u03fb\7w\2\2\u03fb\u03fc\7d") + buf.write("\2\2\u03fc\u03fd\7k\2\2\u03fd\u03fe\7e\2\2\u03fe\u03ff") + buf.write("\7a\2\2\u03ff\u0400\7g\2\2\u0400\u0401\7c\2\2\u0401\u0402") + buf.write("\7u\2\2\u0402\u0409\7g\2\2\u0403\u0404\7e\2\2\u0404\u0405") + buf.write("\7w\2\2\u0405\u0406\7d\2\2\u0406\u0407\7k\2\2\u0407\u0409") + buf.write("\7e\2\2\u0408\u03f9\3\2\2\2\u0408\u0403\3\2\2\2\u0409") + buf.write("\u00a0\3\2\2\2\u040a\u040b\7g\2\2\u040b\u040c\7n\2\2\u040c") + buf.write("\u040d\7c\2\2\u040d\u040e\7u\2\2\u040e\u040f\7v\2\2\u040f") + buf.write("\u0410\7k\2\2\u0410\u0411\7e\2\2\u0411\u0412\7a\2\2\u0412") + buf.write("\u0413\7g\2\2\u0413\u0414\7c\2\2\u0414\u0415\7u\2\2\u0415") + buf.write("\u041e\7g\2\2\u0416\u0417\7g\2\2\u0417\u0418\7n\2\2\u0418") + buf.write("\u0419\7c\2\2\u0419\u041a\7u\2\2\u041a\u041b\7v\2\2\u041b") + buf.write("\u041c\7k\2\2\u041c\u041e\7e\2\2\u041d\u040a\3\2\2\2\u041d") + buf.write("\u0416\3\2\2\2\u041e\u00a2\3\2\2\2\u041f\u0420\7u\2\2") + buf.write("\u0420\u0421\7k\2\2\u0421\u0422\7p\2\2\u0422\u0423\7g") + buf.write("\2\2\u0423\u0424\7a\2\2\u0424\u0425\7g\2\2\u0425\u0426") + buf.write("\7c\2\2\u0426\u0427\7u\2\2\u0427\u042d\7g\2\2\u0428\u0429") + buf.write("\7u\2\2\u0429\u042a\7k\2\2\u042a\u042b\7p\2\2\u042b\u042d") + buf.write("\7g\2\2\u042c\u041f\3\2\2\2\u042c\u0428\3\2\2\2\u042d") + buf.write("\u00a4\3\2\2\2\u042e\u042f\7u\2\2\u042f\u0430\7o\2\2\u0430") + buf.write("\u0431\7q\2\2\u0431\u0432\7q\2\2\u0432\u0433\7v\2\2\u0433") + buf.write("\u0434\7j\2\2\u0434\u0435\7g\2\2\u0435\u0436\7t\2\2\u0436") + buf.write("\u0437\7u\2\2\u0437\u0438\7v\2\2\u0438\u0439\7g\2\2\u0439") + buf.write("\u043a\7r\2\2\u043a\u00a6\3\2\2\2\u043b\u043c\7f\2\2\u043c") + buf.write("\u043d\7k\2\2\u043d\u043e\7u\2\2\u043e\u0448\7v\2\2\u043f") + buf.write("\u0440\7f\2\2\u0440\u0441\7k\2\2\u0441\u0442\7u\2\2\u0442") + buf.write("\u0443\7v\2\2\u0443\u0444\7c\2\2\u0444\u0445\7p\2\2\u0445") + buf.write("\u0446\7e\2\2\u0446\u0448\7g\2\2\u0447\u043b\3\2\2\2\u0447") + buf.write("\u043f\3\2\2\2\u0448\u00a8\3\2\2\2\u0449\u044a\7t\2\2") + buf.write("\u044a\u044b\7g\2\2\u044b\u044c\7o\2\2\u044c\u044d\7c") + buf.write("\2\2\u044d\u044e\7r\2\2\u044e\u00aa\3\2\2\2\u044f\u0450") + buf.write("\7e\2\2\u0450\u0451\7q\2\2\u0451\u0452\7u\2\2\u0452\u0453") + buf.write("\7u\2\2\u0453\u0454\7k\2\2\u0454\u0467\7o\2\2\u0455\u0456") + buf.write("\7e\2\2\u0456\u0457\7q\2\2\u0457\u0458\7u\2\2\u0458\u0459") + buf.write("\7k\2\2\u0459\u045a\7p\2\2\u045a\u045b\7g\2\2\u045b\u045c") + buf.write("\7a\2\2\u045c\u045d\7u\2\2\u045d\u045e\7k\2\2\u045e\u045f") + buf.write("\7o\2\2\u045f\u0460\7k\2\2\u0460\u0461\7n\2\2\u0461\u0462") + buf.write("\7c\2\2\u0462\u0463\7t\2\2\u0463\u0464\7k\2\2\u0464\u0465") + buf.write("\7v\2\2\u0465\u0467\7{\2\2\u0466\u044f\3\2\2\2\u0466\u0455") + buf.write("\3\2\2\2\u0467\u00ac\3\2\2\2\u0468\u0469\7e\2\2\u0469") + buf.write("\u046a\7q\2\2\u046a\u046b\7w\2\2\u046b\u046c\7p\2\2\u046c") + buf.write("\u0477\7v\2\2\u046d\u046e\7e\2\2\u046e\u046f\7p\2\2\u046f") + buf.write("\u0477\7v\2\2\u0470\u0471\7n\2\2\u0471\u0472\7g\2\2\u0472") + buf.write("\u0473\7p\2\2\u0473\u0474\7i\2\2\u0474\u0475\7v\2\2\u0475") + buf.write("\u0477\7j\2\2\u0476\u0468\3\2\2\2\u0476\u046d\3\2\2\2") + buf.write("\u0476\u0470\3\2\2\2\u0477\u00ae\3\2\2\2\u0478\u0479\7") + buf.write("t\2\2\u0479\u047a\7g\2\2\u047a\u047b\7r\2\2\u047b\u047c") + buf.write("\7g\2\2\u047c\u047d\7c\2\2\u047d\u047e\7v\2\2\u047e\u00b0") + buf.write("\3\2\2\2\u047f\u0480\7h\2\2\u0480\u0481\7n\2\2\u0481\u0482") + buf.write("\7c\2\2\u0482\u0483\7v\2\2\u0483\u0484\7v\2\2\u0484\u0485") + buf.write("\7g\2\2\u0485\u0486\7p\2\2\u0486\u00b2\3\2\2\2\u0487\u0488") + buf.write("\7c\2\2\u0488\u0489\7r\2\2\u0489\u048a\7r\2\2\u048a\u048b") + buf.write("\7g\2\2\u048b\u048c\7p\2\2\u048c\u048d\7f\2\2\u048d\u00b4") + buf.write("\3\2\2\2\u048e\u048f\7i\2\2\u048f\u0490\7g\2\2\u0490\u0491") + buf.write("\7v\2\2\u0491\u0492\7a\2\2\u0492\u0493\7x\2\2\u0493\u0494") + buf.write("\7c\2\2\u0494\u0495\7n\2\2\u0495\u0496\7w\2\2\u0496\u0497") + buf.write("\7g\2\2\u0497\u00b6\3\2\2\2\u0498\u0499\7h\2\2\u0499\u049a") + buf.write("\7n\2\2\u049a\u049b\7q\2\2\u049b\u049c\7y\2\2\u049c\u049d") + buf.write("\7a\2\2\u049d\u049e\7c\2\2\u049e\u049f\7r\2\2\u049f\u04a0") + buf.write("\7r\2\2\u04a0\u04a1\7n\2\2\u04a1\u04a2\7{\2\2\u04a2\u00b8") + buf.write("\3\2\2\2\u04a3\u04a4\7d\2\2\u04a4\u04a5\7c\2\2\u04a5\u04a6") + buf.write("\7v\2\2\u04a6\u04a7\7e\2\2\u04a7\u04a8\7j\2\2\u04a8\u04a9") + buf.write("\7a\2\2\u04a9\u04aa\7u\2\2\u04aa\u04ab\7j\2\2\u04ab\u04ac") + buf.write("\7w\2\2\u04ac\u04ad\7h\2\2\u04ad\u04ae\7h\2\2\u04ae\u04af") + buf.write("\7n\2\2\u04af\u04be\7g\2\2\u04b0\u04b1\7u\2\2\u04b1\u04b2") + buf.write("\7j\2\2\u04b2\u04b3\7w\2\2\u04b3\u04b4\7h\2\2\u04b4\u04b5") + buf.write("\7h\2\2\u04b5\u04b6\7n\2\2\u04b6\u04be\7g\2\2\u04b7\u04b8") + buf.write("\7u\2\2\u04b8\u04b9\7g\2\2\u04b9\u04ba\7n\2\2\u04ba\u04bb") + buf.write("\7g\2\2\u04bb\u04bc\7e\2\2\u04bc\u04be\7v\2\2\u04bd\u04a3") + buf.write("\3\2\2\2\u04bd\u04b0\3\2\2\2\u04bd\u04b7\3\2\2\2\u04be") + buf.write("\u00ba\3\2\2\2\u04bf\u04c0\7o\2\2\u04c0\u04c1\7q\2\2\u04c1") + buf.write("\u04c2\7v\2\2\u04c2\u04c3\7k\2\2\u04c3\u04c4\7q\2\2\u04c4") + buf.write("\u04c5\7p\2\2\u04c5\u04c6\7a\2\2\u04c6\u04c7\7o\2\2\u04c7") + buf.write("\u04c8\7c\2\2\u04c8\u04c9\7u\2\2\u04c9\u04ca\7m\2\2\u04ca") + buf.write("\u00bc\3\2\2\2\u04cb\u04cc\7h\2\2\u04cc\u04cd\7n\2\2\u04cd") + buf.write("\u04ce\7q\2\2\u04ce\u04cf\7y\2\2\u04cf\u04d0\7a\2\2\u04d0") + buf.write("\u04d1\7v\2\2\u04d1\u04d2\7q\2\2\u04d2\u04d3\7a\2\2\u04d3") + buf.write("\u04d4\7k\2\2\u04d4\u04d5\7o\2\2\u04d5\u04d6\7c\2\2\u04d6") + buf.write("\u04d7\7i\2\2\u04d7\u04d8\7g\2\2\u04d8\u00be\3\2\2\2\u04d9") + buf.write("\u04da\7h\2\2\u04da\u04db\7n\2\2\u04db\u04dc\7q\2\2\u04dc") + buf.write("\u04dd\7y\2\2\u04dd\u04de\7a\2\2\u04de\u04df\7o\2\2\u04df") + buf.write("\u04e0\7c\2\2\u04e0\u04f0\7i\2\2\u04e1\u04e2\7h\2\2\u04e2") + buf.write("\u04e3\7n\2\2\u04e3\u04e4\7q\2\2\u04e4\u04e5\7y\2\2\u04e5") + buf.write("\u04e6\7a\2\2\u04e6\u04e7\7o\2\2\u04e7\u04e8\7c\2\2\u04e8") + buf.write("\u04e9\7i\2\2\u04e9\u04ea\7p\2\2\u04ea\u04eb\7k\2\2\u04eb") + buf.write("\u04ec\7v\2\2\u04ec\u04ed\7w\2\2\u04ed\u04ee\7f\2\2\u04ee") + buf.write("\u04f0\7g\2\2\u04ef\u04d9\3\2\2\2\u04ef\u04e1\3\2\2\2") + buf.write("\u04f0\u00c0\3\2\2\2\u04f1\u04f2\7h\2\2\u04f2\u04f3\7") + buf.write("n\2\2\u04f3\u04f4\7q\2\2\u04f4\u04f5\7y\2\2\u04f5\u04f6") + buf.write("\7a\2\2\u04f6\u04f7\7c\2\2\u04f7\u04f8\7p\2\2\u04f8\u0504") + buf.write("\7i\2\2\u04f9\u04fa\7h\2\2\u04fa\u04fb\7n\2\2\u04fb\u04fc") + buf.write("\7q\2\2\u04fc\u04fd\7y\2\2\u04fd\u04fe\7a\2\2\u04fe\u04ff") + buf.write("\7c\2\2\u04ff\u0500\7p\2\2\u0500\u0501\7i\2\2\u0501\u0502") + buf.write("\7n\2\2\u0502\u0504\7g\2\2\u0503\u04f1\3\2\2\2\u0503\u04f9") + buf.write("\3\2\2\2\u0504\u00c2\3\2\2\2\u0505\u0506\7y\2\2\u0506") + buf.write("\u0507\7j\2\2\u0507\u0508\7g\2\2\u0508\u0509\7t\2\2\u0509") + buf.write("\u050a\7g\2\2\u050a\u00c4\3\2\2\2\u050b\u050c\7j\2\2\u050c") + buf.write("\u050d\7k\2\2\u050d\u050e\7u\2\2\u050e\u050f\7v\2\2\u050f") + buf.write("\u0510\7q\2\2\u0510\u0511\7i\2\2\u0511\u0512\7t\2\2\u0512") + buf.write("\u0513\7c\2\2\u0513\u0519\7o\2\2\u0514\u0515\7j\2\2\u0515") + buf.write("\u0516\7k\2\2\u0516\u0517\7u\2\2\u0517\u0519\7v\2\2\u0518") + buf.write("\u050b\3\2\2\2\u0518\u0514\3\2\2\2\u0519\u00c6\3\2\2\2") + buf.write("\u051a\u051b\7q\2\2\u051b\u051c\7x\2\2\u051c\u051d\7g") + buf.write("\2\2\u051d\u051e\7t\2\2\u051e\u051f\7n\2\2\u051f\u0520") + buf.write("\7c\2\2\u0520\u0521\7{\2\2\u0521\u00c8\3\2\2\2\u0522\u0523") + buf.write("\7r\2\2\u0523\u0524\7c\2\2\u0524\u0525\7f\2\2\u0525\u00ca") + buf.write("\3\2\2\2\u0526\u0527\7e\2\2\u0527\u0528\7t\2\2\u0528\u0529") + buf.write("\7q\2\2\u0529\u052a\7u\2\2\u052a\u052b\7u\2\2\u052b\u00cc") + buf.write("\3\2\2\2\u052c\u052d\7o\2\2\u052d\u052e\7c\2\2\u052e\u052f") + buf.write("\7v\2\2\u052f\u0530\7o\2\2\u0530\u0531\7w\2\2\u0531\u0532") + buf.write("\7n\2\2\u0532\u00ce\3\2\2\2\u0533\u0534\7t\2\2\u0534\u0535") + buf.write("\7k\2\2\u0535\u0536\7h\2\2\u0536\u0537\7g\2\2\u0537\u00d0") + buf.write("\3\2\2\2\u0538\u0539\7d\2\2\u0539\u053a\7p\2\2\u053a\u053b") + buf.write("\7q\2\2\u053b\u0548\7v\2\2\u053c\u053d\7d\2\2\u053d\u053e") + buf.write("\7k\2\2\u053e\u053f\7v\2\2\u053f\u0540\7y\2\2\u0540\u0541") + buf.write("\7k\2\2\u0541\u0542\7u\2\2\u0542\u0543\7g\2\2\u0543\u0544") + buf.write("\7a\2\2\u0544\u0545\7p\2\2\u0545\u0546\7q\2\2\u0546\u0548") + buf.write("\7v\2\2\u0547\u0538\3\2\2\2\u0547\u053c\3\2\2\2\u0548") + buf.write("\u00d2\3\2\2\2\u0549\u054a\7d\2\2\u054a\u054b\7k\2\2\u054b") + buf.write("\u054c\7v\2\2\u054c\u054d\7e\2\2\u054d\u054e\7q\2\2\u054e") + buf.write("\u054f\7w\2\2\u054f\u0550\7p\2\2\u0550\u0560\7v\2\2\u0551") + buf.write("\u0552\7r\2\2\u0552\u0553\7q\2\2\u0553\u0554\7r\2\2\u0554") + buf.write("\u0555\7e\2\2\u0555\u0556\7q\2\2\u0556\u0557\7w\2\2\u0557") + buf.write("\u0558\7p\2\2\u0558\u0560\7v\2\2\u0559\u055a\7r\2\2\u055a") + buf.write("\u055b\7q\2\2\u055b\u055c\7r\2\2\u055c\u055d\7e\2\2\u055d") + buf.write("\u055e\7p\2\2\u055e\u0560\7v\2\2\u055f\u0549\3\2\2\2\u055f") + buf.write("\u0551\3\2\2\2\u055f\u0559\3\2\2\2\u0560\u00d4\3\2\2\2") + buf.write("\u0561\u0562\7u\2\2\u0562\u0563\7j\2\2\u0563\u0564\7c") + buf.write("\2\2\u0564\u0565\7r\2\2\u0565\u0566\7g\2\2\u0566\u00d6") + buf.write("\3\2\2\2\u0567\u0568\7d\2\2\u0568\u0569\7c\2\2\u0569\u056a") + buf.write("\7p\2\2\u056a\u0577\7f\2\2\u056b\u056c\7d\2\2\u056c\u056d") + buf.write("\7k\2\2\u056d\u056e\7v\2\2\u056e\u056f\7y\2\2\u056f\u0570") + buf.write("\7k\2\2\u0570\u0571\7u\2\2\u0571\u0572\7g\2\2\u0572\u0573") + buf.write("\7a\2\2\u0573\u0574\7c\2\2\u0574\u0575\7p\2\2\u0575\u0577") + buf.write("\7f\2\2\u0576\u0567\3\2\2\2\u0576\u056b\3\2\2\2\u0577") + buf.write("\u00d8\3\2\2\2\u0578\u0579\7d\2\2\u0579\u057a\7z\2\2\u057a") + buf.write("\u057b\7q\2\2\u057b\u0588\7t\2\2\u057c\u057d\7d\2\2\u057d") + buf.write("\u057e\7k\2\2\u057e\u057f\7v\2\2\u057f\u0580\7y\2\2\u0580") + buf.write("\u0581\7k\2\2\u0581\u0582\7u\2\2\u0582\u0583\7g\2\2\u0583") + buf.write("\u0584\7a\2\2\u0584\u0585\7z\2\2\u0585\u0586\7q\2\2\u0586") + buf.write("\u0588\7t\2\2\u0587\u0578\3\2\2\2\u0587\u057c\3\2\2\2") + buf.write("\u0588\u00da\3\2\2\2\u0589\u058a\7d\2\2\u058a\u058b\7") + buf.write("q\2\2\u058b\u0597\7t\2\2\u058c\u058d\7d\2\2\u058d\u058e") + buf.write("\7k\2\2\u058e\u058f\7v\2\2\u058f\u0590\7y\2\2\u0590\u0591") + buf.write("\7k\2\2\u0591\u0592\7u\2\2\u0592\u0593\7g\2\2\u0593\u0594") + buf.write("\7a\2\2\u0594\u0595\7q\2\2\u0595\u0597\7t\2\2\u0596\u0589") + buf.write("\3\2\2\2\u0596\u058c\3\2\2\2\u0597\u00dc\3\2\2\2\u0598") + buf.write("\u0599\7v\2\2\u0599\u059a\7g\2\2\u059a\u059b\7p\2\2\u059b") + buf.write("\u059c\7u\2\2\u059c\u059d\7q\2\2\u059d\u059e\7t\2\2\u059e") + buf.write("\u00de\3\2\2\2\u059f\u05a0\7u\2\2\u05a0\u05a1\7v\2\2\u05a1") + buf.write("\u05a2\7c\2\2\u05a2\u05a3\7e\2\2\u05a3\u05a4\7m\2\2\u05a4") + buf.write("\u05a5\7a\2\2\u05a5\u05a6\7r\2\2\u05a6\u05a7\7w\2\2\u05a7") + buf.write("\u05a8\7u\2\2\u05a8\u05a9\7j\2\2\u05a9\u00e0\3\2\2\2\u05aa") + buf.write("\u05ab\7u\2\2\u05ab\u05ac\7v\2\2\u05ac\u05ad\7c\2\2\u05ad") + buf.write("\u05ae\7e\2\2\u05ae\u05af\7m\2\2\u05af\u05b0\7a\2\2\u05b0") + buf.write("\u05b1\7r\2\2\u05b1\u05b2\7q\2\2\u05b2\u05b3\7r\2\2\u05b3") + buf.write("\u00e2\3\2\2\2\u05b4\u05b5\7u\2\2\u05b5\u05b6\7v\2\2\u05b6") + buf.write("\u05b7\7c\2\2\u05b7\u05b8\7e\2\2\u05b8\u05b9\7m\2\2\u05b9") + buf.write("\u05ba\7a\2\2\u05ba\u05bb\7e\2\2\u05bb\u05bc\7n\2\2\u05bc") + buf.write("\u05bd\7g\2\2\u05bd\u05be\7c\2\2\u05be\u05bf\7t\2\2\u05bf") + buf.write("\u00e4\3\2\2\2\u05c0\u05c1\7u\2\2\u05c1\u05c2\7v\2\2\u05c2") + buf.write("\u05c3\7c\2\2\u05c3\u05c4\7e\2\2\u05c4\u05c5\7m\2\2\u05c5") + buf.write("\u05c6\7a\2\2\u05c6\u05c7\7j\2\2\u05c7\u05c8\7c\2\2\u05c8") + buf.write("\u05c9\7u\2\2\u05c9\u00e6\3\2\2\2\u05ca\u05cb\7u\2\2\u05cb") + buf.write("\u05cc\7v\2\2\u05cc\u05cd\7c\2\2\u05cd\u05ce\7e\2\2\u05ce") + buf.write("\u05cf\7m\2\2\u05cf\u05d0\7a\2\2\u05d0\u05d1\7i\2\2\u05d1") + buf.write("\u05d2\7g\2\2\u05d2\u05d3\7v\2\2\u05d3\u00e8\3\2\2\2\u05d4") + buf.write("\u05d5\7e\2\2\u05d5\u05d6\7c\2\2\u05d6\u05e9\7v\2\2\u05d7") + buf.write("\u05d8\7e\2\2\u05d8\u05d9\7q\2\2\u05d9\u05da\7p\2\2\u05da") + buf.write("\u05db\7e\2\2\u05db\u05dc\7c\2\2\u05dc\u05e9\7v\2\2\u05dd") + buf.write("\u05de\7e\2\2\u05de\u05df\7q\2\2\u05df\u05e0\7p\2\2\u05e0") + buf.write("\u05e1\7e\2\2\u05e1\u05e2\7c\2\2\u05e2\u05e3\7v\2\2\u05e3") + buf.write("\u05e4\7g\2\2\u05e4\u05e5\7p\2\2\u05e5\u05e6\7c\2\2\u05e6") + buf.write("\u05e7\7v\2\2\u05e7\u05e9\7g\2\2\u05e8\u05d4\3\2\2\2\u05e8") + buf.write("\u05d7\3\2\2\2\u05e8\u05dd\3\2\2\2\u05e9\u00ea\3\2\2\2") + buf.write("\u05ea\u05eb\7k\2\2\u05eb\u05ec\7p\2\2\u05ec\u05ed\7v") + buf.write("\2\2\u05ed\u00ec\3\2\2\2\u05ee\u05ef\7h\2\2\u05ef\u05f0") + buf.write("\7n\2\2\u05f0\u05f1\7q\2\2\u05f1\u05f2\7c\2\2\u05f2\u05f3") + buf.write("\7v\2\2\u05f3\u00ee\3\2\2\2\u05f4\u05f5\7w\2\2\u05f5\u05f6") + buf.write("\7r\2\2\u05f6\u05f7\7r\2\2\u05f7\u05f8\7g\2\2\u05f8\u05f9") + buf.write("\7t\2\2\u05f9\u00f0\3\2\2\2\u05fa\u05fb\7n\2\2\u05fb\u05fc") + buf.write("\7q\2\2\u05fc\u05fd\7y\2\2\u05fd\u05fe\7g\2\2\u05fe\u05ff") + buf.write("\7t\2\2\u05ff\u00f2\3\2\2\2\u0600\u0601\7v\2\2\u0601\u0602") + buf.write("\7t\2\2\u0602\u0603\7k\2\2\u0603\u0604\7o\2\2\u0604\u00f4") + buf.write("\3\2\2\2\u0605\u0606\7u\2\2\u0606\u0607\7r\2\2\u0607\u0608") + buf.write("\7n\2\2\u0608\u0609\7k\2\2\u0609\u060a\7v\2\2\u060a\u00f6") + buf.write("\3\2\2\2\u060b\u060c\7l\2\2\u060c\u060d\7q\2\2\u060d\u060e") + buf.write("\7k\2\2\u060e\u060f\7p\2\2\u060f\u00f8\3\2\2\2\u0610\u0611") + buf.write("\7u\2\2\u0611\u0612\7w\2\2\u0612\u0613\7d\2\2\u0613\u0614") + buf.write("\7u\2\2\u0614\u0615\7v\2\2\u0615\u0616\7t\2\2\u0616\u0617") + buf.write("\7k\2\2\u0617\u0618\7p\2\2\u0618\u0620\7i\2\2\u0619\u061a") + buf.write("\7u\2\2\u061a\u061b\7w\2\2\u061b\u061c\7d\2\2\u061c\u061d") + buf.write("\7u\2\2\u061d\u061e\7v\2\2\u061e\u0620\7t\2\2\u061f\u0610") + buf.write("\3\2\2\2\u061f\u0619\3\2\2\2\u0620\u00fa\3\2\2\2\u0621") + buf.write("\u0622\7h\2\2\u0622\u0623\7k\2\2\u0623\u0624\7p\2\2\u0624") + buf.write("\u0625\7f\2\2\u0625\u00fc\3\2\2\2\u0626\u0627\7t\2\2\u0627") + buf.write("\u0628\7g\2\2\u0628\u0629\7r\2\2\u0629\u062a\7n\2\2\u062a") + buf.write("\u062b\7c\2\2\u062b\u062c\7e\2\2\u062c\u062d\7g\2\2\u062d") + buf.write("\u00fe\3\2\2\2\u062e\u062f\7f\2\2\u062f\u0630\7k\2\2\u0630") + buf.write("\u0631\7n\2\2\u0631\u0632\7c\2\2\u0632\u0633\7v\2\2\u0633") + buf.write("\u0634\7g\2\2\u0634\u0100\3\2\2\2\u0635\u0636\7g\2\2\u0636") + buf.write("\u0637\7t\2\2\u0637\u0638\7q\2\2\u0638\u0639\7f\2\2\u0639") + buf.write("\u063a\7g\2\2\u063a\u0102\3\2\2\2\u063b\u063c\7o\2\2\u063c") + buf.write("\u063d\7q\2\2\u063d\u063e\7t\2\2\u063e\u063f\7r\2\2\u063f") + buf.write("\u0640\7j\2\2\u0640\u0641\7a\2\2\u0641\u0642\7q\2\2\u0642") + buf.write("\u0643\7r\2\2\u0643\u0644\7g\2\2\u0644\u0645\7p\2\2\u0645") + buf.write("\u0104\3\2\2\2\u0646\u0647\7o\2\2\u0647\u0648\7q\2\2\u0648") + buf.write("\u0649\7t\2\2\u0649\u064a\7r\2\2\u064a\u064b\7j\2\2\u064b") + buf.write("\u064c\7a\2\2\u064c\u064d\7e\2\2\u064d\u064e\7n\2\2\u064e") + buf.write("\u064f\7q\2\2\u064f\u0650\7u\2\2\u0650\u0651\7g\2\2\u0651") + buf.write("\u0106\3\2\2\2\u0652\u0653\7t\2\2\u0653\u0654\7i\2\2\u0654") + buf.write("\u0655\7d\2\2\u0655\u0656\7a\2\2\u0656\u0657\7v\2\2\u0657") + buf.write("\u0658\7q\2\2\u0658\u0659\7a\2\2\u0659\u065a\7q\2\2\u065a") + buf.write("\u065b\7m\2\2\u065b\u065c\7n\2\2\u065c\u065d\7c\2\2\u065d") + buf.write("\u065e\7d\2\2\u065e\u0108\3\2\2\2\u065f\u0660\7t\2\2\u0660") + buf.write("\u0661\7i\2\2\u0661\u0662\7d\2\2\u0662\u0663\7a\2\2\u0663") + buf.write("\u0664\7v\2\2\u0664\u0665\7q\2\2\u0665\u0666\7a\2\2\u0666") + buf.write("\u0667\7e\2\2\u0667\u0668\7k\2\2\u0668\u0669\7g\2\2\u0669") + buf.write("\u066a\7n\2\2\u066a\u066b\7c\2\2\u066b\u066c\7d\2\2\u066c") + buf.write("\u010a\3\2\2\2\u066d\u066e\7q\2\2\u066e\u066f\7m\2\2\u066f") + buf.write("\u0670\7n\2\2\u0670\u0671\7c\2\2\u0671\u0672\7d\2\2\u0672") + buf.write("\u0673\7a\2\2\u0673\u0674\7v\2\2\u0674\u0675\7q\2\2\u0675") + buf.write("\u0676\7a\2\2\u0676\u0677\7t\2\2\u0677\u0678\7i\2\2\u0678") + buf.write("\u0679\7d\2\2\u0679\u010c\3\2\2\2\u067a\u067b\7e\2\2\u067b") + buf.write("\u067c\7k\2\2\u067c\u067d\7g\2\2\u067d\u067e\7n\2\2\u067e") + buf.write("\u067f\7c\2\2\u067f\u0680\7d\2\2\u0680\u0681\7a\2\2\u0681") + buf.write("\u0682\7v\2\2\u0682\u0683\7q\2\2\u0683\u0684\7a\2\2\u0684") + buf.write("\u0685\7t\2\2\u0685\u0686\7i\2\2\u0686\u0687\7d\2\2\u0687") + buf.write("\u010e\3\2\2\2\u0688\u0689\7t\2\2\u0689\u068a\7i\2\2\u068a") + buf.write("\u068b\7d\2\2\u068b\u068c\7a\2\2\u068c\u068d\7v\2\2\u068d") + buf.write("\u068e\7q\2\2\u068e\u068f\7a\2\2\u068f\u0690\7j\2\2\u0690") + buf.write("\u0691\7u\2\2\u0691\u0692\7x\2\2\u0692\u0110\3\2\2\2\u0693") + buf.write("\u0694\7j\2\2\u0694\u0695\7u\2\2\u0695\u0696\7x\2\2\u0696") + buf.write("\u0697\7a\2\2\u0697\u0698\7v\2\2\u0698\u0699\7q\2\2\u0699") + buf.write("\u069a\7a\2\2\u069a\u069b\7t\2\2\u069b\u069c\7i\2\2\u069c") + buf.write("\u069d\7d\2\2\u069d\u0112\3\2\2\2\u069e\u069f\7k\2\2\u069f") + buf.write("\u06a0\7p\2\2\u06a0\u06a1\7v\2\2\u06a1\u06a2\7a\2\2\u06a2") + buf.write("\u06a3\7v\2\2\u06a3\u06a4\7q\2\2\u06a4\u06a5\7a\2\2\u06a5") + buf.write("\u06a6\7t\2\2\u06a6\u06a7\7i\2\2\u06a7\u06a8\7d\2\2\u06a8") + buf.write("\u0114\3\2\2\2\u06a9\u06aa\7t\2\2\u06aa\u06ab\7i\2\2\u06ab") + buf.write("\u06ac\7d\2\2\u06ac\u06ad\7a\2\2\u06ad\u06ae\7v\2\2\u06ae") + buf.write("\u06af\7q\2\2\u06af\u06b0\7a\2\2\u06b0\u06b1\7k\2\2\u06b1") + buf.write("\u06b2\7p\2\2\u06b2\u06b3\7v\2\2\u06b3\u0116\3\2\2\2\u06b4") + buf.write("\u06b5\7k\2\2\u06b5\u06b6\7p\2\2\u06b6\u06b7\7v\2\2\u06b7") + buf.write("\u06b8\7g\2\2\u06b8\u06b9\7t\2\2\u06b9\u06ba\7r\2\2\u06ba") + buf.write("\u06bb\7q\2\2\u06bb\u06bc\7n\2\2\u06bc\u06bd\7c\2\2\u06bd") + buf.write("\u06be\7v\2\2\u06be\u06bf\7g\2\2\u06bf\u06c0\7a\2\2\u06c0") + buf.write("\u06c1\7n\2\2\u06c1\u06c2\7k\2\2\u06c2\u06c3\7p\2\2\u06c3") + buf.write("\u06c4\7g\2\2\u06c4\u06c5\7c\2\2\u06c5\u06c6\7t\2\2\u06c6") + buf.write("\u0118\3\2\2\2\u06c7\u06c8\7k\2\2\u06c8\u06c9\7p\2\2\u06c9") + buf.write("\u06ca\7v\2\2\u06ca\u06cb\7g\2\2\u06cb\u06cc\7t\2\2\u06cc") + buf.write("\u06cd\7r\2\2\u06cd\u06ce\7q\2\2\u06ce\u06cf\7n\2\2\u06cf") + buf.write("\u06d0\7c\2\2\u06d0\u06d1\7v\2\2\u06d1\u06d2\7g\2\2\u06d2") + buf.write("\u06d3\7a\2\2\u06d3\u06d4\7c\2\2\u06d4\u06d5\7t\2\2\u06d5") + buf.write("\u06d6\7g\2\2\u06d6\u06d7\7c\2\2\u06d7\u011a\3\2\2\2\u06d8") + buf.write("\u06d9\7k\2\2\u06d9\u06da\7p\2\2\u06da\u06db\7v\2\2\u06db") + buf.write("\u06dc\7g\2\2\u06dc\u06dd\7t\2\2\u06dd\u06de\7r\2\2\u06de") + buf.write("\u06df\7q\2\2\u06df\u06e0\7n\2\2\u06e0\u06e1\7c\2\2\u06e1") + buf.write("\u06e2\7v\2\2\u06e2\u06e3\7g\2\2\u06e3\u06e4\7a\2\2\u06e4") + buf.write("\u06e5\7p\2\2\u06e5\u06e6\7g\2\2\u06e6\u06e7\7c\2\2\u06e7") + buf.write("\u06e8\7t\2\2\u06e8\u06e9\7g\2\2\u06e9\u06ea\7u\2\2\u06ea") + buf.write("\u0705\7v\2\2\u06eb\u06ec\7k\2\2\u06ec\u06ed\7p\2\2\u06ed") + buf.write("\u06ee\7v\2\2\u06ee\u06ef\7g\2\2\u06ef\u06f0\7t\2\2\u06f0") + buf.write("\u06f1\7r\2\2\u06f1\u06f2\7q\2\2\u06f2\u06f3\7n\2\2\u06f3") + buf.write("\u06f4\7c\2\2\u06f4\u06f5\7v\2\2\u06f5\u06f6\7g\2\2\u06f6") + buf.write("\u06f7\7a\2\2\u06f7\u06f8\7p\2\2\u06f8\u06f9\7g\2\2\u06f9") + buf.write("\u06fa\7c\2\2\u06fa\u06fb\7t\2\2\u06fb\u06fc\7g\2\2\u06fc") + buf.write("\u06fd\7u\2\2\u06fd\u06fe\7v\2\2\u06fe\u06ff\7a\2\2\u06ff") + buf.write("\u0700\7g\2\2\u0700\u0701\7z\2\2\u0701\u0702\7c\2\2\u0702") + buf.write("\u0703\7e\2\2\u0703\u0705\7v\2\2\u0704\u06d8\3\2\2\2\u0704") + buf.write("\u06eb\3\2\2\2\u0705\u011c\3\2\2\2\u0706\u0707\7v\2\2") + buf.write("\u0707\u0708\7g\2\2\u0708\u0709\7z\2\2\u0709\u070a\7v") + buf.write("\2\2\u070a\u070b\7a\2\2\u070b\u070c\7k\2\2\u070c\u070d") + buf.write("\7o\2\2\u070d\u070e\7c\2\2\u070e\u070f\7i\2\2\u070f\u0710") + buf.write("\7g\2\2\u0710\u011e\3\2\2\2\u0711\u0712\7c\2\2\u0712\u0713") + buf.write("\7u\2\2\u0713\u0714\7a\2\2\u0714\u0715\7p\2\2\u0715\u0716") + buf.write("\7g\2\2\u0716\u0717\7u\2\2\u0717\u0718\7v\2\2\u0718\u0719") + buf.write("\7g\2\2\u0719\u071a\7f\2\2\u071a\u071b\7a\2\2\u071b\u071c") + buf.write("\7v\2\2\u071c\u071d\7g\2\2\u071d\u071e\7p\2\2\u071e\u071f") + buf.write("\7u\2\2\u071f\u0720\7q\2\2\u0720\u0721\7t\2\2\u0721\u0120") + buf.write("\3\2\2\2\u0722\u0723\7u\2\2\u0723\u0724\7x\2\2\u0724\u0742") + buf.write("\7f\2\2\u0725\u0726\7u\2\2\u0726\u0727\7k\2\2\u0727\u0728") + buf.write("\7p\2\2\u0728\u0729\7i\2\2\u0729\u072a\7w\2\2\u072a\u072b") + buf.write("\7n\2\2\u072b\u072c\7c\2\2\u072c\u072d\7t\2\2\u072d\u072e") + buf.write("\7a\2\2\u072e\u072f\7x\2\2\u072f\u0730\7c\2\2\u0730\u0731") + buf.write("\7n\2\2\u0731\u0732\7w\2\2\u0732\u0733\7g\2\2\u0733\u0734") + buf.write("\7a\2\2\u0734\u0735\7f\2\2\u0735\u0736\7g\2\2\u0736\u0737") + buf.write("\7e\2\2\u0737\u0738\7q\2\2\u0738\u0739\7o\2\2\u0739\u073a") + buf.write("\7r\2\2\u073a\u073b\7q\2\2\u073b\u073c\7u\2\2\u073c\u073d") + buf.write("\7k\2\2\u073d\u073e\7v\2\2\u073e\u073f\7k\2\2\u073f\u0740") + buf.write("\7q\2\2\u0740\u0742\7p\2\2\u0741\u0722\3\2\2\2\u0741\u0725") + buf.write("\3\2\2\2\u0742\u0122\3\2\2\2\u0743\u0744\7f\2\2\u0744") + buf.write("\u0745\7k\2\2\u0745\u0746\7c\2\2\u0746\u0747\7i\2\2\u0747") + buf.write("\u0748\7q\2\2\u0748\u0749\7p\2\2\u0749\u074a\7c\2\2\u074a") + buf.write("\u074b\7n\2\2\u074b\u074c\7a\2\2\u074c\u074d\7o\2\2\u074d") + buf.write("\u074e\7c\2\2\u074e\u074f\7v\2\2\u074f\u0750\7t\2\2\u0750") + buf.write("\u0751\7k\2\2\u0751\u0757\7z\2\2\u0752\u0753\7f\2\2\u0753") + buf.write("\u0754\7k\2\2\u0754\u0755\7c\2\2\u0755\u0757\7i\2\2\u0756") + buf.write("\u0743\3\2\2\2\u0756\u0752\3\2\2\2\u0757\u0124\3\2\2\2") + buf.write("\u0758\u0759\7k\2\2\u0759\u075a\7h\2\2\u075a\u0126\3\2") + buf.write("\2\2\u075b\u075c\7g\2\2\u075c\u075d\7n\2\2\u075d\u075e") + buf.write("\7u\2\2\u075e\u075f\7g\2\2\u075f\u0128\3\2\2\2\u0760\u0761") + buf.write("\7y\2\2\u0761\u0762\7j\2\2\u0762\u0763\7k\2\2\u0763\u0764") + buf.write("\7n\2\2\u0764\u0765\7g\2\2\u0765\u012a\3\2\2\2\u0766\u0767") + buf.write("\7h\2\2\u0767\u0768\7q\2\2\u0768\u0769\7t\2\2\u0769\u012c") + buf.write("\3\2\2\2\u076a\u076b\7k\2\2\u076b\u076c\7p\2\2\u076c\u012e") + buf.write("\3\2\2\2\u076d\u076e\7d\2\2\u076e\u076f\7t\2\2\u076f\u0770") + buf.write("\7g\2\2\u0770\u0771\7c\2\2\u0771\u0772\7m\2\2\u0772\u0130") + buf.write("\3\2\2\2\u0773\u0774\7e\2\2\u0774\u0775\7q\2\2\u0775\u0776") + buf.write("\7p\2\2\u0776\u0777\7v\2\2\u0777\u0778\7k\2\2\u0778\u0779") + buf.write("\7p\2\2\u0779\u077a\7w\2\2\u077a\u077b\7g\2\2\u077b\u0132") + buf.write("\3\2\2\2\u077c\u077d\7t\2\2\u077d\u077e\7g\2\2\u077e\u077f") + buf.write("\7v\2\2\u077f\u0780\7w\2\2\u0780\u0781\7t\2\2\u0781\u0782") + buf.write("\7p\2\2\u0782\u0134\3\2\2\2\u0783\u0784\7v\2\2\u0784\u0785") + buf.write("\7k\2\2\u0785\u0786\7o\2\2\u0786\u0787\7g\2\2\u0787\u0788") + buf.write("\7u\2\2\u0788\u0789\7v\2\2\u0789\u078a\7c\2\2\u078a\u078b") + buf.write("\7o\2\2\u078b\u0790\7r\2\2\u078c\u078d\7p\2\2\u078d\u078e") + buf.write("\7q\2\2\u078e\u0790\7y\2\2\u078f\u0783\3\2\2\2\u078f\u078c") + buf.write("\3\2\2\2\u0790\u0136\3\2\2\2\u0791\u0792\7u\2\2\u0792") + buf.write("\u0793\7q\2\2\u0793\u0794\7t\2\2\u0794\u0795\7v\2\2\u0795") + buf.write("\u0138\3\2\2\2\u0796\u0797\7c\2\2\u0797\u0798\7t\2\2\u0798") + buf.write("\u0799\7i\2\2\u0799\u079a\7u\2\2\u079a\u079b\7q\2\2\u079b") + buf.write("\u079c\7t\2\2\u079c\u079d\7v\2\2\u079d\u013a\3\2\2\2\u079e") + buf.write("\u079f\7c\2\2\u079f\u07a0\7t\2\2\u07a0\u07a1\7i\2\2\u07a1") + buf.write("\u07a2\7o\2\2\u07a2\u07a3\7k\2\2\u07a3\u07a4\7p\2\2\u07a4") + buf.write("\u013c\3\2\2\2\u07a5\u07a6\7c\2\2\u07a6\u07a7\7t\2\2\u07a7") + buf.write("\u07a8\7i\2\2\u07a8\u07a9\7o\2\2\u07a9\u07aa\7c\2\2\u07aa") + buf.write("\u07ab\7z\2\2\u07ab\u013e\3\2\2\2\u07ac\u07ad\7u\2\2\u07ad") + buf.write("\u07ae\7q\2\2\u07ae\u07af\7h\2\2\u07af\u07b0\7v\2\2\u07b0") + buf.write("\u07b1\7o\2\2\u07b1\u07b2\7c\2\2\u07b2\u07b3\7z\2\2\u07b3") + buf.write("\u0140\3\2\2\2\u07b4\u07b5\7u\2\2\u07b5\u07b6\7q\2\2\u07b6") + buf.write("\u07b7\7h\2\2\u07b7\u07b8\7v\2\2\u07b8\u07b9\7o\2\2\u07b9") + buf.write("\u07ba\7k\2\2\u07ba\u07bb\7p\2\2\u07bb\u0142\3\2\2\2\u07bc") + buf.write("\u07bd\7w\2\2\u07bd\u07be\7p\2\2\u07be\u07bf\7k\2\2\u07bf") + buf.write("\u07c0\7s\2\2\u07c0\u07c1\7w\2\2\u07c1\u07c2\7g\2\2\u07c2") + buf.write("\u0144\3\2\2\2\u07c3\u07c4\7h\2\2\u07c4\u07c5\7n\2\2\u07c5") + buf.write("\u07c6\7k\2\2\u07c6\u07c7\7r\2\2\u07c7\u0146\3\2\2\2\u07c8") + buf.write("\u07c9\7u\2\2\u07c9\u07ca\7v\2\2\u07ca\u07cb\7c\2\2\u07cb") + buf.write("\u07cc\7t\2\2\u07cc\u07cd\7v\2\2\u07cd\u07ce\7u\2\2\u07ce") + buf.write("\u07cf\7y\2\2\u07cf\u07d0\7k\2\2\u07d0\u07d1\7v\2\2\u07d1") + buf.write("\u07d2\7j\2\2\u07d2\u0148\3\2\2\2\u07d3\u07d4\7g\2\2\u07d4") + buf.write("\u07d5\7p\2\2\u07d5\u07d6\7f\2\2\u07d6\u07d7\7u\2\2\u07d7") + buf.write("\u07d8\7y\2\2\u07d8\u07d9\7k\2\2\u07d9\u07da\7v\2\2\u07da") + buf.write("\u07db\7j\2\2\u07db\u014a\3\2\2\2\u07dc\u07dd\7u\2\2\u07dd") + buf.write("\u07de\7s\2\2\u07de\u07df\7w\2\2\u07df\u07e0\7g\2\2\u07e0") + buf.write("\u07e1\7g\2\2\u07e1\u07e2\7|\2\2\u07e2\u07e3\7g\2\2\u07e3") + buf.write("\u014c\3\2\2\2\u07e4\u07e5\7w\2\2\u07e5\u07e6\7p\2\2\u07e6") + buf.write("\u07e7\7u\2\2\u07e7\u07e8\7s\2\2\u07e8\u07e9\7w\2\2\u07e9") + buf.write("\u07ea\7g\2\2\u07ea\u07eb\7g\2\2\u07eb\u07ec\7|\2\2\u07ec") + buf.write("\u07ed\7g\2\2\u07ed\u014e\3\2\2\2\u07ee\u07ef\7t\2\2\u07ef") + buf.write("\u07f0\7q\2\2\u07f0\u07f1\7n\2\2\u07f1\u07f2\7n\2\2\u07f2") + buf.write("\u0150\3\2\2\2\u07f3\u07f4\7e\2\2\u07f4\u07f5\7q\2\2\u07f5") + buf.write("\u07f6\7x\2\2\u07f6\u0152\3\2\2\2\u07f7\u07f8\7e\2\2\u07f8") + buf.write("\u07f9\7q\2\2\u07f9\u07fa\7t\2\2\u07fa\u0807\7t\2\2\u07fb") + buf.write("\u07fc\7e\2\2\u07fc\u07fd\7q\2\2\u07fd\u07fe\7t\2\2\u07fe") + buf.write("\u07ff\7t\2\2\u07ff\u0800\7g\2\2\u0800\u0801\7n\2\2\u0801") + buf.write("\u0802\7c\2\2\u0802\u0803\7v\2\2\u0803\u0804\7k\2\2\u0804") + buf.write("\u0805\7q\2\2\u0805\u0807\7p\2\2\u0806\u07f7\3\2\2\2\u0806") + buf.write("\u07fb\3\2\2\2\u0807\u0154\3\2\2\2\u0808\u0809\7g\2\2") + buf.write("\u0809\u080a\7p\2\2\u080a\u080b\7v\2\2\u080b\u080c\7t") + buf.write("\2\2\u080c\u080d\7q\2\2\u080d\u080e\7r\2\2\u080e\u080f") + buf.write("\7{\2\2\u080f\u0156\3\2\2\2\u0810\u0811\7e\2\2\u0811\u0812") + buf.write("\7t\2\2\u0812\u0813\7q\2\2\u0813\u0814\7r\2\2\u0814\u0158") + buf.write("\3\2\2\2\u0815\u0816\7p\2\2\u0816\u0817\7q\2\2\u0817\u0818") + buf.write("\7p\2\2\u0818\u0826\7g\2\2\u0819\u081a\7P\2\2\u081a\u081b") + buf.write("\7q\2\2\u081b\u081c\7p\2\2\u081c\u0826\7g\2\2\u081d\u081e") + buf.write("\7p\2\2\u081e\u081f\7w\2\2\u081f\u0820\7n\2\2\u0820\u0826") + buf.write("\7n\2\2\u0821\u0822\7P\2\2\u0822\u0823\7W\2\2\u0823\u0824") + buf.write("\7N\2\2\u0824\u0826\7N\2\2\u0825\u0815\3\2\2\2\u0825\u0819") + buf.write("\3\2\2\2\u0825\u081d\3\2\2\2\u0825\u0821\3\2\2\2\u0826") + buf.write("\u015a\3\2\2\2\u0827\u0828\7e\2\2\u0828\u0829\7q\2\2\u0829") + buf.write("\u082a\7q\2\2\u082a\u082b\7t\2\2\u082b\u082c\7f\2\2\u082c") + buf.write("\u0839\7u\2\2\u082d\u082e\7e\2\2\u082e\u082f\7q\2\2\u082f") + buf.write("\u0830\7q\2\2\u0830\u0831\7t\2\2\u0831\u0832\7f\2\2\u0832") + buf.write("\u0833\7k\2\2\u0833\u0834\7p\2\2\u0834\u0835\7c\2\2\u0835") + buf.write("\u0836\7v\2\2\u0836\u0837\7g\2\2\u0837\u0839\7u\2\2\u0838") + buf.write("\u0827\3\2\2\2\u0838\u082d\3\2\2\2\u0839\u015c\3\2\2\2") + buf.write("\u083a\u083b\7p\2\2\u083b\u083c\7q\2\2\u083c\u083d\7k") + buf.write("\2\2\u083d\u083e\7u\2\2\u083e\u0852\7g\2\2\u083f\u0840") + buf.write("\7t\2\2\u0840\u0841\7c\2\2\u0841\u0842\7p\2\2\u0842\u0843") + buf.write("\7f\2\2\u0843\u0852\7p\2\2\u0844\u0845\7t\2\2\u0845\u0846") + buf.write("\7c\2\2\u0846\u0847\7p\2\2\u0847\u0848\7f\2\2\u0848\u0849") + buf.write("\7q\2\2\u0849\u084a\7o\2\2\u084a\u084b\7a\2\2\u084b\u084c") + buf.write("\7p\2\2\u084c\u084d\7q\2\2\u084d\u084e\7t\2\2\u084e\u084f") + buf.write("\7o\2\2\u084f\u0850\7c\2\2\u0850\u0852\7n\2\2\u0851\u083a") + buf.write("\3\2\2\2\u0851\u083f\3\2\2\2\u0851\u0844\3\2\2\2\u0852") + buf.write("\u015e\3\2\2\2\u0853\u0854\7t\2\2\u0854\u0855\7c\2\2\u0855") + buf.write("\u0856\7p\2\2\u0856\u086b\7f\2\2\u0857\u0858\7t\2\2\u0858") + buf.write("\u0859\7c\2\2\u0859\u085a\7p\2\2\u085a\u085b\7f\2\2\u085b") + buf.write("\u086b\7w\2\2\u085c\u085d\7t\2\2\u085d\u085e\7c\2\2\u085e") + buf.write("\u085f\7p\2\2\u085f\u0860\7f\2\2\u0860\u0861\7q\2\2\u0861") + buf.write("\u0862\7o\2\2\u0862\u0863\7a\2\2\u0863\u0864\7w\2\2\u0864") + buf.write("\u0865\7p\2\2\u0865\u0866\7k\2\2\u0866\u0867\7h\2\2\u0867") + buf.write("\u0868\7q\2\2\u0868\u0869\7t\2\2\u0869\u086b\7o\2\2\u086a") + buf.write("\u0853\3\2\2\2\u086a\u0857\3\2\2\2\u086a\u085c\3\2\2\2") + buf.write("\u086b\u0160\3\2\2\2\u086c\u086d\7t\2\2\u086d\u086e\7") + buf.write("c\2\2\u086e\u086f\7p\2\2\u086f\u0870\7f\2\2\u0870\u087f") + buf.write("\7e\2\2\u0871\u0872\7t\2\2\u0872\u0873\7c\2\2\u0873\u0874") + buf.write("\7p\2\2\u0874\u0875\7f\2\2\u0875\u0876\7q\2\2\u0876\u0877") + buf.write("\7o\2\2\u0877\u0878\7a\2\2\u0878\u0879\7e\2\2\u0879\u087a") + buf.write("\7c\2\2\u087a\u087b\7w\2\2\u087b\u087c\7e\2\2\u087c\u087d") + buf.write("\7j\2\2\u087d\u087f\7{\2\2\u087e\u086c\3\2\2\2\u087e\u0871") + buf.write("\3\2\2\2\u087f\u0162\3\2\2\2\u0880\u0881\7t\2\2\u0881") + buf.write("\u0882\7c\2\2\u0882\u0883\7p\2\2\u0883\u0884\7f\2\2\u0884") + buf.write("\u0898\7g\2\2\u0885\u0886\7t\2\2\u0886\u0887\7c\2\2\u0887") + buf.write("\u0888\7p\2\2\u0888\u0889\7f\2\2\u0889\u088a\7q\2\2\u088a") + buf.write("\u088b\7o\2\2\u088b\u088c\7a\2\2\u088c\u088d\7g\2\2\u088d") + buf.write("\u088e\7z\2\2\u088e\u088f\7r\2\2\u088f\u0890\7q\2\2\u0890") + buf.write("\u0891\7p\2\2\u0891\u0892\7g\2\2\u0892\u0893\7p\2\2\u0893") + buf.write("\u0894\7v\2\2\u0894\u0895\7k\2\2\u0895\u0896\7c\2\2\u0896") + buf.write("\u0898\7n\2\2\u0897\u0880\3\2\2\2\u0897\u0885\3\2\2\2") + buf.write("\u0898\u0164\3\2\2\2\u0899\u089a\7t\2\2\u089a\u089b\7") + buf.write("c\2\2\u089b\u089c\7p\2\2\u089c\u089d\7f\2\2\u089d\u089e") + buf.write("\7n\2\2\u089e\u08b1\7p\2\2\u089f\u08a0\7t\2\2\u08a0\u08a1") + buf.write("\7c\2\2\u08a1\u08a2\7p\2\2\u08a2\u08a3\7f\2\2\u08a3\u08a4") + buf.write("\7q\2\2\u08a4\u08a5\7o\2\2\u08a5\u08a6\7a\2\2\u08a6\u08a7") + buf.write("\7n\2\2\u08a7\u08a8\7q\2\2\u08a8\u08a9\7i\2\2\u08a9\u08aa") + buf.write("\7a\2\2\u08aa\u08ab\7p\2\2\u08ab\u08ac\7q\2\2\u08ac\u08ad") + buf.write("\7t\2\2\u08ad\u08ae\7o\2\2\u08ae\u08af\7c\2\2\u08af\u08b1") + buf.write("\7n\2\2\u08b0\u0899\3\2\2\2\u08b0\u089f\3\2\2\2\u08b1") + buf.write("\u0166\3\2\2\2\u08b2\u08b3\7t\2\2\u08b3\u08b4\7c\2\2\u08b4") + buf.write("\u08b5\7p\2\2\u08b5\u08b6\7f\2\2\u08b6\u08c8\7d\2\2\u08b7") + buf.write("\u08b8\7t\2\2\u08b8\u08b9\7c\2\2\u08b9\u08ba\7p\2\2\u08ba") + buf.write("\u08bb\7f\2\2\u08bb\u08bc\7q\2\2\u08bc\u08bd\7o\2\2\u08bd") + buf.write("\u08be\7a\2\2\u08be\u08bf\7d\2\2\u08bf\u08c0\7g\2\2\u08c0") + buf.write("\u08c1\7t\2\2\u08c1\u08c2\7p\2\2\u08c2\u08c3\7q\2\2\u08c3") + buf.write("\u08c4\7w\2\2\u08c4\u08c5\7n\2\2\u08c5\u08c6\7n\2\2\u08c6") + buf.write("\u08c8\7k\2\2\u08c7\u08b2\3\2\2\2\u08c7\u08b7\3\2\2\2") + buf.write("\u08c8\u0168\3\2\2\2\u08c9\u08ca\7t\2\2\u08ca\u08cb\7") + buf.write("c\2\2\u08cb\u08cc\7p\2\2\u08cc\u08cd\7f\2\2\u08cd\u08dd") + buf.write("\7r\2\2\u08ce\u08cf\7t\2\2\u08cf\u08d0\7c\2\2\u08d0\u08d1") + buf.write("\7p\2\2\u08d1\u08d2\7f\2\2\u08d2\u08d3\7q\2\2\u08d3\u08d4") + buf.write("\7o\2\2\u08d4\u08d5\7a\2\2\u08d5\u08d6\7r\2\2\u08d6\u08d7") + buf.write("\7q\2\2\u08d7\u08d8\7k\2\2\u08d8\u08d9\7u\2\2\u08d9\u08da") + buf.write("\7u\2\2\u08da\u08db\7q\2\2\u08db\u08dd\7p\2\2\u08dc\u08c9") + buf.write("\3\2\2\2\u08dc\u08ce\3\2\2\2\u08dd\u016a\3\2\2\2\u08de") + buf.write("\u08df\7t\2\2\u08df\u08e0\7c\2\2\u08e0\u08e1\7p\2\2\u08e1") + buf.write("\u08e2\7f\2\2\u08e2\u08f0\7i\2\2\u08e3\u08e4\7t\2\2\u08e4") + buf.write("\u08e5\7c\2\2\u08e5\u08e6\7p\2\2\u08e6\u08e7\7f\2\2\u08e7") + buf.write("\u08e8\7q\2\2\u08e8\u08e9\7o\2\2\u08e9\u08ea\7a\2\2\u08ea") + buf.write("\u08eb\7i\2\2\u08eb\u08ec\7c\2\2\u08ec\u08ed\7o\2\2\u08ed") + buf.write("\u08ee\7o\2\2\u08ee\u08f0\7c\2\2\u08ef\u08de\3\2\2\2\u08ef") + buf.write("\u08e3\3\2\2\2\u08f0\u016c\3\2\2\2\u08f1\u08f2\7t\2\2") + buf.write("\u08f2\u08f3\7c\2\2\u08f3\u08f4\7p\2\2\u08f4\u08f5\7f") + buf.write("\2\2\u08f5\u08f6\7d\2\2\u08f6\u08f7\7g\2\2\u08f7\u08f8") + buf.write("\7v\2\2\u08f8\u0905\7c\2\2\u08f9\u08fa\7t\2\2\u08fa\u08fb") + buf.write("\7c\2\2\u08fb\u08fc\7p\2\2\u08fc\u08fd\7f\2\2\u08fd\u08fe") + buf.write("\7q\2\2\u08fe\u08ff\7o\2\2\u08ff\u0900\7a\2\2\u0900\u0901") + buf.write("\7d\2\2\u0901\u0902\7g\2\2\u0902\u0903\7v\2\2\u0903\u0905") + buf.write("\7c\2\2\u0904\u08f1\3\2\2\2\u0904\u08f9\3\2\2\2\u0905") + buf.write("\u016e\3\2\2\2\u0906\u0907\7t\2\2\u0907\u0908\7c\2\2\u0908") + buf.write("\u0909\7p\2\2\u0909\u090a\7f\2\2\u090a\u091a\7n\2\2\u090b") + buf.write("\u090c\7t\2\2\u090c\u090d\7c\2\2\u090d\u090e\7p\2\2\u090e") + buf.write("\u090f\7f\2\2\u090f\u0910\7q\2\2\u0910\u0911\7o\2\2\u0911") + buf.write("\u0912\7a\2\2\u0912\u0913\7n\2\2\u0913\u0914\7c\2\2\u0914") + buf.write("\u0915\7r\2\2\u0915\u0916\7n\2\2\u0916\u0917\7c\2\2\u0917") + buf.write("\u0918\7e\2\2\u0918\u091a\7g\2\2\u0919\u0906\3\2\2\2\u0919") + buf.write("\u090b\3\2\2\2\u091a\u0170\3\2\2\2\u091b\u091c\7t\2\2") + buf.write("\u091c\u091d\7c\2\2\u091d\u091e\7p\2\2\u091e\u091f\7f") + buf.write("\2\2\u091f\u0920\7i\2\2\u0920\u0921\7w\2\2\u0921\u0922") + buf.write("\7o\2\2\u0922\u0923\7d\2\2\u0923\u0924\7g\2\2\u0924\u0933") + buf.write("\7n\2\2\u0925\u0926\7t\2\2\u0926\u0927\7c\2\2\u0927\u0928") + buf.write("\7p\2\2\u0928\u0929\7f\2\2\u0929\u092a\7q\2\2\u092a\u092b") + buf.write("\7o\2\2\u092b\u092c\7a\2\2\u092c\u092d\7i\2\2\u092d\u092e") + buf.write("\7w\2\2\u092e\u092f\7o\2\2\u092f\u0930\7d\2\2\u0930\u0931") + buf.write("\7g\2\2\u0931\u0933\7n\2\2\u0932\u091b\3\2\2\2\u0932\u0925") + buf.write("\3\2\2\2\u0933\u0172\3\2\2\2\u0934\u0935\7t\2\2\u0935") + buf.write("\u0936\7c\2\2\u0936\u0937\7p\2\2\u0937\u0938\7f\2\2\u0938") + buf.write("\u0948\7y\2\2\u0939\u093a\7t\2\2\u093a\u093b\7c\2\2\u093b") + buf.write("\u093c\7p\2\2\u093c\u093d\7f\2\2\u093d\u093e\7q\2\2\u093e") + buf.write("\u093f\7o\2\2\u093f\u0940\7a\2\2\u0940\u0941\7y\2\2\u0941") + buf.write("\u0942\7g\2\2\u0942\u0943\7k\2\2\u0943\u0944\7d\2\2\u0944") + buf.write("\u0945\7w\2\2\u0945\u0946\7n\2\2\u0946\u0948\7n\2\2\u0947") + buf.write("\u0934\3\2\2\2\u0947\u0939\3\2\2\2\u0948\u0174\3\2\2\2") + buf.write("\u0949\u094a\7t\2\2\u094a\u094b\7c\2\2\u094b\u094c\7p") + buf.write("\2\2\u094c\u094d\7f\2\2\u094d\u094e\7e\2\2\u094e\u094f") + buf.write("\7j\2\2\u094f\u0950\7k\2\2\u0950\u095d\7\64\2\2\u0951") + buf.write("\u0952\7t\2\2\u0952\u0953\7c\2\2\u0953\u0954\7p\2\2\u0954") + buf.write("\u0955\7f\2\2\u0955\u0956\7q\2\2\u0956\u0957\7o\2\2\u0957") + buf.write("\u0958\7a\2\2\u0958\u0959\7e\2\2\u0959\u095a\7j\2\2\u095a") + buf.write("\u095b\7k\2\2\u095b\u095d\7\64\2\2\u095c\u0949\3\2\2\2") + buf.write("\u095c\u0951\3\2\2\2\u095d\u0176\3\2\2\2\u095e\u095f\7") + buf.write("t\2\2\u095f\u0960\7c\2\2\u0960\u0961\7p\2\2\u0961\u0962") + buf.write("\7f\2\2\u0962\u0973\7v\2\2\u0963\u0964\7t\2\2\u0964\u0965") + buf.write("\7c\2\2\u0965\u0966\7p\2\2\u0966\u0967\7f\2\2\u0967\u0968") + buf.write("\7q\2\2\u0968\u0969\7o\2\2\u0969\u096a\7a\2\2\u096a\u096b") + buf.write("\7u\2\2\u096b\u096c\7v\2\2\u096c\u096d\7w\2\2\u096d\u096e") + buf.write("\7f\2\2\u096e\u096f\7g\2\2\u096f\u0970\7p\2\2\u0970\u0971") + buf.write("\7v\2\2\u0971\u0973\7v\2\2\u0972\u095e\3\2\2\2\u0972\u0963") + buf.write("\3\2\2\2\u0973\u0178\3\2\2\2\u0974\u0975\7r\2\2\u0975") + buf.write("\u0976\7g\2\2\u0976\u0977\7t\2\2\u0977\u0978\7n\2\2\u0978") + buf.write("\u0979\7k\2\2\u0979\u0987\7p\2\2\u097a\u097b\7r\2\2\u097b") + buf.write("\u097c\7g\2\2\u097c\u097d\7t\2\2\u097d\u097e\7n\2\2\u097e") + buf.write("\u097f\7k\2\2\u097f\u0980\7p\2\2\u0980\u0981\7a\2\2\u0981") + buf.write("\u0982\7p\2\2\u0982\u0983\7q\2\2\u0983\u0984\7k\2\2\u0984") + buf.write("\u0985\7u\2\2\u0985\u0987\7g\2\2\u0986\u0974\3\2\2\2\u0986") + buf.write("\u097a\3\2\2\2\u0987\u017a\3\2\2\2\u0988\u0989\7e\2\2") + buf.write("\u0989\u098a\7g\2\2\u098a\u098b\7n\2\2\u098b\u098c\7n") + buf.write("\2\2\u098c\u098d\7w\2\2\u098d\u098e\7n\2\2\u098e\u098f") + buf.write("\7c\2\2\u098f\u09b9\7t\2\2\u0990\u0991\7x\2\2\u0991\u0992") + buf.write("\7q\2\2\u0992\u0993\7t\2\2\u0993\u0994\7q\2\2\u0994\u0995") + buf.write("\7p\2\2\u0995\u0996\7q\2\2\u0996\u09b9\7k\2\2\u0997\u0998") + buf.write("\7y\2\2\u0998\u0999\7q\2\2\u0999\u099a\7t\2\2\u099a\u099b") + buf.write("\7n\2\2\u099b\u099c\7g\2\2\u099c\u09b9\7{\2\2\u099d\u099e") + buf.write("\7e\2\2\u099e\u099f\7g\2\2\u099f\u09a0\7n\2\2\u09a0\u09a1") + buf.write("\7n\2\2\u09a1\u09a2\7w\2\2\u09a2\u09a3\7n\2\2\u09a3\u09a4") + buf.write("\7c\2\2\u09a4\u09a5\7t\2\2\u09a5\u09a6\7a\2\2\u09a6\u09a7") + buf.write("\7p\2\2\u09a7\u09a8\7q\2\2\u09a8\u09a9\7k\2\2\u09a9\u09aa") + buf.write("\7u\2\2\u09aa\u09b9\7g\2\2\u09ab\u09ac\7x\2\2\u09ac\u09ad") + buf.write("\7q\2\2\u09ad\u09ae\7t\2\2\u09ae\u09af\7q\2\2\u09af\u09b0") + buf.write("\7p\2\2\u09b0\u09b1\7q\2\2\u09b1\u09b2\7k\2\2\u09b2\u09b3") + buf.write("\7a\2\2\u09b3\u09b4\7p\2\2\u09b4\u09b5\7q\2\2\u09b5\u09b6") + buf.write("\7k\2\2\u09b6\u09b7\7u\2\2\u09b7\u09b9\7g\2\2\u09b8\u0988") + buf.write("\3\2\2\2\u09b8\u0990\3\2\2\2\u09b8\u0997\3\2\2\2\u09b8") + buf.write("\u099d\3\2\2\2\u09b8\u09ab\3\2\2\2\u09b9\u017c\3\2\2\2") + buf.write("\u09ba\u09bb\7r\2\2\u09bb\u09bc\7n\2\2\u09bc\u09bd\7c") + buf.write("\2\2\u09bd\u09be\7u\2\2\u09be\u09bf\7o\2\2\u09bf\u09d7") + buf.write("\7c\2\2\u09c0\u09c1\7v\2\2\u09c1\u09c2\7w\2\2\u09c2\u09c3") + buf.write("\7t\2\2\u09c3\u09c4\7d\2\2\u09c4\u09c5\7w\2\2\u09c5\u09c6") + buf.write("\7n\2\2\u09c6\u09c7\7g\2\2\u09c7\u09c8\7p\2\2\u09c8\u09c9") + buf.write("\7e\2\2\u09c9\u09d7\7g\2\2\u09ca\u09cb\7r\2\2\u09cb\u09cc") + buf.write("\7n\2\2\u09cc\u09cd\7c\2\2\u09cd\u09ce\7u\2\2\u09ce\u09cf") + buf.write("\7o\2\2\u09cf\u09d0\7c\2\2\u09d0\u09d1\7a\2\2\u09d1\u09d2") + buf.write("\7p\2\2\u09d2\u09d3\7q\2\2\u09d3\u09d4\7k\2\2\u09d4\u09d5") + buf.write("\7u\2\2\u09d5\u09d7\7g\2\2\u09d6\u09ba\3\2\2\2\u09d6\u09c0") + buf.write("\3\2\2\2\u09d6\u09ca\3\2\2\2\u09d7\u017e\3\2\2\2\u09d8") + buf.write("\u09d9\7t\2\2\u09d9\u09da\7k\2\2\u09da\u09db\7f\2\2\u09db") + buf.write("\u09dc\7i\2\2\u09dc\u09dd\7g\2\2\u09dd\u09eb\7f\2\2\u09de") + buf.write("\u09df\7t\2\2\u09df\u09e0\7k\2\2\u09e0\u09e1\7f\2\2\u09e1") + buf.write("\u09e2\7i\2\2\u09e2\u09e3\7g\2\2\u09e3\u09e4\7f\2\2\u09e4") + buf.write("\u09e5\7a\2\2\u09e5\u09e6\7p\2\2\u09e6\u09e7\7q\2\2\u09e7") + buf.write("\u09e8\7k\2\2\u09e8\u09e9\7u\2\2\u09e9\u09eb\7g\2\2\u09ea") + buf.write("\u09d8\3\2\2\2\u09ea\u09de\3\2\2\2\u09eb\u0180\3\2\2\2") + buf.write("\u09ec\u09ed\7f\2\2\u09ed\u09ee\7q\2\2\u09ee\u09ef\7o") + buf.write("\2\2\u09ef\u09f0\7c\2\2\u09f0\u09f1\7k\2\2\u09f1\u09f2") + buf.write("\7p\2\2\u09f2\u09f3\7a\2\2\u09f3\u09f4\7y\2\2\u09f4\u09f5") + buf.write("\7c\2\2\u09f5\u09f6\7t\2\2\u09f6\u0a09\7r\2\2\u09f7\u09f8") + buf.write("\7f\2\2\u09f8\u09f9\7q\2\2\u09f9\u09fa\7o\2\2\u09fa\u09fb") + buf.write("\7c\2\2\u09fb\u09fc\7k\2\2\u09fc\u09fd\7p\2\2\u09fd\u09fe") + buf.write("\7a\2\2\u09fe\u09ff\7y\2\2\u09ff\u0a00\7c\2\2\u0a00\u0a01") + buf.write("\7t\2\2\u0a01\u0a02\7r\2\2\u0a02\u0a03\7a\2\2\u0a03\u0a04") + buf.write("\7p\2\2\u0a04\u0a05\7q\2\2\u0a05\u0a06\7k\2\2\u0a06\u0a07") + buf.write("\7u\2\2\u0a07\u0a09\7g\2\2\u0a08\u09ec\3\2\2\2\u0a08\u09f7") + buf.write("\3\2\2\2\u0a09\u0182\3\2\2\2\u0a0a\u0a0b\7-\2\2\u0a0b") + buf.write("\u0184\3\2\2\2\u0a0c\u0a0d\7/\2\2\u0a0d\u0186\3\2\2\2") + buf.write("\u0a0e\u0a0f\7,\2\2\u0a0f\u0188\3\2\2\2\u0a10\u0a11\7") + buf.write("\61\2\2\u0a11\u018a\3\2\2\2\u0a12\u0a13\7\'\2\2\u0a13") + buf.write("\u018c\3\2\2\2\u0a14\u0a15\7`\2\2\u0a15\u018e\3\2\2\2") + buf.write("\u0a16\u0a17\7>\2\2\u0a17\u0a18\7>\2\2\u0a18\u0190\3\2") + buf.write("\2\2\u0a19\u0a1a\7@\2\2\u0a1a\u0a1b\7@\2\2\u0a1b\u0192") + buf.write("\3\2\2\2\u0a1c\u0a1d\7@\2\2\u0a1d\u0a1e\7?\2\2\u0a1e\u0194") + buf.write("\3\2\2\2\u0a1f\u0a20\7@\2\2\u0a20\u0196\3\2\2\2\u0a21") + buf.write("\u0a22\7>\2\2\u0a22\u0a23\7?\2\2\u0a23\u0198\3\2\2\2\u0a24") + buf.write("\u0a25\7>\2\2\u0a25\u019a\3\2\2\2\u0a26\u0a27\7?\2\2\u0a27") + buf.write("\u0a28\7?\2\2\u0a28\u019c\3\2\2\2\u0a29\u0a2a\7?\2\2\u0a2a") + buf.write("\u019e\3\2\2\2\u0a2b\u0a2c\7-\2\2\u0a2c\u0a2d\7?\2\2\u0a2d") + buf.write("\u01a0\3\2\2\2\u0a2e\u0a2f\7/\2\2\u0a2f\u0a30\7?\2\2\u0a30") + buf.write("\u01a2\3\2\2\2\u0a31\u0a32\7,\2\2\u0a32\u0a33\7?\2\2\u0a33") + buf.write("\u01a4\3\2\2\2\u0a34\u0a35\7\61\2\2\u0a35\u0a36\7?\2\2") + buf.write("\u0a36\u01a6\3\2\2\2\u0a37\u0a38\7\'\2\2\u0a38\u0a39\7") + buf.write("?\2\2\u0a39\u01a8\3\2\2\2\u0a3a\u0a3b\7#\2\2\u0a3b\u0a3c") + buf.write("\7?\2\2\u0a3c\u01aa\3\2\2\2\u0a3d\u0a3e\7~\2\2\u0a3e\u01ac") + buf.write("\3\2\2\2\u0a3f\u0a40\7*\2\2\u0a40\u01ae\3\2\2\2\u0a41") + buf.write("\u0a42\7+\2\2\u0a42\u01b0\3\2\2\2\u0a43\u0a44\7.\2\2\u0a44") + buf.write("\u01b2\3\2\2\2\u0a45\u0a46\7=\2\2\u0a46\u01b4\3\2\2\2") + buf.write("\u0a47\u0a48\7/\2\2\u0a48\u0a49\7@\2\2\u0a49\u01b6\3\2") + buf.write("\2\2\u0a4a\u0a4b\7]\2\2\u0a4b\u01b8\3\2\2\2\u0a4c\u0a4d") + buf.write("\7_\2\2\u0a4d\u01ba\3\2\2\2\u0a4e\u0a4f\7A\2\2\u0a4f\u01bc") + buf.write("\3\2\2\2\u0a50\u0a51\7<\2\2\u0a51\u01be\3\2\2\2\u0a52") + buf.write("\u0a53\7}\2\2\u0a53\u01c0\3\2\2\2\u0a54\u0a55\7\177\2") + buf.write("\2\u0a55\u01c2\3\2\2\2\u0a56\u0a58\t\2\2\2\u0a57\u0a56") + buf.write("\3\2\2\2\u0a58\u0a59\3\2\2\2\u0a59\u0a57\3\2\2\2\u0a59") + buf.write("\u0a5a\3\2\2\2\u0a5a\u0a62\3\2\2\2\u0a5b\u0a5f\7\60\2") + buf.write("\2\u0a5c\u0a5e\t\2\2\2\u0a5d\u0a5c\3\2\2\2\u0a5e\u0a61") + buf.write("\3\2\2\2\u0a5f\u0a5d\3\2\2\2\u0a5f\u0a60\3\2\2\2\u0a60") + buf.write("\u0a63\3\2\2\2\u0a61\u0a5f\3\2\2\2\u0a62\u0a5b\3\2\2\2") + buf.write("\u0a62\u0a63\3\2\2\2\u0a63\u0a6b\3\2\2\2\u0a64\u0a66\7") + buf.write("\60\2\2\u0a65\u0a67\t\2\2\2\u0a66\u0a65\3\2\2\2\u0a67") + buf.write("\u0a68\3\2\2\2\u0a68\u0a66\3\2\2\2\u0a68\u0a69\3\2\2\2") + buf.write("\u0a69\u0a6b\3\2\2\2\u0a6a\u0a57\3\2\2\2\u0a6a\u0a64\3") + buf.write("\2\2\2\u0a6b\u0a75\3\2\2\2\u0a6c\u0a6e\t\3\2\2\u0a6d\u0a6f") + buf.write("\t\4\2\2\u0a6e\u0a6d\3\2\2\2\u0a6e\u0a6f\3\2\2\2\u0a6f") + buf.write("\u0a71\3\2\2\2\u0a70\u0a72\t\2\2\2\u0a71\u0a70\3\2\2\2") + buf.write("\u0a72\u0a73\3\2\2\2\u0a73\u0a71\3\2\2\2\u0a73\u0a74\3") + buf.write("\2\2\2\u0a74\u0a76\3\2\2\2\u0a75\u0a6c\3\2\2\2\u0a75\u0a76") + buf.write("\3\2\2\2\u0a76\u01c4\3\2\2\2\u0a77\u0a78\7r\2\2\u0a78") + buf.write("\u0a7d\7k\2\2\u0a79\u0a7a\7R\2\2\u0a7a\u0a7d\7K\2\2\u0a7b") + buf.write("\u0a7d\t\3\2\2\u0a7c\u0a77\3\2\2\2\u0a7c\u0a79\3\2\2\2") + buf.write("\u0a7c\u0a7b\3\2\2\2\u0a7d\u01c6\3\2\2\2\u0a7e\u0a84\7") + buf.write("$\2\2\u0a7f\u0a83\n\5\2\2\u0a80\u0a81\7^\2\2\u0a81\u0a83") + buf.write("\13\2\2\2\u0a82\u0a7f\3\2\2\2\u0a82\u0a80\3\2\2\2\u0a83") + buf.write("\u0a86\3\2\2\2\u0a84\u0a82\3\2\2\2\u0a84\u0a85\3\2\2\2") + buf.write("\u0a85\u0a87\3\2\2\2\u0a86\u0a84\3\2\2\2\u0a87\u0a93\7") + buf.write("$\2\2\u0a88\u0a8e\7)\2\2\u0a89\u0a8d\n\6\2\2\u0a8a\u0a8b") + buf.write("\7^\2\2\u0a8b\u0a8d\13\2\2\2\u0a8c\u0a89\3\2\2\2\u0a8c") + buf.write("\u0a8a\3\2\2\2\u0a8d\u0a90\3\2\2\2\u0a8e\u0a8c\3\2\2\2") + buf.write("\u0a8e\u0a8f\3\2\2\2\u0a8f\u0a91\3\2\2\2\u0a90\u0a8e\3") + buf.write("\2\2\2\u0a91\u0a93\7)\2\2\u0a92\u0a7e\3\2\2\2\u0a92\u0a88") + buf.write("\3\2\2\2\u0a93\u01c8\3\2\2\2\u0a94\u0a98\t\7\2\2\u0a95") + buf.write("\u0a97\t\b\2\2\u0a96\u0a95\3\2\2\2\u0a97\u0a9a\3\2\2\2") + buf.write("\u0a98\u0a96\3\2\2\2\u0a98\u0a99\3\2\2\2\u0a99\u01ca\3") + buf.write("\2\2\2\u0a9a\u0a98\3\2\2\2\u0a9b\u0a9f\7%\2\2\u0a9c\u0a9e") + buf.write("\n\t\2\2\u0a9d\u0a9c\3\2\2\2\u0a9e\u0aa1\3\2\2\2\u0a9f") + buf.write("\u0a9d\3\2\2\2\u0a9f\u0aa0\3\2\2\2\u0aa0\u0aa2\3\2\2\2") + buf.write("\u0aa1\u0a9f\3\2\2\2\u0aa2\u0aa3\b\u00e6\2\2\u0aa3\u01cc") + buf.write("\3\2\2\2\u0aa4\u0aa5\7\61\2\2\u0aa5\u0aa6\7,\2\2\u0aa6") + buf.write("\u0aaa\3\2\2\2\u0aa7\u0aa9\13\2\2\2\u0aa8\u0aa7\3\2\2") + buf.write("\2\u0aa9\u0aac\3\2\2\2\u0aaa\u0aab\3\2\2\2\u0aaa\u0aa8") + buf.write("\3\2\2\2\u0aab\u0aad\3\2\2\2\u0aac\u0aaa\3\2\2\2\u0aad") + buf.write("\u0aae\7,\2\2\u0aae\u0aaf\7\61\2\2\u0aaf\u0ab0\3\2\2\2") + buf.write("\u0ab0\u0ab1\b\u00e7\2\2\u0ab1\u01ce\3\2\2\2\u0ab2\u0ab4") + buf.write("\t\n\2\2\u0ab3\u0ab2\3\2\2\2\u0ab4\u0ab5\3\2\2\2\u0ab5") + buf.write("\u0ab3\3\2\2\2\u0ab5\u0ab6\3\2\2\2\u0ab6\u0ab7\3\2\2\2") + buf.write("\u0ab7\u0ab8\b\u00e8\2\2\u0ab8\u01d0\3\2\2\2K\2\u0291") + buf.write("\u02a0\u02ec\u02fd\u030f\u031c\u0365\u0376\u03b0\u03e1") + buf.write("\u03f7\u0408\u041d\u042c\u0447\u0466\u0476\u04bd\u04ef") + buf.write("\u0503\u0518\u0547\u055f\u0576\u0587\u0596\u05e8\u061f") + buf.write("\u0704\u0741\u0756\u078f\u0806\u0825\u0838\u0851\u086a") + buf.write("\u087e\u0897\u08b0\u08c7\u08dc\u08ef\u0904\u0919\u0932") + buf.write("\u0947\u095c\u0972\u0986\u09b8\u09d6\u09ea\u0a08\u0a59") + buf.write("\u0a5f\u0a62\u0a68\u0a6a\u0a6e\u0a73\u0a75\u0a7c\u0a82") + buf.write("\u0a84\u0a8c\u0a8e\u0a92\u0a98\u0a9f\u0aaa\u0ab5\3\b\2") buf.write("\2") return buf.getvalue() @@ -1467,64 +1478,65 @@ class MathExprLexer(Lexer): ENTROPY = 170 CROP = 171 NONE = 172 - NOISE = 173 - RAND = 174 - CAUCHY = 175 - EXPONENTIAL = 176 - LOGNORMAL = 177 - BERNOULLI = 178 - POISSON = 179 - GAMMADIST = 180 - BETADIST = 181 - LAPLACEDIST = 182 - GUMBELDIST = 183 - WEIBULLDIST = 184 - CHI2DIST = 185 - STUDENTTDIST = 186 - PERLIN = 187 - CELLULAR = 188 - PLASMA = 189 - RIDGED = 190 - DOMAIN_WARP = 191 - PLUS = 192 - MINUS = 193 - MULT = 194 - DIV = 195 - MOD = 196 - POW = 197 - LSHIFT = 198 - RSHIFT = 199 - GE = 200 - GT = 201 - LE = 202 - LT = 203 - EQ = 204 - EQUEALS = 205 - PLUS_EQ = 206 - MINUS_EQ = 207 - MULT_EQ = 208 - DIV_EQ = 209 - MOD_EQ = 210 - NE = 211 - PIPE = 212 - LPAREN = 213 - RPAREN = 214 - COMMA = 215 - SEMICOLON = 216 - ARROW = 217 - LBRACKET = 218 - RBRACKET = 219 - QUESTION = 220 - COLON = 221 - LBRACE = 222 - RBRACE = 223 - NUMBER = 224 - CONSTANT = 225 - STRING = 226 - VARIABLE = 227 - SL_COMMENT = 228 - ML_COMMENT = 229 - WS = 230 + COORDS = 173 + NOISE = 174 + RAND = 175 + CAUCHY = 176 + EXPONENTIAL = 177 + LOGNORMAL = 178 + BERNOULLI = 179 + POISSON = 180 + GAMMADIST = 181 + BETADIST = 182 + LAPLACEDIST = 183 + GUMBELDIST = 184 + WEIBULLDIST = 185 + CHI2DIST = 186 + STUDENTTDIST = 187 + PERLIN = 188 + CELLULAR = 189 + PLASMA = 190 + RIDGED = 191 + DOMAIN_WARP = 192 + PLUS = 193 + MINUS = 194 + MULT = 195 + DIV = 196 + MOD = 197 + POW = 198 + LSHIFT = 199 + RSHIFT = 200 + GE = 201 + GT = 202 + LE = 203 + LT = 204 + EQ = 205 + EQUEALS = 206 + PLUS_EQ = 207 + MINUS_EQ = 208 + MULT_EQ = 209 + DIV_EQ = 210 + MOD_EQ = 211 + NE = 212 + PIPE = 213 + LPAREN = 214 + RPAREN = 215 + COMMA = 216 + SEMICOLON = 217 + ARROW = 218 + LBRACKET = 219 + RBRACKET = 220 + QUESTION = 221 + COLON = 222 + LBRACE = 223 + RBRACE = 224 + NUMBER = 225 + CONSTANT = 226 + STRING = 227 + VARIABLE = 228 + SL_COMMENT = 229 + ML_COMMENT = 230 + WS = 231 channelNames = [ u"DEFAULT_TOKEN_CHANNEL", u"HIDDEN" ] @@ -1588,16 +1600,17 @@ class MathExprLexer(Lexer): "FOR", "IN", "BREAK", "CONTINUE", "RETURN", "TIMESTAMP", "SORT", "ARGSORT", "ARGMIN", "ARGMAX", "SOFTMAX", "SOFTMIN", "UNIQUE", "FLIP", "STARTSWITH", "ENDSWITH", "SQUEEZE", "UNSQUEEZE", "ROLL", - "COV", "CORR", "ENTROPY", "CROP", "NONE", "NOISE", "RAND", "CAUCHY", - "EXPONENTIAL", "LOGNORMAL", "BERNOULLI", "POISSON", "GAMMADIST", - "BETADIST", "LAPLACEDIST", "GUMBELDIST", "WEIBULLDIST", "CHI2DIST", - "STUDENTTDIST", "PERLIN", "CELLULAR", "PLASMA", "RIDGED", "DOMAIN_WARP", - "PLUS", "MINUS", "MULT", "DIV", "MOD", "POW", "LSHIFT", "RSHIFT", - "GE", "GT", "LE", "LT", "EQ", "EQUEALS", "PLUS_EQ", "MINUS_EQ", - "MULT_EQ", "DIV_EQ", "MOD_EQ", "NE", "PIPE", "LPAREN", "RPAREN", - "COMMA", "SEMICOLON", "ARROW", "LBRACKET", "RBRACKET", "QUESTION", - "COLON", "LBRACE", "RBRACE", "NUMBER", "CONSTANT", "STRING", - "VARIABLE", "SL_COMMENT", "ML_COMMENT", "WS" ] + "COV", "CORR", "ENTROPY", "CROP", "NONE", "COORDS", "NOISE", + "RAND", "CAUCHY", "EXPONENTIAL", "LOGNORMAL", "BERNOULLI", "POISSON", + "GAMMADIST", "BETADIST", "LAPLACEDIST", "GUMBELDIST", "WEIBULLDIST", + "CHI2DIST", "STUDENTTDIST", "PERLIN", "CELLULAR", "PLASMA", + "RIDGED", "DOMAIN_WARP", "PLUS", "MINUS", "MULT", "DIV", "MOD", + "POW", "LSHIFT", "RSHIFT", "GE", "GT", "LE", "LT", "EQ", "EQUEALS", + "PLUS_EQ", "MINUS_EQ", "MULT_EQ", "DIV_EQ", "MOD_EQ", "NE", + "PIPE", "LPAREN", "RPAREN", "COMMA", "SEMICOLON", "ARROW", "LBRACKET", + "RBRACKET", "QUESTION", "COLON", "LBRACE", "RBRACE", "NUMBER", + "CONSTANT", "STRING", "VARIABLE", "SL_COMMENT", "ML_COMMENT", + "WS" ] ruleNames = [ "SIN", "COS", "TAN", "ASIN", "ACOS", "ATAN", "ATAN2", "SINH", "COSH", "TANH", "ASINH", "ACOSH", "ATANH", "ABS", @@ -1627,17 +1640,18 @@ class MathExprLexer(Lexer): "IN", "BREAK", "CONTINUE", "RETURN", "TIMESTAMP", "SORT", "ARGSORT", "ARGMIN", "ARGMAX", "SOFTMAX", "SOFTMIN", "UNIQUE", "FLIP", "STARTSWITH", "ENDSWITH", "SQUEEZE", "UNSQUEEZE", - "ROLL", "COV", "CORR", "ENTROPY", "CROP", "NONE", "NOISE", - "RAND", "CAUCHY", "EXPONENTIAL", "LOGNORMAL", "BERNOULLI", - "POISSON", "GAMMADIST", "BETADIST", "LAPLACEDIST", "GUMBELDIST", - "WEIBULLDIST", "CHI2DIST", "STUDENTTDIST", "PERLIN", "CELLULAR", - "PLASMA", "RIDGED", "DOMAIN_WARP", "PLUS", "MINUS", "MULT", - "DIV", "MOD", "POW", "LSHIFT", "RSHIFT", "GE", "GT", "LE", - "LT", "EQ", "EQUEALS", "PLUS_EQ", "MINUS_EQ", "MULT_EQ", - "DIV_EQ", "MOD_EQ", "NE", "PIPE", "LPAREN", "RPAREN", - "COMMA", "SEMICOLON", "ARROW", "LBRACKET", "RBRACKET", - "QUESTION", "COLON", "LBRACE", "RBRACE", "NUMBER", "CONSTANT", - "STRING", "VARIABLE", "SL_COMMENT", "ML_COMMENT", "WS" ] + "ROLL", "COV", "CORR", "ENTROPY", "CROP", "NONE", "COORDS", + "NOISE", "RAND", "CAUCHY", "EXPONENTIAL", "LOGNORMAL", + "BERNOULLI", "POISSON", "GAMMADIST", "BETADIST", "LAPLACEDIST", + "GUMBELDIST", "WEIBULLDIST", "CHI2DIST", "STUDENTTDIST", + "PERLIN", "CELLULAR", "PLASMA", "RIDGED", "DOMAIN_WARP", + "PLUS", "MINUS", "MULT", "DIV", "MOD", "POW", "LSHIFT", + "RSHIFT", "GE", "GT", "LE", "LT", "EQ", "EQUEALS", "PLUS_EQ", + "MINUS_EQ", "MULT_EQ", "DIV_EQ", "MOD_EQ", "NE", "PIPE", + "LPAREN", "RPAREN", "COMMA", "SEMICOLON", "ARROW", "LBRACKET", + "RBRACKET", "QUESTION", "COLON", "LBRACE", "RBRACE", "NUMBER", + "CONSTANT", "STRING", "VARIABLE", "SL_COMMENT", "ML_COMMENT", + "WS" ] grammarFileName = "MathExpr.g4" diff --git a/more_math/Parser/legacy/MathExprLexer.tokens b/more_math/Parser/legacy/MathExprLexer.tokens index 43ef2e1..4a3a884 100644 --- a/more_math/Parser/legacy/MathExprLexer.tokens +++ b/more_math/Parser/legacy/MathExprLexer.tokens @@ -170,64 +170,65 @@ CORR=169 ENTROPY=170 CROP=171 NONE=172 -NOISE=173 -RAND=174 -CAUCHY=175 -EXPONENTIAL=176 -LOGNORMAL=177 -BERNOULLI=178 -POISSON=179 -GAMMADIST=180 -BETADIST=181 -LAPLACEDIST=182 -GUMBELDIST=183 -WEIBULLDIST=184 -CHI2DIST=185 -STUDENTTDIST=186 -PERLIN=187 -CELLULAR=188 -PLASMA=189 -RIDGED=190 -DOMAIN_WARP=191 -PLUS=192 -MINUS=193 -MULT=194 -DIV=195 -MOD=196 -POW=197 -LSHIFT=198 -RSHIFT=199 -GE=200 -GT=201 -LE=202 -LT=203 -EQ=204 -EQUEALS=205 -PLUS_EQ=206 -MINUS_EQ=207 -MULT_EQ=208 -DIV_EQ=209 -MOD_EQ=210 -NE=211 -PIPE=212 -LPAREN=213 -RPAREN=214 -COMMA=215 -SEMICOLON=216 -ARROW=217 -LBRACKET=218 -RBRACKET=219 -QUESTION=220 -COLON=221 -LBRACE=222 -RBRACE=223 -NUMBER=224 -CONSTANT=225 -STRING=226 -VARIABLE=227 -SL_COMMENT=228 -ML_COMMENT=229 -WS=230 +COORDS=173 +NOISE=174 +RAND=175 +CAUCHY=176 +EXPONENTIAL=177 +LOGNORMAL=178 +BERNOULLI=179 +POISSON=180 +GAMMADIST=181 +BETADIST=182 +LAPLACEDIST=183 +GUMBELDIST=184 +WEIBULLDIST=185 +CHI2DIST=186 +STUDENTTDIST=187 +PERLIN=188 +CELLULAR=189 +PLASMA=190 +RIDGED=191 +DOMAIN_WARP=192 +PLUS=193 +MINUS=194 +MULT=195 +DIV=196 +MOD=197 +POW=198 +LSHIFT=199 +RSHIFT=200 +GE=201 +GT=202 +LE=203 +LT=204 +EQ=205 +EQUEALS=206 +PLUS_EQ=207 +MINUS_EQ=208 +MULT_EQ=209 +DIV_EQ=210 +MOD_EQ=211 +NE=212 +PIPE=213 +LPAREN=214 +RPAREN=215 +COMMA=216 +SEMICOLON=217 +ARROW=218 +LBRACKET=219 +RBRACKET=220 +QUESTION=221 +COLON=222 +LBRACE=223 +RBRACE=224 +NUMBER=225 +CONSTANT=226 +STRING=227 +VARIABLE=228 +SL_COMMENT=229 +ML_COMMENT=230 +WS=231 'sin'=1 'cos'=2 'tan'=3 @@ -366,35 +367,35 @@ WS=230 'cov'=168 'entropy'=170 'crop'=171 -'+'=192 -'-'=193 -'*'=194 -'/'=195 -'%'=196 -'^'=197 -'<<'=198 -'>>'=199 -'>='=200 -'>'=201 -'<='=202 -'<'=203 -'=='=204 -'='=205 -'+='=206 -'-='=207 -'*='=208 -'/='=209 -'%='=210 -'!='=211 -'|'=212 -'('=213 -')'=214 -','=215 -';'=216 -'->'=217 -'['=218 -']'=219 -'?'=220 -':'=221 -'{'=222 -'}'=223 +'+'=193 +'-'=194 +'*'=195 +'/'=196 +'%'=197 +'^'=198 +'<<'=199 +'>>'=200 +'>='=201 +'>'=202 +'<='=203 +'<'=204 +'=='=205 +'='=206 +'+='=207 +'-='=208 +'*='=209 +'/='=210 +'%='=211 +'!='=212 +'|'=213 +'('=214 +')'=215 +','=216 +';'=217 +'->'=218 +'['=219 +']'=220 +'?'=221 +':'=222 +'{'=223 +'}'=224 diff --git a/more_math/Parser/legacy/MathExprListener.py b/more_math/Parser/legacy/MathExprListener.py index cf1cf4a..1c7d676 100644 --- a/more_math/Parser/legacy/MathExprListener.py +++ b/more_math/Parser/legacy/MathExprListener.py @@ -1934,6 +1934,15 @@ class MathExprListener(ParseTreeListener): pass + # Enter a parse tree produced by MathExprParser#CoordsFunc. + def enterCoordsFunc(self, ctx:MathExprParser.CoordsFuncContext): + pass + + # Exit a parse tree produced by MathExprParser#CoordsFunc. + def exitCoordsFunc(self, ctx:MathExprParser.CoordsFuncContext): + pass + + # Enter a parse tree produced by MathExprParser#SwapFunc. def enterSwapFunc(self, ctx:MathExprParser.SwapFuncContext): pass diff --git a/more_math/Parser/legacy/MathExprParser.py b/more_math/Parser/legacy/MathExprParser.py index 2de61f7..6c599e5 100644 --- a/more_math/Parser/legacy/MathExprParser.py +++ b/more_math/Parser/legacy/MathExprParser.py @@ -11,8 +11,8 @@ else: def serializedATN(): with StringIO() as buf: - buf.write("\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3\u00e8") - buf.write("\u0756\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7") + buf.write("\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3\u00e9") + buf.write("\u0761\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7") buf.write("\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t\13\4\f\t\f\4\r\t\r\4\16") buf.write("\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22\4\23\t\23") buf.write("\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31") @@ -149,165 +149,166 @@ def serializedATN(): buf.write("\34\3\34\3\34\3\34\5\34\u0577\n\34\3\34\3\34\5\34\u057b") buf.write("\n\34\3\34\3\34\5\34\u057f\n\34\3\34\3\34\5\34\u0583\n") buf.write("\34\3\34\3\34\5\34\u0587\n\34\3\34\3\34\5\34\u058b\n\34") - buf.write("\3\34\3\34\5\34\u058f\n\34\3\35\3\35\3\35\3\35\3\35\3") + buf.write("\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34\5\34\u0596") + buf.write("\n\34\3\34\3\34\5\34\u059a\n\34\3\35\3\35\3\35\3\35\3") buf.write("\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35") buf.write("\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35") buf.write("\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35") buf.write("\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35") - buf.write("\3\35\3\35\3\35\3\35\3\35\3\35\5\35\u05c8\n\35\3\36\3") + buf.write("\3\35\3\35\3\35\3\35\3\35\3\35\3\35\5\35\u05d3\n\35\3") buf.write("\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36") buf.write("\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36") - buf.write("\3\36\5\36\u05e2\n\36\5\36\u05e4\n\36\5\36\u05e6\n\36") - buf.write("\3\36\3\36\5\36\u05ea\n\36\3\37\3\37\3\37\3\37\3\37\7") - buf.write("\37\u05f1\n\37\f\37\16\37\u05f4\13\37\3\37\3\37\3\37\3") - buf.write("\37\3\37\3\37\3\37\7\37\u05fd\n\37\f\37\16\37\u0600\13") - buf.write("\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\6\37\u0609\n\37") - buf.write("\r\37\16\37\u060a\3\37\3\37\3\37\3\37\3\37\3\37\3\37\6") - buf.write("\37\u0614\n\37\r\37\16\37\u0615\3\37\3\37\3\37\3\37\3") - buf.write("\37\3\37\3\37\6\37\u061f\n\37\r\37\16\37\u0620\3\37\3") - buf.write("\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37") - buf.write("\3\37\3\37\5\37\u0631\n\37\3\37\3\37\3\37\3\37\3\37\3") - buf.write("\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\6\37\u0641") - buf.write("\n\37\r\37\16\37\u0642\3\37\3\37\5\37\u0647\n\37\3 \3") - buf.write(" \3 \3 \3 \5 \u064e\n \3 \3 \3 \3 \3 \3 \3 \5 \u0657\n") - buf.write(" \3 \3 \3 \3 \3 \3 \3 \3 \3 \5 \u0662\n \3 \3 \3 \3 \3") - buf.write(" \3 \3 \3 \3 \5 \u066d\n \3 \3 \3 \3 \3 \3 \3 \3 \3 \5") - buf.write(" \u0678\n \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \5 \u0685\n") - buf.write(" \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \5 \u0692\n \3 \3 \3") - buf.write(" \3 \3 \3 \3 \3 \3 \3 \3 \5 \u069f\n \3 \3 \3 \3 \3 \3") - buf.write(" \3 \3 \3 \3 \3 \5 \u06ac\n \3 \3 \3 \3 \3 \3 \3 \3 \3") - buf.write(" \3 \3 \5 \u06b9\n \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \5") - buf.write(" \u06c6\n \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \5 \u06d3\n") - buf.write(" \3 \3 \3 \3 \3 \3 \3 \3 \3 \5 \u06de\n \3 \3 \3 \3 \3") - buf.write(" \3 \3 \3 \3 \5 \u06e9\n \3 \3 \3 \3 \3 \3 \3 \3 \3 \5") - buf.write(" \u06f4\n \3 \3 \5 \u06f8\n \3 \3 \5 \u06fc\n \3 \3 \3") - buf.write(" \3 \3 \3 \3 \3 \3 \5 \u0707\n \3 \3 \5 \u070b\n \3 \3") - buf.write(" \5 \u070f\n \3 \3 \3 \3 \3 \3 \3 \3 \3 \5 \u071a\n \3") - buf.write(" \3 \5 \u071e\n \3 \3 \5 \u0722\n \3 \3 \3 \3 \3 \3 \3") - buf.write(" \3 \3 \5 \u072d\n \3 \3 \5 \u0731\n \3 \3 \5 \u0735\n") - buf.write(" \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \5 \u0744\n \3") - buf.write(" \3 \5 \u0748\n \3 \3 \5 \u074c\n \3 \3 \5 \u0750\n \3") - buf.write(" \3 \5 \u0754\n \3 \2\7\36 \"$*!\2\4\6\b\n\f\16\20\22") - buf.write("\24\26\30\32\34\36 \"$&(*,.\60\62\64\668:<>\2\3\3\2\u00cf") - buf.write("\u00d4\2\u0876\2E\3\2\2\2\4N\3\2\2\2\6[\3\2\2\2\bp\3\2") + buf.write("\3\36\3\36\5\36\u05ed\n\36\5\36\u05ef\n\36\5\36\u05f1") + buf.write("\n\36\3\36\3\36\5\36\u05f5\n\36\3\37\3\37\3\37\3\37\3") + buf.write("\37\7\37\u05fc\n\37\f\37\16\37\u05ff\13\37\3\37\3\37\3") + buf.write("\37\3\37\3\37\3\37\3\37\7\37\u0608\n\37\f\37\16\37\u060b") + buf.write("\13\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\6\37\u0614\n") + buf.write("\37\r\37\16\37\u0615\3\37\3\37\3\37\3\37\3\37\3\37\3\37") + buf.write("\6\37\u061f\n\37\r\37\16\37\u0620\3\37\3\37\3\37\3\37") + buf.write("\3\37\3\37\3\37\6\37\u062a\n\37\r\37\16\37\u062b\3\37") + buf.write("\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37") + buf.write("\3\37\3\37\5\37\u063c\n\37\3\37\3\37\3\37\3\37\3\37\3") + buf.write("\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\6\37\u064c") + buf.write("\n\37\r\37\16\37\u064d\3\37\3\37\5\37\u0652\n\37\3 \3") + buf.write(" \3 \3 \3 \5 \u0659\n \3 \3 \3 \3 \3 \3 \3 \5 \u0662\n") + buf.write(" \3 \3 \3 \3 \3 \3 \3 \3 \3 \5 \u066d\n \3 \3 \3 \3 \3") + buf.write(" \3 \3 \3 \3 \5 \u0678\n \3 \3 \3 \3 \3 \3 \3 \3 \3 \5") + buf.write(" \u0683\n \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \5 \u0690\n") + buf.write(" \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \5 \u069d\n \3 \3 \3") + buf.write(" \3 \3 \3 \3 \3 \3 \3 \3 \5 \u06aa\n \3 \3 \3 \3 \3 \3") + buf.write(" \3 \3 \3 \3 \3 \5 \u06b7\n \3 \3 \3 \3 \3 \3 \3 \3 \3") + buf.write(" \3 \3 \5 \u06c4\n \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \5") + buf.write(" \u06d1\n \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \5 \u06de\n") + buf.write(" \3 \3 \3 \3 \3 \3 \3 \3 \3 \5 \u06e9\n \3 \3 \3 \3 \3") + buf.write(" \3 \3 \3 \3 \5 \u06f4\n \3 \3 \3 \3 \3 \3 \3 \3 \3 \5") + buf.write(" \u06ff\n \3 \3 \5 \u0703\n \3 \3 \5 \u0707\n \3 \3 \3") + buf.write(" \3 \3 \3 \3 \3 \3 \5 \u0712\n \3 \3 \5 \u0716\n \3 \3") + buf.write(" \5 \u071a\n \3 \3 \3 \3 \3 \3 \3 \3 \3 \5 \u0725\n \3") + buf.write(" \3 \5 \u0729\n \3 \3 \5 \u072d\n \3 \3 \3 \3 \3 \3 \3") + buf.write(" \3 \3 \5 \u0738\n \3 \3 \5 \u073c\n \3 \3 \5 \u0740\n") + buf.write(" \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \5 \u074f\n \3") + buf.write(" \3 \5 \u0753\n \3 \3 \5 \u0757\n \3 \3 \5 \u075b\n \3") + buf.write(" \3 \5 \u075f\n \3 \2\7\36 \"$*!\2\4\6\b\n\f\16\20\22") + buf.write("\24\26\30\32\34\36 \"$&(*,.\60\62\64\668:<>\2\3\3\2\u00d0") + buf.write("\u00d5\2\u0883\2E\3\2\2\2\4N\3\2\2\2\6[\3\2\2\2\bp\3\2") buf.write("\2\2\n\u0083\3\2\2\2\f\u0085\3\2\2\2\16\u008e\3\2\2\2") buf.write("\20\u0094\3\2\2\2\22\u009c\3\2\2\2\24\u00a5\3\2\2\2\26") buf.write("\u00a8\3\2\2\2\30\u00ab\3\2\2\2\32\u00b4\3\2\2\2\34\u00b6") buf.write("\3\2\2\2\36\u00bc\3\2\2\2 \u00d6\3\2\2\2\"\u00e4\3\2\2") buf.write("\2$\u00f5\3\2\2\2&\u0108\3\2\2\2(\u010f\3\2\2\2*\u0111") buf.write("\3\2\2\2,\u0159\3\2\2\2.\u015b\3\2\2\2\60\u0163\3\2\2") - buf.write("\2\62\u032c\3\2\2\2\64\u048e\3\2\2\2\66\u058e\3\2\2\2") - buf.write("8\u05c7\3\2\2\2:\u05e9\3\2\2\2<\u0646\3\2\2\2>\u0753\3") + buf.write("\2\62\u032c\3\2\2\2\64\u048e\3\2\2\2\66\u0599\3\2\2\2") + buf.write("8\u05d2\3\2\2\2:\u05f4\3\2\2\2<\u0651\3\2\2\2>\u075e\3") buf.write("\2\2\2@D\5\4\3\2AD\5\6\4\2BD\5\n\6\2C@\3\2\2\2CA\3\2\2") buf.write("\2CB\3\2\2\2DG\3\2\2\2EC\3\2\2\2EF\3\2\2\2FH\3\2\2\2G") - buf.write("E\3\2\2\2HJ\5\32\16\2IK\7\u00da\2\2JI\3\2\2\2JK\3\2\2") - buf.write("\2KL\3\2\2\2LM\7\2\2\3M\3\3\2\2\2NO\7\u00e5\2\2OQ\7\u00d7") - buf.write("\2\2PR\5\b\5\2QP\3\2\2\2QR\3\2\2\2RS\3\2\2\2ST\7\u00d8") - buf.write("\2\2TW\7\u00db\2\2UX\5\22\n\2VX\5\32\16\2WU\3\2\2\2WV") - buf.write("\3\2\2\2XY\3\2\2\2YZ\7\u00da\2\2Z\5\3\2\2\2[i\7\u00e5") - buf.write("\2\2\\]\7\u00dc\2\2]b\5\32\16\2^_\7\u00d9\2\2_a\5\32\16") + buf.write("E\3\2\2\2HJ\5\32\16\2IK\7\u00db\2\2JI\3\2\2\2JK\3\2\2") + buf.write("\2KL\3\2\2\2LM\7\2\2\3M\3\3\2\2\2NO\7\u00e6\2\2OQ\7\u00d8") + buf.write("\2\2PR\5\b\5\2QP\3\2\2\2QR\3\2\2\2RS\3\2\2\2ST\7\u00d9") + buf.write("\2\2TW\7\u00dc\2\2UX\5\22\n\2VX\5\32\16\2WU\3\2\2\2WV") + buf.write("\3\2\2\2XY\3\2\2\2YZ\7\u00db\2\2Z\5\3\2\2\2[i\7\u00e6") + buf.write("\2\2\\]\7\u00dd\2\2]b\5\32\16\2^_\7\u00da\2\2_a\5\32\16") buf.write("\2`^\3\2\2\2ad\3\2\2\2b`\3\2\2\2bc\3\2\2\2ce\3\2\2\2d") - buf.write("b\3\2\2\2ef\7\u00dd\2\2fh\3\2\2\2g\\\3\2\2\2hk\3\2\2\2") + buf.write("b\3\2\2\2ef\7\u00de\2\2fh\3\2\2\2g\\\3\2\2\2hk\3\2\2\2") buf.write("ig\3\2\2\2ij\3\2\2\2jl\3\2\2\2ki\3\2\2\2lm\t\2\2\2mn\5") - buf.write("\32\16\2no\7\u00da\2\2o\7\3\2\2\2pu\7\u00e5\2\2qr\7\u00d9") - buf.write("\2\2rt\7\u00e5\2\2sq\3\2\2\2tw\3\2\2\2us\3\2\2\2uv\3\2") + buf.write("\32\16\2no\7\u00db\2\2o\7\3\2\2\2pu\7\u00e6\2\2qr\7\u00da") + buf.write("\2\2rt\7\u00e6\2\2sq\3\2\2\2tw\3\2\2\2us\3\2\2\2uv\3\2") buf.write("\2\2v\t\3\2\2\2wu\3\2\2\2x\u0084\5\f\7\2y\u0084\5\16\b") buf.write("\2z\u0084\5\22\n\2{\u0084\5\24\13\2|\u0084\5\26\f\2}\u0084") buf.write("\5\30\r\2~\u0084\5\6\4\2\177\u0084\5\20\t\2\u0080\u0081") - buf.write("\5\32\16\2\u0081\u0082\7\u00da\2\2\u0082\u0084\3\2\2\2") + buf.write("\5\32\16\2\u0081\u0082\7\u00db\2\2\u0082\u0084\3\2\2\2") buf.write("\u0083x\3\2\2\2\u0083y\3\2\2\2\u0083z\3\2\2\2\u0083{\3") buf.write("\2\2\2\u0083|\3\2\2\2\u0083}\3\2\2\2\u0083~\3\2\2\2\u0083") buf.write("\177\3\2\2\2\u0083\u0080\3\2\2\2\u0084\13\3\2\2\2\u0085") - buf.write("\u0086\7\u0094\2\2\u0086\u0087\7\u00d7\2\2\u0087\u0088") - buf.write("\5\32\16\2\u0088\u0089\7\u00d8\2\2\u0089\u008c\5\n\6\2") + buf.write("\u0086\7\u0094\2\2\u0086\u0087\7\u00d8\2\2\u0087\u0088") + buf.write("\5\32\16\2\u0088\u0089\7\u00d9\2\2\u0089\u008c\5\n\6\2") buf.write("\u008a\u008b\7\u0095\2\2\u008b\u008d\5\n\6\2\u008c\u008a") buf.write("\3\2\2\2\u008c\u008d\3\2\2\2\u008d\r\3\2\2\2\u008e\u008f") - buf.write("\7\u0096\2\2\u008f\u0090\7\u00d7\2\2\u0090\u0091\5\32") - buf.write("\16\2\u0091\u0092\7\u00d8\2\2\u0092\u0093\5\n\6\2\u0093") - buf.write("\17\3\2\2\2\u0094\u0095\7\u0097\2\2\u0095\u0096\7\u00d7") - buf.write("\2\2\u0096\u0097\7\u00e5\2\2\u0097\u0098\7\u0098\2\2\u0098") - buf.write("\u0099\5\32\16\2\u0099\u009a\7\u00d8\2\2\u009a\u009b\5") - buf.write("\n\6\2\u009b\21\3\2\2\2\u009c\u00a0\7\u00e0\2\2\u009d") + buf.write("\7\u0096\2\2\u008f\u0090\7\u00d8\2\2\u0090\u0091\5\32") + buf.write("\16\2\u0091\u0092\7\u00d9\2\2\u0092\u0093\5\n\6\2\u0093") + buf.write("\17\3\2\2\2\u0094\u0095\7\u0097\2\2\u0095\u0096\7\u00d8") + buf.write("\2\2\u0096\u0097\7\u00e6\2\2\u0097\u0098\7\u0098\2\2\u0098") + buf.write("\u0099\5\32\16\2\u0099\u009a\7\u00d9\2\2\u009a\u009b\5") + buf.write("\n\6\2\u009b\21\3\2\2\2\u009c\u00a0\7\u00e1\2\2\u009d") buf.write("\u009f\5\n\6\2\u009e\u009d\3\2\2\2\u009f\u00a2\3\2\2\2") buf.write("\u00a0\u009e\3\2\2\2\u00a0\u00a1\3\2\2\2\u00a1\u00a3\3") - buf.write("\2\2\2\u00a2\u00a0\3\2\2\2\u00a3\u00a4\7\u00e1\2\2\u00a4") - buf.write("\23\3\2\2\2\u00a5\u00a6\7\u0099\2\2\u00a6\u00a7\7\u00da") + buf.write("\2\2\2\u00a2\u00a0\3\2\2\2\u00a3\u00a4\7\u00e2\2\2\u00a4") + buf.write("\23\3\2\2\2\u00a5\u00a6\7\u0099\2\2\u00a6\u00a7\7\u00db") buf.write("\2\2\u00a7\25\3\2\2\2\u00a8\u00a9\7\u009a\2\2\u00a9\u00aa") - buf.write("\7\u00da\2\2\u00aa\27\3\2\2\2\u00ab\u00ad\7\u009b\2\2") + buf.write("\7\u00db\2\2\u00aa\27\3\2\2\2\u00ab\u00ad\7\u009b\2\2") buf.write("\u00ac\u00ae\5\32\16\2\u00ad\u00ac\3\2\2\2\u00ad\u00ae") - buf.write("\3\2\2\2\u00ae\u00af\3\2\2\2\u00af\u00b0\7\u00da\2\2\u00b0") + buf.write("\3\2\2\2\u00ae\u00af\3\2\2\2\u00af\u00b0\7\u00db\2\2\u00b0") buf.write("\31\3\2\2\2\u00b1\u00b5\5\34\17\2\u00b2\u00b5\5,\27\2") buf.write("\u00b3\u00b5\5\36\20\2\u00b4\u00b1\3\2\2\2\u00b4\u00b2") buf.write("\3\2\2\2\u00b4\u00b3\3\2\2\2\u00b5\33\3\2\2\2\u00b6\u00b7") - buf.write("\5\36\20\2\u00b7\u00b8\7\u00de\2\2\u00b8\u00b9\5\32\16") - buf.write("\2\u00b9\u00ba\7\u00df\2\2\u00ba\u00bb\5\32\16\2\u00bb") + buf.write("\5\36\20\2\u00b7\u00b8\7\u00df\2\2\u00b8\u00b9\5\32\16") + buf.write("\2\u00b9\u00ba\7\u00e0\2\2\u00ba\u00bb\5\32\16\2\u00bb") buf.write("\35\3\2\2\2\u00bc\u00bd\b\20\1\2\u00bd\u00be\5 \21\2\u00be") - buf.write("\u00d3\3\2\2\2\u00bf\u00c0\f\t\2\2\u00c0\u00c1\7\u00cb") + buf.write("\u00d3\3\2\2\2\u00bf\u00c0\f\t\2\2\u00c0\u00c1\7\u00cc") buf.write("\2\2\u00c1\u00d2\5 \21\2\u00c2\u00c3\f\b\2\2\u00c3\u00c4") - buf.write("\7\u00ca\2\2\u00c4\u00d2\5 \21\2\u00c5\u00c6\f\7\2\2\u00c6") - buf.write("\u00c7\7\u00cd\2\2\u00c7\u00d2\5 \21\2\u00c8\u00c9\f\6") - buf.write("\2\2\u00c9\u00ca\7\u00cc\2\2\u00ca\u00d2\5 \21\2\u00cb") - buf.write("\u00cc\f\5\2\2\u00cc\u00cd\7\u00ce\2\2\u00cd\u00d2\5 ") - buf.write("\21\2\u00ce\u00cf\f\4\2\2\u00cf\u00d0\7\u00d5\2\2\u00d0") + buf.write("\7\u00cb\2\2\u00c4\u00d2\5 \21\2\u00c5\u00c6\f\7\2\2\u00c6") + buf.write("\u00c7\7\u00ce\2\2\u00c7\u00d2\5 \21\2\u00c8\u00c9\f\6") + buf.write("\2\2\u00c9\u00ca\7\u00cd\2\2\u00ca\u00d2\5 \21\2\u00cb") + buf.write("\u00cc\f\5\2\2\u00cc\u00cd\7\u00cf\2\2\u00cd\u00d2\5 ") + buf.write("\21\2\u00ce\u00cf\f\4\2\2\u00cf\u00d0\7\u00d6\2\2\u00d0") buf.write("\u00d2\5 \21\2\u00d1\u00bf\3\2\2\2\u00d1\u00c2\3\2\2\2") buf.write("\u00d1\u00c5\3\2\2\2\u00d1\u00c8\3\2\2\2\u00d1\u00cb\3") buf.write("\2\2\2\u00d1\u00ce\3\2\2\2\u00d2\u00d5\3\2\2\2\u00d3\u00d1") buf.write("\3\2\2\2\u00d3\u00d4\3\2\2\2\u00d4\37\3\2\2\2\u00d5\u00d3") buf.write("\3\2\2\2\u00d6\u00d7\b\21\1\2\u00d7\u00d8\5\"\22\2\u00d8") - buf.write("\u00e1\3\2\2\2\u00d9\u00da\f\5\2\2\u00da\u00db\7\u00c2") + buf.write("\u00e1\3\2\2\2\u00d9\u00da\f\5\2\2\u00da\u00db\7\u00c3") buf.write("\2\2\u00db\u00e0\5\"\22\2\u00dc\u00dd\f\4\2\2\u00dd\u00de") - buf.write("\7\u00c3\2\2\u00de\u00e0\5\"\22\2\u00df\u00d9\3\2\2\2") + buf.write("\7\u00c4\2\2\u00de\u00e0\5\"\22\2\u00df\u00d9\3\2\2\2") buf.write("\u00df\u00dc\3\2\2\2\u00e0\u00e3\3\2\2\2\u00e1\u00df\3") buf.write("\2\2\2\u00e1\u00e2\3\2\2\2\u00e2!\3\2\2\2\u00e3\u00e1") buf.write("\3\2\2\2\u00e4\u00e5\b\22\1\2\u00e5\u00e6\5$\23\2\u00e6") - buf.write("\u00f2\3\2\2\2\u00e7\u00e8\f\6\2\2\u00e8\u00e9\7\u00c4") + buf.write("\u00f2\3\2\2\2\u00e7\u00e8\f\6\2\2\u00e8\u00e9\7\u00c5") buf.write("\2\2\u00e9\u00f1\5$\23\2\u00ea\u00eb\f\5\2\2\u00eb\u00ec") - buf.write("\7\u00c5\2\2\u00ec\u00f1\5$\23\2\u00ed\u00ee\f\4\2\2\u00ee") - buf.write("\u00ef\7\u00c6\2\2\u00ef\u00f1\5$\23\2\u00f0\u00e7\3\2") + buf.write("\7\u00c6\2\2\u00ec\u00f1\5$\23\2\u00ed\u00ee\f\4\2\2\u00ee") + buf.write("\u00ef\7\u00c7\2\2\u00ef\u00f1\5$\23\2\u00f0\u00e7\3\2") buf.write("\2\2\u00f0\u00ea\3\2\2\2\u00f0\u00ed\3\2\2\2\u00f1\u00f4") buf.write("\3\2\2\2\u00f2\u00f0\3\2\2\2\u00f2\u00f3\3\2\2\2\u00f3") buf.write("#\3\2\2\2\u00f4\u00f2\3\2\2\2\u00f5\u00f6\b\23\1\2\u00f6") buf.write("\u00f7\5&\24\2\u00f7\u0100\3\2\2\2\u00f8\u00f9\f\5\2\2") - buf.write("\u00f9\u00fa\7\u00c8\2\2\u00fa\u00ff\5&\24\2\u00fb\u00fc") - buf.write("\f\4\2\2\u00fc\u00fd\7\u00c9\2\2\u00fd\u00ff\5&\24\2\u00fe") + buf.write("\u00f9\u00fa\7\u00c9\2\2\u00fa\u00ff\5&\24\2\u00fb\u00fc") + buf.write("\f\4\2\2\u00fc\u00fd\7\u00ca\2\2\u00fd\u00ff\5&\24\2\u00fe") buf.write("\u00f8\3\2\2\2\u00fe\u00fb\3\2\2\2\u00ff\u0102\3\2\2\2") buf.write("\u0100\u00fe\3\2\2\2\u0100\u0101\3\2\2\2\u0101%\3\2\2") buf.write("\2\u0102\u0100\3\2\2\2\u0103\u0104\5(\25\2\u0104\u0105") - buf.write("\7\u00c7\2\2\u0105\u0106\5&\24\2\u0106\u0109\3\2\2\2\u0107") + buf.write("\7\u00c8\2\2\u0105\u0106\5&\24\2\u0106\u0109\3\2\2\2\u0107") buf.write("\u0109\5(\25\2\u0108\u0103\3\2\2\2\u0108\u0107\3\2\2\2") - buf.write("\u0109\'\3\2\2\2\u010a\u010b\7\u00c2\2\2\u010b\u0110\5") - buf.write("(\25\2\u010c\u010d\7\u00c3\2\2\u010d\u0110\5(\25\2\u010e") + buf.write("\u0109\'\3\2\2\2\u010a\u010b\7\u00c3\2\2\u010b\u0110\5") + buf.write("(\25\2\u010c\u010d\7\u00c4\2\2\u010d\u0110\5(\25\2\u010e") buf.write("\u0110\5*\26\2\u010f\u010a\3\2\2\2\u010f\u010c\3\2\2\2") buf.write("\u010f\u010e\3\2\2\2\u0110)\3\2\2\2\u0111\u0112\b\26\1") buf.write("\2\u0112\u0113\5,\27\2\u0113\u0122\3\2\2\2\u0114\u0115") - buf.write("\f\4\2\2\u0115\u0116\7\u00dc\2\2\u0116\u011b\5\32\16\2") - buf.write("\u0117\u0118\7\u00d9\2\2\u0118\u011a\5\32\16\2\u0119\u0117") + buf.write("\f\4\2\2\u0115\u0116\7\u00dd\2\2\u0116\u011b\5\32\16\2") + buf.write("\u0117\u0118\7\u00da\2\2\u0118\u011a\5\32\16\2\u0119\u0117") buf.write("\3\2\2\2\u011a\u011d\3\2\2\2\u011b\u0119\3\2\2\2\u011b") buf.write("\u011c\3\2\2\2\u011c\u011e\3\2\2\2\u011d\u011b\3\2\2\2") - buf.write("\u011e\u011f\7\u00dd\2\2\u011f\u0121\3\2\2\2\u0120\u0114") + buf.write("\u011e\u011f\7\u00de\2\2\u011f\u0121\3\2\2\2\u0120\u0114") buf.write("\3\2\2\2\u0121\u0124\3\2\2\2\u0122\u0120\3\2\2\2\u0122") buf.write("\u0123\3\2\2\2\u0123+\3\2\2\2\u0124\u0122\3\2\2\2\u0125") buf.write("\u015a\5\60\31\2\u0126\u015a\5\62\32\2\u0127\u015a\5\64") buf.write("\33\2\u0128\u015a\5\66\34\2\u0129\u015a\58\35\2\u012a") buf.write("\u015a\5:\36\2\u012b\u015a\5<\37\2\u012c\u015a\5> \2\u012d") - buf.write("\u015a\7\u00e5\2\2\u012e\u015a\7\u00e2\2\2\u012f\u015a") - buf.write("\7\u00e3\2\2\u0130\u015a\7\u00e4\2\2\u0131\u0132\7\u00d7") - buf.write("\2\2\u0132\u0133\5\b\5\2\u0133\u0134\7\u00d8\2\2\u0134") - buf.write("\u0137\7\u00db\2\2\u0135\u0138\5\22\n\2\u0136\u0138\5") + buf.write("\u015a\7\u00e6\2\2\u012e\u015a\7\u00e3\2\2\u012f\u015a") + buf.write("\7\u00e4\2\2\u0130\u015a\7\u00e5\2\2\u0131\u0132\7\u00d8") + buf.write("\2\2\u0132\u0133\5\b\5\2\u0133\u0134\7\u00d9\2\2\u0134") + buf.write("\u0137\7\u00dc\2\2\u0135\u0138\5\22\n\2\u0136\u0138\5") buf.write("\32\16\2\u0137\u0135\3\2\2\2\u0137\u0136\3\2\2\2\u0138") - buf.write("\u015a\3\2\2\2\u0139\u013a\7\u00d7\2\2\u013a\u013b\5\32") - buf.write("\16\2\u013b\u013c\7\u00d8\2\2\u013c\u015a\3\2\2\2\u013d") - buf.write("\u013e\7\u00d7\2\2\u013e\u013f\5\32\16\2\u013f\u0140\7") - buf.write("\u00d8\2\2\u0140\u015a\3\2\2\2\u0141\u0142\7\u00d6\2\2") - buf.write("\u0142\u0143\5\32\16\2\u0143\u0144\7\u00d6\2\2\u0144\u015a") - buf.write("\3\2\2\2\u0145\u0146\7\u00dc\2\2\u0146\u014b\5\32\16\2") - buf.write("\u0147\u0148\7\u00d9\2\2\u0148\u014a\5\32\16\2\u0149\u0147") + buf.write("\u015a\3\2\2\2\u0139\u013a\7\u00d8\2\2\u013a\u013b\5\32") + buf.write("\16\2\u013b\u013c\7\u00d9\2\2\u013c\u015a\3\2\2\2\u013d") + buf.write("\u013e\7\u00d8\2\2\u013e\u013f\5\32\16\2\u013f\u0140\7") + buf.write("\u00d9\2\2\u0140\u015a\3\2\2\2\u0141\u0142\7\u00d7\2\2") + buf.write("\u0142\u0143\5\32\16\2\u0143\u0144\7\u00d7\2\2\u0144\u015a") + buf.write("\3\2\2\2\u0145\u0146\7\u00dd\2\2\u0146\u014b\5\32\16\2") + buf.write("\u0147\u0148\7\u00da\2\2\u0148\u014a\5\32\16\2\u0149\u0147") buf.write("\3\2\2\2\u014a\u014d\3\2\2\2\u014b\u0149\3\2\2\2\u014b") buf.write("\u014c\3\2\2\2\u014c\u014e\3\2\2\2\u014d\u014b\3\2\2\2") - buf.write("\u014e\u014f\7\u00dd\2\2\u014f\u015a\3\2\2\2\u0150\u0151") - buf.write("\7\u00e5\2\2\u0151\u0153\7\u00d7\2\2\u0152\u0154\5.\30") + buf.write("\u014e\u014f\7\u00de\2\2\u014f\u015a\3\2\2\2\u0150\u0151") + buf.write("\7\u00e6\2\2\u0151\u0153\7\u00d8\2\2\u0152\u0154\5.\30") buf.write("\2\u0153\u0152\3\2\2\2\u0153\u0154\3\2\2\2\u0154\u0155") - buf.write("\3\2\2\2\u0155\u015a\7\u00d8\2\2\u0156\u015a\7\u00ae\2") + buf.write("\3\2\2\2\u0155\u015a\7\u00d9\2\2\u0156\u015a\7\u00ae\2") buf.write("\2\u0157\u015a\7\u0099\2\2\u0158\u015a\7\u009a\2\2\u0159") buf.write("\u0125\3\2\2\2\u0159\u0126\3\2\2\2\u0159\u0127\3\2\2\2") buf.write("\u0159\u0128\3\2\2\2\u0159\u0129\3\2\2\2\u0159\u012a\3") @@ -317,197 +318,197 @@ def serializedATN(): buf.write("\u0159\u013d\3\2\2\2\u0159\u0141\3\2\2\2\u0159\u0145\3") buf.write("\2\2\2\u0159\u0150\3\2\2\2\u0159\u0156\3\2\2\2\u0159\u0157") buf.write("\3\2\2\2\u0159\u0158\3\2\2\2\u015a-\3\2\2\2\u015b\u0160") - buf.write("\5\32\16\2\u015c\u015d\7\u00d9\2\2\u015d\u015f\5\32\16") + buf.write("\5\32\16\2\u015c\u015d\7\u00da\2\2\u015d\u015f\5\32\16") buf.write("\2\u015e\u015c\3\2\2\2\u015f\u0162\3\2\2\2\u0160\u015e") buf.write("\3\2\2\2\u0160\u0161\3\2\2\2\u0161/\3\2\2\2\u0162\u0160") - buf.write("\3\2\2\2\u0163\u0164\7\u009c\2\2\u0164\u0165\7\u00d7\2") - buf.write("\2\u0165\u0166\7\u00d8\2\2\u0166\61\3\2\2\2\u0167\u0168") - buf.write("\7\3\2\2\u0168\u0169\7\u00d7\2\2\u0169\u016a\5\32\16\2") - buf.write("\u016a\u016b\7\u00d8\2\2\u016b\u032d\3\2\2\2\u016c\u016d") - buf.write("\7\4\2\2\u016d\u016e\7\u00d7\2\2\u016e\u016f\5\32\16\2") - buf.write("\u016f\u0170\7\u00d8\2\2\u0170\u032d\3\2\2\2\u0171\u0172") - buf.write("\7\5\2\2\u0172\u0173\7\u00d7\2\2\u0173\u0174\5\32\16\2") - buf.write("\u0174\u0175\7\u00d8\2\2\u0175\u032d\3\2\2\2\u0176\u0177") - buf.write("\7\6\2\2\u0177\u0178\7\u00d7\2\2\u0178\u0179\5\32\16\2") - buf.write("\u0179\u017a\7\u00d8\2\2\u017a\u032d\3\2\2\2\u017b\u017c") - buf.write("\7\7\2\2\u017c\u017d\7\u00d7\2\2\u017d\u017e\5\32\16\2") - buf.write("\u017e\u017f\7\u00d8\2\2\u017f\u032d\3\2\2\2\u0180\u0181") - buf.write("\7\b\2\2\u0181\u0182\7\u00d7\2\2\u0182\u0183\5\32\16\2") - buf.write("\u0183\u0184\7\u00d8\2\2\u0184\u032d\3\2\2\2\u0185\u0186") - buf.write("\7\n\2\2\u0186\u0187\7\u00d7\2\2\u0187\u0188\5\32\16\2") - buf.write("\u0188\u0189\7\u00d8\2\2\u0189\u032d\3\2\2\2\u018a\u018b") - buf.write("\7\13\2\2\u018b\u018c\7\u00d7\2\2\u018c\u018d\5\32\16") - buf.write("\2\u018d\u018e\7\u00d8\2\2\u018e\u032d\3\2\2\2\u018f\u0190") - buf.write("\7\f\2\2\u0190\u0191\7\u00d7\2\2\u0191\u0192\5\32\16\2") - buf.write("\u0192\u0193\7\u00d8\2\2\u0193\u032d\3\2\2\2\u0194\u0195") - buf.write("\7\r\2\2\u0195\u0196\7\u00d7\2\2\u0196\u0197\5\32\16\2") - buf.write("\u0197\u0198\7\u00d8\2\2\u0198\u032d\3\2\2\2\u0199\u019a") - buf.write("\7\16\2\2\u019a\u019b\7\u00d7\2\2\u019b\u019c\5\32\16") - buf.write("\2\u019c\u019d\7\u00d8\2\2\u019d\u032d\3\2\2\2\u019e\u019f") - buf.write("\7\17\2\2\u019f\u01a0\7\u00d7\2\2\u01a0\u01a1\5\32\16") - buf.write("\2\u01a1\u01a2\7\u00d8\2\2\u01a2\u032d\3\2\2\2\u01a3\u01a4") - buf.write("\7\20\2\2\u01a4\u01a5\7\u00d7\2\2\u01a5\u01a6\5\32\16") - buf.write("\2\u01a6\u01a7\7\u00d8\2\2\u01a7\u032d\3\2\2\2\u01a8\u01a9") - buf.write("\7\21\2\2\u01a9\u01aa\7\u00d7\2\2\u01aa\u01ab\5\32\16") - buf.write("\2\u01ab\u01ac\7\u00d8\2\2\u01ac\u032d\3\2\2\2\u01ad\u01ae") - buf.write("\7\22\2\2\u01ae\u01af\7\u00d7\2\2\u01af\u01b0\5\32\16") - buf.write("\2\u01b0\u01b1\7\u00d8\2\2\u01b1\u032d\3\2\2\2\u01b2\u01b3") - buf.write("\7\23\2\2\u01b3\u01b4\7\u00d7\2\2\u01b4\u01b5\5\32\16") - buf.write("\2\u01b5\u01b6\7\u00d8\2\2\u01b6\u032d\3\2\2\2\u01b7\u01b8") - buf.write("\7\24\2\2\u01b8\u01b9\7\u00d7\2\2\u01b9\u01ba\5\32\16") - buf.write("\2\u01ba\u01bb\7\u00d8\2\2\u01bb\u032d\3\2\2\2\u01bc\u01bd") - buf.write("\7\31\2\2\u01bd\u01be\7\u00d7\2\2\u01be\u01bf\5\32\16") - buf.write("\2\u01bf\u01c0\7\u00d8\2\2\u01c0\u032d\3\2\2\2\u01c1\u01c2") - buf.write("\7\33\2\2\u01c2\u01c3\7\u00d7\2\2\u01c3\u01c4\5\32\16") - buf.write("\2\u01c4\u01c5\7\u00d8\2\2\u01c5\u032d\3\2\2\2\u01c6\u01c7") - buf.write("\7\34\2\2\u01c7\u01c8\7\u00d7\2\2\u01c8\u01c9\5\32\16") - buf.write("\2\u01c9\u01ca\7\u00d8\2\2\u01ca\u032d\3\2\2\2\u01cb\u01cc") - buf.write("\7\35\2\2\u01cc\u01cd\7\u00d7\2\2\u01cd\u01ce\5\32\16") - buf.write("\2\u01ce\u01cf\7\u00d8\2\2\u01cf\u032d\3\2\2\2\u01d0\u01d1") - buf.write("\7\36\2\2\u01d1\u01d2\7\u00d7\2\2\u01d2\u01d3\5\32\16") - buf.write("\2\u01d3\u01d4\7\u00d8\2\2\u01d4\u032d\3\2\2\2\u01d5\u01d6") - buf.write("\7 \2\2\u01d6\u01d7\7\u00d7\2\2\u01d7\u01d8\5\32\16\2") - buf.write("\u01d8\u01d9\7\u00d8\2\2\u01d9\u032d\3\2\2\2\u01da\u01db") - buf.write("\7$\2\2\u01db\u01dc\7\u00d7\2\2\u01dc\u01dd\5\32\16\2") - buf.write("\u01dd\u01de\7\u00d8\2\2\u01de\u032d\3\2\2\2\u01df\u01e0") - buf.write("\7%\2\2\u01e0\u01e1\7\u00d7\2\2\u01e1\u01e2\5\32\16\2") - buf.write("\u01e2\u01e3\7\u00d8\2\2\u01e3\u032d\3\2\2\2\u01e4\u01e5") - buf.write("\7+\2\2\u01e5\u01e6\7\u00d7\2\2\u01e6\u01e7\5\32\16\2") - buf.write("\u01e7\u01e8\7\u00d8\2\2\u01e8\u032d\3\2\2\2\u01e9\u01ea") - buf.write("\7,\2\2\u01ea\u01eb\7\u00d7\2\2\u01eb\u01ec\5\32\16\2") - buf.write("\u01ec\u01ed\7\u00d8\2\2\u01ed\u032d\3\2\2\2\u01ee\u01ef") - buf.write("\7-\2\2\u01ef\u01f0\7\u00d7\2\2\u01f0\u01f1\5\32\16\2") - buf.write("\u01f1\u01f2\7\u00d8\2\2\u01f2\u032d\3\2\2\2\u01f3\u01f4") - buf.write("\7.\2\2\u01f4\u01f5\7\u00d7\2\2\u01f5\u01f6\5\32\16\2") - buf.write("\u01f6\u01f7\7\u00d8\2\2\u01f7\u032d\3\2\2\2\u01f8\u01f9") - buf.write("\7/\2\2\u01f9\u01fa\7\u00d7\2\2\u01fa\u01fb\5\32\16\2") - buf.write("\u01fb\u01fc\7\u00d8\2\2\u01fc\u032d\3\2\2\2\u01fd\u01fe") - buf.write("\7&\2\2\u01fe\u01ff\7\u00d7\2\2\u01ff\u0200\5\32\16\2") - buf.write("\u0200\u0201\7\u00d8\2\2\u0201\u032d\3\2\2\2\u0202\u0203") - buf.write("\7;\2\2\u0203\u0204\7\u00d7\2\2\u0204\u0205\5\32\16\2") - buf.write("\u0205\u0206\7\u00d8\2\2\u0206\u032d\3\2\2\2\u0207\u0208") - buf.write("\7<\2\2\u0208\u0209\7\u00d7\2\2\u0209\u020c\5\32\16\2") - buf.write("\u020a\u020b\7\u00d9\2\2\u020b\u020d\5\32\16\2\u020c\u020a") + buf.write("\3\2\2\2\u0163\u0164\7\u009c\2\2\u0164\u0165\7\u00d8\2") + buf.write("\2\u0165\u0166\7\u00d9\2\2\u0166\61\3\2\2\2\u0167\u0168") + buf.write("\7\3\2\2\u0168\u0169\7\u00d8\2\2\u0169\u016a\5\32\16\2") + buf.write("\u016a\u016b\7\u00d9\2\2\u016b\u032d\3\2\2\2\u016c\u016d") + buf.write("\7\4\2\2\u016d\u016e\7\u00d8\2\2\u016e\u016f\5\32\16\2") + buf.write("\u016f\u0170\7\u00d9\2\2\u0170\u032d\3\2\2\2\u0171\u0172") + buf.write("\7\5\2\2\u0172\u0173\7\u00d8\2\2\u0173\u0174\5\32\16\2") + buf.write("\u0174\u0175\7\u00d9\2\2\u0175\u032d\3\2\2\2\u0176\u0177") + buf.write("\7\6\2\2\u0177\u0178\7\u00d8\2\2\u0178\u0179\5\32\16\2") + buf.write("\u0179\u017a\7\u00d9\2\2\u017a\u032d\3\2\2\2\u017b\u017c") + buf.write("\7\7\2\2\u017c\u017d\7\u00d8\2\2\u017d\u017e\5\32\16\2") + buf.write("\u017e\u017f\7\u00d9\2\2\u017f\u032d\3\2\2\2\u0180\u0181") + buf.write("\7\b\2\2\u0181\u0182\7\u00d8\2\2\u0182\u0183\5\32\16\2") + buf.write("\u0183\u0184\7\u00d9\2\2\u0184\u032d\3\2\2\2\u0185\u0186") + buf.write("\7\n\2\2\u0186\u0187\7\u00d8\2\2\u0187\u0188\5\32\16\2") + buf.write("\u0188\u0189\7\u00d9\2\2\u0189\u032d\3\2\2\2\u018a\u018b") + buf.write("\7\13\2\2\u018b\u018c\7\u00d8\2\2\u018c\u018d\5\32\16") + buf.write("\2\u018d\u018e\7\u00d9\2\2\u018e\u032d\3\2\2\2\u018f\u0190") + buf.write("\7\f\2\2\u0190\u0191\7\u00d8\2\2\u0191\u0192\5\32\16\2") + buf.write("\u0192\u0193\7\u00d9\2\2\u0193\u032d\3\2\2\2\u0194\u0195") + buf.write("\7\r\2\2\u0195\u0196\7\u00d8\2\2\u0196\u0197\5\32\16\2") + buf.write("\u0197\u0198\7\u00d9\2\2\u0198\u032d\3\2\2\2\u0199\u019a") + buf.write("\7\16\2\2\u019a\u019b\7\u00d8\2\2\u019b\u019c\5\32\16") + buf.write("\2\u019c\u019d\7\u00d9\2\2\u019d\u032d\3\2\2\2\u019e\u019f") + buf.write("\7\17\2\2\u019f\u01a0\7\u00d8\2\2\u01a0\u01a1\5\32\16") + buf.write("\2\u01a1\u01a2\7\u00d9\2\2\u01a2\u032d\3\2\2\2\u01a3\u01a4") + buf.write("\7\20\2\2\u01a4\u01a5\7\u00d8\2\2\u01a5\u01a6\5\32\16") + buf.write("\2\u01a6\u01a7\7\u00d9\2\2\u01a7\u032d\3\2\2\2\u01a8\u01a9") + buf.write("\7\21\2\2\u01a9\u01aa\7\u00d8\2\2\u01aa\u01ab\5\32\16") + buf.write("\2\u01ab\u01ac\7\u00d9\2\2\u01ac\u032d\3\2\2\2\u01ad\u01ae") + buf.write("\7\22\2\2\u01ae\u01af\7\u00d8\2\2\u01af\u01b0\5\32\16") + buf.write("\2\u01b0\u01b1\7\u00d9\2\2\u01b1\u032d\3\2\2\2\u01b2\u01b3") + buf.write("\7\23\2\2\u01b3\u01b4\7\u00d8\2\2\u01b4\u01b5\5\32\16") + buf.write("\2\u01b5\u01b6\7\u00d9\2\2\u01b6\u032d\3\2\2\2\u01b7\u01b8") + buf.write("\7\24\2\2\u01b8\u01b9\7\u00d8\2\2\u01b9\u01ba\5\32\16") + buf.write("\2\u01ba\u01bb\7\u00d9\2\2\u01bb\u032d\3\2\2\2\u01bc\u01bd") + buf.write("\7\31\2\2\u01bd\u01be\7\u00d8\2\2\u01be\u01bf\5\32\16") + buf.write("\2\u01bf\u01c0\7\u00d9\2\2\u01c0\u032d\3\2\2\2\u01c1\u01c2") + buf.write("\7\33\2\2\u01c2\u01c3\7\u00d8\2\2\u01c3\u01c4\5\32\16") + buf.write("\2\u01c4\u01c5\7\u00d9\2\2\u01c5\u032d\3\2\2\2\u01c6\u01c7") + buf.write("\7\34\2\2\u01c7\u01c8\7\u00d8\2\2\u01c8\u01c9\5\32\16") + buf.write("\2\u01c9\u01ca\7\u00d9\2\2\u01ca\u032d\3\2\2\2\u01cb\u01cc") + buf.write("\7\35\2\2\u01cc\u01cd\7\u00d8\2\2\u01cd\u01ce\5\32\16") + buf.write("\2\u01ce\u01cf\7\u00d9\2\2\u01cf\u032d\3\2\2\2\u01d0\u01d1") + buf.write("\7\36\2\2\u01d1\u01d2\7\u00d8\2\2\u01d2\u01d3\5\32\16") + buf.write("\2\u01d3\u01d4\7\u00d9\2\2\u01d4\u032d\3\2\2\2\u01d5\u01d6") + buf.write("\7 \2\2\u01d6\u01d7\7\u00d8\2\2\u01d7\u01d8\5\32\16\2") + buf.write("\u01d8\u01d9\7\u00d9\2\2\u01d9\u032d\3\2\2\2\u01da\u01db") + buf.write("\7$\2\2\u01db\u01dc\7\u00d8\2\2\u01dc\u01dd\5\32\16\2") + buf.write("\u01dd\u01de\7\u00d9\2\2\u01de\u032d\3\2\2\2\u01df\u01e0") + buf.write("\7%\2\2\u01e0\u01e1\7\u00d8\2\2\u01e1\u01e2\5\32\16\2") + buf.write("\u01e2\u01e3\7\u00d9\2\2\u01e3\u032d\3\2\2\2\u01e4\u01e5") + buf.write("\7+\2\2\u01e5\u01e6\7\u00d8\2\2\u01e6\u01e7\5\32\16\2") + buf.write("\u01e7\u01e8\7\u00d9\2\2\u01e8\u032d\3\2\2\2\u01e9\u01ea") + buf.write("\7,\2\2\u01ea\u01eb\7\u00d8\2\2\u01eb\u01ec\5\32\16\2") + buf.write("\u01ec\u01ed\7\u00d9\2\2\u01ed\u032d\3\2\2\2\u01ee\u01ef") + buf.write("\7-\2\2\u01ef\u01f0\7\u00d8\2\2\u01f0\u01f1\5\32\16\2") + buf.write("\u01f1\u01f2\7\u00d9\2\2\u01f2\u032d\3\2\2\2\u01f3\u01f4") + buf.write("\7.\2\2\u01f4\u01f5\7\u00d8\2\2\u01f5\u01f6\5\32\16\2") + buf.write("\u01f6\u01f7\7\u00d9\2\2\u01f7\u032d\3\2\2\2\u01f8\u01f9") + buf.write("\7/\2\2\u01f9\u01fa\7\u00d8\2\2\u01fa\u01fb\5\32\16\2") + buf.write("\u01fb\u01fc\7\u00d9\2\2\u01fc\u032d\3\2\2\2\u01fd\u01fe") + buf.write("\7&\2\2\u01fe\u01ff\7\u00d8\2\2\u01ff\u0200\5\32\16\2") + buf.write("\u0200\u0201\7\u00d9\2\2\u0201\u032d\3\2\2\2\u0202\u0203") + buf.write("\7;\2\2\u0203\u0204\7\u00d8\2\2\u0204\u0205\5\32\16\2") + buf.write("\u0205\u0206\7\u00d9\2\2\u0206\u032d\3\2\2\2\u0207\u0208") + buf.write("\7<\2\2\u0208\u0209\7\u00d8\2\2\u0209\u020c\5\32\16\2") + buf.write("\u020a\u020b\7\u00da\2\2\u020b\u020d\5\32\16\2\u020c\u020a") buf.write("\3\2\2\2\u020c\u020d\3\2\2\2\u020d\u020e\3\2\2\2\u020e") - buf.write("\u020f\7\u00d8\2\2\u020f\u032d\3\2\2\2\u0210\u0211\7=") - buf.write("\2\2\u0211\u0212\7\u00d7\2\2\u0212\u0213\5\32\16\2\u0213") - buf.write("\u0214\7\u00d8\2\2\u0214\u032d\3\2\2\2\u0215\u0216\7>") - buf.write("\2\2\u0216\u0217\7\u00d7\2\2\u0217\u0218\5\32\16\2\u0218") - buf.write("\u0219\7\u00d8\2\2\u0219\u032d\3\2\2\2\u021a\u021b\7?") - buf.write("\2\2\u021b\u021c\7\u00d7\2\2\u021c\u021d\5\32\16\2\u021d") - buf.write("\u021e\7\u00d8\2\2\u021e\u032d\3\2\2\2\u021f\u0220\7\u009d") - buf.write("\2\2\u0220\u0221\7\u00d7\2\2\u0221\u0222\5\32\16\2\u0222") - buf.write("\u0223\7\u00d8\2\2\u0223\u032d\3\2\2\2\u0224\u0225\7G") - buf.write("\2\2\u0225\u0226\7\u00d7\2\2\u0226\u0227\5\32\16\2\u0227") - buf.write("\u0228\7\u00d8\2\2\u0228\u032d\3\2\2\2\u0229\u022a\7H") - buf.write("\2\2\u022a\u022b\7\u00d7\2\2\u022b\u022c\5\32\16\2\u022c") - buf.write("\u022d\7\u00d8\2\2\u022d\u032d\3\2\2\2\u022e\u022f\7I") - buf.write("\2\2\u022f\u0230\7\u00d7\2\2\u0230\u0233\5\32\16\2\u0231") - buf.write("\u0232\7\u00d9\2\2\u0232\u0234\5\32\16\2\u0233\u0231\3") + buf.write("\u020f\7\u00d9\2\2\u020f\u032d\3\2\2\2\u0210\u0211\7=") + buf.write("\2\2\u0211\u0212\7\u00d8\2\2\u0212\u0213\5\32\16\2\u0213") + buf.write("\u0214\7\u00d9\2\2\u0214\u032d\3\2\2\2\u0215\u0216\7>") + buf.write("\2\2\u0216\u0217\7\u00d8\2\2\u0217\u0218\5\32\16\2\u0218") + buf.write("\u0219\7\u00d9\2\2\u0219\u032d\3\2\2\2\u021a\u021b\7?") + buf.write("\2\2\u021b\u021c\7\u00d8\2\2\u021c\u021d\5\32\16\2\u021d") + buf.write("\u021e\7\u00d9\2\2\u021e\u032d\3\2\2\2\u021f\u0220\7\u009d") + buf.write("\2\2\u0220\u0221\7\u00d8\2\2\u0221\u0222\5\32\16\2\u0222") + buf.write("\u0223\7\u00d9\2\2\u0223\u032d\3\2\2\2\u0224\u0225\7G") + buf.write("\2\2\u0225\u0226\7\u00d8\2\2\u0226\u0227\5\32\16\2\u0227") + buf.write("\u0228\7\u00d9\2\2\u0228\u032d\3\2\2\2\u0229\u022a\7H") + buf.write("\2\2\u022a\u022b\7\u00d8\2\2\u022b\u022c\5\32\16\2\u022c") + buf.write("\u022d\7\u00d9\2\2\u022d\u032d\3\2\2\2\u022e\u022f\7I") + buf.write("\2\2\u022f\u0230\7\u00d8\2\2\u0230\u0233\5\32\16\2\u0231") + buf.write("\u0232\7\u00da\2\2\u0232\u0234\5\32\16\2\u0233\u0231\3") buf.write("\2\2\2\u0233\u0234\3\2\2\2\u0234\u0235\3\2\2\2\u0235\u0236") - buf.write("\7\u00d8\2\2\u0236\u032d\3\2\2\2\u0237\u0238\7K\2\2\u0238") - buf.write("\u0239\7\u00d7\2\2\u0239\u023a\5\32\16\2\u023a\u023b\7") - buf.write("\u00d8\2\2\u023b\u032d\3\2\2\2\u023c\u023d\7L\2\2\u023d") - buf.write("\u023e\7\u00d7\2\2\u023e\u023f\5\32\16\2\u023f\u0240\7") - buf.write("\u00d8\2\2\u0240\u032d\3\2\2\2\u0241\u0242\7M\2\2\u0242") - buf.write("\u0243\7\u00d7\2\2\u0243\u0246\5\32\16\2\u0244\u0245\7") - buf.write("\u00d9\2\2\u0245\u0247\5\32\16\2\u0246\u0244\3\2\2\2\u0246") - buf.write("\u0247\3\2\2\2\u0247\u0248\3\2\2\2\u0248\u0249\7\u00d8") + buf.write("\7\u00d9\2\2\u0236\u032d\3\2\2\2\u0237\u0238\7K\2\2\u0238") + buf.write("\u0239\7\u00d8\2\2\u0239\u023a\5\32\16\2\u023a\u023b\7") + buf.write("\u00d9\2\2\u023b\u032d\3\2\2\2\u023c\u023d\7L\2\2\u023d") + buf.write("\u023e\7\u00d8\2\2\u023e\u023f\5\32\16\2\u023f\u0240\7") + buf.write("\u00d9\2\2\u0240\u032d\3\2\2\2\u0241\u0242\7M\2\2\u0242") + buf.write("\u0243\7\u00d8\2\2\u0243\u0246\5\32\16\2\u0244\u0245\7") + buf.write("\u00da\2\2\u0245\u0247\5\32\16\2\u0246\u0244\3\2\2\2\u0246") + buf.write("\u0247\3\2\2\2\u0247\u0248\3\2\2\2\u0248\u0249\7\u00d9") buf.write("\2\2\u0249\u032d\3\2\2\2\u024a\u024b\7X\2\2\u024b\u024c") - buf.write("\7\u00d7\2\2\u024c\u024d\5\32\16\2\u024d\u024e\7\u00d8") + buf.write("\7\u00d8\2\2\u024c\u024d\5\32\16\2\u024d\u024e\7\u00d9") buf.write("\2\2\u024e\u032d\3\2\2\2\u024f\u0250\7Y\2\2\u0250\u0251") - buf.write("\7\u00d7\2\2\u0251\u0252\5\32\16\2\u0252\u0253\7\u00d9") - buf.write("\2\2\u0253\u0256\5\32\16\2\u0254\u0255\7\u00d9\2\2\u0255") + buf.write("\7\u00d8\2\2\u0251\u0252\5\32\16\2\u0252\u0253\7\u00da") + buf.write("\2\2\u0253\u0256\5\32\16\2\u0254\u0255\7\u00da\2\2\u0255") buf.write("\u0257\5\32\16\2\u0256\u0254\3\2\2\2\u0256\u0257\3\2\2") - buf.write("\2\u0257\u0258\3\2\2\2\u0258\u0259\7\u00d8\2\2\u0259\u032d") - buf.write("\3\2\2\2\u025a\u025b\7N\2\2\u025b\u025c\7\u00d7\2\2\u025c") - buf.write("\u025d\5\32\16\2\u025d\u025e\7\u00d8\2\2\u025e\u032d\3") - buf.write("\2\2\2\u025f\u0260\7r\2\2\u0260\u0261\7\u00d7\2\2\u0261") - buf.write("\u0262\5\32\16\2\u0262\u0263\7\u00d8\2\2\u0263\u032d\3") - buf.write("\2\2\2\u0264\u0265\7s\2\2\u0265\u0266\7\u00d7\2\2\u0266") - buf.write("\u0267\5\32\16\2\u0267\u0268\7\u00d8\2\2\u0268\u032d\3") - buf.write("\2\2\2\u0269\u026a\7t\2\2\u026a\u026b\7\u00d7\2\2\u026b") - buf.write("\u026c\5\32\16\2\u026c\u026d\7\u00d8\2\2\u026d\u032d\3") - buf.write("\2\2\2\u026e\u026f\7u\2\2\u026f\u0270\7\u00d7\2\2\u0270") - buf.write("\u0271\5\32\16\2\u0271\u0272\7\u00d8\2\2\u0272\u032d\3") - buf.write("\2\2\2\u0273\u0274\7\u009e\2\2\u0274\u0275\7\u00d7\2\2") - buf.write("\u0275\u027c\5\32\16\2\u0276\u0277\7\u00d9\2\2\u0277\u027a") - buf.write("\5\32\16\2\u0278\u0279\7\u00d9\2\2\u0279\u027b\5\32\16") + buf.write("\2\u0257\u0258\3\2\2\2\u0258\u0259\7\u00d9\2\2\u0259\u032d") + buf.write("\3\2\2\2\u025a\u025b\7N\2\2\u025b\u025c\7\u00d8\2\2\u025c") + buf.write("\u025d\5\32\16\2\u025d\u025e\7\u00d9\2\2\u025e\u032d\3") + buf.write("\2\2\2\u025f\u0260\7r\2\2\u0260\u0261\7\u00d8\2\2\u0261") + buf.write("\u0262\5\32\16\2\u0262\u0263\7\u00d9\2\2\u0263\u032d\3") + buf.write("\2\2\2\u0264\u0265\7s\2\2\u0265\u0266\7\u00d8\2\2\u0266") + buf.write("\u0267\5\32\16\2\u0267\u0268\7\u00d9\2\2\u0268\u032d\3") + buf.write("\2\2\2\u0269\u026a\7t\2\2\u026a\u026b\7\u00d8\2\2\u026b") + buf.write("\u026c\5\32\16\2\u026c\u026d\7\u00d9\2\2\u026d\u032d\3") + buf.write("\2\2\2\u026e\u026f\7u\2\2\u026f\u0270\7\u00d8\2\2\u0270") + buf.write("\u0271\5\32\16\2\u0271\u0272\7\u00d9\2\2\u0272\u032d\3") + buf.write("\2\2\2\u0273\u0274\7\u009e\2\2\u0274\u0275\7\u00d8\2\2") + buf.write("\u0275\u027c\5\32\16\2\u0276\u0277\7\u00da\2\2\u0277\u027a") + buf.write("\5\32\16\2\u0278\u0279\7\u00da\2\2\u0279\u027b\5\32\16") buf.write("\2\u027a\u0278\3\2\2\2\u027a\u027b\3\2\2\2\u027b\u027d") buf.write("\3\2\2\2\u027c\u0276\3\2\2\2\u027c\u027d\3\2\2\2\u027d") - buf.write("\u027e\3\2\2\2\u027e\u027f\7\u00d8\2\2\u027f\u032d\3\2") - buf.write("\2\2\u0280\u0281\7\u009f\2\2\u0281\u0282\7\u00d7\2\2\u0282") - buf.write("\u0285\5\32\16\2\u0283\u0284\7\u00d9\2\2\u0284\u0286\5") + buf.write("\u027e\3\2\2\2\u027e\u027f\7\u00d9\2\2\u027f\u032d\3\2") + buf.write("\2\2\u0280\u0281\7\u009f\2\2\u0281\u0282\7\u00d8\2\2\u0282") + buf.write("\u0285\5\32\16\2\u0283\u0284\7\u00da\2\2\u0284\u0286\5") buf.write("\32\16\2\u0285\u0283\3\2\2\2\u0285\u0286\3\2\2\2\u0286") - buf.write("\u0287\3\2\2\2\u0287\u0288\7\u00d8\2\2\u0288\u032d\3\2") - buf.write("\2\2\u0289\u028a\7\u00a0\2\2\u028a\u028b\7\u00d7\2\2\u028b") - buf.write("\u028e\5\32\16\2\u028c\u028d\7\u00d9\2\2\u028d\u028f\5") + buf.write("\u0287\3\2\2\2\u0287\u0288\7\u00d9\2\2\u0288\u032d\3\2") + buf.write("\2\2\u0289\u028a\7\u00a0\2\2\u028a\u028b\7\u00d8\2\2\u028b") + buf.write("\u028e\5\32\16\2\u028c\u028d\7\u00da\2\2\u028d\u028f\5") buf.write("\32\16\2\u028e\u028c\3\2\2\2\u028e\u028f\3\2\2\2\u028f") - buf.write("\u0290\3\2\2\2\u0290\u0291\7\u00d8\2\2\u0291\u032d\3\2") - buf.write("\2\2\u0292\u0293\7\u00a1\2\2\u0293\u0294\7\u00d7\2\2\u0294") - buf.write("\u0297\5\32\16\2\u0295\u0296\7\u00d9\2\2\u0296\u0298\5") + buf.write("\u0290\3\2\2\2\u0290\u0291\7\u00d9\2\2\u0291\u032d\3\2") + buf.write("\2\2\u0292\u0293\7\u00a1\2\2\u0293\u0294\7\u00d8\2\2\u0294") + buf.write("\u0297\5\32\16\2\u0295\u0296\7\u00da\2\2\u0296\u0298\5") buf.write("\32\16\2\u0297\u0295\3\2\2\2\u0297\u0298\3\2\2\2\u0298") - buf.write("\u0299\3\2\2\2\u0299\u029a\7\u00d8\2\2\u029a\u032d\3\2") - buf.write("\2\2\u029b\u029c\7\u00a2\2\2\u029c\u029d\7\u00d7\2\2\u029d") - buf.write("\u02a0\5\32\16\2\u029e\u029f\7\u00d9\2\2\u029f\u02a1\5") + buf.write("\u0299\3\2\2\2\u0299\u029a\7\u00d9\2\2\u029a\u032d\3\2") + buf.write("\2\2\u029b\u029c\7\u00a2\2\2\u029c\u029d\7\u00d8\2\2\u029d") + buf.write("\u02a0\5\32\16\2\u029e\u029f\7\u00da\2\2\u029f\u02a1\5") buf.write("\32\16\2\u02a0\u029e\3\2\2\2\u02a0\u02a1\3\2\2\2\u02a1") - buf.write("\u02a2\3\2\2\2\u02a2\u02a3\7\u00d8\2\2\u02a3\u032d\3\2") - buf.write("\2\2\u02a4\u02a5\7E\2\2\u02a5\u02a6\7\u00d7\2\2\u02a6") - buf.write("\u02a7\5\32\16\2\u02a7\u02a8\7\u00d8\2\2\u02a8\u032d\3") - buf.write("\2\2\2\u02a9\u02aa\7F\2\2\u02aa\u02ab\7\u00d7\2\2\u02ab") - buf.write("\u02ac\5\32\16\2\u02ac\u02ad\7\u00d8\2\2\u02ad\u032d\3") - buf.write("\2\2\2\u02ae\u02af\7\u00a3\2\2\u02af\u02b0\7\u00d7\2\2") - buf.write("\u02b0\u02b1\5\32\16\2\u02b1\u02b2\7\u00d8\2\2\u02b2\u032d") - buf.write("\3\2\2\2\u02b3\u02b4\7Z\2\2\u02b4\u02b5\7\u00d7\2\2\u02b5") - buf.write("\u02b6\5\32\16\2\u02b6\u02b7\7\u00d8\2\2\u02b7\u032d\3") - buf.write("\2\2\2\u02b8\u02b9\7_\2\2\u02b9\u02ba\7\u00d7\2\2\u02ba") - buf.write("\u02bb\5\32\16\2\u02bb\u02bc\7\u00d8\2\2\u02bc\u032d\3") - buf.write("\2\2\2\u02bd\u02be\7`\2\2\u02be\u02bf\7\u00d7\2\2\u02bf") - buf.write("\u02c0\5\32\16\2\u02c0\u02c1\7\u00d8\2\2\u02c1\u032d\3") - buf.write("\2\2\2\u02c2\u02c3\7j\2\2\u02c3\u02c4\7\u00d7\2\2\u02c4") - buf.write("\u02c5\5\32\16\2\u02c5\u02c6\7\u00d8\2\2\u02c6\u032d\3") - buf.write("\2\2\2\u02c7\u02c8\7k\2\2\u02c8\u02c9\7\u00d7\2\2\u02c9") - buf.write("\u02ca\5\32\16\2\u02ca\u02cb\7\u00d8\2\2\u02cb\u032d\3") - buf.write("\2\2\2\u02cc\u02cd\7l\2\2\u02cd\u02ce\7\u00d7\2\2\u02ce") - buf.write("\u02cf\5\32\16\2\u02cf\u02d0\7\u00d8\2\2\u02d0\u032d\3") - buf.write("\2\2\2\u02d1\u02d2\7y\2\2\u02d2\u02d3\7\u00d7\2\2\u02d3") - buf.write("\u02d4\5\32\16\2\u02d4\u02d5\7\u00d8\2\2\u02d5\u032d\3") - buf.write("\2\2\2\u02d6\u02d7\7z\2\2\u02d7\u02d8\7\u00d7\2\2\u02d8") - buf.write("\u02d9\5\32\16\2\u02d9\u02da\7\u00d8\2\2\u02da\u032d\3") - buf.write("\2\2\2\u02db\u02dc\7{\2\2\u02dc\u02dd\7\u00d7\2\2\u02dd") - buf.write("\u02de\5\32\16\2\u02de\u02df\7\u00d8\2\2\u02df\u032d\3") - buf.write("\2\2\2\u02e0\u02e1\7\u00ac\2\2\u02e1\u02e2\7\u00d7\2\2") - buf.write("\u02e2\u02e3\5\32\16\2\u02e3\u02e4\7\u00d8\2\2\u02e4\u032d") - buf.write("\3\2\2\2\u02e5\u02e6\7\"\2\2\u02e6\u02e7\7\u00d7\2\2\u02e7") - buf.write("\u02e8\5\32\16\2\u02e8\u02e9\7\u00d8\2\2\u02e9\u032d\3") - buf.write("\2\2\2\u02ea\u02eb\7\u0081\2\2\u02eb\u02ec\7\u00d7\2\2") - buf.write("\u02ec\u02ef\5\32\16\2\u02ed\u02ee\7\u00d9\2\2\u02ee\u02f0") + buf.write("\u02a2\3\2\2\2\u02a2\u02a3\7\u00d9\2\2\u02a3\u032d\3\2") + buf.write("\2\2\u02a4\u02a5\7E\2\2\u02a5\u02a6\7\u00d8\2\2\u02a6") + buf.write("\u02a7\5\32\16\2\u02a7\u02a8\7\u00d9\2\2\u02a8\u032d\3") + buf.write("\2\2\2\u02a9\u02aa\7F\2\2\u02aa\u02ab\7\u00d8\2\2\u02ab") + buf.write("\u02ac\5\32\16\2\u02ac\u02ad\7\u00d9\2\2\u02ad\u032d\3") + buf.write("\2\2\2\u02ae\u02af\7\u00a3\2\2\u02af\u02b0\7\u00d8\2\2") + buf.write("\u02b0\u02b1\5\32\16\2\u02b1\u02b2\7\u00d9\2\2\u02b2\u032d") + buf.write("\3\2\2\2\u02b3\u02b4\7Z\2\2\u02b4\u02b5\7\u00d8\2\2\u02b5") + buf.write("\u02b6\5\32\16\2\u02b6\u02b7\7\u00d9\2\2\u02b7\u032d\3") + buf.write("\2\2\2\u02b8\u02b9\7_\2\2\u02b9\u02ba\7\u00d8\2\2\u02ba") + buf.write("\u02bb\5\32\16\2\u02bb\u02bc\7\u00d9\2\2\u02bc\u032d\3") + buf.write("\2\2\2\u02bd\u02be\7`\2\2\u02be\u02bf\7\u00d8\2\2\u02bf") + buf.write("\u02c0\5\32\16\2\u02c0\u02c1\7\u00d9\2\2\u02c1\u032d\3") + buf.write("\2\2\2\u02c2\u02c3\7j\2\2\u02c3\u02c4\7\u00d8\2\2\u02c4") + buf.write("\u02c5\5\32\16\2\u02c5\u02c6\7\u00d9\2\2\u02c6\u032d\3") + buf.write("\2\2\2\u02c7\u02c8\7k\2\2\u02c8\u02c9\7\u00d8\2\2\u02c9") + buf.write("\u02ca\5\32\16\2\u02ca\u02cb\7\u00d9\2\2\u02cb\u032d\3") + buf.write("\2\2\2\u02cc\u02cd\7l\2\2\u02cd\u02ce\7\u00d8\2\2\u02ce") + buf.write("\u02cf\5\32\16\2\u02cf\u02d0\7\u00d9\2\2\u02d0\u032d\3") + buf.write("\2\2\2\u02d1\u02d2\7y\2\2\u02d2\u02d3\7\u00d8\2\2\u02d3") + buf.write("\u02d4\5\32\16\2\u02d4\u02d5\7\u00d9\2\2\u02d5\u032d\3") + buf.write("\2\2\2\u02d6\u02d7\7z\2\2\u02d7\u02d8\7\u00d8\2\2\u02d8") + buf.write("\u02d9\5\32\16\2\u02d9\u02da\7\u00d9\2\2\u02da\u032d\3") + buf.write("\2\2\2\u02db\u02dc\7{\2\2\u02dc\u02dd\7\u00d8\2\2\u02dd") + buf.write("\u02de\5\32\16\2\u02de\u02df\7\u00d9\2\2\u02df\u032d\3") + buf.write("\2\2\2\u02e0\u02e1\7\u00ac\2\2\u02e1\u02e2\7\u00d8\2\2") + buf.write("\u02e2\u02e3\5\32\16\2\u02e3\u02e4\7\u00d9\2\2\u02e4\u032d") + buf.write("\3\2\2\2\u02e5\u02e6\7\"\2\2\u02e6\u02e7\7\u00d8\2\2\u02e7") + buf.write("\u02e8\5\32\16\2\u02e8\u02e9\7\u00d9\2\2\u02e9\u032d\3") + buf.write("\2\2\2\u02ea\u02eb\7\u0081\2\2\u02eb\u02ec\7\u00d8\2\2") + buf.write("\u02ec\u02ef\5\32\16\2\u02ed\u02ee\7\u00da\2\2\u02ee\u02f0") buf.write("\5\32\16\2\u02ef\u02ed\3\2\2\2\u02ef\u02f0\3\2\2\2\u02f0") - buf.write("\u02f1\3\2\2\2\u02f1\u02f2\7\u00d8\2\2\u02f2\u032d\3\2") - buf.write("\2\2\u02f3\u02f4\7\u0082\2\2\u02f4\u02f5\7\u00d7\2\2\u02f5") - buf.write("\u02f8\5\32\16\2\u02f6\u02f7\7\u00d9\2\2\u02f7\u02f9\5") + buf.write("\u02f1\3\2\2\2\u02f1\u02f2\7\u00d9\2\2\u02f2\u032d\3\2") + buf.write("\2\2\u02f3\u02f4\7\u0082\2\2\u02f4\u02f5\7\u00d8\2\2\u02f5") + buf.write("\u02f8\5\32\16\2\u02f6\u02f7\7\u00da\2\2\u02f7\u02f9\5") buf.write("\32\16\2\u02f8\u02f6\3\2\2\2\u02f8\u02f9\3\2\2\2\u02f9") - buf.write("\u02fa\3\2\2\2\u02fa\u02fb\7\u00d8\2\2\u02fb\u032d\3\2") - buf.write("\2\2\u02fc\u02fd\7\u0083\2\2\u02fd\u02fe\7\u00d7\2\2\u02fe") - buf.write("\u0301\5\32\16\2\u02ff\u0300\7\u00d9\2\2\u0300\u0302\5") + buf.write("\u02fa\3\2\2\2\u02fa\u02fb\7\u00d9\2\2\u02fb\u032d\3\2") + buf.write("\2\2\u02fc\u02fd\7\u0083\2\2\u02fd\u02fe\7\u00d8\2\2\u02fe") + buf.write("\u0301\5\32\16\2\u02ff\u0300\7\u00da\2\2\u0300\u0302\5") buf.write("\32\16\2\u0301\u02ff\3\2\2\2\u0301\u0302\3\2\2\2\u0302") - buf.write("\u0303\3\2\2\2\u0303\u0304\7\u00d8\2\2\u0304\u032d\3\2") - buf.write("\2\2\u0305\u0306\7\u0084\2\2\u0306\u0307\7\u00d7\2\2\u0307") - buf.write("\u030a\5\32\16\2\u0308\u0309\7\u00d9\2\2\u0309\u030b\5") + buf.write("\u0303\3\2\2\2\u0303\u0304\7\u00d9\2\2\u0304\u032d\3\2") + buf.write("\2\2\u0305\u0306\7\u0084\2\2\u0306\u0307\7\u00d8\2\2\u0307") + buf.write("\u030a\5\32\16\2\u0308\u0309\7\u00da\2\2\u0309\u030b\5") buf.write("\32\16\2\u030a\u0308\3\2\2\2\u030a\u030b\3\2\2\2\u030b") - buf.write("\u030c\3\2\2\2\u030c\u030d\7\u00d8\2\2\u030d\u032d\3\2") - buf.write("\2\2\u030e\u030f\7w\2\2\u030f\u0310\7\u00d7\2\2\u0310") - buf.write("\u0311\5\32\16\2\u0311\u0312\7\u00d8\2\2\u0312\u032d\3") - buf.write("\2\2\2\u0313\u0314\7x\2\2\u0314\u0315\7\u00d7\2\2\u0315") - buf.write("\u0316\5\32\16\2\u0316\u0317\7\u00d8\2\2\u0317\u032d\3") - buf.write("\2\2\2\u0318\u0319\7a\2\2\u0319\u031a\7\u00d7\2\2\u031a") - buf.write("\u031b\5\32\16\2\u031b\u031c\7\u00d8\2\2\u031c\u032d\3") - buf.write("\2\2\2\u031d\u031e\7b\2\2\u031e\u031f\7\u00d7\2\2\u031f") - buf.write("\u0320\5\32\16\2\u0320\u0321\7\u00d8\2\2\u0321\u032d\3") - buf.write("\2\2\2\u0322\u0323\7\u0091\2\2\u0323\u0324\7\u00d7\2\2") - buf.write("\u0324\u0325\5\32\16\2\u0325\u0326\7\u00d8\2\2\u0326\u032d") - buf.write("\3\2\2\2\u0327\u0328\7\u0092\2\2\u0328\u0329\7\u00d7\2") - buf.write("\2\u0329\u032a\5\32\16\2\u032a\u032b\7\u00d8\2\2\u032b") + buf.write("\u030c\3\2\2\2\u030c\u030d\7\u00d9\2\2\u030d\u032d\3\2") + buf.write("\2\2\u030e\u030f\7w\2\2\u030f\u0310\7\u00d8\2\2\u0310") + buf.write("\u0311\5\32\16\2\u0311\u0312\7\u00d9\2\2\u0312\u032d\3") + buf.write("\2\2\2\u0313\u0314\7x\2\2\u0314\u0315\7\u00d8\2\2\u0315") + buf.write("\u0316\5\32\16\2\u0316\u0317\7\u00d9\2\2\u0317\u032d\3") + buf.write("\2\2\2\u0318\u0319\7a\2\2\u0319\u031a\7\u00d8\2\2\u031a") + buf.write("\u031b\5\32\16\2\u031b\u031c\7\u00d9\2\2\u031c\u032d\3") + buf.write("\2\2\2\u031d\u031e\7b\2\2\u031e\u031f\7\u00d8\2\2\u031f") + buf.write("\u0320\5\32\16\2\u0320\u0321\7\u00d9\2\2\u0321\u032d\3") + buf.write("\2\2\2\u0322\u0323\7\u0091\2\2\u0323\u0324\7\u00d8\2\2") + buf.write("\u0324\u0325\5\32\16\2\u0325\u0326\7\u00d9\2\2\u0326\u032d") + buf.write("\3\2\2\2\u0327\u0328\7\u0092\2\2\u0328\u0329\7\u00d8\2") + buf.write("\2\u0329\u032a\5\32\16\2\u032a\u032b\7\u00d9\2\2\u032b") buf.write("\u032d\3\2\2\2\u032c\u0167\3\2\2\2\u032c\u016c\3\2\2\2") buf.write("\u032c\u0171\3\2\2\2\u032c\u0176\3\2\2\2\u032c\u017b\3") buf.write("\2\2\2\u032c\u0180\3\2\2\2\u032c\u0185\3\2\2\2\u032c\u018a") @@ -537,152 +538,152 @@ def serializedATN(): buf.write("\2\2\2\u032c\u02fc\3\2\2\2\u032c\u0305\3\2\2\2\u032c\u030e") buf.write("\3\2\2\2\u032c\u0313\3\2\2\2\u032c\u0318\3\2\2\2\u032c") buf.write("\u031d\3\2\2\2\u032c\u0322\3\2\2\2\u032c\u0327\3\2\2\2") - buf.write("\u032d\63\3\2\2\2\u032e\u032f\7\37\2\2\u032f\u0330\7\u00d7") - buf.write("\2\2\u0330\u0331\5\32\16\2\u0331\u0332\7\u00d9\2\2\u0332") - buf.write("\u0333\5\32\16\2\u0333\u0334\7\u00d8\2\2\u0334\u048f\3") - buf.write("\2\2\2\u0335\u0336\7\t\2\2\u0336\u0337\7\u00d7\2\2\u0337") - buf.write("\u0338\5\32\16\2\u0338\u0339\7\u00d9\2\2\u0339\u033a\5") - buf.write("\32\16\2\u033a\u033b\7\u00d8\2\2\u033b\u048f\3\2\2\2\u033c") - buf.write("\u033d\7\27\2\2\u033d\u033e\7\u00d7\2\2\u033e\u033f\5") - buf.write("\32\16\2\u033f\u0340\7\u00d9\2\2\u0340\u0341\5\32\16\2") - buf.write("\u0341\u0342\7\u00d8\2\2\u0342\u048f\3\2\2\2\u0343\u0344") - buf.write("\7\30\2\2\u0344\u0345\7\u00d7\2\2\u0345\u0346\5\32\16") - buf.write("\2\u0346\u0347\7\u00d9\2\2\u0347\u0348\5\32\16\2\u0348") - buf.write("\u0349\7\u00d8\2\2\u0349\u048f\3\2\2\2\u034a\u034b\7\32") - buf.write("\2\2\u034b\u034c\7\u00d7\2\2\u034c\u034f\5\32\16\2\u034d") - buf.write("\u034e\7\u00d9\2\2\u034e\u0350\5\32\16\2\u034f\u034d\3") + buf.write("\u032d\63\3\2\2\2\u032e\u032f\7\37\2\2\u032f\u0330\7\u00d8") + buf.write("\2\2\u0330\u0331\5\32\16\2\u0331\u0332\7\u00da\2\2\u0332") + buf.write("\u0333\5\32\16\2\u0333\u0334\7\u00d9\2\2\u0334\u048f\3") + buf.write("\2\2\2\u0335\u0336\7\t\2\2\u0336\u0337\7\u00d8\2\2\u0337") + buf.write("\u0338\5\32\16\2\u0338\u0339\7\u00da\2\2\u0339\u033a\5") + buf.write("\32\16\2\u033a\u033b\7\u00d9\2\2\u033b\u048f\3\2\2\2\u033c") + buf.write("\u033d\7\27\2\2\u033d\u033e\7\u00d8\2\2\u033e\u033f\5") + buf.write("\32\16\2\u033f\u0340\7\u00da\2\2\u0340\u0341\5\32\16\2") + buf.write("\u0341\u0342\7\u00d9\2\2\u0342\u048f\3\2\2\2\u0343\u0344") + buf.write("\7\30\2\2\u0344\u0345\7\u00d8\2\2\u0345\u0346\5\32\16") + buf.write("\2\u0346\u0347\7\u00da\2\2\u0347\u0348\5\32\16\2\u0348") + buf.write("\u0349\7\u00d9\2\2\u0349\u048f\3\2\2\2\u034a\u034b\7\32") + buf.write("\2\2\u034b\u034c\7\u00d8\2\2\u034c\u034f\5\32\16\2\u034d") + buf.write("\u034e\7\u00da\2\2\u034e\u0350\5\32\16\2\u034f\u034d\3") buf.write("\2\2\2\u034f\u0350\3\2\2\2\u0350\u0351\3\2\2\2\u0351\u0352") - buf.write("\7\u00d8\2\2\u0352\u048f\3\2\2\2\u0353\u0354\7)\2\2\u0354") - buf.write("\u0355\7\u00d7\2\2\u0355\u0356\5\32\16\2\u0356\u0357\7") - buf.write("\u00d9\2\2\u0357\u0358\5\32\16\2\u0358\u0359\7\u00d8\2") + buf.write("\7\u00d9\2\2\u0352\u048f\3\2\2\2\u0353\u0354\7)\2\2\u0354") + buf.write("\u0355\7\u00d8\2\2\u0355\u0356\5\32\16\2\u0356\u0357\7") + buf.write("\u00da\2\2\u0357\u0358\5\32\16\2\u0358\u0359\7\u00d9\2") buf.write("\2\u0359\u048f\3\2\2\2\u035a\u035b\79\2\2\u035b\u035c") - buf.write("\7\u00d7\2\2\u035c\u035d\5\32\16\2\u035d\u035e\7\u00d9") - buf.write("\2\2\u035e\u035f\5\32\16\2\u035f\u0360\7\u00d8\2\2\u0360") - buf.write("\u048f\3\2\2\2\u0361\u0362\7:\2\2\u0362\u0363\7\u00d7") - buf.write("\2\2\u0363\u0364\5\32\16\2\u0364\u0365\7\u00d9\2\2\u0365") - buf.write("\u0366\5\32\16\2\u0366\u0367\7\u00d8\2\2\u0367\u048f\3") - buf.write("\2\2\2\u0368\u0369\7@\2\2\u0369\u036a\7\u00d7\2\2\u036a") - buf.write("\u036b\5\32\16\2\u036b\u036c\7\u00d9\2\2\u036c\u036d\5") - buf.write("\32\16\2\u036d\u036e\7\u00d8\2\2\u036e\u048f\3\2\2\2\u036f") - buf.write("\u0370\7A\2\2\u0370\u0371\7\u00d7\2\2\u0371\u0372\5\32") - buf.write("\16\2\u0372\u0373\7\u00d9\2\2\u0373\u0374\5\32\16\2\u0374") - buf.write("\u0375\7\u00d8\2\2\u0375\u048f\3\2\2\2\u0376\u0377\7B") - buf.write("\2\2\u0377\u0378\7\u00d7\2\2\u0378\u0379\5\32\16\2\u0379") - buf.write("\u037a\7\u00d9\2\2\u037a\u037b\5\32\16\2\u037b\u037c\7") - buf.write("\u00d8\2\2\u037c\u048f\3\2\2\2\u037d\u037e\7C\2\2\u037e") - buf.write("\u037f\7\u00d7\2\2\u037f\u0380\5\32\16\2\u0380\u0381\7") - buf.write("\u00d9\2\2\u0381\u0382\5\32\16\2\u0382\u0383\7\u00d8\2") + buf.write("\7\u00d8\2\2\u035c\u035d\5\32\16\2\u035d\u035e\7\u00da") + buf.write("\2\2\u035e\u035f\5\32\16\2\u035f\u0360\7\u00d9\2\2\u0360") + buf.write("\u048f\3\2\2\2\u0361\u0362\7:\2\2\u0362\u0363\7\u00d8") + buf.write("\2\2\u0363\u0364\5\32\16\2\u0364\u0365\7\u00da\2\2\u0365") + buf.write("\u0366\5\32\16\2\u0366\u0367\7\u00d9\2\2\u0367\u048f\3") + buf.write("\2\2\2\u0368\u0369\7@\2\2\u0369\u036a\7\u00d8\2\2\u036a") + buf.write("\u036b\5\32\16\2\u036b\u036c\7\u00da\2\2\u036c\u036d\5") + buf.write("\32\16\2\u036d\u036e\7\u00d9\2\2\u036e\u048f\3\2\2\2\u036f") + buf.write("\u0370\7A\2\2\u0370\u0371\7\u00d8\2\2\u0371\u0372\5\32") + buf.write("\16\2\u0372\u0373\7\u00da\2\2\u0373\u0374\5\32\16\2\u0374") + buf.write("\u0375\7\u00d9\2\2\u0375\u048f\3\2\2\2\u0376\u0377\7B") + buf.write("\2\2\u0377\u0378\7\u00d8\2\2\u0378\u0379\5\32\16\2\u0379") + buf.write("\u037a\7\u00da\2\2\u037a\u037b\5\32\16\2\u037b\u037c\7") + buf.write("\u00d9\2\2\u037c\u048f\3\2\2\2\u037d\u037e\7C\2\2\u037e") + buf.write("\u037f\7\u00d8\2\2\u037f\u0380\5\32\16\2\u0380\u0381\7") + buf.write("\u00da\2\2\u0381\u0382\5\32\16\2\u0382\u0383\7\u00d9\2") buf.write("\2\u0383\u048f\3\2\2\2\u0384\u0385\7W\2\2\u0385\u0386") - buf.write("\7\u00d7\2\2\u0386\u0387\5\32\16\2\u0387\u0388\7\u00d9") - buf.write("\2\2\u0388\u0389\5\32\16\2\u0389\u038a\7\u00d8\2\2\u038a") - buf.write("\u048f\3\2\2\2\u038b\u038c\7\u00a5\2\2\u038c\u038d\7\u00d7") - buf.write("\2\2\u038d\u038e\5\32\16\2\u038e\u038f\7\u00d9\2\2\u038f") - buf.write("\u0390\5\32\16\2\u0390\u0391\7\u00d8\2\2\u0391\u048f\3") - buf.write("\2\2\2\u0392\u0393\7\u00a6\2\2\u0393\u0394\7\u00d7\2\2") - buf.write("\u0394\u0395\5\32\16\2\u0395\u0396\7\u00d9\2\2\u0396\u0397") - buf.write("\5\32\16\2\u0397\u0398\7\u00d8\2\2\u0398\u048f\3\2\2\2") - buf.write("\u0399\u039a\7\u00a4\2\2\u039a\u039b\7\u00d7\2\2\u039b") - buf.write("\u039c\5\32\16\2\u039c\u039d\7\u00d9\2\2\u039d\u039e\5") - buf.write("\32\16\2\u039e\u039f\7\u00d8\2\2\u039f\u048f\3\2\2\2\u03a0") - buf.write("\u03a1\7\u00aa\2\2\u03a1\u03a2\7\u00d7\2\2\u03a2\u03a3") - buf.write("\5\32\16\2\u03a3\u03a4\7\u00d9\2\2\u03a4\u03a5\5\32\16") - buf.write("\2\u03a5\u03a6\7\u00d8\2\2\u03a6\u048f\3\2\2\2\u03a7\u03a8") - buf.write("\7\u00ab\2\2\u03a8\u03a9\7\u00d7\2\2\u03a9\u03aa\5\32") - buf.write("\16\2\u03aa\u03ab\7\u00d9\2\2\u03ab\u03ac\5\32\16\2\u03ac") - buf.write("\u03ad\7\u00d8\2\2\u03ad\u048f\3\2\2\2\u03ae\u03af\7[") - buf.write("\2\2\u03af\u03b0\7\u00d7\2\2\u03b0\u03b1\5\32\16\2\u03b1") - buf.write("\u03b2\7\u00d9\2\2\u03b2\u03b3\5\32\16\2\u03b3\u03b4\7") - buf.write("\u00d8\2\2\u03b4\u048f\3\2\2\2\u03b5\u03b6\7\64\2\2\u03b6") - buf.write("\u03b7\7\u00d7\2\2\u03b7\u03b8\5\32\16\2\u03b8\u03b9\7") - buf.write("\u00d9\2\2\u03b9\u03ba\5\32\16\2\u03ba\u03bb\7\u00d8\2") + buf.write("\7\u00d8\2\2\u0386\u0387\5\32\16\2\u0387\u0388\7\u00da") + buf.write("\2\2\u0388\u0389\5\32\16\2\u0389\u038a\7\u00d9\2\2\u038a") + buf.write("\u048f\3\2\2\2\u038b\u038c\7\u00a5\2\2\u038c\u038d\7\u00d8") + buf.write("\2\2\u038d\u038e\5\32\16\2\u038e\u038f\7\u00da\2\2\u038f") + buf.write("\u0390\5\32\16\2\u0390\u0391\7\u00d9\2\2\u0391\u048f\3") + buf.write("\2\2\2\u0392\u0393\7\u00a6\2\2\u0393\u0394\7\u00d8\2\2") + buf.write("\u0394\u0395\5\32\16\2\u0395\u0396\7\u00da\2\2\u0396\u0397") + buf.write("\5\32\16\2\u0397\u0398\7\u00d9\2\2\u0398\u048f\3\2\2\2") + buf.write("\u0399\u039a\7\u00a4\2\2\u039a\u039b\7\u00d8\2\2\u039b") + buf.write("\u039c\5\32\16\2\u039c\u039d\7\u00da\2\2\u039d\u039e\5") + buf.write("\32\16\2\u039e\u039f\7\u00d9\2\2\u039f\u048f\3\2\2\2\u03a0") + buf.write("\u03a1\7\u00aa\2\2\u03a1\u03a2\7\u00d8\2\2\u03a2\u03a3") + buf.write("\5\32\16\2\u03a3\u03a4\7\u00da\2\2\u03a4\u03a5\5\32\16") + buf.write("\2\u03a5\u03a6\7\u00d9\2\2\u03a6\u048f\3\2\2\2\u03a7\u03a8") + buf.write("\7\u00ab\2\2\u03a8\u03a9\7\u00d8\2\2\u03a9\u03aa\5\32") + buf.write("\16\2\u03aa\u03ab\7\u00da\2\2\u03ab\u03ac\5\32\16\2\u03ac") + buf.write("\u03ad\7\u00d9\2\2\u03ad\u048f\3\2\2\2\u03ae\u03af\7[") + buf.write("\2\2\u03af\u03b0\7\u00d8\2\2\u03b0\u03b1\5\32\16\2\u03b1") + buf.write("\u03b2\7\u00da\2\2\u03b2\u03b3\5\32\16\2\u03b3\u03b4\7") + buf.write("\u00d9\2\2\u03b4\u048f\3\2\2\2\u03b5\u03b6\7\64\2\2\u03b6") + buf.write("\u03b7\7\u00d8\2\2\u03b7\u03b8\5\32\16\2\u03b8\u03b9\7") + buf.write("\u00da\2\2\u03b9\u03ba\5\32\16\2\u03ba\u03bb\7\u00d9\2") buf.write("\2\u03bb\u048f\3\2\2\2\u03bc\u03bd\7J\2\2\u03bd\u03be") - buf.write("\7\u00d7\2\2\u03be\u03bf\5\32\16\2\u03bf\u03c0\7\u00d9") - buf.write("\2\2\u03c0\u03c3\5\32\16\2\u03c1\u03c2\7\u00d9\2\2\u03c2") + buf.write("\7\u00d8\2\2\u03be\u03bf\5\32\16\2\u03bf\u03c0\7\u00da") + buf.write("\2\2\u03c0\u03c3\5\32\16\2\u03c1\u03c2\7\u00da\2\2\u03c2") buf.write("\u03c4\5\32\16\2\u03c3\u03c1\3\2\2\2\u03c3\u03c4\3\2\2") - buf.write("\2\u03c4\u03c5\3\2\2\2\u03c5\u03c6\7\u00d8\2\2\u03c6\u048f") - buf.write("\3\2\2\2\u03c7\u03c8\7O\2\2\u03c8\u03c9\7\u00d7\2\2\u03c9") - buf.write("\u03ca\5\32\16\2\u03ca\u03cb\7\u00d9\2\2\u03cb\u03cc\5") - buf.write("\32\16\2\u03cc\u03cd\7\u00d8\2\2\u03cd\u048f\3\2\2\2\u03ce") - buf.write("\u03cf\7P\2\2\u03cf\u03d0\7\u00d7\2\2\u03d0\u03d1\5\32") - buf.write("\16\2\u03d1\u03d2\7\u00d9\2\2\u03d2\u03d3\5\32\16\2\u03d3") - buf.write("\u03d4\7\u00d8\2\2\u03d4\u048f\3\2\2\2\u03d5\u03d6\7^") - buf.write("\2\2\u03d6\u03d7\7\u00d7\2\2\u03d7\u03d8\5\32\16\2\u03d8") - buf.write("\u03d9\7\u00d9\2\2\u03d9\u03da\5\32\16\2\u03da\u03db\7") - buf.write("\u00d8\2\2\u03db\u048f\3\2\2\2\u03dc\u03dd\7q\2\2\u03dd") - buf.write("\u03de\7\u00d7\2\2\u03de\u03df\5\32\16\2\u03df\u03e0\7") - buf.write("\u00d9\2\2\u03e0\u03e1\5\32\16\2\u03e1\u03e2\7\u00d8\2") + buf.write("\2\u03c4\u03c5\3\2\2\2\u03c5\u03c6\7\u00d9\2\2\u03c6\u048f") + buf.write("\3\2\2\2\u03c7\u03c8\7O\2\2\u03c8\u03c9\7\u00d8\2\2\u03c9") + buf.write("\u03ca\5\32\16\2\u03ca\u03cb\7\u00da\2\2\u03cb\u03cc\5") + buf.write("\32\16\2\u03cc\u03cd\7\u00d9\2\2\u03cd\u048f\3\2\2\2\u03ce") + buf.write("\u03cf\7P\2\2\u03cf\u03d0\7\u00d8\2\2\u03d0\u03d1\5\32") + buf.write("\16\2\u03d1\u03d2\7\u00da\2\2\u03d2\u03d3\5\32\16\2\u03d3") + buf.write("\u03d4\7\u00d9\2\2\u03d4\u048f\3\2\2\2\u03d5\u03d6\7^") + buf.write("\2\2\u03d6\u03d7\7\u00d8\2\2\u03d7\u03d8\5\32\16\2\u03d8") + buf.write("\u03d9\7\u00da\2\2\u03d9\u03da\5\32\16\2\u03da\u03db\7") + buf.write("\u00d9\2\2\u03db\u048f\3\2\2\2\u03dc\u03dd\7q\2\2\u03dd") + buf.write("\u03de\7\u00d8\2\2\u03de\u03df\5\32\16\2\u03df\u03e0\7") + buf.write("\u00da\2\2\u03e0\u03e1\5\32\16\2\u03e1\u03e2\7\u00d9\2") buf.write("\2\u03e2\u048f\3\2\2\2\u03e3\u03e4\7\\\2\2\u03e4\u03e5") - buf.write("\7\u00d7\2\2\u03e5\u03e6\5\32\16\2\u03e6\u03e7\7\u00d9") - buf.write("\2\2\u03e7\u03e8\5\32\16\2\u03e8\u03e9\7\u00d8\2\2\u03e9") - buf.write("\u048f\3\2\2\2\u03ea\u03eb\7p\2\2\u03eb\u03ec\7\u00d7") - buf.write("\2\2\u03ec\u03f3\5*\26\2\u03ed\u03ee\7\u00d9\2\2\u03ee") - buf.write("\u03f1\5\32\16\2\u03ef\u03f0\7\u00d9\2\2\u03f0\u03f2\5") + buf.write("\7\u00d8\2\2\u03e5\u03e6\5\32\16\2\u03e6\u03e7\7\u00da") + buf.write("\2\2\u03e7\u03e8\5\32\16\2\u03e8\u03e9\7\u00d9\2\2\u03e9") + buf.write("\u048f\3\2\2\2\u03ea\u03eb\7p\2\2\u03eb\u03ec\7\u00d8") + buf.write("\2\2\u03ec\u03f3\5*\26\2\u03ed\u03ee\7\u00da\2\2\u03ee") + buf.write("\u03f1\5\32\16\2\u03ef\u03f0\7\u00da\2\2\u03f0\u03f2\5") buf.write("\32\16\2\u03f1\u03ef\3\2\2\2\u03f1\u03f2\3\2\2\2\u03f2") buf.write("\u03f4\3\2\2\2\u03f3\u03ed\3\2\2\2\u03f3\u03f4\3\2\2\2") - buf.write("\u03f4\u03f5\3\2\2\2\u03f5\u03f6\7\u00d8\2\2\u03f6\u048f") - buf.write("\3\2\2\2\u03f7\u03f8\7f\2\2\u03f8\u03f9\7\u00d7\2\2\u03f9") - buf.write("\u03fa\5\32\16\2\u03fa\u03fb\7\u00d9\2\2\u03fb\u03fc\5") - buf.write("\32\16\2\u03fc\u03fd\7\u00d8\2\2\u03fd\u048f\3\2\2\2\u03fe") - buf.write("\u03ff\7g\2\2\u03ff\u0400\7\u00d7\2\2\u0400\u0401\5\32") - buf.write("\16\2\u0401\u0402\7\u00d9\2\2\u0402\u0403\5\32\16\2\u0403") - buf.write("\u0404\7\u00d8\2\2\u0404\u048f\3\2\2\2\u0405\u0406\7h") - buf.write("\2\2\u0406\u0407\7\u00d7\2\2\u0407\u0408\5\32\16\2\u0408") - buf.write("\u0409\7\u00d9\2\2\u0409\u040a\5\32\16\2\u040a\u040b\7") - buf.write("\u00d8\2\2\u040b\u048f\3\2\2\2\u040c\u040d\7]\2\2\u040d") - buf.write("\u040e\7\u00d7\2\2\u040e\u040f\5\32\16\2\u040f\u0410\7") - buf.write("\u00d9\2\2\u0410\u0411\5\32\16\2\u0411\u0412\7\u00d8\2") + buf.write("\u03f4\u03f5\3\2\2\2\u03f5\u03f6\7\u00d9\2\2\u03f6\u048f") + buf.write("\3\2\2\2\u03f7\u03f8\7f\2\2\u03f8\u03f9\7\u00d8\2\2\u03f9") + buf.write("\u03fa\5\32\16\2\u03fa\u03fb\7\u00da\2\2\u03fb\u03fc\5") + buf.write("\32\16\2\u03fc\u03fd\7\u00d9\2\2\u03fd\u048f\3\2\2\2\u03fe") + buf.write("\u03ff\7g\2\2\u03ff\u0400\7\u00d8\2\2\u0400\u0401\5\32") + buf.write("\16\2\u0401\u0402\7\u00da\2\2\u0402\u0403\5\32\16\2\u0403") + buf.write("\u0404\7\u00d9\2\2\u0404\u048f\3\2\2\2\u0405\u0406\7h") + buf.write("\2\2\u0406\u0407\7\u00d8\2\2\u0407\u0408\5\32\16\2\u0408") + buf.write("\u0409\7\u00da\2\2\u0409\u040a\5\32\16\2\u040a\u040b\7") + buf.write("\u00d9\2\2\u040b\u048f\3\2\2\2\u040c\u040d\7]\2\2\u040d") + buf.write("\u040e\7\u00d8\2\2\u040e\u040f\5\32\16\2\u040f\u0410\7") + buf.write("\u00da\2\2\u0410\u0411\5\32\16\2\u0411\u0412\7\u00d9\2") buf.write("\2\u0412\u048f\3\2\2\2\u0413\u0414\7i\2\2\u0414\u0415") - buf.write("\7\u00d7\2\2\u0415\u0416\5\32\16\2\u0416\u0417\7\u00d9") - buf.write("\2\2\u0417\u0422\5\32\16\2\u0418\u0419\7\u00d9\2\2\u0419") - buf.write("\u0420\5\32\16\2\u041a\u041b\7\u00d9\2\2\u041b\u041e\5") - buf.write("\32\16\2\u041c\u041d\7\u00d9\2\2\u041d\u041f\5\32\16\2") + buf.write("\7\u00d8\2\2\u0415\u0416\5\32\16\2\u0416\u0417\7\u00da") + buf.write("\2\2\u0417\u0422\5\32\16\2\u0418\u0419\7\u00da\2\2\u0419") + buf.write("\u0420\5\32\16\2\u041a\u041b\7\u00da\2\2\u041b\u041e\5") + buf.write("\32\16\2\u041c\u041d\7\u00da\2\2\u041d\u041f\5\32\16\2") buf.write("\u041e\u041c\3\2\2\2\u041e\u041f\3\2\2\2\u041f\u0421\3") buf.write("\2\2\2\u0420\u041a\3\2\2\2\u0420\u0421\3\2\2\2\u0421\u0423") buf.write("\3\2\2\2\u0422\u0418\3\2\2\2\u0422\u0423\3\2\2\2\u0423") - buf.write("\u0424\3\2\2\2\u0424\u0425\7\u00d8\2\2\u0425\u048f\3\2") - buf.write("\2\2\u0426\u0427\7m\2\2\u0427\u0428\7\u00d7\2\2\u0428") - buf.write("\u0429\5\32\16\2\u0429\u042a\7\u00d9\2\2\u042a\u042b\5") - buf.write("\32\16\2\u042b\u042c\7\u00d8\2\2\u042c\u048f\3\2\2\2\u042d") - buf.write("\u042e\7n\2\2\u042e\u042f\7\u00d7\2\2\u042f\u0430\5\32") - buf.write("\16\2\u0430\u0431\7\u00d9\2\2\u0431\u0432\5\32\16\2\u0432") - buf.write("\u0433\7\u00d8\2\2\u0433\u048f\3\2\2\2\u0434\u0435\7o") - buf.write("\2\2\u0435\u0436\7\u00d7\2\2\u0436\u0437\5\32\16\2\u0437") - buf.write("\u0438\7\u00d9\2\2\u0438\u0439\5\32\16\2\u0439\u043a\7") - buf.write("\u00d8\2\2\u043a\u048f\3\2\2\2\u043b\u043c\7|\2\2\u043c") - buf.write("\u043d\7\u00d7\2\2\u043d\u0440\5\32\16\2\u043e\u043f\7") - buf.write("\u00d9\2\2\u043f\u0441\5\32\16\2\u0440\u043e\3\2\2\2\u0440") - buf.write("\u0441\3\2\2\2\u0441\u0442\3\2\2\2\u0442\u0443\7\u00d8") + buf.write("\u0424\3\2\2\2\u0424\u0425\7\u00d9\2\2\u0425\u048f\3\2") + buf.write("\2\2\u0426\u0427\7m\2\2\u0427\u0428\7\u00d8\2\2\u0428") + buf.write("\u0429\5\32\16\2\u0429\u042a\7\u00da\2\2\u042a\u042b\5") + buf.write("\32\16\2\u042b\u042c\7\u00d9\2\2\u042c\u048f\3\2\2\2\u042d") + buf.write("\u042e\7n\2\2\u042e\u042f\7\u00d8\2\2\u042f\u0430\5\32") + buf.write("\16\2\u0430\u0431\7\u00da\2\2\u0431\u0432\5\32\16\2\u0432") + buf.write("\u0433\7\u00d9\2\2\u0433\u048f\3\2\2\2\u0434\u0435\7o") + buf.write("\2\2\u0435\u0436\7\u00d8\2\2\u0436\u0437\5\32\16\2\u0437") + buf.write("\u0438\7\u00da\2\2\u0438\u0439\5\32\16\2\u0439\u043a\7") + buf.write("\u00d9\2\2\u043a\u048f\3\2\2\2\u043b\u043c\7|\2\2\u043c") + buf.write("\u043d\7\u00d8\2\2\u043d\u0440\5\32\16\2\u043e\u043f\7") + buf.write("\u00da\2\2\u043f\u0441\5\32\16\2\u0440\u043e\3\2\2\2\u0440") + buf.write("\u0441\3\2\2\2\u0441\u0442\3\2\2\2\u0442\u0443\7\u00d9") buf.write("\2\2\u0443\u048f\3\2\2\2\u0444\u0445\7}\2\2\u0445\u0446") - buf.write("\7\u00d7\2\2\u0446\u0449\5\32\16\2\u0447\u0448\7\u00d9") + buf.write("\7\u00d8\2\2\u0446\u0449\5\32\16\2\u0447\u0448\7\u00da") buf.write("\2\2\u0448\u044a\5\32\16\2\u0449\u0447\3\2\2\2\u0449\u044a") - buf.write("\3\2\2\2\u044a\u044b\3\2\2\2\u044b\u044c\7\u00d8\2\2\u044c") - buf.write("\u048f\3\2\2\2\u044d\u044e\7~\2\2\u044e\u044f\7\u00d7") - buf.write("\2\2\u044f\u0450\5\32\16\2\u0450\u0451\7\u00d9\2\2\u0451") - buf.write("\u0454\5\32\16\2\u0452\u0453\7\u00d9\2\2\u0453\u0455\5") + buf.write("\3\2\2\2\u044a\u044b\3\2\2\2\u044b\u044c\7\u00d9\2\2\u044c") + buf.write("\u048f\3\2\2\2\u044d\u044e\7~\2\2\u044e\u044f\7\u00d8") + buf.write("\2\2\u044f\u0450\5\32\16\2\u0450\u0451\7\u00da\2\2\u0451") + buf.write("\u0454\5\32\16\2\u0452\u0453\7\u00da\2\2\u0453\u0455\5") buf.write("\32\16\2\u0454\u0452\3\2\2\2\u0454\u0455\3\2\2\2\u0455") - buf.write("\u0456\3\2\2\2\u0456\u0457\7\u00d8\2\2\u0457\u048f\3\2") - buf.write("\2\2\u0458\u0459\7\177\2\2\u0459\u045a\7\u00d7\2\2\u045a") - buf.write("\u045b\5\32\16\2\u045b\u045c\7\u00d9\2\2\u045c\u045d\5") - buf.write("\32\16\2\u045d\u045e\7\u00d8\2\2\u045e\u048f\3\2\2\2\u045f") - buf.write("\u0460\7\u0080\2\2\u0460\u0461\7\u00d7\2\2\u0461\u0462") - buf.write("\5\32\16\2\u0462\u0463\7\u00d9\2\2\u0463\u0464\5\32\16") - buf.write("\2\u0464\u0465\7\u00d9\2\2\u0465\u0466\5\32\16\2\u0466") - buf.write("\u0467\7\u00d8\2\2\u0467\u048f\3\2\2\2\u0468\u0469\7\u008b") - buf.write("\2\2\u0469\u046a\7\u00d7\2\2\u046a\u046b\5\32\16\2\u046b") - buf.write("\u046c\7\u00d8\2\2\u046c\u048f\3\2\2\2\u046d\u046e\7\u008c") - buf.write("\2\2\u046e\u046f\7\u00d7\2\2\u046f\u0475\5\32\16\2\u0470") - buf.write("\u0471\7\u00d9\2\2\u0471\u0472\5\32\16\2\u0472\u0473\7") - buf.write("\u00d9\2\2\u0473\u0474\5\32\16\2\u0474\u0476\3\2\2\2\u0475") + buf.write("\u0456\3\2\2\2\u0456\u0457\7\u00d9\2\2\u0457\u048f\3\2") + buf.write("\2\2\u0458\u0459\7\177\2\2\u0459\u045a\7\u00d8\2\2\u045a") + buf.write("\u045b\5\32\16\2\u045b\u045c\7\u00da\2\2\u045c\u045d\5") + buf.write("\32\16\2\u045d\u045e\7\u00d9\2\2\u045e\u048f\3\2\2\2\u045f") + buf.write("\u0460\7\u0080\2\2\u0460\u0461\7\u00d8\2\2\u0461\u0462") + buf.write("\5\32\16\2\u0462\u0463\7\u00da\2\2\u0463\u0464\5\32\16") + buf.write("\2\u0464\u0465\7\u00da\2\2\u0465\u0466\5\32\16\2\u0466") + buf.write("\u0467\7\u00d9\2\2\u0467\u048f\3\2\2\2\u0468\u0469\7\u008b") + buf.write("\2\2\u0469\u046a\7\u00d8\2\2\u046a\u046b\5\32\16\2\u046b") + buf.write("\u046c\7\u00d9\2\2\u046c\u048f\3\2\2\2\u046d\u046e\7\u008c") + buf.write("\2\2\u046e\u046f\7\u00d8\2\2\u046f\u0475\5\32\16\2\u0470") + buf.write("\u0471\7\u00da\2\2\u0471\u0472\5\32\16\2\u0472\u0473\7") + buf.write("\u00da\2\2\u0473\u0474\5\32\16\2\u0474\u0476\3\2\2\2\u0475") buf.write("\u0470\3\2\2\2\u0475\u0476\3\2\2\2\u0476\u0477\3\2\2\2") - buf.write("\u0477\u0478\7\u00d8\2\2\u0478\u048f\3\2\2\2\u0479\u047a") - buf.write("\7\u008d\2\2\u047a\u047b\7\u00d7\2\2\u047b\u047c\5\32") - buf.write("\16\2\u047c\u047d\7\u00d9\2\2\u047d\u047e\5\32\16\2\u047e") - buf.write("\u047f\7\u00d8\2\2\u047f\u048f\3\2\2\2\u0480\u0481\7\u008e") - buf.write("\2\2\u0481\u0482\7\u00d7\2\2\u0482\u0483\5\32\16\2\u0483") - buf.write("\u0484\7\u00d9\2\2\u0484\u0485\5\32\16\2\u0485\u0486\7") - buf.write("\u00d8\2\2\u0486\u048f\3\2\2\2\u0487\u0488\7\u008f\2\2") - buf.write("\u0488\u0489\7\u00d7\2\2\u0489\u048a\5\32\16\2\u048a\u048b") - buf.write("\7\u00d9\2\2\u048b\u048c\5\32\16\2\u048c\u048d\7\u00d8") + buf.write("\u0477\u0478\7\u00d9\2\2\u0478\u048f\3\2\2\2\u0479\u047a") + buf.write("\7\u008d\2\2\u047a\u047b\7\u00d8\2\2\u047b\u047c\5\32") + buf.write("\16\2\u047c\u047d\7\u00da\2\2\u047d\u047e\5\32\16\2\u047e") + buf.write("\u047f\7\u00d9\2\2\u047f\u048f\3\2\2\2\u0480\u0481\7\u008e") + buf.write("\2\2\u0481\u0482\7\u00d8\2\2\u0482\u0483\5\32\16\2\u0483") + buf.write("\u0484\7\u00da\2\2\u0484\u0485\5\32\16\2\u0485\u0486\7") + buf.write("\u00d9\2\2\u0486\u048f\3\2\2\2\u0487\u0488\7\u008f\2\2") + buf.write("\u0488\u0489\7\u00d8\2\2\u0489\u048a\5\32\16\2\u048a\u048b") + buf.write("\7\u00da\2\2\u048b\u048c\5\32\16\2\u048c\u048d\7\u00d9") buf.write("\2\2\u048d\u048f\3\2\2\2\u048e\u032e\3\2\2\2\u048e\u0335") buf.write("\3\2\2\2\u048e\u033c\3\2\2\2\u048e\u0343\3\2\2\2\u048e") buf.write("\u034a\3\2\2\2\u048e\u0353\3\2\2\2\u048e\u035a\3\2\2\2") @@ -700,343 +701,349 @@ def serializedATN(): buf.write("\u044d\3\2\2\2\u048e\u0458\3\2\2\2\u048e\u045f\3\2\2\2") buf.write("\u048e\u0468\3\2\2\2\u048e\u046d\3\2\2\2\u048e\u0479\3") buf.write("\2\2\2\u048e\u0480\3\2\2\2\u048e\u0487\3\2\2\2\u048f\65") - buf.write("\3\2\2\2\u0490\u0491\7!\2\2\u0491\u0492\7\u00d7\2\2\u0492") - buf.write("\u0493\5\32\16\2\u0493\u0494\7\u00d9\2\2\u0494\u0495\5") - buf.write("\32\16\2\u0495\u0496\7\u00d9\2\2\u0496\u0497\5\32\16\2") - buf.write("\u0497\u0498\7\u00d8\2\2\u0498\u058f\3\2\2\2\u0499\u049a") - buf.write("\7(\2\2\u049a\u049b\7\u00d7\2\2\u049b\u049c\5\32\16\2") - buf.write("\u049c\u049d\7\u00d9\2\2\u049d\u049e\5\32\16\2\u049e\u049f") - buf.write("\7\u00d9\2\2\u049f\u04a0\5\32\16\2\u04a0\u04a1\7\u00d8") - buf.write("\2\2\u04a1\u058f\3\2\2\2\u04a2\u04a3\7*\2\2\u04a3\u04a4") - buf.write("\7\u00d7\2\2\u04a4\u04a5\5\32\16\2\u04a5\u04a6\7\u00d9") - buf.write("\2\2\u04a6\u04a7\5\32\16\2\u04a7\u04a8\7\u00d9\2\2\u04a8") - buf.write("\u04a9\5\32\16\2\u04a9\u04aa\7\u00d8\2\2\u04aa\u058f\3") - buf.write("\2\2\2\u04ab\u04ac\7\66\2\2\u04ac\u04ad\7\u00d7\2\2\u04ad") - buf.write("\u04ae\5\32\16\2\u04ae\u04af\7\u00d9\2\2\u04af\u04b0\5") - buf.write("\32\16\2\u04b0\u04b1\7\u00d9\2\2\u04b1\u04b2\5\32\16\2") - buf.write("\u04b2\u04b3\7\u00d8\2\2\u04b3\u058f\3\2\2\2\u04b4\u04b5") - buf.write("\7D\2\2\u04b5\u04b6\7\u00d7\2\2\u04b6\u04b7\5\32\16\2") - buf.write("\u04b7\u04b8\7\u00d9\2\2\u04b8\u04b9\5\32\16\2\u04b9\u04ba") - buf.write("\7\u00d9\2\2\u04ba\u04bb\5\32\16\2\u04bb\u04bc\7\u00d8") - buf.write("\2\2\u04bc\u058f\3\2\2\2\u04bd\u04be\7Q\2\2\u04be\u04bf") - buf.write("\7\u00d7\2\2\u04bf\u04c0\5\32\16\2\u04c0\u04c1\7\u00d9") - buf.write("\2\2\u04c1\u04c2\5\32\16\2\u04c2\u04c3\7\u00d9\2\2\u04c3") - buf.write("\u04c4\5\32\16\2\u04c4\u04c5\7\u00d8\2\2\u04c5\u058f\3") - buf.write("\2\2\2\u04c6\u04c7\7R\2\2\u04c7\u04c8\7\u00d7\2\2\u04c8") - buf.write("\u04c9\5\32\16\2\u04c9\u04ca\7\u00d9\2\2\u04ca\u04cb\5") - buf.write("\32\16\2\u04cb\u04cc\7\u00d9\2\2\u04cc\u04cd\5\32\16\2") - buf.write("\u04cd\u04ce\7\u00d8\2\2\u04ce\u058f\3\2\2\2\u04cf\u04d0") - buf.write("\7S\2\2\u04d0\u04d1\7\u00d7\2\2\u04d1\u04d2\5\32\16\2") - buf.write("\u04d2\u04d3\7\u00d9\2\2\u04d3\u04d4\5\32\16\2\u04d4\u04d5") - buf.write("\7\u00d9\2\2\u04d5\u04d6\5\32\16\2\u04d6\u04d7\7\u00d8") - buf.write("\2\2\u04d7\u058f\3\2\2\2\u04d8\u04d9\7T\2\2\u04d9\u04da") - buf.write("\7\u00d7\2\2\u04da\u04db\5\32\16\2\u04db\u04dc\7\u00d9") - buf.write("\2\2\u04dc\u04dd\5\32\16\2\u04dd\u04de\7\u00d9\2\2\u04de") - buf.write("\u04df\5\32\16\2\u04df\u04e0\7\u00d8\2\2\u04e0\u058f\3") - buf.write("\2\2\2\u04e1\u04e2\7\u00ad\2\2\u04e2\u04e3\7\u00d7\2\2") - buf.write("\u04e3\u04e4\5\32\16\2\u04e4\u04e5\7\u00d9\2\2\u04e5\u04e6") - buf.write("\5\32\16\2\u04e6\u04e7\7\u00d9\2\2\u04e7\u04e8\5\32\16") - buf.write("\2\u04e8\u04e9\7\u00d8\2\2\u04e9\u058f\3\2\2\2\u04ea\u04eb") - buf.write("\7#\2\2\u04eb\u04ec\7\u00d7\2\2\u04ec\u04ef\5\32\16\2") - buf.write("\u04ed\u04ee\7\u00d9\2\2\u04ee\u04f0\5\32\16\2\u04ef\u04ed") + buf.write("\3\2\2\2\u0490\u0491\7!\2\2\u0491\u0492\7\u00d8\2\2\u0492") + buf.write("\u0493\5\32\16\2\u0493\u0494\7\u00da\2\2\u0494\u0495\5") + buf.write("\32\16\2\u0495\u0496\7\u00da\2\2\u0496\u0497\5\32\16\2") + buf.write("\u0497\u0498\7\u00d9\2\2\u0498\u059a\3\2\2\2\u0499\u049a") + buf.write("\7(\2\2\u049a\u049b\7\u00d8\2\2\u049b\u049c\5\32\16\2") + buf.write("\u049c\u049d\7\u00da\2\2\u049d\u049e\5\32\16\2\u049e\u049f") + buf.write("\7\u00da\2\2\u049f\u04a0\5\32\16\2\u04a0\u04a1\7\u00d9") + buf.write("\2\2\u04a1\u059a\3\2\2\2\u04a2\u04a3\7*\2\2\u04a3\u04a4") + buf.write("\7\u00d8\2\2\u04a4\u04a5\5\32\16\2\u04a5\u04a6\7\u00da") + buf.write("\2\2\u04a6\u04a7\5\32\16\2\u04a7\u04a8\7\u00da\2\2\u04a8") + buf.write("\u04a9\5\32\16\2\u04a9\u04aa\7\u00d9\2\2\u04aa\u059a\3") + buf.write("\2\2\2\u04ab\u04ac\7\66\2\2\u04ac\u04ad\7\u00d8\2\2\u04ad") + buf.write("\u04ae\5\32\16\2\u04ae\u04af\7\u00da\2\2\u04af\u04b0\5") + buf.write("\32\16\2\u04b0\u04b1\7\u00da\2\2\u04b1\u04b2\5\32\16\2") + buf.write("\u04b2\u04b3\7\u00d9\2\2\u04b3\u059a\3\2\2\2\u04b4\u04b5") + buf.write("\7D\2\2\u04b5\u04b6\7\u00d8\2\2\u04b6\u04b7\5\32\16\2") + buf.write("\u04b7\u04b8\7\u00da\2\2\u04b8\u04b9\5\32\16\2\u04b9\u04ba") + buf.write("\7\u00da\2\2\u04ba\u04bb\5\32\16\2\u04bb\u04bc\7\u00d9") + buf.write("\2\2\u04bc\u059a\3\2\2\2\u04bd\u04be\7Q\2\2\u04be\u04bf") + buf.write("\7\u00d8\2\2\u04bf\u04c0\5\32\16\2\u04c0\u04c1\7\u00da") + buf.write("\2\2\u04c1\u04c2\5\32\16\2\u04c2\u04c3\7\u00da\2\2\u04c3") + buf.write("\u04c4\5\32\16\2\u04c4\u04c5\7\u00d9\2\2\u04c5\u059a\3") + buf.write("\2\2\2\u04c6\u04c7\7R\2\2\u04c7\u04c8\7\u00d8\2\2\u04c8") + buf.write("\u04c9\5\32\16\2\u04c9\u04ca\7\u00da\2\2\u04ca\u04cb\5") + buf.write("\32\16\2\u04cb\u04cc\7\u00da\2\2\u04cc\u04cd\5\32\16\2") + buf.write("\u04cd\u04ce\7\u00d9\2\2\u04ce\u059a\3\2\2\2\u04cf\u04d0") + buf.write("\7S\2\2\u04d0\u04d1\7\u00d8\2\2\u04d1\u04d2\5\32\16\2") + buf.write("\u04d2\u04d3\7\u00da\2\2\u04d3\u04d4\5\32\16\2\u04d4\u04d5") + buf.write("\7\u00da\2\2\u04d5\u04d6\5\32\16\2\u04d6\u04d7\7\u00d9") + buf.write("\2\2\u04d7\u059a\3\2\2\2\u04d8\u04d9\7T\2\2\u04d9\u04da") + buf.write("\7\u00d8\2\2\u04da\u04db\5\32\16\2\u04db\u04dc\7\u00da") + buf.write("\2\2\u04dc\u04dd\5\32\16\2\u04dd\u04de\7\u00da\2\2\u04de") + buf.write("\u04df\5\32\16\2\u04df\u04e0\7\u00d9\2\2\u04e0\u059a\3") + buf.write("\2\2\2\u04e1\u04e2\7\u00ad\2\2\u04e2\u04e3\7\u00d8\2\2") + buf.write("\u04e3\u04e4\5\32\16\2\u04e4\u04e5\7\u00da\2\2\u04e5\u04e6") + buf.write("\5\32\16\2\u04e6\u04e7\7\u00da\2\2\u04e7\u04e8\5\32\16") + buf.write("\2\u04e8\u04e9\7\u00d9\2\2\u04e9\u059a\3\2\2\2\u04ea\u04eb") + buf.write("\7#\2\2\u04eb\u04ec\7\u00d8\2\2\u04ec\u04ef\5\32\16\2") + buf.write("\u04ed\u04ee\7\u00da\2\2\u04ee\u04f0\5\32\16\2\u04ef\u04ed") buf.write("\3\2\2\2\u04ef\u04f0\3\2\2\2\u04f0\u04f1\3\2\2\2\u04f1") - buf.write("\u04f2\7\u00d8\2\2\u04f2\u058f\3\2\2\2\u04f3\u04f4\7e") - buf.write("\2\2\u04f4\u04f5\7\u00d7\2\2\u04f5\u04f6\5\32\16\2\u04f6") - buf.write("\u04f7\7\u00d9\2\2\u04f7\u04f8\5\32\16\2\u04f8\u04f9\7") - buf.write("\u00d9\2\2\u04f9\u04fc\5\32\16\2\u04fa\u04fb\7\u00d9\2") + buf.write("\u04f2\7\u00d9\2\2\u04f2\u059a\3\2\2\2\u04f3\u04f4\7e") + buf.write("\2\2\u04f4\u04f5\7\u00d8\2\2\u04f5\u04f6\5\32\16\2\u04f6") + buf.write("\u04f7\7\u00da\2\2\u04f7\u04f8\5\32\16\2\u04f8\u04f9\7") + buf.write("\u00da\2\2\u04f9\u04fc\5\32\16\2\u04fa\u04fb\7\u00da\2") buf.write("\2\u04fb\u04fd\5\32\16\2\u04fc\u04fa\3\2\2\2\u04fc\u04fd") - buf.write("\3\2\2\2\u04fd\u04fe\3\2\2\2\u04fe\u04ff\7\u00d8\2\2\u04ff") - buf.write("\u058f\3\2\2\2\u0500\u0501\7\67\2\2\u0501\u0502\7\u00d7") - buf.write("\2\2\u0502\u0503\5\32\16\2\u0503\u0504\7\u00d9\2\2\u0504") - buf.write("\u0505\5\32\16\2\u0505\u0506\7\u00d9\2\2\u0506\u0507\5") - buf.write("\32\16\2\u0507\u0508\7\u00d8\2\2\u0508\u058f\3\2\2\2\u0509") - buf.write("\u050a\7\u00a9\2\2\u050a\u050b\7\u00d7\2\2\u050b\u050c") - buf.write("\5\32\16\2\u050c\u050d\7\u00d9\2\2\u050d\u0510\5\32\16") - buf.write("\2\u050e\u050f\7\u00d9\2\2\u050f\u0511\5\32\16\2\u0510") + buf.write("\3\2\2\2\u04fd\u04fe\3\2\2\2\u04fe\u04ff\7\u00d9\2\2\u04ff") + buf.write("\u059a\3\2\2\2\u0500\u0501\7\67\2\2\u0501\u0502\7\u00d8") + buf.write("\2\2\u0502\u0503\5\32\16\2\u0503\u0504\7\u00da\2\2\u0504") + buf.write("\u0505\5\32\16\2\u0505\u0506\7\u00da\2\2\u0506\u0507\5") + buf.write("\32\16\2\u0507\u0508\7\u00d9\2\2\u0508\u059a\3\2\2\2\u0509") + buf.write("\u050a\7\u00a9\2\2\u050a\u050b\7\u00d8\2\2\u050b\u050c") + buf.write("\5\32\16\2\u050c\u050d\7\u00da\2\2\u050d\u0510\5\32\16") + buf.write("\2\u050e\u050f\7\u00da\2\2\u050f\u0511\5\32\16\2\u0510") buf.write("\u050e\3\2\2\2\u0510\u0511\3\2\2\2\u0511\u0512\3\2\2\2") - buf.write("\u0512\u0513\7\u00d8\2\2\u0513\u058f\3\2\2\2\u0514\u0515") - buf.write("\7\u0085\2\2\u0515\u0516\7\u00d7\2\2\u0516\u051c\5\32") - buf.write("\16\2\u0517\u0518\7\u00d9\2\2\u0518\u0519\5\32\16\2\u0519") - buf.write("\u051a\7\u00d9\2\2\u051a\u051b\5\32\16\2\u051b\u051d\3") + buf.write("\u0512\u0513\7\u00d9\2\2\u0513\u059a\3\2\2\2\u0514\u0515") + buf.write("\7\u0085\2\2\u0515\u0516\7\u00d8\2\2\u0516\u051c\5\32") + buf.write("\16\2\u0517\u0518\7\u00da\2\2\u0518\u0519\5\32\16\2\u0519") + buf.write("\u051a\7\u00da\2\2\u051a\u051b\5\32\16\2\u051b\u051d\3") buf.write("\2\2\2\u051c\u0517\3\2\2\2\u051c\u051d\3\2\2\2\u051d\u051e") - buf.write("\3\2\2\2\u051e\u051f\7\u00d8\2\2\u051f\u058f\3\2\2\2\u0520") - buf.write("\u0521\7\u0086\2\2\u0521\u0522\7\u00d7\2\2\u0522\u0528") - buf.write("\5\32\16\2\u0523\u0524\7\u00d9\2\2\u0524\u0525\5\32\16") - buf.write("\2\u0525\u0526\7\u00d9\2\2\u0526\u0527\5\32\16\2\u0527") + buf.write("\3\2\2\2\u051e\u051f\7\u00d9\2\2\u051f\u059a\3\2\2\2\u0520") + buf.write("\u0521\7\u0086\2\2\u0521\u0522\7\u00d8\2\2\u0522\u0528") + buf.write("\5\32\16\2\u0523\u0524\7\u00da\2\2\u0524\u0525\5\32\16") + buf.write("\2\u0525\u0526\7\u00da\2\2\u0526\u0527\5\32\16\2\u0527") buf.write("\u0529\3\2\2\2\u0528\u0523\3\2\2\2\u0528\u0529\3\2\2\2") - buf.write("\u0529\u052a\3\2\2\2\u052a\u052b\7\u00d8\2\2\u052b\u058f") - buf.write("\3\2\2\2\u052c\u052d\7\u0089\2\2\u052d\u052e\7\u00d7\2") - buf.write("\2\u052e\u0534\5\32\16\2\u052f\u0530\7\u00d9\2\2\u0530") - buf.write("\u0531\5\32\16\2\u0531\u0532\7\u00d9\2\2\u0532\u0533\5") + buf.write("\u0529\u052a\3\2\2\2\u052a\u052b\7\u00d9\2\2\u052b\u059a") + buf.write("\3\2\2\2\u052c\u052d\7\u0089\2\2\u052d\u052e\7\u00d8\2") + buf.write("\2\u052e\u0534\5\32\16\2\u052f\u0530\7\u00da\2\2\u0530") + buf.write("\u0531\5\32\16\2\u0531\u0532\7\u00da\2\2\u0532\u0533\5") buf.write("\32\16\2\u0533\u0535\3\2\2\2\u0534\u052f\3\2\2\2\u0534") - buf.write("\u0535\3\2\2\2\u0535\u0538\3\2\2\2\u0536\u0537\7\u00d9") + buf.write("\u0535\3\2\2\2\u0535\u0538\3\2\2\2\u0536\u0537\7\u00da") buf.write("\2\2\u0537\u0539\5\32\16\2\u0538\u0536\3\2\2\2\u0538\u0539") - buf.write("\3\2\2\2\u0539\u053a\3\2\2\2\u053a\u053b\7\u00d8\2\2\u053b") - buf.write("\u058f\3\2\2\2\u053c\u053d\7\u008a\2\2\u053d\u053e\7\u00d7") - buf.write("\2\2\u053e\u0544\5\32\16\2\u053f\u0540\7\u00d9\2\2\u0540") - buf.write("\u0541\5\32\16\2\u0541\u0542\7\u00d9\2\2\u0542\u0543\5") + buf.write("\3\2\2\2\u0539\u053a\3\2\2\2\u053a\u053b\7\u00d9\2\2\u053b") + buf.write("\u059a\3\2\2\2\u053c\u053d\7\u008a\2\2\u053d\u053e\7\u00d8") + buf.write("\2\2\u053e\u0544\5\32\16\2\u053f\u0540\7\u00da\2\2\u0540") + buf.write("\u0541\5\32\16\2\u0541\u0542\7\u00da\2\2\u0542\u0543\5") buf.write("\32\16\2\u0543\u0545\3\2\2\2\u0544\u053f\3\2\2\2\u0544") - buf.write("\u0545\3\2\2\2\u0545\u0548\3\2\2\2\u0546\u0547\7\u00d9") + buf.write("\u0545\3\2\2\2\u0545\u0548\3\2\2\2\u0546\u0547\7\u00da") buf.write("\2\2\u0547\u0549\5\32\16\2\u0548\u0546\3\2\2\2\u0548\u0549") - buf.write("\3\2\2\2\u0549\u054a\3\2\2\2\u054a\u054b\7\u00d8\2\2\u054b") - buf.write("\u058f\3\2\2\2\u054c\u054d\7c\2\2\u054d\u054e\7\u00d7") - buf.write("\2\2\u054e\u054f\5\32\16\2\u054f\u0550\7\u00d9\2\2\u0550") - buf.write("\u0551\5\32\16\2\u0551\u0552\7\u00d9\2\2\u0552\u0553\5") - buf.write("\32\16\2\u0553\u0554\7\u00d8\2\2\u0554\u058f\3\2\2\2\u0555") - buf.write("\u0556\7\u0087\2\2\u0556\u0557\7\u00d7\2\2\u0557\u055d") - buf.write("\5\32\16\2\u0558\u0559\7\u00d9\2\2\u0559\u055a\5\32\16") - buf.write("\2\u055a\u055b\7\u00d9\2\2\u055b\u055c\5\32\16\2\u055c") + buf.write("\3\2\2\2\u0549\u054a\3\2\2\2\u054a\u054b\7\u00d9\2\2\u054b") + buf.write("\u059a\3\2\2\2\u054c\u054d\7c\2\2\u054d\u054e\7\u00d8") + buf.write("\2\2\u054e\u054f\5\32\16\2\u054f\u0550\7\u00da\2\2\u0550") + buf.write("\u0551\5\32\16\2\u0551\u0552\7\u00da\2\2\u0552\u0553\5") + buf.write("\32\16\2\u0553\u0554\7\u00d9\2\2\u0554\u059a\3\2\2\2\u0555") + buf.write("\u0556\7\u0087\2\2\u0556\u0557\7\u00d8\2\2\u0557\u055d") + buf.write("\5\32\16\2\u0558\u0559\7\u00da\2\2\u0559\u055a\5\32\16") + buf.write("\2\u055a\u055b\7\u00da\2\2\u055b\u055c\5\32\16\2\u055c") buf.write("\u055e\3\2\2\2\u055d\u0558\3\2\2\2\u055d\u055e\3\2\2\2") - buf.write("\u055e\u055f\3\2\2\2\u055f\u0560\7\u00d8\2\2\u0560\u058f") - buf.write("\3\2\2\2\u0561\u0562\7\u0088\2\2\u0562\u0563\7\u00d7\2") - buf.write("\2\u0563\u0569\5\32\16\2\u0564\u0565\7\u00d9\2\2\u0565") - buf.write("\u0566\5\32\16\2\u0566\u0567\7\u00d9\2\2\u0567\u0568\5") + buf.write("\u055e\u055f\3\2\2\2\u055f\u0560\7\u00d9\2\2\u0560\u059a") + buf.write("\3\2\2\2\u0561\u0562\7\u0088\2\2\u0562\u0563\7\u00d8\2") + buf.write("\2\u0563\u0569\5\32\16\2\u0564\u0565\7\u00da\2\2\u0565") + buf.write("\u0566\5\32\16\2\u0566\u0567\7\u00da\2\2\u0567\u0568\5") buf.write("\32\16\2\u0568\u056a\3\2\2\2\u0569\u0564\3\2\2\2\u0569") - buf.write("\u056a\3\2\2\2\u056a\u056b\3\2\2\2\u056b\u056c\7\u00d8") - buf.write("\2\2\u056c\u058f\3\2\2\2\u056d\u056e\7\u0090\2\2\u056e") - buf.write("\u056f\7\u00d7\2\2\u056f\u0570\5\32\16\2\u0570\u0571\7") - buf.write("\u00d9\2\2\u0571\u0572\5\32\16\2\u0572\u0573\7\u00d9\2") - buf.write("\2\u0573\u0576\5\32\16\2\u0574\u0575\7\u00d9\2\2\u0575") + buf.write("\u056a\3\2\2\2\u056a\u056b\3\2\2\2\u056b\u056c\7\u00d9") + buf.write("\2\2\u056c\u059a\3\2\2\2\u056d\u056e\7\u0090\2\2\u056e") + buf.write("\u056f\7\u00d8\2\2\u056f\u0570\5\32\16\2\u0570\u0571\7") + buf.write("\u00da\2\2\u0571\u0572\5\32\16\2\u0572\u0573\7\u00da\2") + buf.write("\2\u0573\u0576\5\32\16\2\u0574\u0575\7\u00da\2\2\u0575") buf.write("\u0577\5\32\16\2\u0576\u0574\3\2\2\2\u0576\u0577\3\2\2") - buf.write("\2\u0577\u057a\3\2\2\2\u0578\u0579\7\u00d9\2\2\u0579\u057b") + buf.write("\2\u0577\u057a\3\2\2\2\u0578\u0579\7\u00da\2\2\u0579\u057b") buf.write("\5\32\16\2\u057a\u0578\3\2\2\2\u057a\u057b\3\2\2\2\u057b") - buf.write("\u057e\3\2\2\2\u057c\u057d\7\u00d9\2\2\u057d\u057f\5\32") + buf.write("\u057e\3\2\2\2\u057c\u057d\7\u00da\2\2\u057d\u057f\5\32") buf.write("\16\2\u057e\u057c\3\2\2\2\u057e\u057f\3\2\2\2\u057f\u0582") - buf.write("\3\2\2\2\u0580\u0581\7\u00d9\2\2\u0581\u0583\5\32\16\2") + buf.write("\3\2\2\2\u0580\u0581\7\u00da\2\2\u0581\u0583\5\32\16\2") buf.write("\u0582\u0580\3\2\2\2\u0582\u0583\3\2\2\2\u0583\u0586\3") - buf.write("\2\2\2\u0584\u0585\7\u00d9\2\2\u0585\u0587\5\32\16\2\u0586") + buf.write("\2\2\2\u0584\u0585\7\u00da\2\2\u0585\u0587\5\32\16\2\u0586") buf.write("\u0584\3\2\2\2\u0586\u0587\3\2\2\2\u0587\u058a\3\2\2\2") - buf.write("\u0588\u0589\7\u00d9\2\2\u0589\u058b\5\32\16\2\u058a\u0588") + buf.write("\u0588\u0589\7\u00da\2\2\u0589\u058b\5\32\16\2\u058a\u0588") buf.write("\3\2\2\2\u058a\u058b\3\2\2\2\u058b\u058c\3\2\2\2\u058c") - buf.write("\u058d\7\u00d8\2\2\u058d\u058f\3\2\2\2\u058e\u0490\3\2") - buf.write("\2\2\u058e\u0499\3\2\2\2\u058e\u04a2\3\2\2\2\u058e\u04ab") - buf.write("\3\2\2\2\u058e\u04b4\3\2\2\2\u058e\u04bd\3\2\2\2\u058e") - buf.write("\u04c6\3\2\2\2\u058e\u04cf\3\2\2\2\u058e\u04d8\3\2\2\2") - buf.write("\u058e\u04e1\3\2\2\2\u058e\u04ea\3\2\2\2\u058e\u04f3\3") - buf.write("\2\2\2\u058e\u0500\3\2\2\2\u058e\u0509\3\2\2\2\u058e\u0514") - buf.write("\3\2\2\2\u058e\u0520\3\2\2\2\u058e\u052c\3\2\2\2\u058e") - buf.write("\u053c\3\2\2\2\u058e\u054c\3\2\2\2\u058e\u0555\3\2\2\2") - buf.write("\u058e\u0561\3\2\2\2\u058e\u056d\3\2\2\2\u058f\67\3\2") - buf.write("\2\2\u0590\u0591\7\63\2\2\u0591\u0592\7\u00d7\2\2\u0592") - buf.write("\u0593\5\32\16\2\u0593\u0594\7\u00d9\2\2\u0594\u0595\5") - buf.write("\32\16\2\u0595\u0596\7\u00d9\2\2\u0596\u0597\5\32\16\2") - buf.write("\u0597\u0598\7\u00d9\2\2\u0598\u0599\5\32\16\2\u0599\u059a") - buf.write("\7\u00d8\2\2\u059a\u05c8\3\2\2\2\u059b\u059c\7\'\2\2\u059c") - buf.write("\u059d\7\u00d7\2\2\u059d\u059e\5\32\16\2\u059e\u059f\7") - buf.write("\u00d9\2\2\u059f\u05a0\5\32\16\2\u05a0\u05a1\7\u00d9\2") - buf.write("\2\u05a1\u05a2\5\32\16\2\u05a2\u05a3\7\u00d9\2\2\u05a3") - buf.write("\u05a4\5\32\16\2\u05a4\u05a5\7\u00d8\2\2\u05a5\u05c8\3") - buf.write("\2\2\2\u05a6\u05a7\78\2\2\u05a7\u05a8\7\u00d7\2\2\u05a8") - buf.write("\u05a9\5\32\16\2\u05a9\u05aa\7\u00d9\2\2\u05aa\u05ab\5") - buf.write("\32\16\2\u05ab\u05ac\7\u00d9\2\2\u05ac\u05ad\5\32\16\2") - buf.write("\u05ad\u05ae\7\u00d9\2\2\u05ae\u05af\5\32\16\2\u05af\u05b0") - buf.write("\7\u00d8\2\2\u05b0\u05c8\3\2\2\2\u05b1\u05b2\7U\2\2\u05b2") - buf.write("\u05b3\7\u00d7\2\2\u05b3\u05b4\5\32\16\2\u05b4\u05b5\7") - buf.write("\u00d9\2\2\u05b5\u05b6\5\32\16\2\u05b6\u05b7\7\u00d9\2") - buf.write("\2\u05b7\u05b8\5\32\16\2\u05b8\u05b9\7\u00d9\2\2\u05b9") - buf.write("\u05ba\5\32\16\2\u05ba\u05bb\7\u00d8\2\2\u05bb\u05c8\3") - buf.write("\2\2\2\u05bc\u05bd\7d\2\2\u05bd\u05be\7\u00d7\2\2\u05be") - buf.write("\u05bf\5\32\16\2\u05bf\u05c0\7\u00d9\2\2\u05c0\u05c1\5") - buf.write("\32\16\2\u05c1\u05c2\7\u00d9\2\2\u05c2\u05c3\5\32\16\2") - buf.write("\u05c3\u05c4\7\u00d9\2\2\u05c4\u05c5\5\32\16\2\u05c5\u05c6") - buf.write("\7\u00d8\2\2\u05c6\u05c8\3\2\2\2\u05c7\u0590\3\2\2\2\u05c7") - buf.write("\u059b\3\2\2\2\u05c7\u05a6\3\2\2\2\u05c7\u05b1\3\2\2\2") - buf.write("\u05c7\u05bc\3\2\2\2\u05c89\3\2\2\2\u05c9\u05ca\7V\2\2") - buf.write("\u05ca\u05cb\7\u00d7\2\2\u05cb\u05cc\5\32\16\2\u05cc\u05cd") - buf.write("\7\u00d9\2\2\u05cd\u05ce\5\32\16\2\u05ce\u05cf\7\u00d9") - buf.write("\2\2\u05cf\u05d0\5\32\16\2\u05d0\u05d1\7\u00d9\2\2\u05d1") - buf.write("\u05d2\5\32\16\2\u05d2\u05d3\7\u00d9\2\2\u05d3\u05d4\5") - buf.write("\32\16\2\u05d4\u05d5\7\u00d8\2\2\u05d5\u05ea\3\2\2\2\u05d6") - buf.write("\u05d7\7\u0093\2\2\u05d7\u05d8\7\u00d7\2\2\u05d8\u05d9") - buf.write("\5\32\16\2\u05d9\u05da\7\u00d9\2\2\u05da\u05e5\5\32\16") - buf.write("\2\u05db\u05dc\7\u00d9\2\2\u05dc\u05e3\5\32\16\2\u05dd") - buf.write("\u05de\7\u00d9\2\2\u05de\u05e1\5\32\16\2\u05df\u05e0\7") - buf.write("\u00d9\2\2\u05e0\u05e2\5\32\16\2\u05e1\u05df\3\2\2\2\u05e1") - buf.write("\u05e2\3\2\2\2\u05e2\u05e4\3\2\2\2\u05e3\u05dd\3\2\2\2") - buf.write("\u05e3\u05e4\3\2\2\2\u05e4\u05e6\3\2\2\2\u05e5\u05db\3") - buf.write("\2\2\2\u05e5\u05e6\3\2\2\2\u05e6\u05e7\3\2\2\2\u05e7\u05e8") - buf.write("\7\u00d8\2\2\u05e8\u05ea\3\2\2\2\u05e9\u05c9\3\2\2\2\u05e9") - buf.write("\u05d6\3\2\2\2\u05ea;\3\2\2\2\u05eb\u05ec\7\25\2\2\u05ec") - buf.write("\u05ed\7\u00d7\2\2\u05ed\u05f2\5\32\16\2\u05ee\u05ef\7") - buf.write("\u00d9\2\2\u05ef\u05f1\5\32\16\2\u05f0\u05ee\3\2\2\2\u05f1") - buf.write("\u05f4\3\2\2\2\u05f2\u05f0\3\2\2\2\u05f2\u05f3\3\2\2\2") - buf.write("\u05f3\u05f5\3\2\2\2\u05f4\u05f2\3\2\2\2\u05f5\u05f6\7") - buf.write("\u00d8\2\2\u05f6\u0647\3\2\2\2\u05f7\u05f8\7\26\2\2\u05f8") - buf.write("\u05f9\7\u00d7\2\2\u05f9\u05fe\5\32\16\2\u05fa\u05fb\7") - buf.write("\u00d9\2\2\u05fb\u05fd\5\32\16\2\u05fc\u05fa\3\2\2\2\u05fd") - buf.write("\u0600\3\2\2\2\u05fe\u05fc\3\2\2\2\u05fe\u05ff\3\2\2\2") - buf.write("\u05ff\u0601\3\2\2\2\u0600\u05fe\3\2\2\2\u0601\u0602\7") - buf.write("\u00d8\2\2\u0602\u0647\3\2\2\2\u0603\u0604\7\60\2\2\u0604") - buf.write("\u0605\7\u00d7\2\2\u0605\u0608\5\32\16\2\u0606\u0607\7") - buf.write("\u00d9\2\2\u0607\u0609\5\32\16\2\u0608\u0606\3\2\2\2\u0609") - buf.write("\u060a\3\2\2\2\u060a\u0608\3\2\2\2\u060a\u060b\3\2\2\2") - buf.write("\u060b\u060c\3\2\2\2\u060c\u060d\7\u00d8\2\2\u060d\u0647") - buf.write("\3\2\2\2\u060e\u060f\7\61\2\2\u060f\u0610\7\u00d7\2\2") - buf.write("\u0610\u0613\5\32\16\2\u0611\u0612\7\u00d9\2\2\u0612\u0614") - buf.write("\5\32\16\2\u0613\u0611\3\2\2\2\u0614\u0615\3\2\2\2\u0615") - buf.write("\u0613\3\2\2\2\u0615\u0616\3\2\2\2\u0616\u0617\3\2\2\2") - buf.write("\u0617\u0618\7\u00d8\2\2\u0618\u0647\3\2\2\2\u0619\u061a") - buf.write("\7\62\2\2\u061a\u061b\7\u00d7\2\2\u061b\u061e\5\32\16") - buf.write("\2\u061c\u061d\7\u00d9\2\2\u061d\u061f\5\32\16\2\u061e") - buf.write("\u061c\3\2\2\2\u061f\u0620\3\2\2\2\u0620\u061e\3\2\2\2") - buf.write("\u0620\u0621\3\2\2\2\u0621\u0622\3\2\2\2\u0622\u0623\7") - buf.write("\u00d8\2\2\u0623\u0647\3\2\2\2\u0624\u0625\7\65\2\2\u0625") - buf.write("\u0626\7\u00d7\2\2\u0626\u0627\5\32\16\2\u0627\u0628\7") - buf.write("\u00d9\2\2\u0628\u0629\5\32\16\2\u0629\u062a\7\u00d8\2") - buf.write("\2\u062a\u0647\3\2\2\2\u062b\u062c\7\u00a7\2\2\u062c\u062d") - buf.write("\7\u00d7\2\2\u062d\u0630\5\32\16\2\u062e\u062f\7\u00d9") - buf.write("\2\2\u062f\u0631\5\32\16\2\u0630\u062e\3\2\2\2\u0630\u0631") - buf.write("\3\2\2\2\u0631\u0632\3\2\2\2\u0632\u0633\7\u00d8\2\2\u0633") - buf.write("\u0647\3\2\2\2\u0634\u0635\7\u00a8\2\2\u0635\u0636\7\u00d7") - buf.write("\2\2\u0636\u0637\5\32\16\2\u0637\u0638\7\u00d9\2\2\u0638") - buf.write("\u0639\5\32\16\2\u0639\u063a\7\u00d8\2\2\u063a\u0647\3") - buf.write("\2\2\2\u063b\u063c\7v\2\2\u063c\u063d\7\u00d7\2\2\u063d") - buf.write("\u0640\5\32\16\2\u063e\u063f\7\u00d9\2\2\u063f\u0641\5") - buf.write("\32\16\2\u0640\u063e\3\2\2\2\u0641\u0642\3\2\2\2\u0642") - buf.write("\u0640\3\2\2\2\u0642\u0643\3\2\2\2\u0643\u0644\3\2\2\2") - buf.write("\u0644\u0645\7\u00d8\2\2\u0645\u0647\3\2\2\2\u0646\u05eb") - buf.write("\3\2\2\2\u0646\u05f7\3\2\2\2\u0646\u0603\3\2\2\2\u0646") - buf.write("\u060e\3\2\2\2\u0646\u0619\3\2\2\2\u0646\u0624\3\2\2\2") - buf.write("\u0646\u062b\3\2\2\2\u0646\u0634\3\2\2\2\u0646\u063b\3") - buf.write("\2\2\2\u0647=\3\2\2\2\u0648\u0649\7\u00af\2\2\u0649\u064a") - buf.write("\7\u00d7\2\2\u064a\u064d\5\32\16\2\u064b\u064c\7\u00d9") - buf.write("\2\2\u064c\u064e\5\32\16\2\u064d\u064b\3\2\2\2\u064d\u064e") - buf.write("\3\2\2\2\u064e\u064f\3\2\2\2\u064f\u0650\7\u00d8\2\2\u0650") - buf.write("\u0754\3\2\2\2\u0651\u0652\7\u00b0\2\2\u0652\u0653\7\u00d7") - buf.write("\2\2\u0653\u0656\5\32\16\2\u0654\u0655\7\u00d9\2\2\u0655") - buf.write("\u0657\5\32\16\2\u0656\u0654\3\2\2\2\u0656\u0657\3\2\2") - buf.write("\2\u0657\u0658\3\2\2\2\u0658\u0659\7\u00d8\2\2\u0659\u0754") - buf.write("\3\2\2\2\u065a\u065b\7\u00b2\2\2\u065b\u065c\7\u00d7\2") - buf.write("\2\u065c\u065d\5\32\16\2\u065d\u065e\7\u00d9\2\2\u065e") - buf.write("\u0661\5\32\16\2\u065f\u0660\7\u00d9\2\2\u0660\u0662\5") - buf.write("\32\16\2\u0661\u065f\3\2\2\2\u0661\u0662\3\2\2\2\u0662") - buf.write("\u0663\3\2\2\2\u0663\u0664\7\u00d8\2\2\u0664\u0754\3\2") - buf.write("\2\2\u0665\u0666\7\u00b4\2\2\u0666\u0667\7\u00d7\2\2\u0667") - buf.write("\u0668\5\32\16\2\u0668\u0669\7\u00d9\2\2\u0669\u066c\5") - buf.write("\32\16\2\u066a\u066b\7\u00d9\2\2\u066b\u066d\5\32\16\2") - buf.write("\u066c\u066a\3\2\2\2\u066c\u066d\3\2\2\2\u066d\u066e\3") - buf.write("\2\2\2\u066e\u066f\7\u00d8\2\2\u066f\u0754\3\2\2\2\u0670") - buf.write("\u0671\7\u00b5\2\2\u0671\u0672\7\u00d7\2\2\u0672\u0673") - buf.write("\5\32\16\2\u0673\u0674\7\u00d9\2\2\u0674\u0677\5\32\16") - buf.write("\2\u0675\u0676\7\u00d9\2\2\u0676\u0678\5\32\16\2\u0677") - buf.write("\u0675\3\2\2\2\u0677\u0678\3\2\2\2\u0678\u0679\3\2\2\2") - buf.write("\u0679\u067a\7\u00d8\2\2\u067a\u0754\3\2\2\2\u067b\u067c") - buf.write("\7\u00b1\2\2\u067c\u067d\7\u00d7\2\2\u067d\u067e\5\32") - buf.write("\16\2\u067e\u067f\7\u00d9\2\2\u067f\u0680\5\32\16\2\u0680") - buf.write("\u0681\7\u00d9\2\2\u0681\u0684\5\32\16\2\u0682\u0683\7") - buf.write("\u00d9\2\2\u0683\u0685\5\32\16\2\u0684\u0682\3\2\2\2\u0684") - buf.write("\u0685\3\2\2\2\u0685\u0686\3\2\2\2\u0686\u0687\7\u00d8") - buf.write("\2\2\u0687\u0754\3\2\2\2\u0688\u0689\7\u00b3\2\2\u0689") - buf.write("\u068a\7\u00d7\2\2\u068a\u068b\5\32\16\2\u068b\u068c\7") - buf.write("\u00d9\2\2\u068c\u068d\5\32\16\2\u068d\u068e\7\u00d9\2") - buf.write("\2\u068e\u0691\5\32\16\2\u068f\u0690\7\u00d9\2\2\u0690") - buf.write("\u0692\5\32\16\2\u0691\u068f\3\2\2\2\u0691\u0692\3\2\2") - buf.write("\2\u0692\u0693\3\2\2\2\u0693\u0694\7\u00d8\2\2\u0694\u0754") - buf.write("\3\2\2\2\u0695\u0696\7\u00b6\2\2\u0696\u0697\7\u00d7\2") - buf.write("\2\u0697\u0698\5\32\16\2\u0698\u0699\7\u00d9\2\2\u0699") - buf.write("\u069a\5\32\16\2\u069a\u069b\7\u00d9\2\2\u069b\u069e\5") - buf.write("\32\16\2\u069c\u069d\7\u00d9\2\2\u069d\u069f\5\32\16\2") - buf.write("\u069e\u069c\3\2\2\2\u069e\u069f\3\2\2\2\u069f\u06a0\3") - buf.write("\2\2\2\u06a0\u06a1\7\u00d8\2\2\u06a1\u0754\3\2\2\2\u06a2") - buf.write("\u06a3\7\u00b7\2\2\u06a3\u06a4\7\u00d7\2\2\u06a4\u06a5") - buf.write("\5\32\16\2\u06a5\u06a6\7\u00d9\2\2\u06a6\u06a7\5\32\16") - buf.write("\2\u06a7\u06a8\7\u00d9\2\2\u06a8\u06ab\5\32\16\2\u06a9") - buf.write("\u06aa\7\u00d9\2\2\u06aa\u06ac\5\32\16\2\u06ab\u06a9\3") - buf.write("\2\2\2\u06ab\u06ac\3\2\2\2\u06ac\u06ad\3\2\2\2\u06ad\u06ae") - buf.write("\7\u00d8\2\2\u06ae\u0754\3\2\2\2\u06af\u06b0\7\u00b8\2") - buf.write("\2\u06b0\u06b1\7\u00d7\2\2\u06b1\u06b2\5\32\16\2\u06b2") - buf.write("\u06b3\7\u00d9\2\2\u06b3\u06b4\5\32\16\2\u06b4\u06b5\7") - buf.write("\u00d9\2\2\u06b5\u06b8\5\32\16\2\u06b6\u06b7\7\u00d9\2") - buf.write("\2\u06b7\u06b9\5\32\16\2\u06b8\u06b6\3\2\2\2\u06b8\u06b9") - buf.write("\3\2\2\2\u06b9\u06ba\3\2\2\2\u06ba\u06bb\7\u00d8\2\2\u06bb") - buf.write("\u0754\3\2\2\2\u06bc\u06bd\7\u00b9\2\2\u06bd\u06be\7\u00d7") - buf.write("\2\2\u06be\u06bf\5\32\16\2\u06bf\u06c0\7\u00d9\2\2\u06c0") - buf.write("\u06c1\5\32\16\2\u06c1\u06c2\7\u00d9\2\2\u06c2\u06c5\5") - buf.write("\32\16\2\u06c3\u06c4\7\u00d9\2\2\u06c4\u06c6\5\32\16\2") - buf.write("\u06c5\u06c3\3\2\2\2\u06c5\u06c6\3\2\2\2\u06c6\u06c7\3") - buf.write("\2\2\2\u06c7\u06c8\7\u00d8\2\2\u06c8\u0754\3\2\2\2\u06c9") - buf.write("\u06ca\7\u00ba\2\2\u06ca\u06cb\7\u00d7\2\2\u06cb\u06cc") - buf.write("\5\32\16\2\u06cc\u06cd\7\u00d9\2\2\u06cd\u06ce\5\32\16") - buf.write("\2\u06ce\u06cf\7\u00d9\2\2\u06cf\u06d2\5\32\16\2\u06d0") - buf.write("\u06d1\7\u00d9\2\2\u06d1\u06d3\5\32\16\2\u06d2\u06d0\3") - buf.write("\2\2\2\u06d2\u06d3\3\2\2\2\u06d3\u06d4\3\2\2\2\u06d4\u06d5") - buf.write("\7\u00d8\2\2\u06d5\u0754\3\2\2\2\u06d6\u06d7\7\u00bb\2") - buf.write("\2\u06d7\u06d8\7\u00d7\2\2\u06d8\u06d9\5\32\16\2\u06d9") - buf.write("\u06da\7\u00d9\2\2\u06da\u06dd\5\32\16\2\u06db\u06dc\7") - buf.write("\u00d9\2\2\u06dc\u06de\5\32\16\2\u06dd\u06db\3\2\2\2\u06dd") - buf.write("\u06de\3\2\2\2\u06de\u06df\3\2\2\2\u06df\u06e0\7\u00d8") - buf.write("\2\2\u06e0\u0754\3\2\2\2\u06e1\u06e2\7\u00bc\2\2\u06e2") - buf.write("\u06e3\7\u00d7\2\2\u06e3\u06e4\5\32\16\2\u06e4\u06e5\7") - buf.write("\u00d9\2\2\u06e5\u06e8\5\32\16\2\u06e6\u06e7\7\u00d9\2") - buf.write("\2\u06e7\u06e9\5\32\16\2\u06e8\u06e6\3\2\2\2\u06e8\u06e9") - buf.write("\3\2\2\2\u06e9\u06ea\3\2\2\2\u06ea\u06eb\7\u00d8\2\2\u06eb") - buf.write("\u0754\3\2\2\2\u06ec\u06ed\7\u00bd\2\2\u06ed\u06ee\7\u00d7") - buf.write("\2\2\u06ee\u06ef\5\32\16\2\u06ef\u06f0\7\u00d9\2\2\u06f0") - buf.write("\u06f3\5\32\16\2\u06f1\u06f2\7\u00d9\2\2\u06f2\u06f4\5") - buf.write("\32\16\2\u06f3\u06f1\3\2\2\2\u06f3\u06f4\3\2\2\2\u06f4") - buf.write("\u06f7\3\2\2\2\u06f5\u06f6\7\u00d9\2\2\u06f6\u06f8\5\32") - buf.write("\16\2\u06f7\u06f5\3\2\2\2\u06f7\u06f8\3\2\2\2\u06f8\u06fb") - buf.write("\3\2\2\2\u06f9\u06fa\7\u00d9\2\2\u06fa\u06fc\5\32\16\2") - buf.write("\u06fb\u06f9\3\2\2\2\u06fb\u06fc\3\2\2\2\u06fc\u06fd\3") - buf.write("\2\2\2\u06fd\u06fe\7\u00d8\2\2\u06fe\u0754\3\2\2\2\u06ff") - buf.write("\u0700\7\u00be\2\2\u0700\u0701\7\u00d7\2\2\u0701\u0702") - buf.write("\5\32\16\2\u0702\u0703\7\u00d9\2\2\u0703\u0706\5\32\16") - buf.write("\2\u0704\u0705\7\u00d9\2\2\u0705\u0707\5\32\16\2\u0706") - buf.write("\u0704\3\2\2\2\u0706\u0707\3\2\2\2\u0707\u070a\3\2\2\2") - buf.write("\u0708\u0709\7\u00d9\2\2\u0709\u070b\5\32\16\2\u070a\u0708") - buf.write("\3\2\2\2\u070a\u070b\3\2\2\2\u070b\u070e\3\2\2\2\u070c") - buf.write("\u070d\7\u00d9\2\2\u070d\u070f\5\32\16\2\u070e\u070c\3") - buf.write("\2\2\2\u070e\u070f\3\2\2\2\u070f\u0710\3\2\2\2\u0710\u0711") - buf.write("\7\u00d8\2\2\u0711\u0754\3\2\2\2\u0712\u0713\7\u00bf\2") - buf.write("\2\u0713\u0714\7\u00d7\2\2\u0714\u0715\5\32\16\2\u0715") - buf.write("\u0716\7\u00d9\2\2\u0716\u0719\5\32\16\2\u0717\u0718\7") - buf.write("\u00d9\2\2\u0718\u071a\5\32\16\2\u0719\u0717\3\2\2\2\u0719") - buf.write("\u071a\3\2\2\2\u071a\u071d\3\2\2\2\u071b\u071c\7\u00d9") - buf.write("\2\2\u071c\u071e\5\32\16\2\u071d\u071b\3\2\2\2\u071d\u071e") - buf.write("\3\2\2\2\u071e\u0721\3\2\2\2\u071f\u0720\7\u00d9\2\2\u0720") - buf.write("\u0722\5\32\16\2\u0721\u071f\3\2\2\2\u0721\u0722\3\2\2") - buf.write("\2\u0722\u0723\3\2\2\2\u0723\u0724\7\u00d8\2\2\u0724\u0754") - buf.write("\3\2\2\2\u0725\u0726\7\u00c0\2\2\u0726\u0727\7\u00d7\2") - buf.write("\2\u0727\u0728\5\32\16\2\u0728\u0729\7\u00d9\2\2\u0729") - buf.write("\u072c\5\32\16\2\u072a\u072b\7\u00d9\2\2\u072b\u072d\5") - buf.write("\32\16\2\u072c\u072a\3\2\2\2\u072c\u072d\3\2\2\2\u072d") - buf.write("\u0730\3\2\2\2\u072e\u072f\7\u00d9\2\2\u072f\u0731\5\32") - buf.write("\16\2\u0730\u072e\3\2\2\2\u0730\u0731\3\2\2\2\u0731\u0734") - buf.write("\3\2\2\2\u0732\u0733\7\u00d9\2\2\u0733\u0735\5\32\16\2") - buf.write("\u0734\u0732\3\2\2\2\u0734\u0735\3\2\2\2\u0735\u0736\3") - buf.write("\2\2\2\u0736\u0737\7\u00d8\2\2\u0737\u0754\3\2\2\2\u0738") - buf.write("\u0739\7\u00c1\2\2\u0739\u073a\7\u00d7\2\2\u073a\u073b") - buf.write("\5\32\16\2\u073b\u073c\7\u00d9\2\2\u073c\u073d\5\32\16") - buf.write("\2\u073d\u073e\7\u00d9\2\2\u073e\u073f\5\32\16\2\u073f") - buf.write("\u0740\7\u00d9\2\2\u0740\u0743\5\32\16\2\u0741\u0742\7") - buf.write("\u00d9\2\2\u0742\u0744\5\32\16\2\u0743\u0741\3\2\2\2\u0743") - buf.write("\u0744\3\2\2\2\u0744\u0747\3\2\2\2\u0745\u0746\7\u00d9") - buf.write("\2\2\u0746\u0748\5\32\16\2\u0747\u0745\3\2\2\2\u0747\u0748") - buf.write("\3\2\2\2\u0748\u074b\3\2\2\2\u0749\u074a\7\u00d9\2\2\u074a") - buf.write("\u074c\5\32\16\2\u074b\u0749\3\2\2\2\u074b\u074c\3\2\2") - buf.write("\2\u074c\u074f\3\2\2\2\u074d\u074e\7\u00d9\2\2\u074e\u0750") - buf.write("\5\32\16\2\u074f\u074d\3\2\2\2\u074f\u0750\3\2\2\2\u0750") - buf.write("\u0751\3\2\2\2\u0751\u0752\7\u00d8\2\2\u0752\u0754\3\2") - buf.write("\2\2\u0753\u0648\3\2\2\2\u0753\u0651\3\2\2\2\u0753\u065a") - buf.write("\3\2\2\2\u0753\u0665\3\2\2\2\u0753\u0670\3\2\2\2\u0753") - buf.write("\u067b\3\2\2\2\u0753\u0688\3\2\2\2\u0753\u0695\3\2\2\2") - buf.write("\u0753\u06a2\3\2\2\2\u0753\u06af\3\2\2\2\u0753\u06bc\3") - buf.write("\2\2\2\u0753\u06c9\3\2\2\2\u0753\u06d6\3\2\2\2\u0753\u06e1") - buf.write("\3\2\2\2\u0753\u06ec\3\2\2\2\u0753\u06ff\3\2\2\2\u0753") - buf.write("\u0712\3\2\2\2\u0753\u0725\3\2\2\2\u0753\u0738\3\2\2\2") - buf.write("\u0754?\3\2\2\2yCEJQWbiu\u0083\u008c\u00a0\u00ad\u00b4") - buf.write("\u00d1\u00d3\u00df\u00e1\u00f0\u00f2\u00fe\u0100\u0108") - buf.write("\u010f\u011b\u0122\u0137\u014b\u0153\u0159\u0160\u020c") - buf.write("\u0233\u0246\u0256\u027a\u027c\u0285\u028e\u0297\u02a0") - buf.write("\u02ef\u02f8\u0301\u030a\u032c\u034f\u03c3\u03f1\u03f3") - buf.write("\u041e\u0420\u0422\u0440\u0449\u0454\u0475\u048e\u04ef") - buf.write("\u04fc\u0510\u051c\u0528\u0534\u0538\u0544\u0548\u055d") - buf.write("\u0569\u0576\u057a\u057e\u0582\u0586\u058a\u058e\u05c7") - buf.write("\u05e1\u05e3\u05e5\u05e9\u05f2\u05fe\u060a\u0615\u0620") - buf.write("\u0630\u0642\u0646\u064d\u0656\u0661\u066c\u0677\u0684") - buf.write("\u0691\u069e\u06ab\u06b8\u06c5\u06d2\u06dd\u06e8\u06f3") - buf.write("\u06f7\u06fb\u0706\u070a\u070e\u0719\u071d\u0721\u072c") - buf.write("\u0730\u0734\u0743\u0747\u074b\u074f\u0753") + buf.write("\u058d\7\u00d9\2\2\u058d\u059a\3\2\2\2\u058e\u058f\7\u00af") + buf.write("\2\2\u058f\u0590\7\u00d8\2\2\u0590\u0591\5\32\16\2\u0591") + buf.write("\u0592\7\u00da\2\2\u0592\u0595\5\32\16\2\u0593\u0594\7") + buf.write("\u00da\2\2\u0594\u0596\5\32\16\2\u0595\u0593\3\2\2\2\u0595") + buf.write("\u0596\3\2\2\2\u0596\u0597\3\2\2\2\u0597\u0598\7\u00d9") + buf.write("\2\2\u0598\u059a\3\2\2\2\u0599\u0490\3\2\2\2\u0599\u0499") + buf.write("\3\2\2\2\u0599\u04a2\3\2\2\2\u0599\u04ab\3\2\2\2\u0599") + buf.write("\u04b4\3\2\2\2\u0599\u04bd\3\2\2\2\u0599\u04c6\3\2\2\2") + buf.write("\u0599\u04cf\3\2\2\2\u0599\u04d8\3\2\2\2\u0599\u04e1\3") + buf.write("\2\2\2\u0599\u04ea\3\2\2\2\u0599\u04f3\3\2\2\2\u0599\u0500") + buf.write("\3\2\2\2\u0599\u0509\3\2\2\2\u0599\u0514\3\2\2\2\u0599") + buf.write("\u0520\3\2\2\2\u0599\u052c\3\2\2\2\u0599\u053c\3\2\2\2") + buf.write("\u0599\u054c\3\2\2\2\u0599\u0555\3\2\2\2\u0599\u0561\3") + buf.write("\2\2\2\u0599\u056d\3\2\2\2\u0599\u058e\3\2\2\2\u059a\67") + buf.write("\3\2\2\2\u059b\u059c\7\63\2\2\u059c\u059d\7\u00d8\2\2") + buf.write("\u059d\u059e\5\32\16\2\u059e\u059f\7\u00da\2\2\u059f\u05a0") + buf.write("\5\32\16\2\u05a0\u05a1\7\u00da\2\2\u05a1\u05a2\5\32\16") + buf.write("\2\u05a2\u05a3\7\u00da\2\2\u05a3\u05a4\5\32\16\2\u05a4") + buf.write("\u05a5\7\u00d9\2\2\u05a5\u05d3\3\2\2\2\u05a6\u05a7\7\'") + buf.write("\2\2\u05a7\u05a8\7\u00d8\2\2\u05a8\u05a9\5\32\16\2\u05a9") + buf.write("\u05aa\7\u00da\2\2\u05aa\u05ab\5\32\16\2\u05ab\u05ac\7") + buf.write("\u00da\2\2\u05ac\u05ad\5\32\16\2\u05ad\u05ae\7\u00da\2") + buf.write("\2\u05ae\u05af\5\32\16\2\u05af\u05b0\7\u00d9\2\2\u05b0") + buf.write("\u05d3\3\2\2\2\u05b1\u05b2\78\2\2\u05b2\u05b3\7\u00d8") + buf.write("\2\2\u05b3\u05b4\5\32\16\2\u05b4\u05b5\7\u00da\2\2\u05b5") + buf.write("\u05b6\5\32\16\2\u05b6\u05b7\7\u00da\2\2\u05b7\u05b8\5") + buf.write("\32\16\2\u05b8\u05b9\7\u00da\2\2\u05b9\u05ba\5\32\16\2") + buf.write("\u05ba\u05bb\7\u00d9\2\2\u05bb\u05d3\3\2\2\2\u05bc\u05bd") + buf.write("\7U\2\2\u05bd\u05be\7\u00d8\2\2\u05be\u05bf\5\32\16\2") + buf.write("\u05bf\u05c0\7\u00da\2\2\u05c0\u05c1\5\32\16\2\u05c1\u05c2") + buf.write("\7\u00da\2\2\u05c2\u05c3\5\32\16\2\u05c3\u05c4\7\u00da") + buf.write("\2\2\u05c4\u05c5\5\32\16\2\u05c5\u05c6\7\u00d9\2\2\u05c6") + buf.write("\u05d3\3\2\2\2\u05c7\u05c8\7d\2\2\u05c8\u05c9\7\u00d8") + buf.write("\2\2\u05c9\u05ca\5\32\16\2\u05ca\u05cb\7\u00da\2\2\u05cb") + buf.write("\u05cc\5\32\16\2\u05cc\u05cd\7\u00da\2\2\u05cd\u05ce\5") + buf.write("\32\16\2\u05ce\u05cf\7\u00da\2\2\u05cf\u05d0\5\32\16\2") + buf.write("\u05d0\u05d1\7\u00d9\2\2\u05d1\u05d3\3\2\2\2\u05d2\u059b") + buf.write("\3\2\2\2\u05d2\u05a6\3\2\2\2\u05d2\u05b1\3\2\2\2\u05d2") + buf.write("\u05bc\3\2\2\2\u05d2\u05c7\3\2\2\2\u05d39\3\2\2\2\u05d4") + buf.write("\u05d5\7V\2\2\u05d5\u05d6\7\u00d8\2\2\u05d6\u05d7\5\32") + buf.write("\16\2\u05d7\u05d8\7\u00da\2\2\u05d8\u05d9\5\32\16\2\u05d9") + buf.write("\u05da\7\u00da\2\2\u05da\u05db\5\32\16\2\u05db\u05dc\7") + buf.write("\u00da\2\2\u05dc\u05dd\5\32\16\2\u05dd\u05de\7\u00da\2") + buf.write("\2\u05de\u05df\5\32\16\2\u05df\u05e0\7\u00d9\2\2\u05e0") + buf.write("\u05f5\3\2\2\2\u05e1\u05e2\7\u0093\2\2\u05e2\u05e3\7\u00d8") + buf.write("\2\2\u05e3\u05e4\5\32\16\2\u05e4\u05e5\7\u00da\2\2\u05e5") + buf.write("\u05f0\5\32\16\2\u05e6\u05e7\7\u00da\2\2\u05e7\u05ee\5") + buf.write("\32\16\2\u05e8\u05e9\7\u00da\2\2\u05e9\u05ec\5\32\16\2") + buf.write("\u05ea\u05eb\7\u00da\2\2\u05eb\u05ed\5\32\16\2\u05ec\u05ea") + buf.write("\3\2\2\2\u05ec\u05ed\3\2\2\2\u05ed\u05ef\3\2\2\2\u05ee") + buf.write("\u05e8\3\2\2\2\u05ee\u05ef\3\2\2\2\u05ef\u05f1\3\2\2\2") + buf.write("\u05f0\u05e6\3\2\2\2\u05f0\u05f1\3\2\2\2\u05f1\u05f2\3") + buf.write("\2\2\2\u05f2\u05f3\7\u00d9\2\2\u05f3\u05f5\3\2\2\2\u05f4") + buf.write("\u05d4\3\2\2\2\u05f4\u05e1\3\2\2\2\u05f5;\3\2\2\2\u05f6") + buf.write("\u05f7\7\25\2\2\u05f7\u05f8\7\u00d8\2\2\u05f8\u05fd\5") + buf.write("\32\16\2\u05f9\u05fa\7\u00da\2\2\u05fa\u05fc\5\32\16\2") + buf.write("\u05fb\u05f9\3\2\2\2\u05fc\u05ff\3\2\2\2\u05fd\u05fb\3") + buf.write("\2\2\2\u05fd\u05fe\3\2\2\2\u05fe\u0600\3\2\2\2\u05ff\u05fd") + buf.write("\3\2\2\2\u0600\u0601\7\u00d9\2\2\u0601\u0652\3\2\2\2\u0602") + buf.write("\u0603\7\26\2\2\u0603\u0604\7\u00d8\2\2\u0604\u0609\5") + buf.write("\32\16\2\u0605\u0606\7\u00da\2\2\u0606\u0608\5\32\16\2") + buf.write("\u0607\u0605\3\2\2\2\u0608\u060b\3\2\2\2\u0609\u0607\3") + buf.write("\2\2\2\u0609\u060a\3\2\2\2\u060a\u060c\3\2\2\2\u060b\u0609") + buf.write("\3\2\2\2\u060c\u060d\7\u00d9\2\2\u060d\u0652\3\2\2\2\u060e") + buf.write("\u060f\7\60\2\2\u060f\u0610\7\u00d8\2\2\u0610\u0613\5") + buf.write("\32\16\2\u0611\u0612\7\u00da\2\2\u0612\u0614\5\32\16\2") + buf.write("\u0613\u0611\3\2\2\2\u0614\u0615\3\2\2\2\u0615\u0613\3") + buf.write("\2\2\2\u0615\u0616\3\2\2\2\u0616\u0617\3\2\2\2\u0617\u0618") + buf.write("\7\u00d9\2\2\u0618\u0652\3\2\2\2\u0619\u061a\7\61\2\2") + buf.write("\u061a\u061b\7\u00d8\2\2\u061b\u061e\5\32\16\2\u061c\u061d") + buf.write("\7\u00da\2\2\u061d\u061f\5\32\16\2\u061e\u061c\3\2\2\2") + buf.write("\u061f\u0620\3\2\2\2\u0620\u061e\3\2\2\2\u0620\u0621\3") + buf.write("\2\2\2\u0621\u0622\3\2\2\2\u0622\u0623\7\u00d9\2\2\u0623") + buf.write("\u0652\3\2\2\2\u0624\u0625\7\62\2\2\u0625\u0626\7\u00d8") + buf.write("\2\2\u0626\u0629\5\32\16\2\u0627\u0628\7\u00da\2\2\u0628") + buf.write("\u062a\5\32\16\2\u0629\u0627\3\2\2\2\u062a\u062b\3\2\2") + buf.write("\2\u062b\u0629\3\2\2\2\u062b\u062c\3\2\2\2\u062c\u062d") + buf.write("\3\2\2\2\u062d\u062e\7\u00d9\2\2\u062e\u0652\3\2\2\2\u062f") + buf.write("\u0630\7\65\2\2\u0630\u0631\7\u00d8\2\2\u0631\u0632\5") + buf.write("\32\16\2\u0632\u0633\7\u00da\2\2\u0633\u0634\5\32\16\2") + buf.write("\u0634\u0635\7\u00d9\2\2\u0635\u0652\3\2\2\2\u0636\u0637") + buf.write("\7\u00a7\2\2\u0637\u0638\7\u00d8\2\2\u0638\u063b\5\32") + buf.write("\16\2\u0639\u063a\7\u00da\2\2\u063a\u063c\5\32\16\2\u063b") + buf.write("\u0639\3\2\2\2\u063b\u063c\3\2\2\2\u063c\u063d\3\2\2\2") + buf.write("\u063d\u063e\7\u00d9\2\2\u063e\u0652\3\2\2\2\u063f\u0640") + buf.write("\7\u00a8\2\2\u0640\u0641\7\u00d8\2\2\u0641\u0642\5\32") + buf.write("\16\2\u0642\u0643\7\u00da\2\2\u0643\u0644\5\32\16\2\u0644") + buf.write("\u0645\7\u00d9\2\2\u0645\u0652\3\2\2\2\u0646\u0647\7v") + buf.write("\2\2\u0647\u0648\7\u00d8\2\2\u0648\u064b\5\32\16\2\u0649") + buf.write("\u064a\7\u00da\2\2\u064a\u064c\5\32\16\2\u064b\u0649\3") + buf.write("\2\2\2\u064c\u064d\3\2\2\2\u064d\u064b\3\2\2\2\u064d\u064e") + buf.write("\3\2\2\2\u064e\u064f\3\2\2\2\u064f\u0650\7\u00d9\2\2\u0650") + buf.write("\u0652\3\2\2\2\u0651\u05f6\3\2\2\2\u0651\u0602\3\2\2\2") + buf.write("\u0651\u060e\3\2\2\2\u0651\u0619\3\2\2\2\u0651\u0624\3") + buf.write("\2\2\2\u0651\u062f\3\2\2\2\u0651\u0636\3\2\2\2\u0651\u063f") + buf.write("\3\2\2\2\u0651\u0646\3\2\2\2\u0652=\3\2\2\2\u0653\u0654") + buf.write("\7\u00b0\2\2\u0654\u0655\7\u00d8\2\2\u0655\u0658\5\32") + buf.write("\16\2\u0656\u0657\7\u00da\2\2\u0657\u0659\5\32\16\2\u0658") + buf.write("\u0656\3\2\2\2\u0658\u0659\3\2\2\2\u0659\u065a\3\2\2\2") + buf.write("\u065a\u065b\7\u00d9\2\2\u065b\u075f\3\2\2\2\u065c\u065d") + buf.write("\7\u00b1\2\2\u065d\u065e\7\u00d8\2\2\u065e\u0661\5\32") + buf.write("\16\2\u065f\u0660\7\u00da\2\2\u0660\u0662\5\32\16\2\u0661") + buf.write("\u065f\3\2\2\2\u0661\u0662\3\2\2\2\u0662\u0663\3\2\2\2") + buf.write("\u0663\u0664\7\u00d9\2\2\u0664\u075f\3\2\2\2\u0665\u0666") + buf.write("\7\u00b3\2\2\u0666\u0667\7\u00d8\2\2\u0667\u0668\5\32") + buf.write("\16\2\u0668\u0669\7\u00da\2\2\u0669\u066c\5\32\16\2\u066a") + buf.write("\u066b\7\u00da\2\2\u066b\u066d\5\32\16\2\u066c\u066a\3") + buf.write("\2\2\2\u066c\u066d\3\2\2\2\u066d\u066e\3\2\2\2\u066e\u066f") + buf.write("\7\u00d9\2\2\u066f\u075f\3\2\2\2\u0670\u0671\7\u00b5\2") + buf.write("\2\u0671\u0672\7\u00d8\2\2\u0672\u0673\5\32\16\2\u0673") + buf.write("\u0674\7\u00da\2\2\u0674\u0677\5\32\16\2\u0675\u0676\7") + buf.write("\u00da\2\2\u0676\u0678\5\32\16\2\u0677\u0675\3\2\2\2\u0677") + buf.write("\u0678\3\2\2\2\u0678\u0679\3\2\2\2\u0679\u067a\7\u00d9") + buf.write("\2\2\u067a\u075f\3\2\2\2\u067b\u067c\7\u00b6\2\2\u067c") + buf.write("\u067d\7\u00d8\2\2\u067d\u067e\5\32\16\2\u067e\u067f\7") + buf.write("\u00da\2\2\u067f\u0682\5\32\16\2\u0680\u0681\7\u00da\2") + buf.write("\2\u0681\u0683\5\32\16\2\u0682\u0680\3\2\2\2\u0682\u0683") + buf.write("\3\2\2\2\u0683\u0684\3\2\2\2\u0684\u0685\7\u00d9\2\2\u0685") + buf.write("\u075f\3\2\2\2\u0686\u0687\7\u00b2\2\2\u0687\u0688\7\u00d8") + buf.write("\2\2\u0688\u0689\5\32\16\2\u0689\u068a\7\u00da\2\2\u068a") + buf.write("\u068b\5\32\16\2\u068b\u068c\7\u00da\2\2\u068c\u068f\5") + buf.write("\32\16\2\u068d\u068e\7\u00da\2\2\u068e\u0690\5\32\16\2") + buf.write("\u068f\u068d\3\2\2\2\u068f\u0690\3\2\2\2\u0690\u0691\3") + buf.write("\2\2\2\u0691\u0692\7\u00d9\2\2\u0692\u075f\3\2\2\2\u0693") + buf.write("\u0694\7\u00b4\2\2\u0694\u0695\7\u00d8\2\2\u0695\u0696") + buf.write("\5\32\16\2\u0696\u0697\7\u00da\2\2\u0697\u0698\5\32\16") + buf.write("\2\u0698\u0699\7\u00da\2\2\u0699\u069c\5\32\16\2\u069a") + buf.write("\u069b\7\u00da\2\2\u069b\u069d\5\32\16\2\u069c\u069a\3") + buf.write("\2\2\2\u069c\u069d\3\2\2\2\u069d\u069e\3\2\2\2\u069e\u069f") + buf.write("\7\u00d9\2\2\u069f\u075f\3\2\2\2\u06a0\u06a1\7\u00b7\2") + buf.write("\2\u06a1\u06a2\7\u00d8\2\2\u06a2\u06a3\5\32\16\2\u06a3") + buf.write("\u06a4\7\u00da\2\2\u06a4\u06a5\5\32\16\2\u06a5\u06a6\7") + buf.write("\u00da\2\2\u06a6\u06a9\5\32\16\2\u06a7\u06a8\7\u00da\2") + buf.write("\2\u06a8\u06aa\5\32\16\2\u06a9\u06a7\3\2\2\2\u06a9\u06aa") + buf.write("\3\2\2\2\u06aa\u06ab\3\2\2\2\u06ab\u06ac\7\u00d9\2\2\u06ac") + buf.write("\u075f\3\2\2\2\u06ad\u06ae\7\u00b8\2\2\u06ae\u06af\7\u00d8") + buf.write("\2\2\u06af\u06b0\5\32\16\2\u06b0\u06b1\7\u00da\2\2\u06b1") + buf.write("\u06b2\5\32\16\2\u06b2\u06b3\7\u00da\2\2\u06b3\u06b6\5") + buf.write("\32\16\2\u06b4\u06b5\7\u00da\2\2\u06b5\u06b7\5\32\16\2") + buf.write("\u06b6\u06b4\3\2\2\2\u06b6\u06b7\3\2\2\2\u06b7\u06b8\3") + buf.write("\2\2\2\u06b8\u06b9\7\u00d9\2\2\u06b9\u075f\3\2\2\2\u06ba") + buf.write("\u06bb\7\u00b9\2\2\u06bb\u06bc\7\u00d8\2\2\u06bc\u06bd") + buf.write("\5\32\16\2\u06bd\u06be\7\u00da\2\2\u06be\u06bf\5\32\16") + buf.write("\2\u06bf\u06c0\7\u00da\2\2\u06c0\u06c3\5\32\16\2\u06c1") + buf.write("\u06c2\7\u00da\2\2\u06c2\u06c4\5\32\16\2\u06c3\u06c1\3") + buf.write("\2\2\2\u06c3\u06c4\3\2\2\2\u06c4\u06c5\3\2\2\2\u06c5\u06c6") + buf.write("\7\u00d9\2\2\u06c6\u075f\3\2\2\2\u06c7\u06c8\7\u00ba\2") + buf.write("\2\u06c8\u06c9\7\u00d8\2\2\u06c9\u06ca\5\32\16\2\u06ca") + buf.write("\u06cb\7\u00da\2\2\u06cb\u06cc\5\32\16\2\u06cc\u06cd\7") + buf.write("\u00da\2\2\u06cd\u06d0\5\32\16\2\u06ce\u06cf\7\u00da\2") + buf.write("\2\u06cf\u06d1\5\32\16\2\u06d0\u06ce\3\2\2\2\u06d0\u06d1") + buf.write("\3\2\2\2\u06d1\u06d2\3\2\2\2\u06d2\u06d3\7\u00d9\2\2\u06d3") + buf.write("\u075f\3\2\2\2\u06d4\u06d5\7\u00bb\2\2\u06d5\u06d6\7\u00d8") + buf.write("\2\2\u06d6\u06d7\5\32\16\2\u06d7\u06d8\7\u00da\2\2\u06d8") + buf.write("\u06d9\5\32\16\2\u06d9\u06da\7\u00da\2\2\u06da\u06dd\5") + buf.write("\32\16\2\u06db\u06dc\7\u00da\2\2\u06dc\u06de\5\32\16\2") + buf.write("\u06dd\u06db\3\2\2\2\u06dd\u06de\3\2\2\2\u06de\u06df\3") + buf.write("\2\2\2\u06df\u06e0\7\u00d9\2\2\u06e0\u075f\3\2\2\2\u06e1") + buf.write("\u06e2\7\u00bc\2\2\u06e2\u06e3\7\u00d8\2\2\u06e3\u06e4") + buf.write("\5\32\16\2\u06e4\u06e5\7\u00da\2\2\u06e5\u06e8\5\32\16") + buf.write("\2\u06e6\u06e7\7\u00da\2\2\u06e7\u06e9\5\32\16\2\u06e8") + buf.write("\u06e6\3\2\2\2\u06e8\u06e9\3\2\2\2\u06e9\u06ea\3\2\2\2") + buf.write("\u06ea\u06eb\7\u00d9\2\2\u06eb\u075f\3\2\2\2\u06ec\u06ed") + buf.write("\7\u00bd\2\2\u06ed\u06ee\7\u00d8\2\2\u06ee\u06ef\5\32") + buf.write("\16\2\u06ef\u06f0\7\u00da\2\2\u06f0\u06f3\5\32\16\2\u06f1") + buf.write("\u06f2\7\u00da\2\2\u06f2\u06f4\5\32\16\2\u06f3\u06f1\3") + buf.write("\2\2\2\u06f3\u06f4\3\2\2\2\u06f4\u06f5\3\2\2\2\u06f5\u06f6") + buf.write("\7\u00d9\2\2\u06f6\u075f\3\2\2\2\u06f7\u06f8\7\u00be\2") + buf.write("\2\u06f8\u06f9\7\u00d8\2\2\u06f9\u06fa\5\32\16\2\u06fa") + buf.write("\u06fb\7\u00da\2\2\u06fb\u06fe\5\32\16\2\u06fc\u06fd\7") + buf.write("\u00da\2\2\u06fd\u06ff\5\32\16\2\u06fe\u06fc\3\2\2\2\u06fe") + buf.write("\u06ff\3\2\2\2\u06ff\u0702\3\2\2\2\u0700\u0701\7\u00da") + buf.write("\2\2\u0701\u0703\5\32\16\2\u0702\u0700\3\2\2\2\u0702\u0703") + buf.write("\3\2\2\2\u0703\u0706\3\2\2\2\u0704\u0705\7\u00da\2\2\u0705") + buf.write("\u0707\5\32\16\2\u0706\u0704\3\2\2\2\u0706\u0707\3\2\2") + buf.write("\2\u0707\u0708\3\2\2\2\u0708\u0709\7\u00d9\2\2\u0709\u075f") + buf.write("\3\2\2\2\u070a\u070b\7\u00bf\2\2\u070b\u070c\7\u00d8\2") + buf.write("\2\u070c\u070d\5\32\16\2\u070d\u070e\7\u00da\2\2\u070e") + buf.write("\u0711\5\32\16\2\u070f\u0710\7\u00da\2\2\u0710\u0712\5") + buf.write("\32\16\2\u0711\u070f\3\2\2\2\u0711\u0712\3\2\2\2\u0712") + buf.write("\u0715\3\2\2\2\u0713\u0714\7\u00da\2\2\u0714\u0716\5\32") + buf.write("\16\2\u0715\u0713\3\2\2\2\u0715\u0716\3\2\2\2\u0716\u0719") + buf.write("\3\2\2\2\u0717\u0718\7\u00da\2\2\u0718\u071a\5\32\16\2") + buf.write("\u0719\u0717\3\2\2\2\u0719\u071a\3\2\2\2\u071a\u071b\3") + buf.write("\2\2\2\u071b\u071c\7\u00d9\2\2\u071c\u075f\3\2\2\2\u071d") + buf.write("\u071e\7\u00c0\2\2\u071e\u071f\7\u00d8\2\2\u071f\u0720") + buf.write("\5\32\16\2\u0720\u0721\7\u00da\2\2\u0721\u0724\5\32\16") + buf.write("\2\u0722\u0723\7\u00da\2\2\u0723\u0725\5\32\16\2\u0724") + buf.write("\u0722\3\2\2\2\u0724\u0725\3\2\2\2\u0725\u0728\3\2\2\2") + buf.write("\u0726\u0727\7\u00da\2\2\u0727\u0729\5\32\16\2\u0728\u0726") + buf.write("\3\2\2\2\u0728\u0729\3\2\2\2\u0729\u072c\3\2\2\2\u072a") + buf.write("\u072b\7\u00da\2\2\u072b\u072d\5\32\16\2\u072c\u072a\3") + buf.write("\2\2\2\u072c\u072d\3\2\2\2\u072d\u072e\3\2\2\2\u072e\u072f") + buf.write("\7\u00d9\2\2\u072f\u075f\3\2\2\2\u0730\u0731\7\u00c1\2") + buf.write("\2\u0731\u0732\7\u00d8\2\2\u0732\u0733\5\32\16\2\u0733") + buf.write("\u0734\7\u00da\2\2\u0734\u0737\5\32\16\2\u0735\u0736\7") + buf.write("\u00da\2\2\u0736\u0738\5\32\16\2\u0737\u0735\3\2\2\2\u0737") + buf.write("\u0738\3\2\2\2\u0738\u073b\3\2\2\2\u0739\u073a\7\u00da") + buf.write("\2\2\u073a\u073c\5\32\16\2\u073b\u0739\3\2\2\2\u073b\u073c") + buf.write("\3\2\2\2\u073c\u073f\3\2\2\2\u073d\u073e\7\u00da\2\2\u073e") + buf.write("\u0740\5\32\16\2\u073f\u073d\3\2\2\2\u073f\u0740\3\2\2") + buf.write("\2\u0740\u0741\3\2\2\2\u0741\u0742\7\u00d9\2\2\u0742\u075f") + buf.write("\3\2\2\2\u0743\u0744\7\u00c2\2\2\u0744\u0745\7\u00d8\2") + buf.write("\2\u0745\u0746\5\32\16\2\u0746\u0747\7\u00da\2\2\u0747") + buf.write("\u0748\5\32\16\2\u0748\u0749\7\u00da\2\2\u0749\u074a\5") + buf.write("\32\16\2\u074a\u074b\7\u00da\2\2\u074b\u074e\5\32\16\2") + buf.write("\u074c\u074d\7\u00da\2\2\u074d\u074f\5\32\16\2\u074e\u074c") + buf.write("\3\2\2\2\u074e\u074f\3\2\2\2\u074f\u0752\3\2\2\2\u0750") + buf.write("\u0751\7\u00da\2\2\u0751\u0753\5\32\16\2\u0752\u0750\3") + buf.write("\2\2\2\u0752\u0753\3\2\2\2\u0753\u0756\3\2\2\2\u0754\u0755") + buf.write("\7\u00da\2\2\u0755\u0757\5\32\16\2\u0756\u0754\3\2\2\2") + buf.write("\u0756\u0757\3\2\2\2\u0757\u075a\3\2\2\2\u0758\u0759\7") + buf.write("\u00da\2\2\u0759\u075b\5\32\16\2\u075a\u0758\3\2\2\2\u075a") + buf.write("\u075b\3\2\2\2\u075b\u075c\3\2\2\2\u075c\u075d\7\u00d9") + buf.write("\2\2\u075d\u075f\3\2\2\2\u075e\u0653\3\2\2\2\u075e\u065c") + buf.write("\3\2\2\2\u075e\u0665\3\2\2\2\u075e\u0670\3\2\2\2\u075e") + buf.write("\u067b\3\2\2\2\u075e\u0686\3\2\2\2\u075e\u0693\3\2\2\2") + buf.write("\u075e\u06a0\3\2\2\2\u075e\u06ad\3\2\2\2\u075e\u06ba\3") + buf.write("\2\2\2\u075e\u06c7\3\2\2\2\u075e\u06d4\3\2\2\2\u075e\u06e1") + buf.write("\3\2\2\2\u075e\u06ec\3\2\2\2\u075e\u06f7\3\2\2\2\u075e") + buf.write("\u070a\3\2\2\2\u075e\u071d\3\2\2\2\u075e\u0730\3\2\2\2") + buf.write("\u075e\u0743\3\2\2\2\u075f?\3\2\2\2zCEJQWbiu\u0083\u008c") + buf.write("\u00a0\u00ad\u00b4\u00d1\u00d3\u00df\u00e1\u00f0\u00f2") + buf.write("\u00fe\u0100\u0108\u010f\u011b\u0122\u0137\u014b\u0153") + buf.write("\u0159\u0160\u020c\u0233\u0246\u0256\u027a\u027c\u0285") + buf.write("\u028e\u0297\u02a0\u02ef\u02f8\u0301\u030a\u032c\u034f") + buf.write("\u03c3\u03f1\u03f3\u041e\u0420\u0422\u0440\u0449\u0454") + buf.write("\u0475\u048e\u04ef\u04fc\u0510\u051c\u0528\u0534\u0538") + buf.write("\u0544\u0548\u055d\u0569\u0576\u057a\u057e\u0582\u0586") + buf.write("\u058a\u0595\u0599\u05d2\u05ec\u05ee\u05f0\u05f4\u05fd") + buf.write("\u0609\u0615\u0620\u062b\u063b\u064d\u0651\u0658\u0661") + buf.write("\u066c\u0677\u0682\u068f\u069c\u06a9\u06b6\u06c3\u06d0") + buf.write("\u06dd\u06e8\u06f3\u06fe\u0702\u0706\u0711\u0715\u0719") + buf.write("\u0724\u0728\u072c\u0737\u073b\u073f\u074e\u0752\u0756") + buf.write("\u075a\u075e") return buf.getvalue() @@ -1091,12 +1098,12 @@ class MathExprParser ( Parser ): "", "", "", "", "", "", "", "", "", "", "", "", - "", "", "", "'+'", "'-'", - "'*'", "'/'", "'%'", "'^'", "'<<'", "'>>'", "'>='", - "'>'", "'<='", "'<'", "'=='", "'='", "'+='", "'-='", - "'*='", "'/='", "'%='", "'!='", "'|'", "'('", "')'", - "','", "';'", "'->'", "'['", "']'", "'?'", "':'", "'{'", - "'}'" ] + "", "", "", "", + "'+'", "'-'", "'*'", "'/'", "'%'", "'^'", "'<<'", "'>>'", + "'>='", "'>'", "'<='", "'<'", "'=='", "'='", "'+='", + "'-='", "'*='", "'/='", "'%='", "'!='", "'|'", "'('", + "')'", "','", "';'", "'->'", "'['", "']'", "'?'", "':'", + "'{'", "'}'" ] symbolicNames = [ "", "SIN", "COS", "TAN", "ASIN", "ACOS", "ATAN", "ATAN2", "SINH", "COSH", "TANH", "ASINH", @@ -1129,8 +1136,8 @@ class MathExprParser ( Parser ): "TIMESTAMP", "SORT", "ARGSORT", "ARGMIN", "ARGMAX", "SOFTMAX", "SOFTMIN", "UNIQUE", "FLIP", "STARTSWITH", "ENDSWITH", "SQUEEZE", "UNSQUEEZE", "ROLL", "COV", - "CORR", "ENTROPY", "CROP", "NONE", "NOISE", "RAND", - "CAUCHY", "EXPONENTIAL", "LOGNORMAL", "BERNOULLI", + "CORR", "ENTROPY", "CROP", "NONE", "COORDS", "NOISE", + "RAND", "CAUCHY", "EXPONENTIAL", "LOGNORMAL", "BERNOULLI", "POISSON", "GAMMADIST", "BETADIST", "LAPLACEDIST", "GUMBELDIST", "WEIBULLDIST", "CHI2DIST", "STUDENTTDIST", "PERLIN", "CELLULAR", "PLASMA", "RIDGED", "DOMAIN_WARP", @@ -1354,64 +1361,65 @@ class MathExprParser ( Parser ): ENTROPY=170 CROP=171 NONE=172 - NOISE=173 - RAND=174 - CAUCHY=175 - EXPONENTIAL=176 - LOGNORMAL=177 - BERNOULLI=178 - POISSON=179 - GAMMADIST=180 - BETADIST=181 - LAPLACEDIST=182 - GUMBELDIST=183 - WEIBULLDIST=184 - CHI2DIST=185 - STUDENTTDIST=186 - PERLIN=187 - CELLULAR=188 - PLASMA=189 - RIDGED=190 - DOMAIN_WARP=191 - PLUS=192 - MINUS=193 - MULT=194 - DIV=195 - MOD=196 - POW=197 - LSHIFT=198 - RSHIFT=199 - GE=200 - GT=201 - LE=202 - LT=203 - EQ=204 - EQUEALS=205 - PLUS_EQ=206 - MINUS_EQ=207 - MULT_EQ=208 - DIV_EQ=209 - MOD_EQ=210 - NE=211 - PIPE=212 - LPAREN=213 - RPAREN=214 - COMMA=215 - SEMICOLON=216 - ARROW=217 - LBRACKET=218 - RBRACKET=219 - QUESTION=220 - COLON=221 - LBRACE=222 - RBRACE=223 - NUMBER=224 - CONSTANT=225 - STRING=226 - VARIABLE=227 - SL_COMMENT=228 - ML_COMMENT=229 - WS=230 + COORDS=173 + NOISE=174 + RAND=175 + CAUCHY=176 + EXPONENTIAL=177 + LOGNORMAL=178 + BERNOULLI=179 + POISSON=180 + GAMMADIST=181 + BETADIST=182 + LAPLACEDIST=183 + GUMBELDIST=184 + WEIBULLDIST=185 + CHI2DIST=186 + STUDENTTDIST=187 + PERLIN=188 + CELLULAR=189 + PLASMA=190 + RIDGED=191 + DOMAIN_WARP=192 + PLUS=193 + MINUS=194 + MULT=195 + DIV=196 + MOD=197 + POW=198 + LSHIFT=199 + RSHIFT=200 + GE=201 + GT=202 + LE=203 + LT=204 + EQ=205 + EQUEALS=206 + PLUS_EQ=207 + MINUS_EQ=208 + MULT_EQ=209 + DIV_EQ=210 + MOD_EQ=211 + NE=212 + PIPE=213 + LPAREN=214 + RPAREN=215 + COMMA=216 + SEMICOLON=217 + ARROW=218 + LBRACKET=219 + RBRACKET=220 + QUESTION=221 + COLON=222 + LBRACE=223 + RBRACE=224 + NUMBER=225 + CONSTANT=226 + STRING=227 + VARIABLE=228 + SL_COMMENT=229 + ML_COMMENT=230 + WS=231 def __init__(self, input:TokenStream, output:TextIO = sys.stdout): super().__init__(input, output) @@ -1626,7 +1634,7 @@ class MathExprParser ( Parser ): self.state = 83 self.block() pass - elif token in [MathExprParser.SIN, MathExprParser.COS, MathExprParser.TAN, MathExprParser.ASIN, MathExprParser.ACOS, MathExprParser.ATAN, MathExprParser.ATAN2, MathExprParser.SINH, MathExprParser.COSH, MathExprParser.TANH, MathExprParser.ASINH, MathExprParser.ACOSH, MathExprParser.ATANH, MathExprParser.ABS, MathExprParser.SQRT, MathExprParser.LN, MathExprParser.LOG, MathExprParser.EXP, MathExprParser.SMIN, MathExprParser.SMAX, MathExprParser.TMIN, MathExprParser.TMAX, MathExprParser.TNORM, MathExprParser.SNORM, MathExprParser.FLOOR, MathExprParser.CEIL, MathExprParser.ROUND, MathExprParser.GAMMA, MathExprParser.POWE, MathExprParser.SIGM, MathExprParser.CLAMP, MathExprParser.SFFT, MathExprParser.SIFFT, MathExprParser.ANGL, MathExprParser.PRNT, MathExprParser.PRINT_SHAPE, MathExprParser.NVL, MathExprParser.LERP, MathExprParser.STEP, MathExprParser.SMOOTHSTEP, MathExprParser.FRACT, MathExprParser.RELU, MathExprParser.SOFTPLUS, MathExprParser.GELU, MathExprParser.SIGN, MathExprParser.MAP, MathExprParser.EZCONV, MathExprParser.CONV, MathExprParser.SWAP, MathExprParser.PERM, MathExprParser.RESHAPE, MathExprParser.RANGE, MathExprParser.LINSPACE, MathExprParser.LOGSPACE, MathExprParser.TOPK, MathExprParser.BOTK, MathExprParser.PINV, MathExprParser.SUM, MathExprParser.MEAN, MathExprParser.STD, MathExprParser.VAR, MathExprParser.QUARTILE, MathExprParser.PERCENTILE, MathExprParser.QUANTILE, MathExprParser.DOT, MathExprParser.MOMENT, MathExprParser.ERF, MathExprParser.ERFINV, MathExprParser.ANY, MathExprParser.ALL, MathExprParser.EDGE, MathExprParser.GAUSSIAN, MathExprParser.MEDIAN, MathExprParser.MODE, MathExprParser.CUMSUM, MathExprParser.CUMPROD, MathExprParser.TOPK_IND, MathExprParser.BOTK_IND, MathExprParser.CUBIC_EASE, MathExprParser.ELASTIC_EASE, MathExprParser.SINE_EASE, MathExprParser.SMOOTHERSTEP, MathExprParser.DIST, MathExprParser.REMAP, MathExprParser.COSSIM, MathExprParser.COUNT, MathExprParser.REPEAT, MathExprParser.FLATTEN, MathExprParser.APPEND, MathExprParser.GET_VALUE, MathExprParser.FLOW_APPLY, MathExprParser.BATCH_SHUFFLE, MathExprParser.MOTION_MASK, MathExprParser.FLOW_TO_IMAGE, MathExprParser.FLOW_MAG, MathExprParser.FLOW_ANG, MathExprParser.WHERE, MathExprParser.HISTOGRAM, MathExprParser.OVERLAY, MathExprParser.PAD, MathExprParser.CROSS, MathExprParser.MATMUL, MathExprParser.RIFE, MathExprParser.BNOT, MathExprParser.BITCOUNT, MathExprParser.SHAPE, MathExprParser.BAND, MathExprParser.XOR, MathExprParser.BOR, MathExprParser.TENSOR, MathExprParser.PUSH, MathExprParser.POP, MathExprParser.CLEAR, MathExprParser.HAS, MathExprParser.GET, MathExprParser.CONCAT, MathExprParser.INT, MathExprParser.FLOAT, MathExprParser.UPPER, MathExprParser.LOWER, MathExprParser.TRIM, MathExprParser.SPLIT, MathExprParser.JOIN, MathExprParser.SUBSTRING, MathExprParser.FIND, MathExprParser.REPLACE, MathExprParser.DILATE, MathExprParser.ERODE, MathExprParser.MORPH_OPEN, MathExprParser.MORPH_CLOSE, MathExprParser.RGB_TO_OKLAB, MathExprParser.RGB_TO_CIELAB, MathExprParser.OKLAB_TO_RGB, MathExprParser.CIELAB_TO_RGB, MathExprParser.RGB_TO_HSV, MathExprParser.HSV_TO_RGB, MathExprParser.INT_TO_RGB, MathExprParser.RGB_TO_INT, MathExprParser.INTERPOLATE_LINEAR, MathExprParser.INTERPOLATE_AREA, MathExprParser.INTERPOLATE_NEAREST, MathExprParser.TEXT_IMAGE, MathExprParser.AS_NESTED, MathExprParser.SVD, MathExprParser.DIAG, MathExprParser.BREAK, MathExprParser.CONTINUE, MathExprParser.TIMESTAMP, MathExprParser.SORT, MathExprParser.ARGSORT, MathExprParser.ARGMIN, MathExprParser.ARGMAX, MathExprParser.SOFTMAX, MathExprParser.SOFTMIN, MathExprParser.UNIQUE, MathExprParser.FLIP, MathExprParser.STARTSWITH, MathExprParser.ENDSWITH, MathExprParser.SQUEEZE, MathExprParser.UNSQUEEZE, MathExprParser.ROLL, MathExprParser.COV, MathExprParser.CORR, MathExprParser.ENTROPY, MathExprParser.CROP, MathExprParser.NONE, MathExprParser.NOISE, MathExprParser.RAND, MathExprParser.CAUCHY, MathExprParser.EXPONENTIAL, MathExprParser.LOGNORMAL, MathExprParser.BERNOULLI, MathExprParser.POISSON, MathExprParser.GAMMADIST, MathExprParser.BETADIST, MathExprParser.LAPLACEDIST, MathExprParser.GUMBELDIST, MathExprParser.WEIBULLDIST, MathExprParser.CHI2DIST, MathExprParser.STUDENTTDIST, MathExprParser.PERLIN, MathExprParser.CELLULAR, MathExprParser.PLASMA, MathExprParser.RIDGED, MathExprParser.DOMAIN_WARP, MathExprParser.PLUS, MathExprParser.MINUS, MathExprParser.PIPE, MathExprParser.LPAREN, MathExprParser.LBRACKET, MathExprParser.NUMBER, MathExprParser.CONSTANT, MathExprParser.STRING, MathExprParser.VARIABLE]: + elif token in [MathExprParser.SIN, MathExprParser.COS, MathExprParser.TAN, MathExprParser.ASIN, MathExprParser.ACOS, MathExprParser.ATAN, MathExprParser.ATAN2, MathExprParser.SINH, MathExprParser.COSH, MathExprParser.TANH, MathExprParser.ASINH, MathExprParser.ACOSH, MathExprParser.ATANH, MathExprParser.ABS, MathExprParser.SQRT, MathExprParser.LN, MathExprParser.LOG, MathExprParser.EXP, MathExprParser.SMIN, MathExprParser.SMAX, MathExprParser.TMIN, MathExprParser.TMAX, MathExprParser.TNORM, MathExprParser.SNORM, MathExprParser.FLOOR, MathExprParser.CEIL, MathExprParser.ROUND, MathExprParser.GAMMA, MathExprParser.POWE, MathExprParser.SIGM, MathExprParser.CLAMP, MathExprParser.SFFT, MathExprParser.SIFFT, MathExprParser.ANGL, MathExprParser.PRNT, MathExprParser.PRINT_SHAPE, MathExprParser.NVL, MathExprParser.LERP, MathExprParser.STEP, MathExprParser.SMOOTHSTEP, MathExprParser.FRACT, MathExprParser.RELU, MathExprParser.SOFTPLUS, MathExprParser.GELU, MathExprParser.SIGN, MathExprParser.MAP, MathExprParser.EZCONV, MathExprParser.CONV, MathExprParser.SWAP, MathExprParser.PERM, MathExprParser.RESHAPE, MathExprParser.RANGE, MathExprParser.LINSPACE, MathExprParser.LOGSPACE, MathExprParser.TOPK, MathExprParser.BOTK, MathExprParser.PINV, MathExprParser.SUM, MathExprParser.MEAN, MathExprParser.STD, MathExprParser.VAR, MathExprParser.QUARTILE, MathExprParser.PERCENTILE, MathExprParser.QUANTILE, MathExprParser.DOT, MathExprParser.MOMENT, MathExprParser.ERF, MathExprParser.ERFINV, MathExprParser.ANY, MathExprParser.ALL, MathExprParser.EDGE, MathExprParser.GAUSSIAN, MathExprParser.MEDIAN, MathExprParser.MODE, MathExprParser.CUMSUM, MathExprParser.CUMPROD, MathExprParser.TOPK_IND, MathExprParser.BOTK_IND, MathExprParser.CUBIC_EASE, MathExprParser.ELASTIC_EASE, MathExprParser.SINE_EASE, MathExprParser.SMOOTHERSTEP, MathExprParser.DIST, MathExprParser.REMAP, MathExprParser.COSSIM, MathExprParser.COUNT, MathExprParser.REPEAT, MathExprParser.FLATTEN, MathExprParser.APPEND, MathExprParser.GET_VALUE, MathExprParser.FLOW_APPLY, MathExprParser.BATCH_SHUFFLE, MathExprParser.MOTION_MASK, MathExprParser.FLOW_TO_IMAGE, MathExprParser.FLOW_MAG, MathExprParser.FLOW_ANG, MathExprParser.WHERE, MathExprParser.HISTOGRAM, MathExprParser.OVERLAY, MathExprParser.PAD, MathExprParser.CROSS, MathExprParser.MATMUL, MathExprParser.RIFE, MathExprParser.BNOT, MathExprParser.BITCOUNT, MathExprParser.SHAPE, MathExprParser.BAND, MathExprParser.XOR, MathExprParser.BOR, MathExprParser.TENSOR, MathExprParser.PUSH, MathExprParser.POP, MathExprParser.CLEAR, MathExprParser.HAS, MathExprParser.GET, MathExprParser.CONCAT, MathExprParser.INT, MathExprParser.FLOAT, MathExprParser.UPPER, MathExprParser.LOWER, MathExprParser.TRIM, MathExprParser.SPLIT, MathExprParser.JOIN, MathExprParser.SUBSTRING, MathExprParser.FIND, MathExprParser.REPLACE, MathExprParser.DILATE, MathExprParser.ERODE, MathExprParser.MORPH_OPEN, MathExprParser.MORPH_CLOSE, MathExprParser.RGB_TO_OKLAB, MathExprParser.RGB_TO_CIELAB, MathExprParser.OKLAB_TO_RGB, MathExprParser.CIELAB_TO_RGB, MathExprParser.RGB_TO_HSV, MathExprParser.HSV_TO_RGB, MathExprParser.INT_TO_RGB, MathExprParser.RGB_TO_INT, MathExprParser.INTERPOLATE_LINEAR, MathExprParser.INTERPOLATE_AREA, MathExprParser.INTERPOLATE_NEAREST, MathExprParser.TEXT_IMAGE, MathExprParser.AS_NESTED, MathExprParser.SVD, MathExprParser.DIAG, MathExprParser.BREAK, MathExprParser.CONTINUE, MathExprParser.TIMESTAMP, MathExprParser.SORT, MathExprParser.ARGSORT, MathExprParser.ARGMIN, MathExprParser.ARGMAX, MathExprParser.SOFTMAX, MathExprParser.SOFTMIN, MathExprParser.UNIQUE, MathExprParser.FLIP, MathExprParser.STARTSWITH, MathExprParser.ENDSWITH, MathExprParser.SQUEEZE, MathExprParser.UNSQUEEZE, MathExprParser.ROLL, MathExprParser.COV, MathExprParser.CORR, MathExprParser.ENTROPY, MathExprParser.CROP, MathExprParser.NONE, MathExprParser.COORDS, MathExprParser.NOISE, MathExprParser.RAND, MathExprParser.CAUCHY, MathExprParser.EXPONENTIAL, MathExprParser.LOGNORMAL, MathExprParser.BERNOULLI, MathExprParser.POISSON, MathExprParser.GAMMADIST, MathExprParser.BETADIST, MathExprParser.LAPLACEDIST, MathExprParser.GUMBELDIST, MathExprParser.WEIBULLDIST, MathExprParser.CHI2DIST, MathExprParser.STUDENTTDIST, MathExprParser.PERLIN, MathExprParser.CELLULAR, MathExprParser.PLASMA, MathExprParser.RIDGED, MathExprParser.DOMAIN_WARP, MathExprParser.PLUS, MathExprParser.MINUS, MathExprParser.PIPE, MathExprParser.LPAREN, MathExprParser.LBRACKET, MathExprParser.NUMBER, MathExprParser.CONSTANT, MathExprParser.STRING, MathExprParser.VARIABLE]: self.state = 84 self.expr() pass @@ -1757,7 +1765,7 @@ class MathExprParser ( Parser ): self.state = 106 _la = self._input.LA(1) - if not(((((_la - 205)) & ~0x3f) == 0 and ((1 << (_la - 205)) & ((1 << (MathExprParser.EQUEALS - 205)) | (1 << (MathExprParser.PLUS_EQ - 205)) | (1 << (MathExprParser.MINUS_EQ - 205)) | (1 << (MathExprParser.MULT_EQ - 205)) | (1 << (MathExprParser.DIV_EQ - 205)) | (1 << (MathExprParser.MOD_EQ - 205)))) != 0)): + if not(((((_la - 206)) & ~0x3f) == 0 and ((1 << (_la - 206)) & ((1 << (MathExprParser.EQUEALS - 206)) | (1 << (MathExprParser.PLUS_EQ - 206)) | (1 << (MathExprParser.MINUS_EQ - 206)) | (1 << (MathExprParser.MULT_EQ - 206)) | (1 << (MathExprParser.DIV_EQ - 206)) | (1 << (MathExprParser.MOD_EQ - 206)))) != 0)): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) @@ -2457,7 +2465,7 @@ class MathExprParser ( Parser ): self.state = 158 self._errHandler.sync(self) _la = self._input.LA(1) - while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << MathExprParser.SIN) | (1 << MathExprParser.COS) | (1 << MathExprParser.TAN) | (1 << MathExprParser.ASIN) | (1 << MathExprParser.ACOS) | (1 << MathExprParser.ATAN) | (1 << MathExprParser.ATAN2) | (1 << MathExprParser.SINH) | (1 << MathExprParser.COSH) | (1 << MathExprParser.TANH) | (1 << MathExprParser.ASINH) | (1 << MathExprParser.ACOSH) | (1 << MathExprParser.ATANH) | (1 << MathExprParser.ABS) | (1 << MathExprParser.SQRT) | (1 << MathExprParser.LN) | (1 << MathExprParser.LOG) | (1 << MathExprParser.EXP) | (1 << MathExprParser.SMIN) | (1 << MathExprParser.SMAX) | (1 << MathExprParser.TMIN) | (1 << MathExprParser.TMAX) | (1 << MathExprParser.TNORM) | (1 << MathExprParser.SNORM) | (1 << MathExprParser.FLOOR) | (1 << MathExprParser.CEIL) | (1 << MathExprParser.ROUND) | (1 << MathExprParser.GAMMA) | (1 << MathExprParser.POWE) | (1 << MathExprParser.SIGM) | (1 << MathExprParser.CLAMP) | (1 << MathExprParser.SFFT) | (1 << MathExprParser.SIFFT) | (1 << MathExprParser.ANGL) | (1 << MathExprParser.PRNT) | (1 << MathExprParser.PRINT_SHAPE) | (1 << MathExprParser.NVL) | (1 << MathExprParser.LERP) | (1 << MathExprParser.STEP) | (1 << MathExprParser.SMOOTHSTEP) | (1 << MathExprParser.FRACT) | (1 << MathExprParser.RELU) | (1 << MathExprParser.SOFTPLUS) | (1 << MathExprParser.GELU) | (1 << MathExprParser.SIGN) | (1 << MathExprParser.MAP) | (1 << MathExprParser.EZCONV) | (1 << MathExprParser.CONV) | (1 << MathExprParser.SWAP) | (1 << MathExprParser.PERM) | (1 << MathExprParser.RESHAPE) | (1 << MathExprParser.RANGE) | (1 << MathExprParser.LINSPACE) | (1 << MathExprParser.LOGSPACE) | (1 << MathExprParser.TOPK) | (1 << MathExprParser.BOTK) | (1 << MathExprParser.PINV) | (1 << MathExprParser.SUM) | (1 << MathExprParser.MEAN) | (1 << MathExprParser.STD) | (1 << MathExprParser.VAR) | (1 << MathExprParser.QUARTILE) | (1 << MathExprParser.PERCENTILE))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (MathExprParser.QUANTILE - 64)) | (1 << (MathExprParser.DOT - 64)) | (1 << (MathExprParser.MOMENT - 64)) | (1 << (MathExprParser.ERF - 64)) | (1 << (MathExprParser.ERFINV - 64)) | (1 << (MathExprParser.ANY - 64)) | (1 << (MathExprParser.ALL - 64)) | (1 << (MathExprParser.EDGE - 64)) | (1 << (MathExprParser.GAUSSIAN - 64)) | (1 << (MathExprParser.MEDIAN - 64)) | (1 << (MathExprParser.MODE - 64)) | (1 << (MathExprParser.CUMSUM - 64)) | (1 << (MathExprParser.CUMPROD - 64)) | (1 << (MathExprParser.TOPK_IND - 64)) | (1 << (MathExprParser.BOTK_IND - 64)) | (1 << (MathExprParser.CUBIC_EASE - 64)) | (1 << (MathExprParser.ELASTIC_EASE - 64)) | (1 << (MathExprParser.SINE_EASE - 64)) | (1 << (MathExprParser.SMOOTHERSTEP - 64)) | (1 << (MathExprParser.DIST - 64)) | (1 << (MathExprParser.REMAP - 64)) | (1 << (MathExprParser.COSSIM - 64)) | (1 << (MathExprParser.COUNT - 64)) | (1 << (MathExprParser.REPEAT - 64)) | (1 << (MathExprParser.FLATTEN - 64)) | (1 << (MathExprParser.APPEND - 64)) | (1 << (MathExprParser.GET_VALUE - 64)) | (1 << (MathExprParser.FLOW_APPLY - 64)) | (1 << (MathExprParser.BATCH_SHUFFLE - 64)) | (1 << (MathExprParser.MOTION_MASK - 64)) | (1 << (MathExprParser.FLOW_TO_IMAGE - 64)) | (1 << (MathExprParser.FLOW_MAG - 64)) | (1 << (MathExprParser.FLOW_ANG - 64)) | (1 << (MathExprParser.WHERE - 64)) | (1 << (MathExprParser.HISTOGRAM - 64)) | (1 << (MathExprParser.OVERLAY - 64)) | (1 << (MathExprParser.PAD - 64)) | (1 << (MathExprParser.CROSS - 64)) | (1 << (MathExprParser.MATMUL - 64)) | (1 << (MathExprParser.RIFE - 64)) | (1 << (MathExprParser.BNOT - 64)) | (1 << (MathExprParser.BITCOUNT - 64)) | (1 << (MathExprParser.SHAPE - 64)) | (1 << (MathExprParser.BAND - 64)) | (1 << (MathExprParser.XOR - 64)) | (1 << (MathExprParser.BOR - 64)) | (1 << (MathExprParser.TENSOR - 64)) | (1 << (MathExprParser.PUSH - 64)) | (1 << (MathExprParser.POP - 64)) | (1 << (MathExprParser.CLEAR - 64)) | (1 << (MathExprParser.HAS - 64)) | (1 << (MathExprParser.GET - 64)) | (1 << (MathExprParser.CONCAT - 64)) | (1 << (MathExprParser.INT - 64)) | (1 << (MathExprParser.FLOAT - 64)) | (1 << (MathExprParser.UPPER - 64)) | (1 << (MathExprParser.LOWER - 64)) | (1 << (MathExprParser.TRIM - 64)) | (1 << (MathExprParser.SPLIT - 64)) | (1 << (MathExprParser.JOIN - 64)) | (1 << (MathExprParser.SUBSTRING - 64)) | (1 << (MathExprParser.FIND - 64)) | (1 << (MathExprParser.REPLACE - 64)) | (1 << (MathExprParser.DILATE - 64)))) != 0) or ((((_la - 128)) & ~0x3f) == 0 and ((1 << (_la - 128)) & ((1 << (MathExprParser.ERODE - 128)) | (1 << (MathExprParser.MORPH_OPEN - 128)) | (1 << (MathExprParser.MORPH_CLOSE - 128)) | (1 << (MathExprParser.RGB_TO_OKLAB - 128)) | (1 << (MathExprParser.RGB_TO_CIELAB - 128)) | (1 << (MathExprParser.OKLAB_TO_RGB - 128)) | (1 << (MathExprParser.CIELAB_TO_RGB - 128)) | (1 << (MathExprParser.RGB_TO_HSV - 128)) | (1 << (MathExprParser.HSV_TO_RGB - 128)) | (1 << (MathExprParser.INT_TO_RGB - 128)) | (1 << (MathExprParser.RGB_TO_INT - 128)) | (1 << (MathExprParser.INTERPOLATE_LINEAR - 128)) | (1 << (MathExprParser.INTERPOLATE_AREA - 128)) | (1 << (MathExprParser.INTERPOLATE_NEAREST - 128)) | (1 << (MathExprParser.TEXT_IMAGE - 128)) | (1 << (MathExprParser.AS_NESTED - 128)) | (1 << (MathExprParser.SVD - 128)) | (1 << (MathExprParser.DIAG - 128)) | (1 << (MathExprParser.IF - 128)) | (1 << (MathExprParser.WHILE - 128)) | (1 << (MathExprParser.FOR - 128)) | (1 << (MathExprParser.BREAK - 128)) | (1 << (MathExprParser.CONTINUE - 128)) | (1 << (MathExprParser.RETURN - 128)) | (1 << (MathExprParser.TIMESTAMP - 128)) | (1 << (MathExprParser.SORT - 128)) | (1 << (MathExprParser.ARGSORT - 128)) | (1 << (MathExprParser.ARGMIN - 128)) | (1 << (MathExprParser.ARGMAX - 128)) | (1 << (MathExprParser.SOFTMAX - 128)) | (1 << (MathExprParser.SOFTMIN - 128)) | (1 << (MathExprParser.UNIQUE - 128)) | (1 << (MathExprParser.FLIP - 128)) | (1 << (MathExprParser.STARTSWITH - 128)) | (1 << (MathExprParser.ENDSWITH - 128)) | (1 << (MathExprParser.SQUEEZE - 128)) | (1 << (MathExprParser.UNSQUEEZE - 128)) | (1 << (MathExprParser.ROLL - 128)) | (1 << (MathExprParser.COV - 128)) | (1 << (MathExprParser.CORR - 128)) | (1 << (MathExprParser.ENTROPY - 128)) | (1 << (MathExprParser.CROP - 128)) | (1 << (MathExprParser.NONE - 128)) | (1 << (MathExprParser.NOISE - 128)) | (1 << (MathExprParser.RAND - 128)) | (1 << (MathExprParser.CAUCHY - 128)) | (1 << (MathExprParser.EXPONENTIAL - 128)) | (1 << (MathExprParser.LOGNORMAL - 128)) | (1 << (MathExprParser.BERNOULLI - 128)) | (1 << (MathExprParser.POISSON - 128)) | (1 << (MathExprParser.GAMMADIST - 128)) | (1 << (MathExprParser.BETADIST - 128)) | (1 << (MathExprParser.LAPLACEDIST - 128)) | (1 << (MathExprParser.GUMBELDIST - 128)) | (1 << (MathExprParser.WEIBULLDIST - 128)) | (1 << (MathExprParser.CHI2DIST - 128)) | (1 << (MathExprParser.STUDENTTDIST - 128)) | (1 << (MathExprParser.PERLIN - 128)) | (1 << (MathExprParser.CELLULAR - 128)) | (1 << (MathExprParser.PLASMA - 128)) | (1 << (MathExprParser.RIDGED - 128)) | (1 << (MathExprParser.DOMAIN_WARP - 128)))) != 0) or ((((_la - 192)) & ~0x3f) == 0 and ((1 << (_la - 192)) & ((1 << (MathExprParser.PLUS - 192)) | (1 << (MathExprParser.MINUS - 192)) | (1 << (MathExprParser.PIPE - 192)) | (1 << (MathExprParser.LPAREN - 192)) | (1 << (MathExprParser.LBRACKET - 192)) | (1 << (MathExprParser.LBRACE - 192)) | (1 << (MathExprParser.NUMBER - 192)) | (1 << (MathExprParser.CONSTANT - 192)) | (1 << (MathExprParser.STRING - 192)) | (1 << (MathExprParser.VARIABLE - 192)))) != 0): + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << MathExprParser.SIN) | (1 << MathExprParser.COS) | (1 << MathExprParser.TAN) | (1 << MathExprParser.ASIN) | (1 << MathExprParser.ACOS) | (1 << MathExprParser.ATAN) | (1 << MathExprParser.ATAN2) | (1 << MathExprParser.SINH) | (1 << MathExprParser.COSH) | (1 << MathExprParser.TANH) | (1 << MathExprParser.ASINH) | (1 << MathExprParser.ACOSH) | (1 << MathExprParser.ATANH) | (1 << MathExprParser.ABS) | (1 << MathExprParser.SQRT) | (1 << MathExprParser.LN) | (1 << MathExprParser.LOG) | (1 << MathExprParser.EXP) | (1 << MathExprParser.SMIN) | (1 << MathExprParser.SMAX) | (1 << MathExprParser.TMIN) | (1 << MathExprParser.TMAX) | (1 << MathExprParser.TNORM) | (1 << MathExprParser.SNORM) | (1 << MathExprParser.FLOOR) | (1 << MathExprParser.CEIL) | (1 << MathExprParser.ROUND) | (1 << MathExprParser.GAMMA) | (1 << MathExprParser.POWE) | (1 << MathExprParser.SIGM) | (1 << MathExprParser.CLAMP) | (1 << MathExprParser.SFFT) | (1 << MathExprParser.SIFFT) | (1 << MathExprParser.ANGL) | (1 << MathExprParser.PRNT) | (1 << MathExprParser.PRINT_SHAPE) | (1 << MathExprParser.NVL) | (1 << MathExprParser.LERP) | (1 << MathExprParser.STEP) | (1 << MathExprParser.SMOOTHSTEP) | (1 << MathExprParser.FRACT) | (1 << MathExprParser.RELU) | (1 << MathExprParser.SOFTPLUS) | (1 << MathExprParser.GELU) | (1 << MathExprParser.SIGN) | (1 << MathExprParser.MAP) | (1 << MathExprParser.EZCONV) | (1 << MathExprParser.CONV) | (1 << MathExprParser.SWAP) | (1 << MathExprParser.PERM) | (1 << MathExprParser.RESHAPE) | (1 << MathExprParser.RANGE) | (1 << MathExprParser.LINSPACE) | (1 << MathExprParser.LOGSPACE) | (1 << MathExprParser.TOPK) | (1 << MathExprParser.BOTK) | (1 << MathExprParser.PINV) | (1 << MathExprParser.SUM) | (1 << MathExprParser.MEAN) | (1 << MathExprParser.STD) | (1 << MathExprParser.VAR) | (1 << MathExprParser.QUARTILE) | (1 << MathExprParser.PERCENTILE))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (MathExprParser.QUANTILE - 64)) | (1 << (MathExprParser.DOT - 64)) | (1 << (MathExprParser.MOMENT - 64)) | (1 << (MathExprParser.ERF - 64)) | (1 << (MathExprParser.ERFINV - 64)) | (1 << (MathExprParser.ANY - 64)) | (1 << (MathExprParser.ALL - 64)) | (1 << (MathExprParser.EDGE - 64)) | (1 << (MathExprParser.GAUSSIAN - 64)) | (1 << (MathExprParser.MEDIAN - 64)) | (1 << (MathExprParser.MODE - 64)) | (1 << (MathExprParser.CUMSUM - 64)) | (1 << (MathExprParser.CUMPROD - 64)) | (1 << (MathExprParser.TOPK_IND - 64)) | (1 << (MathExprParser.BOTK_IND - 64)) | (1 << (MathExprParser.CUBIC_EASE - 64)) | (1 << (MathExprParser.ELASTIC_EASE - 64)) | (1 << (MathExprParser.SINE_EASE - 64)) | (1 << (MathExprParser.SMOOTHERSTEP - 64)) | (1 << (MathExprParser.DIST - 64)) | (1 << (MathExprParser.REMAP - 64)) | (1 << (MathExprParser.COSSIM - 64)) | (1 << (MathExprParser.COUNT - 64)) | (1 << (MathExprParser.REPEAT - 64)) | (1 << (MathExprParser.FLATTEN - 64)) | (1 << (MathExprParser.APPEND - 64)) | (1 << (MathExprParser.GET_VALUE - 64)) | (1 << (MathExprParser.FLOW_APPLY - 64)) | (1 << (MathExprParser.BATCH_SHUFFLE - 64)) | (1 << (MathExprParser.MOTION_MASK - 64)) | (1 << (MathExprParser.FLOW_TO_IMAGE - 64)) | (1 << (MathExprParser.FLOW_MAG - 64)) | (1 << (MathExprParser.FLOW_ANG - 64)) | (1 << (MathExprParser.WHERE - 64)) | (1 << (MathExprParser.HISTOGRAM - 64)) | (1 << (MathExprParser.OVERLAY - 64)) | (1 << (MathExprParser.PAD - 64)) | (1 << (MathExprParser.CROSS - 64)) | (1 << (MathExprParser.MATMUL - 64)) | (1 << (MathExprParser.RIFE - 64)) | (1 << (MathExprParser.BNOT - 64)) | (1 << (MathExprParser.BITCOUNT - 64)) | (1 << (MathExprParser.SHAPE - 64)) | (1 << (MathExprParser.BAND - 64)) | (1 << (MathExprParser.XOR - 64)) | (1 << (MathExprParser.BOR - 64)) | (1 << (MathExprParser.TENSOR - 64)) | (1 << (MathExprParser.PUSH - 64)) | (1 << (MathExprParser.POP - 64)) | (1 << (MathExprParser.CLEAR - 64)) | (1 << (MathExprParser.HAS - 64)) | (1 << (MathExprParser.GET - 64)) | (1 << (MathExprParser.CONCAT - 64)) | (1 << (MathExprParser.INT - 64)) | (1 << (MathExprParser.FLOAT - 64)) | (1 << (MathExprParser.UPPER - 64)) | (1 << (MathExprParser.LOWER - 64)) | (1 << (MathExprParser.TRIM - 64)) | (1 << (MathExprParser.SPLIT - 64)) | (1 << (MathExprParser.JOIN - 64)) | (1 << (MathExprParser.SUBSTRING - 64)) | (1 << (MathExprParser.FIND - 64)) | (1 << (MathExprParser.REPLACE - 64)) | (1 << (MathExprParser.DILATE - 64)))) != 0) or ((((_la - 128)) & ~0x3f) == 0 and ((1 << (_la - 128)) & ((1 << (MathExprParser.ERODE - 128)) | (1 << (MathExprParser.MORPH_OPEN - 128)) | (1 << (MathExprParser.MORPH_CLOSE - 128)) | (1 << (MathExprParser.RGB_TO_OKLAB - 128)) | (1 << (MathExprParser.RGB_TO_CIELAB - 128)) | (1 << (MathExprParser.OKLAB_TO_RGB - 128)) | (1 << (MathExprParser.CIELAB_TO_RGB - 128)) | (1 << (MathExprParser.RGB_TO_HSV - 128)) | (1 << (MathExprParser.HSV_TO_RGB - 128)) | (1 << (MathExprParser.INT_TO_RGB - 128)) | (1 << (MathExprParser.RGB_TO_INT - 128)) | (1 << (MathExprParser.INTERPOLATE_LINEAR - 128)) | (1 << (MathExprParser.INTERPOLATE_AREA - 128)) | (1 << (MathExprParser.INTERPOLATE_NEAREST - 128)) | (1 << (MathExprParser.TEXT_IMAGE - 128)) | (1 << (MathExprParser.AS_NESTED - 128)) | (1 << (MathExprParser.SVD - 128)) | (1 << (MathExprParser.DIAG - 128)) | (1 << (MathExprParser.IF - 128)) | (1 << (MathExprParser.WHILE - 128)) | (1 << (MathExprParser.FOR - 128)) | (1 << (MathExprParser.BREAK - 128)) | (1 << (MathExprParser.CONTINUE - 128)) | (1 << (MathExprParser.RETURN - 128)) | (1 << (MathExprParser.TIMESTAMP - 128)) | (1 << (MathExprParser.SORT - 128)) | (1 << (MathExprParser.ARGSORT - 128)) | (1 << (MathExprParser.ARGMIN - 128)) | (1 << (MathExprParser.ARGMAX - 128)) | (1 << (MathExprParser.SOFTMAX - 128)) | (1 << (MathExprParser.SOFTMIN - 128)) | (1 << (MathExprParser.UNIQUE - 128)) | (1 << (MathExprParser.FLIP - 128)) | (1 << (MathExprParser.STARTSWITH - 128)) | (1 << (MathExprParser.ENDSWITH - 128)) | (1 << (MathExprParser.SQUEEZE - 128)) | (1 << (MathExprParser.UNSQUEEZE - 128)) | (1 << (MathExprParser.ROLL - 128)) | (1 << (MathExprParser.COV - 128)) | (1 << (MathExprParser.CORR - 128)) | (1 << (MathExprParser.ENTROPY - 128)) | (1 << (MathExprParser.CROP - 128)) | (1 << (MathExprParser.NONE - 128)) | (1 << (MathExprParser.COORDS - 128)) | (1 << (MathExprParser.NOISE - 128)) | (1 << (MathExprParser.RAND - 128)) | (1 << (MathExprParser.CAUCHY - 128)) | (1 << (MathExprParser.EXPONENTIAL - 128)) | (1 << (MathExprParser.LOGNORMAL - 128)) | (1 << (MathExprParser.BERNOULLI - 128)) | (1 << (MathExprParser.POISSON - 128)) | (1 << (MathExprParser.GAMMADIST - 128)) | (1 << (MathExprParser.BETADIST - 128)) | (1 << (MathExprParser.LAPLACEDIST - 128)) | (1 << (MathExprParser.GUMBELDIST - 128)) | (1 << (MathExprParser.WEIBULLDIST - 128)) | (1 << (MathExprParser.CHI2DIST - 128)) | (1 << (MathExprParser.STUDENTTDIST - 128)) | (1 << (MathExprParser.PERLIN - 128)) | (1 << (MathExprParser.CELLULAR - 128)) | (1 << (MathExprParser.PLASMA - 128)) | (1 << (MathExprParser.RIDGED - 128)))) != 0) or ((((_la - 192)) & ~0x3f) == 0 and ((1 << (_la - 192)) & ((1 << (MathExprParser.DOMAIN_WARP - 192)) | (1 << (MathExprParser.PLUS - 192)) | (1 << (MathExprParser.MINUS - 192)) | (1 << (MathExprParser.PIPE - 192)) | (1 << (MathExprParser.LPAREN - 192)) | (1 << (MathExprParser.LBRACKET - 192)) | (1 << (MathExprParser.LBRACE - 192)) | (1 << (MathExprParser.NUMBER - 192)) | (1 << (MathExprParser.CONSTANT - 192)) | (1 << (MathExprParser.STRING - 192)) | (1 << (MathExprParser.VARIABLE - 192)))) != 0): self.state = 155 self.stmt() self.state = 160 @@ -2628,7 +2636,7 @@ class MathExprParser ( Parser ): self.state = 171 self._errHandler.sync(self) _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << MathExprParser.SIN) | (1 << MathExprParser.COS) | (1 << MathExprParser.TAN) | (1 << MathExprParser.ASIN) | (1 << MathExprParser.ACOS) | (1 << MathExprParser.ATAN) | (1 << MathExprParser.ATAN2) | (1 << MathExprParser.SINH) | (1 << MathExprParser.COSH) | (1 << MathExprParser.TANH) | (1 << MathExprParser.ASINH) | (1 << MathExprParser.ACOSH) | (1 << MathExprParser.ATANH) | (1 << MathExprParser.ABS) | (1 << MathExprParser.SQRT) | (1 << MathExprParser.LN) | (1 << MathExprParser.LOG) | (1 << MathExprParser.EXP) | (1 << MathExprParser.SMIN) | (1 << MathExprParser.SMAX) | (1 << MathExprParser.TMIN) | (1 << MathExprParser.TMAX) | (1 << MathExprParser.TNORM) | (1 << MathExprParser.SNORM) | (1 << MathExprParser.FLOOR) | (1 << MathExprParser.CEIL) | (1 << MathExprParser.ROUND) | (1 << MathExprParser.GAMMA) | (1 << MathExprParser.POWE) | (1 << MathExprParser.SIGM) | (1 << MathExprParser.CLAMP) | (1 << MathExprParser.SFFT) | (1 << MathExprParser.SIFFT) | (1 << MathExprParser.ANGL) | (1 << MathExprParser.PRNT) | (1 << MathExprParser.PRINT_SHAPE) | (1 << MathExprParser.NVL) | (1 << MathExprParser.LERP) | (1 << MathExprParser.STEP) | (1 << MathExprParser.SMOOTHSTEP) | (1 << MathExprParser.FRACT) | (1 << MathExprParser.RELU) | (1 << MathExprParser.SOFTPLUS) | (1 << MathExprParser.GELU) | (1 << MathExprParser.SIGN) | (1 << MathExprParser.MAP) | (1 << MathExprParser.EZCONV) | (1 << MathExprParser.CONV) | (1 << MathExprParser.SWAP) | (1 << MathExprParser.PERM) | (1 << MathExprParser.RESHAPE) | (1 << MathExprParser.RANGE) | (1 << MathExprParser.LINSPACE) | (1 << MathExprParser.LOGSPACE) | (1 << MathExprParser.TOPK) | (1 << MathExprParser.BOTK) | (1 << MathExprParser.PINV) | (1 << MathExprParser.SUM) | (1 << MathExprParser.MEAN) | (1 << MathExprParser.STD) | (1 << MathExprParser.VAR) | (1 << MathExprParser.QUARTILE) | (1 << MathExprParser.PERCENTILE))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (MathExprParser.QUANTILE - 64)) | (1 << (MathExprParser.DOT - 64)) | (1 << (MathExprParser.MOMENT - 64)) | (1 << (MathExprParser.ERF - 64)) | (1 << (MathExprParser.ERFINV - 64)) | (1 << (MathExprParser.ANY - 64)) | (1 << (MathExprParser.ALL - 64)) | (1 << (MathExprParser.EDGE - 64)) | (1 << (MathExprParser.GAUSSIAN - 64)) | (1 << (MathExprParser.MEDIAN - 64)) | (1 << (MathExprParser.MODE - 64)) | (1 << (MathExprParser.CUMSUM - 64)) | (1 << (MathExprParser.CUMPROD - 64)) | (1 << (MathExprParser.TOPK_IND - 64)) | (1 << (MathExprParser.BOTK_IND - 64)) | (1 << (MathExprParser.CUBIC_EASE - 64)) | (1 << (MathExprParser.ELASTIC_EASE - 64)) | (1 << (MathExprParser.SINE_EASE - 64)) | (1 << (MathExprParser.SMOOTHERSTEP - 64)) | (1 << (MathExprParser.DIST - 64)) | (1 << (MathExprParser.REMAP - 64)) | (1 << (MathExprParser.COSSIM - 64)) | (1 << (MathExprParser.COUNT - 64)) | (1 << (MathExprParser.REPEAT - 64)) | (1 << (MathExprParser.FLATTEN - 64)) | (1 << (MathExprParser.APPEND - 64)) | (1 << (MathExprParser.GET_VALUE - 64)) | (1 << (MathExprParser.FLOW_APPLY - 64)) | (1 << (MathExprParser.BATCH_SHUFFLE - 64)) | (1 << (MathExprParser.MOTION_MASK - 64)) | (1 << (MathExprParser.FLOW_TO_IMAGE - 64)) | (1 << (MathExprParser.FLOW_MAG - 64)) | (1 << (MathExprParser.FLOW_ANG - 64)) | (1 << (MathExprParser.WHERE - 64)) | (1 << (MathExprParser.HISTOGRAM - 64)) | (1 << (MathExprParser.OVERLAY - 64)) | (1 << (MathExprParser.PAD - 64)) | (1 << (MathExprParser.CROSS - 64)) | (1 << (MathExprParser.MATMUL - 64)) | (1 << (MathExprParser.RIFE - 64)) | (1 << (MathExprParser.BNOT - 64)) | (1 << (MathExprParser.BITCOUNT - 64)) | (1 << (MathExprParser.SHAPE - 64)) | (1 << (MathExprParser.BAND - 64)) | (1 << (MathExprParser.XOR - 64)) | (1 << (MathExprParser.BOR - 64)) | (1 << (MathExprParser.TENSOR - 64)) | (1 << (MathExprParser.PUSH - 64)) | (1 << (MathExprParser.POP - 64)) | (1 << (MathExprParser.CLEAR - 64)) | (1 << (MathExprParser.HAS - 64)) | (1 << (MathExprParser.GET - 64)) | (1 << (MathExprParser.CONCAT - 64)) | (1 << (MathExprParser.INT - 64)) | (1 << (MathExprParser.FLOAT - 64)) | (1 << (MathExprParser.UPPER - 64)) | (1 << (MathExprParser.LOWER - 64)) | (1 << (MathExprParser.TRIM - 64)) | (1 << (MathExprParser.SPLIT - 64)) | (1 << (MathExprParser.JOIN - 64)) | (1 << (MathExprParser.SUBSTRING - 64)) | (1 << (MathExprParser.FIND - 64)) | (1 << (MathExprParser.REPLACE - 64)) | (1 << (MathExprParser.DILATE - 64)))) != 0) or ((((_la - 128)) & ~0x3f) == 0 and ((1 << (_la - 128)) & ((1 << (MathExprParser.ERODE - 128)) | (1 << (MathExprParser.MORPH_OPEN - 128)) | (1 << (MathExprParser.MORPH_CLOSE - 128)) | (1 << (MathExprParser.RGB_TO_OKLAB - 128)) | (1 << (MathExprParser.RGB_TO_CIELAB - 128)) | (1 << (MathExprParser.OKLAB_TO_RGB - 128)) | (1 << (MathExprParser.CIELAB_TO_RGB - 128)) | (1 << (MathExprParser.RGB_TO_HSV - 128)) | (1 << (MathExprParser.HSV_TO_RGB - 128)) | (1 << (MathExprParser.INT_TO_RGB - 128)) | (1 << (MathExprParser.RGB_TO_INT - 128)) | (1 << (MathExprParser.INTERPOLATE_LINEAR - 128)) | (1 << (MathExprParser.INTERPOLATE_AREA - 128)) | (1 << (MathExprParser.INTERPOLATE_NEAREST - 128)) | (1 << (MathExprParser.TEXT_IMAGE - 128)) | (1 << (MathExprParser.AS_NESTED - 128)) | (1 << (MathExprParser.SVD - 128)) | (1 << (MathExprParser.DIAG - 128)) | (1 << (MathExprParser.BREAK - 128)) | (1 << (MathExprParser.CONTINUE - 128)) | (1 << (MathExprParser.TIMESTAMP - 128)) | (1 << (MathExprParser.SORT - 128)) | (1 << (MathExprParser.ARGSORT - 128)) | (1 << (MathExprParser.ARGMIN - 128)) | (1 << (MathExprParser.ARGMAX - 128)) | (1 << (MathExprParser.SOFTMAX - 128)) | (1 << (MathExprParser.SOFTMIN - 128)) | (1 << (MathExprParser.UNIQUE - 128)) | (1 << (MathExprParser.FLIP - 128)) | (1 << (MathExprParser.STARTSWITH - 128)) | (1 << (MathExprParser.ENDSWITH - 128)) | (1 << (MathExprParser.SQUEEZE - 128)) | (1 << (MathExprParser.UNSQUEEZE - 128)) | (1 << (MathExprParser.ROLL - 128)) | (1 << (MathExprParser.COV - 128)) | (1 << (MathExprParser.CORR - 128)) | (1 << (MathExprParser.ENTROPY - 128)) | (1 << (MathExprParser.CROP - 128)) | (1 << (MathExprParser.NONE - 128)) | (1 << (MathExprParser.NOISE - 128)) | (1 << (MathExprParser.RAND - 128)) | (1 << (MathExprParser.CAUCHY - 128)) | (1 << (MathExprParser.EXPONENTIAL - 128)) | (1 << (MathExprParser.LOGNORMAL - 128)) | (1 << (MathExprParser.BERNOULLI - 128)) | (1 << (MathExprParser.POISSON - 128)) | (1 << (MathExprParser.GAMMADIST - 128)) | (1 << (MathExprParser.BETADIST - 128)) | (1 << (MathExprParser.LAPLACEDIST - 128)) | (1 << (MathExprParser.GUMBELDIST - 128)) | (1 << (MathExprParser.WEIBULLDIST - 128)) | (1 << (MathExprParser.CHI2DIST - 128)) | (1 << (MathExprParser.STUDENTTDIST - 128)) | (1 << (MathExprParser.PERLIN - 128)) | (1 << (MathExprParser.CELLULAR - 128)) | (1 << (MathExprParser.PLASMA - 128)) | (1 << (MathExprParser.RIDGED - 128)) | (1 << (MathExprParser.DOMAIN_WARP - 128)))) != 0) or ((((_la - 192)) & ~0x3f) == 0 and ((1 << (_la - 192)) & ((1 << (MathExprParser.PLUS - 192)) | (1 << (MathExprParser.MINUS - 192)) | (1 << (MathExprParser.PIPE - 192)) | (1 << (MathExprParser.LPAREN - 192)) | (1 << (MathExprParser.LBRACKET - 192)) | (1 << (MathExprParser.NUMBER - 192)) | (1 << (MathExprParser.CONSTANT - 192)) | (1 << (MathExprParser.STRING - 192)) | (1 << (MathExprParser.VARIABLE - 192)))) != 0): + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << MathExprParser.SIN) | (1 << MathExprParser.COS) | (1 << MathExprParser.TAN) | (1 << MathExprParser.ASIN) | (1 << MathExprParser.ACOS) | (1 << MathExprParser.ATAN) | (1 << MathExprParser.ATAN2) | (1 << MathExprParser.SINH) | (1 << MathExprParser.COSH) | (1 << MathExprParser.TANH) | (1 << MathExprParser.ASINH) | (1 << MathExprParser.ACOSH) | (1 << MathExprParser.ATANH) | (1 << MathExprParser.ABS) | (1 << MathExprParser.SQRT) | (1 << MathExprParser.LN) | (1 << MathExprParser.LOG) | (1 << MathExprParser.EXP) | (1 << MathExprParser.SMIN) | (1 << MathExprParser.SMAX) | (1 << MathExprParser.TMIN) | (1 << MathExprParser.TMAX) | (1 << MathExprParser.TNORM) | (1 << MathExprParser.SNORM) | (1 << MathExprParser.FLOOR) | (1 << MathExprParser.CEIL) | (1 << MathExprParser.ROUND) | (1 << MathExprParser.GAMMA) | (1 << MathExprParser.POWE) | (1 << MathExprParser.SIGM) | (1 << MathExprParser.CLAMP) | (1 << MathExprParser.SFFT) | (1 << MathExprParser.SIFFT) | (1 << MathExprParser.ANGL) | (1 << MathExprParser.PRNT) | (1 << MathExprParser.PRINT_SHAPE) | (1 << MathExprParser.NVL) | (1 << MathExprParser.LERP) | (1 << MathExprParser.STEP) | (1 << MathExprParser.SMOOTHSTEP) | (1 << MathExprParser.FRACT) | (1 << MathExprParser.RELU) | (1 << MathExprParser.SOFTPLUS) | (1 << MathExprParser.GELU) | (1 << MathExprParser.SIGN) | (1 << MathExprParser.MAP) | (1 << MathExprParser.EZCONV) | (1 << MathExprParser.CONV) | (1 << MathExprParser.SWAP) | (1 << MathExprParser.PERM) | (1 << MathExprParser.RESHAPE) | (1 << MathExprParser.RANGE) | (1 << MathExprParser.LINSPACE) | (1 << MathExprParser.LOGSPACE) | (1 << MathExprParser.TOPK) | (1 << MathExprParser.BOTK) | (1 << MathExprParser.PINV) | (1 << MathExprParser.SUM) | (1 << MathExprParser.MEAN) | (1 << MathExprParser.STD) | (1 << MathExprParser.VAR) | (1 << MathExprParser.QUARTILE) | (1 << MathExprParser.PERCENTILE))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (MathExprParser.QUANTILE - 64)) | (1 << (MathExprParser.DOT - 64)) | (1 << (MathExprParser.MOMENT - 64)) | (1 << (MathExprParser.ERF - 64)) | (1 << (MathExprParser.ERFINV - 64)) | (1 << (MathExprParser.ANY - 64)) | (1 << (MathExprParser.ALL - 64)) | (1 << (MathExprParser.EDGE - 64)) | (1 << (MathExprParser.GAUSSIAN - 64)) | (1 << (MathExprParser.MEDIAN - 64)) | (1 << (MathExprParser.MODE - 64)) | (1 << (MathExprParser.CUMSUM - 64)) | (1 << (MathExprParser.CUMPROD - 64)) | (1 << (MathExprParser.TOPK_IND - 64)) | (1 << (MathExprParser.BOTK_IND - 64)) | (1 << (MathExprParser.CUBIC_EASE - 64)) | (1 << (MathExprParser.ELASTIC_EASE - 64)) | (1 << (MathExprParser.SINE_EASE - 64)) | (1 << (MathExprParser.SMOOTHERSTEP - 64)) | (1 << (MathExprParser.DIST - 64)) | (1 << (MathExprParser.REMAP - 64)) | (1 << (MathExprParser.COSSIM - 64)) | (1 << (MathExprParser.COUNT - 64)) | (1 << (MathExprParser.REPEAT - 64)) | (1 << (MathExprParser.FLATTEN - 64)) | (1 << (MathExprParser.APPEND - 64)) | (1 << (MathExprParser.GET_VALUE - 64)) | (1 << (MathExprParser.FLOW_APPLY - 64)) | (1 << (MathExprParser.BATCH_SHUFFLE - 64)) | (1 << (MathExprParser.MOTION_MASK - 64)) | (1 << (MathExprParser.FLOW_TO_IMAGE - 64)) | (1 << (MathExprParser.FLOW_MAG - 64)) | (1 << (MathExprParser.FLOW_ANG - 64)) | (1 << (MathExprParser.WHERE - 64)) | (1 << (MathExprParser.HISTOGRAM - 64)) | (1 << (MathExprParser.OVERLAY - 64)) | (1 << (MathExprParser.PAD - 64)) | (1 << (MathExprParser.CROSS - 64)) | (1 << (MathExprParser.MATMUL - 64)) | (1 << (MathExprParser.RIFE - 64)) | (1 << (MathExprParser.BNOT - 64)) | (1 << (MathExprParser.BITCOUNT - 64)) | (1 << (MathExprParser.SHAPE - 64)) | (1 << (MathExprParser.BAND - 64)) | (1 << (MathExprParser.XOR - 64)) | (1 << (MathExprParser.BOR - 64)) | (1 << (MathExprParser.TENSOR - 64)) | (1 << (MathExprParser.PUSH - 64)) | (1 << (MathExprParser.POP - 64)) | (1 << (MathExprParser.CLEAR - 64)) | (1 << (MathExprParser.HAS - 64)) | (1 << (MathExprParser.GET - 64)) | (1 << (MathExprParser.CONCAT - 64)) | (1 << (MathExprParser.INT - 64)) | (1 << (MathExprParser.FLOAT - 64)) | (1 << (MathExprParser.UPPER - 64)) | (1 << (MathExprParser.LOWER - 64)) | (1 << (MathExprParser.TRIM - 64)) | (1 << (MathExprParser.SPLIT - 64)) | (1 << (MathExprParser.JOIN - 64)) | (1 << (MathExprParser.SUBSTRING - 64)) | (1 << (MathExprParser.FIND - 64)) | (1 << (MathExprParser.REPLACE - 64)) | (1 << (MathExprParser.DILATE - 64)))) != 0) or ((((_la - 128)) & ~0x3f) == 0 and ((1 << (_la - 128)) & ((1 << (MathExprParser.ERODE - 128)) | (1 << (MathExprParser.MORPH_OPEN - 128)) | (1 << (MathExprParser.MORPH_CLOSE - 128)) | (1 << (MathExprParser.RGB_TO_OKLAB - 128)) | (1 << (MathExprParser.RGB_TO_CIELAB - 128)) | (1 << (MathExprParser.OKLAB_TO_RGB - 128)) | (1 << (MathExprParser.CIELAB_TO_RGB - 128)) | (1 << (MathExprParser.RGB_TO_HSV - 128)) | (1 << (MathExprParser.HSV_TO_RGB - 128)) | (1 << (MathExprParser.INT_TO_RGB - 128)) | (1 << (MathExprParser.RGB_TO_INT - 128)) | (1 << (MathExprParser.INTERPOLATE_LINEAR - 128)) | (1 << (MathExprParser.INTERPOLATE_AREA - 128)) | (1 << (MathExprParser.INTERPOLATE_NEAREST - 128)) | (1 << (MathExprParser.TEXT_IMAGE - 128)) | (1 << (MathExprParser.AS_NESTED - 128)) | (1 << (MathExprParser.SVD - 128)) | (1 << (MathExprParser.DIAG - 128)) | (1 << (MathExprParser.BREAK - 128)) | (1 << (MathExprParser.CONTINUE - 128)) | (1 << (MathExprParser.TIMESTAMP - 128)) | (1 << (MathExprParser.SORT - 128)) | (1 << (MathExprParser.ARGSORT - 128)) | (1 << (MathExprParser.ARGMIN - 128)) | (1 << (MathExprParser.ARGMAX - 128)) | (1 << (MathExprParser.SOFTMAX - 128)) | (1 << (MathExprParser.SOFTMIN - 128)) | (1 << (MathExprParser.UNIQUE - 128)) | (1 << (MathExprParser.FLIP - 128)) | (1 << (MathExprParser.STARTSWITH - 128)) | (1 << (MathExprParser.ENDSWITH - 128)) | (1 << (MathExprParser.SQUEEZE - 128)) | (1 << (MathExprParser.UNSQUEEZE - 128)) | (1 << (MathExprParser.ROLL - 128)) | (1 << (MathExprParser.COV - 128)) | (1 << (MathExprParser.CORR - 128)) | (1 << (MathExprParser.ENTROPY - 128)) | (1 << (MathExprParser.CROP - 128)) | (1 << (MathExprParser.NONE - 128)) | (1 << (MathExprParser.COORDS - 128)) | (1 << (MathExprParser.NOISE - 128)) | (1 << (MathExprParser.RAND - 128)) | (1 << (MathExprParser.CAUCHY - 128)) | (1 << (MathExprParser.EXPONENTIAL - 128)) | (1 << (MathExprParser.LOGNORMAL - 128)) | (1 << (MathExprParser.BERNOULLI - 128)) | (1 << (MathExprParser.POISSON - 128)) | (1 << (MathExprParser.GAMMADIST - 128)) | (1 << (MathExprParser.BETADIST - 128)) | (1 << (MathExprParser.LAPLACEDIST - 128)) | (1 << (MathExprParser.GUMBELDIST - 128)) | (1 << (MathExprParser.WEIBULLDIST - 128)) | (1 << (MathExprParser.CHI2DIST - 128)) | (1 << (MathExprParser.STUDENTTDIST - 128)) | (1 << (MathExprParser.PERLIN - 128)) | (1 << (MathExprParser.CELLULAR - 128)) | (1 << (MathExprParser.PLASMA - 128)) | (1 << (MathExprParser.RIDGED - 128)))) != 0) or ((((_la - 192)) & ~0x3f) == 0 and ((1 << (_la - 192)) & ((1 << (MathExprParser.DOMAIN_WARP - 192)) | (1 << (MathExprParser.PLUS - 192)) | (1 << (MathExprParser.MINUS - 192)) | (1 << (MathExprParser.PIPE - 192)) | (1 << (MathExprParser.LPAREN - 192)) | (1 << (MathExprParser.LBRACKET - 192)) | (1 << (MathExprParser.NUMBER - 192)) | (1 << (MathExprParser.CONSTANT - 192)) | (1 << (MathExprParser.STRING - 192)) | (1 << (MathExprParser.VARIABLE - 192)))) != 0): self.state = 170 self.expr() @@ -3919,7 +3927,7 @@ class MathExprParser ( Parser ): self.state = 267 self.unaryExpr() pass - elif token in [MathExprParser.SIN, MathExprParser.COS, MathExprParser.TAN, MathExprParser.ASIN, MathExprParser.ACOS, MathExprParser.ATAN, MathExprParser.ATAN2, MathExprParser.SINH, MathExprParser.COSH, MathExprParser.TANH, MathExprParser.ASINH, MathExprParser.ACOSH, MathExprParser.ATANH, MathExprParser.ABS, MathExprParser.SQRT, MathExprParser.LN, MathExprParser.LOG, MathExprParser.EXP, MathExprParser.SMIN, MathExprParser.SMAX, MathExprParser.TMIN, MathExprParser.TMAX, MathExprParser.TNORM, MathExprParser.SNORM, MathExprParser.FLOOR, MathExprParser.CEIL, MathExprParser.ROUND, MathExprParser.GAMMA, MathExprParser.POWE, MathExprParser.SIGM, MathExprParser.CLAMP, MathExprParser.SFFT, MathExprParser.SIFFT, MathExprParser.ANGL, MathExprParser.PRNT, MathExprParser.PRINT_SHAPE, MathExprParser.NVL, MathExprParser.LERP, MathExprParser.STEP, MathExprParser.SMOOTHSTEP, MathExprParser.FRACT, MathExprParser.RELU, MathExprParser.SOFTPLUS, MathExprParser.GELU, MathExprParser.SIGN, MathExprParser.MAP, MathExprParser.EZCONV, MathExprParser.CONV, MathExprParser.SWAP, MathExprParser.PERM, MathExprParser.RESHAPE, MathExprParser.RANGE, MathExprParser.LINSPACE, MathExprParser.LOGSPACE, MathExprParser.TOPK, MathExprParser.BOTK, MathExprParser.PINV, MathExprParser.SUM, MathExprParser.MEAN, MathExprParser.STD, MathExprParser.VAR, MathExprParser.QUARTILE, MathExprParser.PERCENTILE, MathExprParser.QUANTILE, MathExprParser.DOT, MathExprParser.MOMENT, MathExprParser.ERF, MathExprParser.ERFINV, MathExprParser.ANY, MathExprParser.ALL, MathExprParser.EDGE, MathExprParser.GAUSSIAN, MathExprParser.MEDIAN, MathExprParser.MODE, MathExprParser.CUMSUM, MathExprParser.CUMPROD, MathExprParser.TOPK_IND, MathExprParser.BOTK_IND, MathExprParser.CUBIC_EASE, MathExprParser.ELASTIC_EASE, MathExprParser.SINE_EASE, MathExprParser.SMOOTHERSTEP, MathExprParser.DIST, MathExprParser.REMAP, MathExprParser.COSSIM, MathExprParser.COUNT, MathExprParser.REPEAT, MathExprParser.FLATTEN, MathExprParser.APPEND, MathExprParser.GET_VALUE, MathExprParser.FLOW_APPLY, MathExprParser.BATCH_SHUFFLE, MathExprParser.MOTION_MASK, MathExprParser.FLOW_TO_IMAGE, MathExprParser.FLOW_MAG, MathExprParser.FLOW_ANG, MathExprParser.WHERE, MathExprParser.HISTOGRAM, MathExprParser.OVERLAY, MathExprParser.PAD, MathExprParser.CROSS, MathExprParser.MATMUL, MathExprParser.RIFE, MathExprParser.BNOT, MathExprParser.BITCOUNT, MathExprParser.SHAPE, MathExprParser.BAND, MathExprParser.XOR, MathExprParser.BOR, MathExprParser.TENSOR, MathExprParser.PUSH, MathExprParser.POP, MathExprParser.CLEAR, MathExprParser.HAS, MathExprParser.GET, MathExprParser.CONCAT, MathExprParser.INT, MathExprParser.FLOAT, MathExprParser.UPPER, MathExprParser.LOWER, MathExprParser.TRIM, MathExprParser.SPLIT, MathExprParser.JOIN, MathExprParser.SUBSTRING, MathExprParser.FIND, MathExprParser.REPLACE, MathExprParser.DILATE, MathExprParser.ERODE, MathExprParser.MORPH_OPEN, MathExprParser.MORPH_CLOSE, MathExprParser.RGB_TO_OKLAB, MathExprParser.RGB_TO_CIELAB, MathExprParser.OKLAB_TO_RGB, MathExprParser.CIELAB_TO_RGB, MathExprParser.RGB_TO_HSV, MathExprParser.HSV_TO_RGB, MathExprParser.INT_TO_RGB, MathExprParser.RGB_TO_INT, MathExprParser.INTERPOLATE_LINEAR, MathExprParser.INTERPOLATE_AREA, MathExprParser.INTERPOLATE_NEAREST, MathExprParser.TEXT_IMAGE, MathExprParser.AS_NESTED, MathExprParser.SVD, MathExprParser.DIAG, MathExprParser.BREAK, MathExprParser.CONTINUE, MathExprParser.TIMESTAMP, MathExprParser.SORT, MathExprParser.ARGSORT, MathExprParser.ARGMIN, MathExprParser.ARGMAX, MathExprParser.SOFTMAX, MathExprParser.SOFTMIN, MathExprParser.UNIQUE, MathExprParser.FLIP, MathExprParser.STARTSWITH, MathExprParser.ENDSWITH, MathExprParser.SQUEEZE, MathExprParser.UNSQUEEZE, MathExprParser.ROLL, MathExprParser.COV, MathExprParser.CORR, MathExprParser.ENTROPY, MathExprParser.CROP, MathExprParser.NONE, MathExprParser.NOISE, MathExprParser.RAND, MathExprParser.CAUCHY, MathExprParser.EXPONENTIAL, MathExprParser.LOGNORMAL, MathExprParser.BERNOULLI, MathExprParser.POISSON, MathExprParser.GAMMADIST, MathExprParser.BETADIST, MathExprParser.LAPLACEDIST, MathExprParser.GUMBELDIST, MathExprParser.WEIBULLDIST, MathExprParser.CHI2DIST, MathExprParser.STUDENTTDIST, MathExprParser.PERLIN, MathExprParser.CELLULAR, MathExprParser.PLASMA, MathExprParser.RIDGED, MathExprParser.DOMAIN_WARP, MathExprParser.PIPE, MathExprParser.LPAREN, MathExprParser.LBRACKET, MathExprParser.NUMBER, MathExprParser.CONSTANT, MathExprParser.STRING, MathExprParser.VARIABLE]: + elif token in [MathExprParser.SIN, MathExprParser.COS, MathExprParser.TAN, MathExprParser.ASIN, MathExprParser.ACOS, MathExprParser.ATAN, MathExprParser.ATAN2, MathExprParser.SINH, MathExprParser.COSH, MathExprParser.TANH, MathExprParser.ASINH, MathExprParser.ACOSH, MathExprParser.ATANH, MathExprParser.ABS, MathExprParser.SQRT, MathExprParser.LN, MathExprParser.LOG, MathExprParser.EXP, MathExprParser.SMIN, MathExprParser.SMAX, MathExprParser.TMIN, MathExprParser.TMAX, MathExprParser.TNORM, MathExprParser.SNORM, MathExprParser.FLOOR, MathExprParser.CEIL, MathExprParser.ROUND, MathExprParser.GAMMA, MathExprParser.POWE, MathExprParser.SIGM, MathExprParser.CLAMP, MathExprParser.SFFT, MathExprParser.SIFFT, MathExprParser.ANGL, MathExprParser.PRNT, MathExprParser.PRINT_SHAPE, MathExprParser.NVL, MathExprParser.LERP, MathExprParser.STEP, MathExprParser.SMOOTHSTEP, MathExprParser.FRACT, MathExprParser.RELU, MathExprParser.SOFTPLUS, MathExprParser.GELU, MathExprParser.SIGN, MathExprParser.MAP, MathExprParser.EZCONV, MathExprParser.CONV, MathExprParser.SWAP, MathExprParser.PERM, MathExprParser.RESHAPE, MathExprParser.RANGE, MathExprParser.LINSPACE, MathExprParser.LOGSPACE, MathExprParser.TOPK, MathExprParser.BOTK, MathExprParser.PINV, MathExprParser.SUM, MathExprParser.MEAN, MathExprParser.STD, MathExprParser.VAR, MathExprParser.QUARTILE, MathExprParser.PERCENTILE, MathExprParser.QUANTILE, MathExprParser.DOT, MathExprParser.MOMENT, MathExprParser.ERF, MathExprParser.ERFINV, MathExprParser.ANY, MathExprParser.ALL, MathExprParser.EDGE, MathExprParser.GAUSSIAN, MathExprParser.MEDIAN, MathExprParser.MODE, MathExprParser.CUMSUM, MathExprParser.CUMPROD, MathExprParser.TOPK_IND, MathExprParser.BOTK_IND, MathExprParser.CUBIC_EASE, MathExprParser.ELASTIC_EASE, MathExprParser.SINE_EASE, MathExprParser.SMOOTHERSTEP, MathExprParser.DIST, MathExprParser.REMAP, MathExprParser.COSSIM, MathExprParser.COUNT, MathExprParser.REPEAT, MathExprParser.FLATTEN, MathExprParser.APPEND, MathExprParser.GET_VALUE, MathExprParser.FLOW_APPLY, MathExprParser.BATCH_SHUFFLE, MathExprParser.MOTION_MASK, MathExprParser.FLOW_TO_IMAGE, MathExprParser.FLOW_MAG, MathExprParser.FLOW_ANG, MathExprParser.WHERE, MathExprParser.HISTOGRAM, MathExprParser.OVERLAY, MathExprParser.PAD, MathExprParser.CROSS, MathExprParser.MATMUL, MathExprParser.RIFE, MathExprParser.BNOT, MathExprParser.BITCOUNT, MathExprParser.SHAPE, MathExprParser.BAND, MathExprParser.XOR, MathExprParser.BOR, MathExprParser.TENSOR, MathExprParser.PUSH, MathExprParser.POP, MathExprParser.CLEAR, MathExprParser.HAS, MathExprParser.GET, MathExprParser.CONCAT, MathExprParser.INT, MathExprParser.FLOAT, MathExprParser.UPPER, MathExprParser.LOWER, MathExprParser.TRIM, MathExprParser.SPLIT, MathExprParser.JOIN, MathExprParser.SUBSTRING, MathExprParser.FIND, MathExprParser.REPLACE, MathExprParser.DILATE, MathExprParser.ERODE, MathExprParser.MORPH_OPEN, MathExprParser.MORPH_CLOSE, MathExprParser.RGB_TO_OKLAB, MathExprParser.RGB_TO_CIELAB, MathExprParser.OKLAB_TO_RGB, MathExprParser.CIELAB_TO_RGB, MathExprParser.RGB_TO_HSV, MathExprParser.HSV_TO_RGB, MathExprParser.INT_TO_RGB, MathExprParser.RGB_TO_INT, MathExprParser.INTERPOLATE_LINEAR, MathExprParser.INTERPOLATE_AREA, MathExprParser.INTERPOLATE_NEAREST, MathExprParser.TEXT_IMAGE, MathExprParser.AS_NESTED, MathExprParser.SVD, MathExprParser.DIAG, MathExprParser.BREAK, MathExprParser.CONTINUE, MathExprParser.TIMESTAMP, MathExprParser.SORT, MathExprParser.ARGSORT, MathExprParser.ARGMIN, MathExprParser.ARGMAX, MathExprParser.SOFTMAX, MathExprParser.SOFTMIN, MathExprParser.UNIQUE, MathExprParser.FLIP, MathExprParser.STARTSWITH, MathExprParser.ENDSWITH, MathExprParser.SQUEEZE, MathExprParser.UNSQUEEZE, MathExprParser.ROLL, MathExprParser.COV, MathExprParser.CORR, MathExprParser.ENTROPY, MathExprParser.CROP, MathExprParser.NONE, MathExprParser.COORDS, MathExprParser.NOISE, MathExprParser.RAND, MathExprParser.CAUCHY, MathExprParser.EXPONENTIAL, MathExprParser.LOGNORMAL, MathExprParser.BERNOULLI, MathExprParser.POISSON, MathExprParser.GAMMADIST, MathExprParser.BETADIST, MathExprParser.LAPLACEDIST, MathExprParser.GUMBELDIST, MathExprParser.WEIBULLDIST, MathExprParser.CHI2DIST, MathExprParser.STUDENTTDIST, MathExprParser.PERLIN, MathExprParser.CELLULAR, MathExprParser.PLASMA, MathExprParser.RIDGED, MathExprParser.DOMAIN_WARP, MathExprParser.PIPE, MathExprParser.LPAREN, MathExprParser.LBRACKET, MathExprParser.NUMBER, MathExprParser.CONSTANT, MathExprParser.STRING, MathExprParser.VARIABLE]: localctx = MathExprParser.ToIndexContext(self, localctx) self.enterOuterAlt(localctx, 3) self.state = 268 @@ -4742,7 +4750,7 @@ class MathExprParser ( Parser ): self.state = 307 self.block() pass - elif token in [MathExprParser.SIN, MathExprParser.COS, MathExprParser.TAN, MathExprParser.ASIN, MathExprParser.ACOS, MathExprParser.ATAN, MathExprParser.ATAN2, MathExprParser.SINH, MathExprParser.COSH, MathExprParser.TANH, MathExprParser.ASINH, MathExprParser.ACOSH, MathExprParser.ATANH, MathExprParser.ABS, MathExprParser.SQRT, MathExprParser.LN, MathExprParser.LOG, MathExprParser.EXP, MathExprParser.SMIN, MathExprParser.SMAX, MathExprParser.TMIN, MathExprParser.TMAX, MathExprParser.TNORM, MathExprParser.SNORM, MathExprParser.FLOOR, MathExprParser.CEIL, MathExprParser.ROUND, MathExprParser.GAMMA, MathExprParser.POWE, MathExprParser.SIGM, MathExprParser.CLAMP, MathExprParser.SFFT, MathExprParser.SIFFT, MathExprParser.ANGL, MathExprParser.PRNT, MathExprParser.PRINT_SHAPE, MathExprParser.NVL, MathExprParser.LERP, MathExprParser.STEP, MathExprParser.SMOOTHSTEP, MathExprParser.FRACT, MathExprParser.RELU, MathExprParser.SOFTPLUS, MathExprParser.GELU, MathExprParser.SIGN, MathExprParser.MAP, MathExprParser.EZCONV, MathExprParser.CONV, MathExprParser.SWAP, MathExprParser.PERM, MathExprParser.RESHAPE, MathExprParser.RANGE, MathExprParser.LINSPACE, MathExprParser.LOGSPACE, MathExprParser.TOPK, MathExprParser.BOTK, MathExprParser.PINV, MathExprParser.SUM, MathExprParser.MEAN, MathExprParser.STD, MathExprParser.VAR, MathExprParser.QUARTILE, MathExprParser.PERCENTILE, MathExprParser.QUANTILE, MathExprParser.DOT, MathExprParser.MOMENT, MathExprParser.ERF, MathExprParser.ERFINV, MathExprParser.ANY, MathExprParser.ALL, MathExprParser.EDGE, MathExprParser.GAUSSIAN, MathExprParser.MEDIAN, MathExprParser.MODE, MathExprParser.CUMSUM, MathExprParser.CUMPROD, MathExprParser.TOPK_IND, MathExprParser.BOTK_IND, MathExprParser.CUBIC_EASE, MathExprParser.ELASTIC_EASE, MathExprParser.SINE_EASE, MathExprParser.SMOOTHERSTEP, MathExprParser.DIST, MathExprParser.REMAP, MathExprParser.COSSIM, MathExprParser.COUNT, MathExprParser.REPEAT, MathExprParser.FLATTEN, MathExprParser.APPEND, MathExprParser.GET_VALUE, MathExprParser.FLOW_APPLY, MathExprParser.BATCH_SHUFFLE, MathExprParser.MOTION_MASK, MathExprParser.FLOW_TO_IMAGE, MathExprParser.FLOW_MAG, MathExprParser.FLOW_ANG, MathExprParser.WHERE, MathExprParser.HISTOGRAM, MathExprParser.OVERLAY, MathExprParser.PAD, MathExprParser.CROSS, MathExprParser.MATMUL, MathExprParser.RIFE, MathExprParser.BNOT, MathExprParser.BITCOUNT, MathExprParser.SHAPE, MathExprParser.BAND, MathExprParser.XOR, MathExprParser.BOR, MathExprParser.TENSOR, MathExprParser.PUSH, MathExprParser.POP, MathExprParser.CLEAR, MathExprParser.HAS, MathExprParser.GET, MathExprParser.CONCAT, MathExprParser.INT, MathExprParser.FLOAT, MathExprParser.UPPER, MathExprParser.LOWER, MathExprParser.TRIM, MathExprParser.SPLIT, MathExprParser.JOIN, MathExprParser.SUBSTRING, MathExprParser.FIND, MathExprParser.REPLACE, MathExprParser.DILATE, MathExprParser.ERODE, MathExprParser.MORPH_OPEN, MathExprParser.MORPH_CLOSE, MathExprParser.RGB_TO_OKLAB, MathExprParser.RGB_TO_CIELAB, MathExprParser.OKLAB_TO_RGB, MathExprParser.CIELAB_TO_RGB, MathExprParser.RGB_TO_HSV, MathExprParser.HSV_TO_RGB, MathExprParser.INT_TO_RGB, MathExprParser.RGB_TO_INT, MathExprParser.INTERPOLATE_LINEAR, MathExprParser.INTERPOLATE_AREA, MathExprParser.INTERPOLATE_NEAREST, MathExprParser.TEXT_IMAGE, MathExprParser.AS_NESTED, MathExprParser.SVD, MathExprParser.DIAG, MathExprParser.BREAK, MathExprParser.CONTINUE, MathExprParser.TIMESTAMP, MathExprParser.SORT, MathExprParser.ARGSORT, MathExprParser.ARGMIN, MathExprParser.ARGMAX, MathExprParser.SOFTMAX, MathExprParser.SOFTMIN, MathExprParser.UNIQUE, MathExprParser.FLIP, MathExprParser.STARTSWITH, MathExprParser.ENDSWITH, MathExprParser.SQUEEZE, MathExprParser.UNSQUEEZE, MathExprParser.ROLL, MathExprParser.COV, MathExprParser.CORR, MathExprParser.ENTROPY, MathExprParser.CROP, MathExprParser.NONE, MathExprParser.NOISE, MathExprParser.RAND, MathExprParser.CAUCHY, MathExprParser.EXPONENTIAL, MathExprParser.LOGNORMAL, MathExprParser.BERNOULLI, MathExprParser.POISSON, MathExprParser.GAMMADIST, MathExprParser.BETADIST, MathExprParser.LAPLACEDIST, MathExprParser.GUMBELDIST, MathExprParser.WEIBULLDIST, MathExprParser.CHI2DIST, MathExprParser.STUDENTTDIST, MathExprParser.PERLIN, MathExprParser.CELLULAR, MathExprParser.PLASMA, MathExprParser.RIDGED, MathExprParser.DOMAIN_WARP, MathExprParser.PLUS, MathExprParser.MINUS, MathExprParser.PIPE, MathExprParser.LPAREN, MathExprParser.LBRACKET, MathExprParser.NUMBER, MathExprParser.CONSTANT, MathExprParser.STRING, MathExprParser.VARIABLE]: + elif token in [MathExprParser.SIN, MathExprParser.COS, MathExprParser.TAN, MathExprParser.ASIN, MathExprParser.ACOS, MathExprParser.ATAN, MathExprParser.ATAN2, MathExprParser.SINH, MathExprParser.COSH, MathExprParser.TANH, MathExprParser.ASINH, MathExprParser.ACOSH, MathExprParser.ATANH, MathExprParser.ABS, MathExprParser.SQRT, MathExprParser.LN, MathExprParser.LOG, MathExprParser.EXP, MathExprParser.SMIN, MathExprParser.SMAX, MathExprParser.TMIN, MathExprParser.TMAX, MathExprParser.TNORM, MathExprParser.SNORM, MathExprParser.FLOOR, MathExprParser.CEIL, MathExprParser.ROUND, MathExprParser.GAMMA, MathExprParser.POWE, MathExprParser.SIGM, MathExprParser.CLAMP, MathExprParser.SFFT, MathExprParser.SIFFT, MathExprParser.ANGL, MathExprParser.PRNT, MathExprParser.PRINT_SHAPE, MathExprParser.NVL, MathExprParser.LERP, MathExprParser.STEP, MathExprParser.SMOOTHSTEP, MathExprParser.FRACT, MathExprParser.RELU, MathExprParser.SOFTPLUS, MathExprParser.GELU, MathExprParser.SIGN, MathExprParser.MAP, MathExprParser.EZCONV, MathExprParser.CONV, MathExprParser.SWAP, MathExprParser.PERM, MathExprParser.RESHAPE, MathExprParser.RANGE, MathExprParser.LINSPACE, MathExprParser.LOGSPACE, MathExprParser.TOPK, MathExprParser.BOTK, MathExprParser.PINV, MathExprParser.SUM, MathExprParser.MEAN, MathExprParser.STD, MathExprParser.VAR, MathExprParser.QUARTILE, MathExprParser.PERCENTILE, MathExprParser.QUANTILE, MathExprParser.DOT, MathExprParser.MOMENT, MathExprParser.ERF, MathExprParser.ERFINV, MathExprParser.ANY, MathExprParser.ALL, MathExprParser.EDGE, MathExprParser.GAUSSIAN, MathExprParser.MEDIAN, MathExprParser.MODE, MathExprParser.CUMSUM, MathExprParser.CUMPROD, MathExprParser.TOPK_IND, MathExprParser.BOTK_IND, MathExprParser.CUBIC_EASE, MathExprParser.ELASTIC_EASE, MathExprParser.SINE_EASE, MathExprParser.SMOOTHERSTEP, MathExprParser.DIST, MathExprParser.REMAP, MathExprParser.COSSIM, MathExprParser.COUNT, MathExprParser.REPEAT, MathExprParser.FLATTEN, MathExprParser.APPEND, MathExprParser.GET_VALUE, MathExprParser.FLOW_APPLY, MathExprParser.BATCH_SHUFFLE, MathExprParser.MOTION_MASK, MathExprParser.FLOW_TO_IMAGE, MathExprParser.FLOW_MAG, MathExprParser.FLOW_ANG, MathExprParser.WHERE, MathExprParser.HISTOGRAM, MathExprParser.OVERLAY, MathExprParser.PAD, MathExprParser.CROSS, MathExprParser.MATMUL, MathExprParser.RIFE, MathExprParser.BNOT, MathExprParser.BITCOUNT, MathExprParser.SHAPE, MathExprParser.BAND, MathExprParser.XOR, MathExprParser.BOR, MathExprParser.TENSOR, MathExprParser.PUSH, MathExprParser.POP, MathExprParser.CLEAR, MathExprParser.HAS, MathExprParser.GET, MathExprParser.CONCAT, MathExprParser.INT, MathExprParser.FLOAT, MathExprParser.UPPER, MathExprParser.LOWER, MathExprParser.TRIM, MathExprParser.SPLIT, MathExprParser.JOIN, MathExprParser.SUBSTRING, MathExprParser.FIND, MathExprParser.REPLACE, MathExprParser.DILATE, MathExprParser.ERODE, MathExprParser.MORPH_OPEN, MathExprParser.MORPH_CLOSE, MathExprParser.RGB_TO_OKLAB, MathExprParser.RGB_TO_CIELAB, MathExprParser.OKLAB_TO_RGB, MathExprParser.CIELAB_TO_RGB, MathExprParser.RGB_TO_HSV, MathExprParser.HSV_TO_RGB, MathExprParser.INT_TO_RGB, MathExprParser.RGB_TO_INT, MathExprParser.INTERPOLATE_LINEAR, MathExprParser.INTERPOLATE_AREA, MathExprParser.INTERPOLATE_NEAREST, MathExprParser.TEXT_IMAGE, MathExprParser.AS_NESTED, MathExprParser.SVD, MathExprParser.DIAG, MathExprParser.BREAK, MathExprParser.CONTINUE, MathExprParser.TIMESTAMP, MathExprParser.SORT, MathExprParser.ARGSORT, MathExprParser.ARGMIN, MathExprParser.ARGMAX, MathExprParser.SOFTMAX, MathExprParser.SOFTMIN, MathExprParser.UNIQUE, MathExprParser.FLIP, MathExprParser.STARTSWITH, MathExprParser.ENDSWITH, MathExprParser.SQUEEZE, MathExprParser.UNSQUEEZE, MathExprParser.ROLL, MathExprParser.COV, MathExprParser.CORR, MathExprParser.ENTROPY, MathExprParser.CROP, MathExprParser.NONE, MathExprParser.COORDS, MathExprParser.NOISE, MathExprParser.RAND, MathExprParser.CAUCHY, MathExprParser.EXPONENTIAL, MathExprParser.LOGNORMAL, MathExprParser.BERNOULLI, MathExprParser.POISSON, MathExprParser.GAMMADIST, MathExprParser.BETADIST, MathExprParser.LAPLACEDIST, MathExprParser.GUMBELDIST, MathExprParser.WEIBULLDIST, MathExprParser.CHI2DIST, MathExprParser.STUDENTTDIST, MathExprParser.PERLIN, MathExprParser.CELLULAR, MathExprParser.PLASMA, MathExprParser.RIDGED, MathExprParser.DOMAIN_WARP, MathExprParser.PLUS, MathExprParser.MINUS, MathExprParser.PIPE, MathExprParser.LPAREN, MathExprParser.LBRACKET, MathExprParser.NUMBER, MathExprParser.CONSTANT, MathExprParser.STRING, MathExprParser.VARIABLE]: self.state = 308 self.expr() pass @@ -4817,7 +4825,7 @@ class MathExprParser ( Parser ): self.state = 337 self._errHandler.sync(self) _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << MathExprParser.SIN) | (1 << MathExprParser.COS) | (1 << MathExprParser.TAN) | (1 << MathExprParser.ASIN) | (1 << MathExprParser.ACOS) | (1 << MathExprParser.ATAN) | (1 << MathExprParser.ATAN2) | (1 << MathExprParser.SINH) | (1 << MathExprParser.COSH) | (1 << MathExprParser.TANH) | (1 << MathExprParser.ASINH) | (1 << MathExprParser.ACOSH) | (1 << MathExprParser.ATANH) | (1 << MathExprParser.ABS) | (1 << MathExprParser.SQRT) | (1 << MathExprParser.LN) | (1 << MathExprParser.LOG) | (1 << MathExprParser.EXP) | (1 << MathExprParser.SMIN) | (1 << MathExprParser.SMAX) | (1 << MathExprParser.TMIN) | (1 << MathExprParser.TMAX) | (1 << MathExprParser.TNORM) | (1 << MathExprParser.SNORM) | (1 << MathExprParser.FLOOR) | (1 << MathExprParser.CEIL) | (1 << MathExprParser.ROUND) | (1 << MathExprParser.GAMMA) | (1 << MathExprParser.POWE) | (1 << MathExprParser.SIGM) | (1 << MathExprParser.CLAMP) | (1 << MathExprParser.SFFT) | (1 << MathExprParser.SIFFT) | (1 << MathExprParser.ANGL) | (1 << MathExprParser.PRNT) | (1 << MathExprParser.PRINT_SHAPE) | (1 << MathExprParser.NVL) | (1 << MathExprParser.LERP) | (1 << MathExprParser.STEP) | (1 << MathExprParser.SMOOTHSTEP) | (1 << MathExprParser.FRACT) | (1 << MathExprParser.RELU) | (1 << MathExprParser.SOFTPLUS) | (1 << MathExprParser.GELU) | (1 << MathExprParser.SIGN) | (1 << MathExprParser.MAP) | (1 << MathExprParser.EZCONV) | (1 << MathExprParser.CONV) | (1 << MathExprParser.SWAP) | (1 << MathExprParser.PERM) | (1 << MathExprParser.RESHAPE) | (1 << MathExprParser.RANGE) | (1 << MathExprParser.LINSPACE) | (1 << MathExprParser.LOGSPACE) | (1 << MathExprParser.TOPK) | (1 << MathExprParser.BOTK) | (1 << MathExprParser.PINV) | (1 << MathExprParser.SUM) | (1 << MathExprParser.MEAN) | (1 << MathExprParser.STD) | (1 << MathExprParser.VAR) | (1 << MathExprParser.QUARTILE) | (1 << MathExprParser.PERCENTILE))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (MathExprParser.QUANTILE - 64)) | (1 << (MathExprParser.DOT - 64)) | (1 << (MathExprParser.MOMENT - 64)) | (1 << (MathExprParser.ERF - 64)) | (1 << (MathExprParser.ERFINV - 64)) | (1 << (MathExprParser.ANY - 64)) | (1 << (MathExprParser.ALL - 64)) | (1 << (MathExprParser.EDGE - 64)) | (1 << (MathExprParser.GAUSSIAN - 64)) | (1 << (MathExprParser.MEDIAN - 64)) | (1 << (MathExprParser.MODE - 64)) | (1 << (MathExprParser.CUMSUM - 64)) | (1 << (MathExprParser.CUMPROD - 64)) | (1 << (MathExprParser.TOPK_IND - 64)) | (1 << (MathExprParser.BOTK_IND - 64)) | (1 << (MathExprParser.CUBIC_EASE - 64)) | (1 << (MathExprParser.ELASTIC_EASE - 64)) | (1 << (MathExprParser.SINE_EASE - 64)) | (1 << (MathExprParser.SMOOTHERSTEP - 64)) | (1 << (MathExprParser.DIST - 64)) | (1 << (MathExprParser.REMAP - 64)) | (1 << (MathExprParser.COSSIM - 64)) | (1 << (MathExprParser.COUNT - 64)) | (1 << (MathExprParser.REPEAT - 64)) | (1 << (MathExprParser.FLATTEN - 64)) | (1 << (MathExprParser.APPEND - 64)) | (1 << (MathExprParser.GET_VALUE - 64)) | (1 << (MathExprParser.FLOW_APPLY - 64)) | (1 << (MathExprParser.BATCH_SHUFFLE - 64)) | (1 << (MathExprParser.MOTION_MASK - 64)) | (1 << (MathExprParser.FLOW_TO_IMAGE - 64)) | (1 << (MathExprParser.FLOW_MAG - 64)) | (1 << (MathExprParser.FLOW_ANG - 64)) | (1 << (MathExprParser.WHERE - 64)) | (1 << (MathExprParser.HISTOGRAM - 64)) | (1 << (MathExprParser.OVERLAY - 64)) | (1 << (MathExprParser.PAD - 64)) | (1 << (MathExprParser.CROSS - 64)) | (1 << (MathExprParser.MATMUL - 64)) | (1 << (MathExprParser.RIFE - 64)) | (1 << (MathExprParser.BNOT - 64)) | (1 << (MathExprParser.BITCOUNT - 64)) | (1 << (MathExprParser.SHAPE - 64)) | (1 << (MathExprParser.BAND - 64)) | (1 << (MathExprParser.XOR - 64)) | (1 << (MathExprParser.BOR - 64)) | (1 << (MathExprParser.TENSOR - 64)) | (1 << (MathExprParser.PUSH - 64)) | (1 << (MathExprParser.POP - 64)) | (1 << (MathExprParser.CLEAR - 64)) | (1 << (MathExprParser.HAS - 64)) | (1 << (MathExprParser.GET - 64)) | (1 << (MathExprParser.CONCAT - 64)) | (1 << (MathExprParser.INT - 64)) | (1 << (MathExprParser.FLOAT - 64)) | (1 << (MathExprParser.UPPER - 64)) | (1 << (MathExprParser.LOWER - 64)) | (1 << (MathExprParser.TRIM - 64)) | (1 << (MathExprParser.SPLIT - 64)) | (1 << (MathExprParser.JOIN - 64)) | (1 << (MathExprParser.SUBSTRING - 64)) | (1 << (MathExprParser.FIND - 64)) | (1 << (MathExprParser.REPLACE - 64)) | (1 << (MathExprParser.DILATE - 64)))) != 0) or ((((_la - 128)) & ~0x3f) == 0 and ((1 << (_la - 128)) & ((1 << (MathExprParser.ERODE - 128)) | (1 << (MathExprParser.MORPH_OPEN - 128)) | (1 << (MathExprParser.MORPH_CLOSE - 128)) | (1 << (MathExprParser.RGB_TO_OKLAB - 128)) | (1 << (MathExprParser.RGB_TO_CIELAB - 128)) | (1 << (MathExprParser.OKLAB_TO_RGB - 128)) | (1 << (MathExprParser.CIELAB_TO_RGB - 128)) | (1 << (MathExprParser.RGB_TO_HSV - 128)) | (1 << (MathExprParser.HSV_TO_RGB - 128)) | (1 << (MathExprParser.INT_TO_RGB - 128)) | (1 << (MathExprParser.RGB_TO_INT - 128)) | (1 << (MathExprParser.INTERPOLATE_LINEAR - 128)) | (1 << (MathExprParser.INTERPOLATE_AREA - 128)) | (1 << (MathExprParser.INTERPOLATE_NEAREST - 128)) | (1 << (MathExprParser.TEXT_IMAGE - 128)) | (1 << (MathExprParser.AS_NESTED - 128)) | (1 << (MathExprParser.SVD - 128)) | (1 << (MathExprParser.DIAG - 128)) | (1 << (MathExprParser.BREAK - 128)) | (1 << (MathExprParser.CONTINUE - 128)) | (1 << (MathExprParser.TIMESTAMP - 128)) | (1 << (MathExprParser.SORT - 128)) | (1 << (MathExprParser.ARGSORT - 128)) | (1 << (MathExprParser.ARGMIN - 128)) | (1 << (MathExprParser.ARGMAX - 128)) | (1 << (MathExprParser.SOFTMAX - 128)) | (1 << (MathExprParser.SOFTMIN - 128)) | (1 << (MathExprParser.UNIQUE - 128)) | (1 << (MathExprParser.FLIP - 128)) | (1 << (MathExprParser.STARTSWITH - 128)) | (1 << (MathExprParser.ENDSWITH - 128)) | (1 << (MathExprParser.SQUEEZE - 128)) | (1 << (MathExprParser.UNSQUEEZE - 128)) | (1 << (MathExprParser.ROLL - 128)) | (1 << (MathExprParser.COV - 128)) | (1 << (MathExprParser.CORR - 128)) | (1 << (MathExprParser.ENTROPY - 128)) | (1 << (MathExprParser.CROP - 128)) | (1 << (MathExprParser.NONE - 128)) | (1 << (MathExprParser.NOISE - 128)) | (1 << (MathExprParser.RAND - 128)) | (1 << (MathExprParser.CAUCHY - 128)) | (1 << (MathExprParser.EXPONENTIAL - 128)) | (1 << (MathExprParser.LOGNORMAL - 128)) | (1 << (MathExprParser.BERNOULLI - 128)) | (1 << (MathExprParser.POISSON - 128)) | (1 << (MathExprParser.GAMMADIST - 128)) | (1 << (MathExprParser.BETADIST - 128)) | (1 << (MathExprParser.LAPLACEDIST - 128)) | (1 << (MathExprParser.GUMBELDIST - 128)) | (1 << (MathExprParser.WEIBULLDIST - 128)) | (1 << (MathExprParser.CHI2DIST - 128)) | (1 << (MathExprParser.STUDENTTDIST - 128)) | (1 << (MathExprParser.PERLIN - 128)) | (1 << (MathExprParser.CELLULAR - 128)) | (1 << (MathExprParser.PLASMA - 128)) | (1 << (MathExprParser.RIDGED - 128)) | (1 << (MathExprParser.DOMAIN_WARP - 128)))) != 0) or ((((_la - 192)) & ~0x3f) == 0 and ((1 << (_la - 192)) & ((1 << (MathExprParser.PLUS - 192)) | (1 << (MathExprParser.MINUS - 192)) | (1 << (MathExprParser.PIPE - 192)) | (1 << (MathExprParser.LPAREN - 192)) | (1 << (MathExprParser.LBRACKET - 192)) | (1 << (MathExprParser.NUMBER - 192)) | (1 << (MathExprParser.CONSTANT - 192)) | (1 << (MathExprParser.STRING - 192)) | (1 << (MathExprParser.VARIABLE - 192)))) != 0): + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << MathExprParser.SIN) | (1 << MathExprParser.COS) | (1 << MathExprParser.TAN) | (1 << MathExprParser.ASIN) | (1 << MathExprParser.ACOS) | (1 << MathExprParser.ATAN) | (1 << MathExprParser.ATAN2) | (1 << MathExprParser.SINH) | (1 << MathExprParser.COSH) | (1 << MathExprParser.TANH) | (1 << MathExprParser.ASINH) | (1 << MathExprParser.ACOSH) | (1 << MathExprParser.ATANH) | (1 << MathExprParser.ABS) | (1 << MathExprParser.SQRT) | (1 << MathExprParser.LN) | (1 << MathExprParser.LOG) | (1 << MathExprParser.EXP) | (1 << MathExprParser.SMIN) | (1 << MathExprParser.SMAX) | (1 << MathExprParser.TMIN) | (1 << MathExprParser.TMAX) | (1 << MathExprParser.TNORM) | (1 << MathExprParser.SNORM) | (1 << MathExprParser.FLOOR) | (1 << MathExprParser.CEIL) | (1 << MathExprParser.ROUND) | (1 << MathExprParser.GAMMA) | (1 << MathExprParser.POWE) | (1 << MathExprParser.SIGM) | (1 << MathExprParser.CLAMP) | (1 << MathExprParser.SFFT) | (1 << MathExprParser.SIFFT) | (1 << MathExprParser.ANGL) | (1 << MathExprParser.PRNT) | (1 << MathExprParser.PRINT_SHAPE) | (1 << MathExprParser.NVL) | (1 << MathExprParser.LERP) | (1 << MathExprParser.STEP) | (1 << MathExprParser.SMOOTHSTEP) | (1 << MathExprParser.FRACT) | (1 << MathExprParser.RELU) | (1 << MathExprParser.SOFTPLUS) | (1 << MathExprParser.GELU) | (1 << MathExprParser.SIGN) | (1 << MathExprParser.MAP) | (1 << MathExprParser.EZCONV) | (1 << MathExprParser.CONV) | (1 << MathExprParser.SWAP) | (1 << MathExprParser.PERM) | (1 << MathExprParser.RESHAPE) | (1 << MathExprParser.RANGE) | (1 << MathExprParser.LINSPACE) | (1 << MathExprParser.LOGSPACE) | (1 << MathExprParser.TOPK) | (1 << MathExprParser.BOTK) | (1 << MathExprParser.PINV) | (1 << MathExprParser.SUM) | (1 << MathExprParser.MEAN) | (1 << MathExprParser.STD) | (1 << MathExprParser.VAR) | (1 << MathExprParser.QUARTILE) | (1 << MathExprParser.PERCENTILE))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (MathExprParser.QUANTILE - 64)) | (1 << (MathExprParser.DOT - 64)) | (1 << (MathExprParser.MOMENT - 64)) | (1 << (MathExprParser.ERF - 64)) | (1 << (MathExprParser.ERFINV - 64)) | (1 << (MathExprParser.ANY - 64)) | (1 << (MathExprParser.ALL - 64)) | (1 << (MathExprParser.EDGE - 64)) | (1 << (MathExprParser.GAUSSIAN - 64)) | (1 << (MathExprParser.MEDIAN - 64)) | (1 << (MathExprParser.MODE - 64)) | (1 << (MathExprParser.CUMSUM - 64)) | (1 << (MathExprParser.CUMPROD - 64)) | (1 << (MathExprParser.TOPK_IND - 64)) | (1 << (MathExprParser.BOTK_IND - 64)) | (1 << (MathExprParser.CUBIC_EASE - 64)) | (1 << (MathExprParser.ELASTIC_EASE - 64)) | (1 << (MathExprParser.SINE_EASE - 64)) | (1 << (MathExprParser.SMOOTHERSTEP - 64)) | (1 << (MathExprParser.DIST - 64)) | (1 << (MathExprParser.REMAP - 64)) | (1 << (MathExprParser.COSSIM - 64)) | (1 << (MathExprParser.COUNT - 64)) | (1 << (MathExprParser.REPEAT - 64)) | (1 << (MathExprParser.FLATTEN - 64)) | (1 << (MathExprParser.APPEND - 64)) | (1 << (MathExprParser.GET_VALUE - 64)) | (1 << (MathExprParser.FLOW_APPLY - 64)) | (1 << (MathExprParser.BATCH_SHUFFLE - 64)) | (1 << (MathExprParser.MOTION_MASK - 64)) | (1 << (MathExprParser.FLOW_TO_IMAGE - 64)) | (1 << (MathExprParser.FLOW_MAG - 64)) | (1 << (MathExprParser.FLOW_ANG - 64)) | (1 << (MathExprParser.WHERE - 64)) | (1 << (MathExprParser.HISTOGRAM - 64)) | (1 << (MathExprParser.OVERLAY - 64)) | (1 << (MathExprParser.PAD - 64)) | (1 << (MathExprParser.CROSS - 64)) | (1 << (MathExprParser.MATMUL - 64)) | (1 << (MathExprParser.RIFE - 64)) | (1 << (MathExprParser.BNOT - 64)) | (1 << (MathExprParser.BITCOUNT - 64)) | (1 << (MathExprParser.SHAPE - 64)) | (1 << (MathExprParser.BAND - 64)) | (1 << (MathExprParser.XOR - 64)) | (1 << (MathExprParser.BOR - 64)) | (1 << (MathExprParser.TENSOR - 64)) | (1 << (MathExprParser.PUSH - 64)) | (1 << (MathExprParser.POP - 64)) | (1 << (MathExprParser.CLEAR - 64)) | (1 << (MathExprParser.HAS - 64)) | (1 << (MathExprParser.GET - 64)) | (1 << (MathExprParser.CONCAT - 64)) | (1 << (MathExprParser.INT - 64)) | (1 << (MathExprParser.FLOAT - 64)) | (1 << (MathExprParser.UPPER - 64)) | (1 << (MathExprParser.LOWER - 64)) | (1 << (MathExprParser.TRIM - 64)) | (1 << (MathExprParser.SPLIT - 64)) | (1 << (MathExprParser.JOIN - 64)) | (1 << (MathExprParser.SUBSTRING - 64)) | (1 << (MathExprParser.FIND - 64)) | (1 << (MathExprParser.REPLACE - 64)) | (1 << (MathExprParser.DILATE - 64)))) != 0) or ((((_la - 128)) & ~0x3f) == 0 and ((1 << (_la - 128)) & ((1 << (MathExprParser.ERODE - 128)) | (1 << (MathExprParser.MORPH_OPEN - 128)) | (1 << (MathExprParser.MORPH_CLOSE - 128)) | (1 << (MathExprParser.RGB_TO_OKLAB - 128)) | (1 << (MathExprParser.RGB_TO_CIELAB - 128)) | (1 << (MathExprParser.OKLAB_TO_RGB - 128)) | (1 << (MathExprParser.CIELAB_TO_RGB - 128)) | (1 << (MathExprParser.RGB_TO_HSV - 128)) | (1 << (MathExprParser.HSV_TO_RGB - 128)) | (1 << (MathExprParser.INT_TO_RGB - 128)) | (1 << (MathExprParser.RGB_TO_INT - 128)) | (1 << (MathExprParser.INTERPOLATE_LINEAR - 128)) | (1 << (MathExprParser.INTERPOLATE_AREA - 128)) | (1 << (MathExprParser.INTERPOLATE_NEAREST - 128)) | (1 << (MathExprParser.TEXT_IMAGE - 128)) | (1 << (MathExprParser.AS_NESTED - 128)) | (1 << (MathExprParser.SVD - 128)) | (1 << (MathExprParser.DIAG - 128)) | (1 << (MathExprParser.BREAK - 128)) | (1 << (MathExprParser.CONTINUE - 128)) | (1 << (MathExprParser.TIMESTAMP - 128)) | (1 << (MathExprParser.SORT - 128)) | (1 << (MathExprParser.ARGSORT - 128)) | (1 << (MathExprParser.ARGMIN - 128)) | (1 << (MathExprParser.ARGMAX - 128)) | (1 << (MathExprParser.SOFTMAX - 128)) | (1 << (MathExprParser.SOFTMIN - 128)) | (1 << (MathExprParser.UNIQUE - 128)) | (1 << (MathExprParser.FLIP - 128)) | (1 << (MathExprParser.STARTSWITH - 128)) | (1 << (MathExprParser.ENDSWITH - 128)) | (1 << (MathExprParser.SQUEEZE - 128)) | (1 << (MathExprParser.UNSQUEEZE - 128)) | (1 << (MathExprParser.ROLL - 128)) | (1 << (MathExprParser.COV - 128)) | (1 << (MathExprParser.CORR - 128)) | (1 << (MathExprParser.ENTROPY - 128)) | (1 << (MathExprParser.CROP - 128)) | (1 << (MathExprParser.NONE - 128)) | (1 << (MathExprParser.COORDS - 128)) | (1 << (MathExprParser.NOISE - 128)) | (1 << (MathExprParser.RAND - 128)) | (1 << (MathExprParser.CAUCHY - 128)) | (1 << (MathExprParser.EXPONENTIAL - 128)) | (1 << (MathExprParser.LOGNORMAL - 128)) | (1 << (MathExprParser.BERNOULLI - 128)) | (1 << (MathExprParser.POISSON - 128)) | (1 << (MathExprParser.GAMMADIST - 128)) | (1 << (MathExprParser.BETADIST - 128)) | (1 << (MathExprParser.LAPLACEDIST - 128)) | (1 << (MathExprParser.GUMBELDIST - 128)) | (1 << (MathExprParser.WEIBULLDIST - 128)) | (1 << (MathExprParser.CHI2DIST - 128)) | (1 << (MathExprParser.STUDENTTDIST - 128)) | (1 << (MathExprParser.PERLIN - 128)) | (1 << (MathExprParser.CELLULAR - 128)) | (1 << (MathExprParser.PLASMA - 128)) | (1 << (MathExprParser.RIDGED - 128)))) != 0) or ((((_la - 192)) & ~0x3f) == 0 and ((1 << (_la - 192)) & ((1 << (MathExprParser.DOMAIN_WARP - 192)) | (1 << (MathExprParser.PLUS - 192)) | (1 << (MathExprParser.MINUS - 192)) | (1 << (MathExprParser.PIPE - 192)) | (1 << (MathExprParser.LPAREN - 192)) | (1 << (MathExprParser.LBRACKET - 192)) | (1 << (MathExprParser.NUMBER - 192)) | (1 << (MathExprParser.CONSTANT - 192)) | (1 << (MathExprParser.STRING - 192)) | (1 << (MathExprParser.VARIABLE - 192)))) != 0): self.state = 336 self.exprList() @@ -11425,6 +11433,45 @@ class MathExprParser ( Parser ): return visitor.visitChildren(self) + class CoordsFuncContext(Func3Context): + + def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func3Context + super().__init__(parser) + self.copyFrom(ctx) + + def COORDS(self): + return self.getToken(MathExprParser.COORDS, 0) + def LPAREN(self): + return self.getToken(MathExprParser.LPAREN, 0) + def expr(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(MathExprParser.ExprContext) + else: + return self.getTypedRuleContext(MathExprParser.ExprContext,i) + + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(MathExprParser.COMMA) + else: + return self.getToken(MathExprParser.COMMA, i) + def RPAREN(self): + return self.getToken(MathExprParser.RPAREN, 0) + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterCoordsFunc" ): + listener.enterCoordsFunc(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitCoordsFunc" ): + listener.exitCoordsFunc(self) + + def accept(self, visitor:ParseTreeVisitor): + if hasattr( visitor, "visitCoordsFunc" ): + return visitor.visitCoordsFunc(self) + else: + return visitor.visitChildren(self) + + class LinspaceFuncContext(Func3Context): def __init__(self, parser, ctx:ParserRuleContext): # actually a MathExprParser.Func3Context @@ -12014,7 +12061,7 @@ class MathExprParser ( Parser ): self.enterRule(localctx, 52, self.RULE_func3) self._la = 0 # Token type try: - self.state = 1420 + self.state = 1431 self._errHandler.sync(self) token = self._input.LA(1) if token in [MathExprParser.CLAMP]: @@ -12591,6 +12638,32 @@ class MathExprParser ( Parser ): self.state = 1418 self.match(MathExprParser.RPAREN) pass + elif token in [MathExprParser.COORDS]: + localctx = MathExprParser.CoordsFuncContext(self, localctx) + self.enterOuterAlt(localctx, 23) + self.state = 1420 + self.match(MathExprParser.COORDS) + self.state = 1421 + self.match(MathExprParser.LPAREN) + self.state = 1422 + self.expr() + self.state = 1423 + self.match(MathExprParser.COMMA) + self.state = 1424 + self.expr() + self.state = 1427 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==MathExprParser.COMMA: + self.state = 1425 + self.match(MathExprParser.COMMA) + self.state = 1426 + self.expr() + + + self.state = 1429 + self.match(MathExprParser.RPAREN) + pass else: raise NoViableAltException(self) @@ -12821,38 +12894,14 @@ class MathExprParser ( Parser ): localctx = MathExprParser.Func4Context(self, self._ctx, self.state) self.enterRule(localctx, 54, self.RULE_func4) try: - self.state = 1477 + self.state = 1488 self._errHandler.sync(self) token = self._input.LA(1) if token in [MathExprParser.SWAP]: localctx = MathExprParser.SwapFuncContext(self, localctx) self.enterOuterAlt(localctx, 1) - self.state = 1422 - self.match(MathExprParser.SWAP) - self.state = 1423 - self.match(MathExprParser.LPAREN) - self.state = 1424 - self.expr() - self.state = 1425 - self.match(MathExprParser.COMMA) - self.state = 1426 - self.expr() - self.state = 1427 - self.match(MathExprParser.COMMA) - self.state = 1428 - self.expr() - self.state = 1429 - self.match(MathExprParser.COMMA) - self.state = 1430 - self.expr() - self.state = 1431 - self.match(MathExprParser.RPAREN) - pass - elif token in [MathExprParser.NVL]: - localctx = MathExprParser.NvlFuncContext(self, localctx) - self.enterOuterAlt(localctx, 2) self.state = 1433 - self.match(MathExprParser.NVL) + self.match(MathExprParser.SWAP) self.state = 1434 self.match(MathExprParser.LPAREN) self.state = 1435 @@ -12872,11 +12921,11 @@ class MathExprParser ( Parser ): self.state = 1442 self.match(MathExprParser.RPAREN) pass - elif token in [MathExprParser.LOGSPACE]: - localctx = MathExprParser.LogspaceFuncContext(self, localctx) - self.enterOuterAlt(localctx, 3) + elif token in [MathExprParser.NVL]: + localctx = MathExprParser.NvlFuncContext(self, localctx) + self.enterOuterAlt(localctx, 2) self.state = 1444 - self.match(MathExprParser.LOGSPACE) + self.match(MathExprParser.NVL) self.state = 1445 self.match(MathExprParser.LPAREN) self.state = 1446 @@ -12896,11 +12945,11 @@ class MathExprParser ( Parser ): self.state = 1453 self.match(MathExprParser.RPAREN) pass - elif token in [MathExprParser.DIST]: - localctx = MathExprParser.DistFuncContext(self, localctx) - self.enterOuterAlt(localctx, 4) + elif token in [MathExprParser.LOGSPACE]: + localctx = MathExprParser.LogspaceFuncContext(self, localctx) + self.enterOuterAlt(localctx, 3) self.state = 1455 - self.match(MathExprParser.DIST) + self.match(MathExprParser.LOGSPACE) self.state = 1456 self.match(MathExprParser.LPAREN) self.state = 1457 @@ -12920,11 +12969,11 @@ class MathExprParser ( Parser ): self.state = 1464 self.match(MathExprParser.RPAREN) pass - elif token in [MathExprParser.HISTOGRAM]: - localctx = MathExprParser.HistogramFuncContext(self, localctx) - self.enterOuterAlt(localctx, 5) + elif token in [MathExprParser.DIST]: + localctx = MathExprParser.DistFuncContext(self, localctx) + self.enterOuterAlt(localctx, 4) self.state = 1466 - self.match(MathExprParser.HISTOGRAM) + self.match(MathExprParser.DIST) self.state = 1467 self.match(MathExprParser.LPAREN) self.state = 1468 @@ -12944,6 +12993,30 @@ class MathExprParser ( Parser ): self.state = 1475 self.match(MathExprParser.RPAREN) pass + elif token in [MathExprParser.HISTOGRAM]: + localctx = MathExprParser.HistogramFuncContext(self, localctx) + self.enterOuterAlt(localctx, 5) + self.state = 1477 + self.match(MathExprParser.HISTOGRAM) + self.state = 1478 + self.match(MathExprParser.LPAREN) + self.state = 1479 + self.expr() + self.state = 1480 + self.match(MathExprParser.COMMA) + self.state = 1481 + self.expr() + self.state = 1482 + self.match(MathExprParser.COMMA) + self.state = 1483 + self.expr() + self.state = 1484 + self.match(MathExprParser.COMMA) + self.state = 1485 + self.expr() + self.state = 1486 + self.match(MathExprParser.RPAREN) + pass else: raise NoViableAltException(self) @@ -13058,73 +13131,73 @@ class MathExprParser ( Parser ): self.enterRule(localctx, 56, self.RULE_func5) self._la = 0 # Token type try: - self.state = 1511 + self.state = 1522 self._errHandler.sync(self) token = self._input.LA(1) if token in [MathExprParser.REMAP]: localctx = MathExprParser.RemapFuncContext(self, localctx) self.enterOuterAlt(localctx, 1) - self.state = 1479 - self.match(MathExprParser.REMAP) - self.state = 1480 - self.match(MathExprParser.LPAREN) - self.state = 1481 - self.expr() - self.state = 1482 - self.match(MathExprParser.COMMA) - self.state = 1483 - self.expr() - self.state = 1484 - self.match(MathExprParser.COMMA) - self.state = 1485 - self.expr() - self.state = 1486 - self.match(MathExprParser.COMMA) - self.state = 1487 - self.expr() - self.state = 1488 - self.match(MathExprParser.COMMA) - self.state = 1489 - self.expr() self.state = 1490 - self.match(MathExprParser.RPAREN) - pass - elif token in [MathExprParser.DIAG]: - localctx = MathExprParser.DiagonalMatrixFuncContext(self, localctx) - self.enterOuterAlt(localctx, 2) - self.state = 1492 - self.match(MathExprParser.DIAG) - self.state = 1493 + self.match(MathExprParser.REMAP) + self.state = 1491 self.match(MathExprParser.LPAREN) + self.state = 1492 + self.expr() + self.state = 1493 + self.match(MathExprParser.COMMA) self.state = 1494 self.expr() self.state = 1495 self.match(MathExprParser.COMMA) self.state = 1496 self.expr() + self.state = 1497 + self.match(MathExprParser.COMMA) + self.state = 1498 + self.expr() + self.state = 1499 + self.match(MathExprParser.COMMA) + self.state = 1500 + self.expr() + self.state = 1501 + self.match(MathExprParser.RPAREN) + pass + elif token in [MathExprParser.DIAG]: + localctx = MathExprParser.DiagonalMatrixFuncContext(self, localctx) + self.enterOuterAlt(localctx, 2) + self.state = 1503 + self.match(MathExprParser.DIAG) + self.state = 1504 + self.match(MathExprParser.LPAREN) + self.state = 1505 + self.expr() + self.state = 1506 + self.match(MathExprParser.COMMA) self.state = 1507 + self.expr() + self.state = 1518 self._errHandler.sync(self) _la = self._input.LA(1) if _la==MathExprParser.COMMA: - self.state = 1497 + self.state = 1508 self.match(MathExprParser.COMMA) - self.state = 1498 + self.state = 1509 self.expr() - self.state = 1505 + self.state = 1516 self._errHandler.sync(self) _la = self._input.LA(1) if _la==MathExprParser.COMMA: - self.state = 1499 + self.state = 1510 self.match(MathExprParser.COMMA) - self.state = 1500 + self.state = 1511 self.expr() - self.state = 1503 + self.state = 1514 self._errHandler.sync(self) _la = self._input.LA(1) if _la==MathExprParser.COMMA: - self.state = 1501 + self.state = 1512 self.match(MathExprParser.COMMA) - self.state = 1502 + self.state = 1513 self.expr() @@ -13132,7 +13205,7 @@ class MathExprParser ( Parser ): - self.state = 1509 + self.state = 1520 self.match(MathExprParser.RPAREN) pass else: @@ -13513,88 +13586,62 @@ class MathExprParser ( Parser ): self.enterRule(localctx, 58, self.RULE_funcN) self._la = 0 # Token type try: - self.state = 1604 + self.state = 1615 self._errHandler.sync(self) token = self._input.LA(1) if token in [MathExprParser.SMIN]: localctx = MathExprParser.SMinFuncContext(self, localctx) self.enterOuterAlt(localctx, 1) - self.state = 1513 + self.state = 1524 self.match(MathExprParser.SMIN) - self.state = 1514 + self.state = 1525 self.match(MathExprParser.LPAREN) - self.state = 1515 + self.state = 1526 self.expr() - self.state = 1520 + self.state = 1531 self._errHandler.sync(self) _la = self._input.LA(1) while _la==MathExprParser.COMMA: - self.state = 1516 + self.state = 1527 self.match(MathExprParser.COMMA) - self.state = 1517 + self.state = 1528 self.expr() - self.state = 1522 + self.state = 1533 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 1523 + self.state = 1534 self.match(MathExprParser.RPAREN) pass elif token in [MathExprParser.SMAX]: localctx = MathExprParser.SMaxFuncContext(self, localctx) self.enterOuterAlt(localctx, 2) - self.state = 1525 + self.state = 1536 self.match(MathExprParser.SMAX) - self.state = 1526 + self.state = 1537 self.match(MathExprParser.LPAREN) - self.state = 1527 + self.state = 1538 self.expr() - self.state = 1532 + self.state = 1543 self._errHandler.sync(self) _la = self._input.LA(1) while _la==MathExprParser.COMMA: - self.state = 1528 + self.state = 1539 self.match(MathExprParser.COMMA) - self.state = 1529 + self.state = 1540 self.expr() - self.state = 1534 + self.state = 1545 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 1535 + self.state = 1546 self.match(MathExprParser.RPAREN) pass elif token in [MathExprParser.MAP]: localctx = MathExprParser.MapFuncContext(self, localctx) self.enterOuterAlt(localctx, 3) - self.state = 1537 - self.match(MathExprParser.MAP) - self.state = 1538 - self.match(MathExprParser.LPAREN) - self.state = 1539 - self.expr() - self.state = 1542 - self._errHandler.sync(self) - _la = self._input.LA(1) - while True: - self.state = 1540 - self.match(MathExprParser.COMMA) - self.state = 1541 - self.expr() - self.state = 1544 - self._errHandler.sync(self) - _la = self._input.LA(1) - if not (_la==MathExprParser.COMMA): - break - - self.state = 1546 - self.match(MathExprParser.RPAREN) - pass - elif token in [MathExprParser.EZCONV]: - localctx = MathExprParser.EzConvFuncContext(self, localctx) - self.enterOuterAlt(localctx, 4) self.state = 1548 - self.match(MathExprParser.EZCONV) + self.match(MathExprParser.MAP) self.state = 1549 self.match(MathExprParser.LPAREN) self.state = 1550 @@ -13616,11 +13663,11 @@ class MathExprParser ( Parser ): self.state = 1557 self.match(MathExprParser.RPAREN) pass - elif token in [MathExprParser.CONV]: - localctx = MathExprParser.ConvFuncContext(self, localctx) - self.enterOuterAlt(localctx, 5) + elif token in [MathExprParser.EZCONV]: + localctx = MathExprParser.EzConvFuncContext(self, localctx) + self.enterOuterAlt(localctx, 4) self.state = 1559 - self.match(MathExprParser.CONV) + self.match(MathExprParser.EZCONV) self.state = 1560 self.match(MathExprParser.LPAREN) self.state = 1561 @@ -13642,86 +13689,112 @@ class MathExprParser ( Parser ): self.state = 1568 self.match(MathExprParser.RPAREN) pass - elif token in [MathExprParser.RESHAPE]: - localctx = MathExprParser.ReshapeFuncContext(self, localctx) - self.enterOuterAlt(localctx, 6) + elif token in [MathExprParser.CONV]: + localctx = MathExprParser.ConvFuncContext(self, localctx) + self.enterOuterAlt(localctx, 5) self.state = 1570 - self.match(MathExprParser.RESHAPE) + self.match(MathExprParser.CONV) self.state = 1571 self.match(MathExprParser.LPAREN) self.state = 1572 self.expr() - self.state = 1573 - self.match(MathExprParser.COMMA) - self.state = 1574 - self.expr() - self.state = 1575 - self.match(MathExprParser.RPAREN) - pass - elif token in [MathExprParser.SQUEEZE]: - localctx = MathExprParser.SqueezeFuncContext(self, localctx) - self.enterOuterAlt(localctx, 7) - self.state = 1577 - self.match(MathExprParser.SQUEEZE) - self.state = 1578 - self.match(MathExprParser.LPAREN) - self.state = 1579 - self.expr() - self.state = 1582 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==MathExprParser.COMMA: - self.state = 1580 - self.match(MathExprParser.COMMA) - self.state = 1581 - self.expr() - - - self.state = 1584 - self.match(MathExprParser.RPAREN) - pass - elif token in [MathExprParser.UNSQUEEZE]: - localctx = MathExprParser.UnsqueezeFuncContext(self, localctx) - self.enterOuterAlt(localctx, 8) - self.state = 1586 - self.match(MathExprParser.UNSQUEEZE) - self.state = 1587 - self.match(MathExprParser.LPAREN) - self.state = 1588 - self.expr() - self.state = 1589 - self.match(MathExprParser.COMMA) - self.state = 1590 - self.expr() - self.state = 1591 - self.match(MathExprParser.RPAREN) - pass - elif token in [MathExprParser.CONCAT]: - localctx = MathExprParser.ConcatFuncContext(self, localctx) - self.enterOuterAlt(localctx, 9) - self.state = 1593 - self.match(MathExprParser.CONCAT) - self.state = 1594 - self.match(MathExprParser.LPAREN) - self.state = 1595 - self.expr() - self.state = 1598 + self.state = 1575 self._errHandler.sync(self) _la = self._input.LA(1) while True: - self.state = 1596 + self.state = 1573 self.match(MathExprParser.COMMA) - self.state = 1597 + self.state = 1574 self.expr() - self.state = 1600 + self.state = 1577 self._errHandler.sync(self) _la = self._input.LA(1) if not (_la==MathExprParser.COMMA): break + self.state = 1579 + self.match(MathExprParser.RPAREN) + pass + elif token in [MathExprParser.RESHAPE]: + localctx = MathExprParser.ReshapeFuncContext(self, localctx) + self.enterOuterAlt(localctx, 6) + self.state = 1581 + self.match(MathExprParser.RESHAPE) + self.state = 1582 + self.match(MathExprParser.LPAREN) + self.state = 1583 + self.expr() + self.state = 1584 + self.match(MathExprParser.COMMA) + self.state = 1585 + self.expr() + self.state = 1586 + self.match(MathExprParser.RPAREN) + pass + elif token in [MathExprParser.SQUEEZE]: + localctx = MathExprParser.SqueezeFuncContext(self, localctx) + self.enterOuterAlt(localctx, 7) + self.state = 1588 + self.match(MathExprParser.SQUEEZE) + self.state = 1589 + self.match(MathExprParser.LPAREN) + self.state = 1590 + self.expr() + self.state = 1593 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==MathExprParser.COMMA: + self.state = 1591 + self.match(MathExprParser.COMMA) + self.state = 1592 + self.expr() + + + self.state = 1595 + self.match(MathExprParser.RPAREN) + pass + elif token in [MathExprParser.UNSQUEEZE]: + localctx = MathExprParser.UnsqueezeFuncContext(self, localctx) + self.enterOuterAlt(localctx, 8) + self.state = 1597 + self.match(MathExprParser.UNSQUEEZE) + self.state = 1598 + self.match(MathExprParser.LPAREN) + self.state = 1599 + self.expr() + self.state = 1600 + self.match(MathExprParser.COMMA) + self.state = 1601 + self.expr() self.state = 1602 self.match(MathExprParser.RPAREN) pass + elif token in [MathExprParser.CONCAT]: + localctx = MathExprParser.ConcatFuncContext(self, localctx) + self.enterOuterAlt(localctx, 9) + self.state = 1604 + self.match(MathExprParser.CONCAT) + self.state = 1605 + self.match(MathExprParser.LPAREN) + self.state = 1606 + self.expr() + self.state = 1609 + self._errHandler.sync(self) + _la = self._input.LA(1) + while True: + self.state = 1607 + self.match(MathExprParser.COMMA) + self.state = 1608 + self.expr() + self.state = 1611 + self._errHandler.sync(self) + _la = self._input.LA(1) + if not (_la==MathExprParser.COMMA): + break + + self.state = 1613 + self.match(MathExprParser.RPAREN) + pass else: raise NoViableAltException(self) @@ -14493,64 +14566,38 @@ class MathExprParser ( Parser ): self.enterRule(localctx, 60, self.RULE_funcNoise) self._la = 0 # Token type try: - self.state = 1873 + self.state = 1884 self._errHandler.sync(self) token = self._input.LA(1) if token in [MathExprParser.NOISE]: localctx = MathExprParser.NoiseFuncContext(self, localctx) self.enterOuterAlt(localctx, 1) - self.state = 1606 + self.state = 1617 self.match(MathExprParser.NOISE) - self.state = 1607 + self.state = 1618 self.match(MathExprParser.LPAREN) - self.state = 1608 + self.state = 1619 self.expr() - self.state = 1611 + self.state = 1622 self._errHandler.sync(self) _la = self._input.LA(1) if _la==MathExprParser.COMMA: - self.state = 1609 + self.state = 1620 self.match(MathExprParser.COMMA) - self.state = 1610 + self.state = 1621 self.expr() - self.state = 1613 + self.state = 1624 self.match(MathExprParser.RPAREN) pass elif token in [MathExprParser.RAND]: localctx = MathExprParser.RandFuncContext(self, localctx) self.enterOuterAlt(localctx, 2) - self.state = 1615 - self.match(MathExprParser.RAND) - self.state = 1616 - self.match(MathExprParser.LPAREN) - self.state = 1617 - self.expr() - self.state = 1620 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==MathExprParser.COMMA: - self.state = 1618 - self.match(MathExprParser.COMMA) - self.state = 1619 - self.expr() - - - self.state = 1622 - self.match(MathExprParser.RPAREN) - pass - elif token in [MathExprParser.EXPONENTIAL]: - localctx = MathExprParser.ExponentialFuncContext(self, localctx) - self.enterOuterAlt(localctx, 3) - self.state = 1624 - self.match(MathExprParser.EXPONENTIAL) - self.state = 1625 - self.match(MathExprParser.LPAREN) self.state = 1626 - self.expr() + self.match(MathExprParser.RAND) self.state = 1627 - self.match(MathExprParser.COMMA) + self.match(MathExprParser.LPAREN) self.state = 1628 self.expr() self.state = 1631 @@ -14566,11 +14613,11 @@ class MathExprParser ( Parser ): self.state = 1633 self.match(MathExprParser.RPAREN) pass - elif token in [MathExprParser.BERNOULLI]: - localctx = MathExprParser.BernoulliFuncContext(self, localctx) - self.enterOuterAlt(localctx, 4) + elif token in [MathExprParser.EXPONENTIAL]: + localctx = MathExprParser.ExponentialFuncContext(self, localctx) + self.enterOuterAlt(localctx, 3) self.state = 1635 - self.match(MathExprParser.BERNOULLI) + self.match(MathExprParser.EXPONENTIAL) self.state = 1636 self.match(MathExprParser.LPAREN) self.state = 1637 @@ -14592,11 +14639,11 @@ class MathExprParser ( Parser ): self.state = 1644 self.match(MathExprParser.RPAREN) pass - elif token in [MathExprParser.POISSON]: - localctx = MathExprParser.PoissonFuncContext(self, localctx) - self.enterOuterAlt(localctx, 5) + elif token in [MathExprParser.BERNOULLI]: + localctx = MathExprParser.BernoulliFuncContext(self, localctx) + self.enterOuterAlt(localctx, 4) self.state = 1646 - self.match(MathExprParser.POISSON) + self.match(MathExprParser.BERNOULLI) self.state = 1647 self.match(MathExprParser.LPAREN) self.state = 1648 @@ -14618,11 +14665,11 @@ class MathExprParser ( Parser ): self.state = 1655 self.match(MathExprParser.RPAREN) pass - elif token in [MathExprParser.CAUCHY]: - localctx = MathExprParser.CauchyFuncContext(self, localctx) - self.enterOuterAlt(localctx, 6) + elif token in [MathExprParser.POISSON]: + localctx = MathExprParser.PoissonFuncContext(self, localctx) + self.enterOuterAlt(localctx, 5) self.state = 1657 - self.match(MathExprParser.CAUCHY) + self.match(MathExprParser.POISSON) self.state = 1658 self.match(MathExprParser.LPAREN) self.state = 1659 @@ -14631,210 +14678,210 @@ class MathExprParser ( Parser ): self.match(MathExprParser.COMMA) self.state = 1661 self.expr() - self.state = 1662 - self.match(MathExprParser.COMMA) - self.state = 1663 - self.expr() - self.state = 1666 + self.state = 1664 self._errHandler.sync(self) _la = self._input.LA(1) if _la==MathExprParser.COMMA: - self.state = 1664 + self.state = 1662 self.match(MathExprParser.COMMA) - self.state = 1665 + self.state = 1663 self.expr() - self.state = 1668 + self.state = 1666 self.match(MathExprParser.RPAREN) pass - elif token in [MathExprParser.LOGNORMAL]: - localctx = MathExprParser.LogNormalFuncContext(self, localctx) - self.enterOuterAlt(localctx, 7) - self.state = 1670 - self.match(MathExprParser.LOGNORMAL) - self.state = 1671 + elif token in [MathExprParser.CAUCHY]: + localctx = MathExprParser.CauchyFuncContext(self, localctx) + self.enterOuterAlt(localctx, 6) + self.state = 1668 + self.match(MathExprParser.CAUCHY) + self.state = 1669 self.match(MathExprParser.LPAREN) + self.state = 1670 + self.expr() + self.state = 1671 + self.match(MathExprParser.COMMA) self.state = 1672 self.expr() self.state = 1673 self.match(MathExprParser.COMMA) self.state = 1674 self.expr() - self.state = 1675 - self.match(MathExprParser.COMMA) - self.state = 1676 - self.expr() - self.state = 1679 + self.state = 1677 self._errHandler.sync(self) _la = self._input.LA(1) if _la==MathExprParser.COMMA: - self.state = 1677 + self.state = 1675 self.match(MathExprParser.COMMA) - self.state = 1678 + self.state = 1676 self.expr() - self.state = 1681 + self.state = 1679 self.match(MathExprParser.RPAREN) pass - elif token in [MathExprParser.GAMMADIST]: - localctx = MathExprParser.GammaDistFuncContext(self, localctx) - self.enterOuterAlt(localctx, 8) - self.state = 1683 - self.match(MathExprParser.GAMMADIST) - self.state = 1684 + elif token in [MathExprParser.LOGNORMAL]: + localctx = MathExprParser.LogNormalFuncContext(self, localctx) + self.enterOuterAlt(localctx, 7) + self.state = 1681 + self.match(MathExprParser.LOGNORMAL) + self.state = 1682 self.match(MathExprParser.LPAREN) + self.state = 1683 + self.expr() + self.state = 1684 + self.match(MathExprParser.COMMA) self.state = 1685 self.expr() self.state = 1686 self.match(MathExprParser.COMMA) self.state = 1687 self.expr() - self.state = 1688 - self.match(MathExprParser.COMMA) - self.state = 1689 - self.expr() - self.state = 1692 + self.state = 1690 self._errHandler.sync(self) _la = self._input.LA(1) if _la==MathExprParser.COMMA: - self.state = 1690 + self.state = 1688 self.match(MathExprParser.COMMA) - self.state = 1691 + self.state = 1689 self.expr() - self.state = 1694 + self.state = 1692 self.match(MathExprParser.RPAREN) pass - elif token in [MathExprParser.BETADIST]: - localctx = MathExprParser.BetaDistFuncContext(self, localctx) - self.enterOuterAlt(localctx, 9) - self.state = 1696 - self.match(MathExprParser.BETADIST) - self.state = 1697 + elif token in [MathExprParser.GAMMADIST]: + localctx = MathExprParser.GammaDistFuncContext(self, localctx) + self.enterOuterAlt(localctx, 8) + self.state = 1694 + self.match(MathExprParser.GAMMADIST) + self.state = 1695 self.match(MathExprParser.LPAREN) + self.state = 1696 + self.expr() + self.state = 1697 + self.match(MathExprParser.COMMA) self.state = 1698 self.expr() self.state = 1699 self.match(MathExprParser.COMMA) self.state = 1700 self.expr() - self.state = 1701 - self.match(MathExprParser.COMMA) - self.state = 1702 - self.expr() - self.state = 1705 + self.state = 1703 self._errHandler.sync(self) _la = self._input.LA(1) if _la==MathExprParser.COMMA: - self.state = 1703 + self.state = 1701 self.match(MathExprParser.COMMA) - self.state = 1704 + self.state = 1702 self.expr() - self.state = 1707 + self.state = 1705 self.match(MathExprParser.RPAREN) pass - elif token in [MathExprParser.LAPLACEDIST]: - localctx = MathExprParser.LaplaceDistFuncContext(self, localctx) - self.enterOuterAlt(localctx, 10) - self.state = 1709 - self.match(MathExprParser.LAPLACEDIST) - self.state = 1710 + elif token in [MathExprParser.BETADIST]: + localctx = MathExprParser.BetaDistFuncContext(self, localctx) + self.enterOuterAlt(localctx, 9) + self.state = 1707 + self.match(MathExprParser.BETADIST) + self.state = 1708 self.match(MathExprParser.LPAREN) + self.state = 1709 + self.expr() + self.state = 1710 + self.match(MathExprParser.COMMA) self.state = 1711 self.expr() self.state = 1712 self.match(MathExprParser.COMMA) self.state = 1713 self.expr() - self.state = 1714 - self.match(MathExprParser.COMMA) - self.state = 1715 - self.expr() - self.state = 1718 + self.state = 1716 self._errHandler.sync(self) _la = self._input.LA(1) if _la==MathExprParser.COMMA: - self.state = 1716 + self.state = 1714 self.match(MathExprParser.COMMA) - self.state = 1717 + self.state = 1715 self.expr() - self.state = 1720 + self.state = 1718 self.match(MathExprParser.RPAREN) pass - elif token in [MathExprParser.GUMBELDIST]: - localctx = MathExprParser.GumbelDistFuncContext(self, localctx) - self.enterOuterAlt(localctx, 11) - self.state = 1722 - self.match(MathExprParser.GUMBELDIST) - self.state = 1723 + elif token in [MathExprParser.LAPLACEDIST]: + localctx = MathExprParser.LaplaceDistFuncContext(self, localctx) + self.enterOuterAlt(localctx, 10) + self.state = 1720 + self.match(MathExprParser.LAPLACEDIST) + self.state = 1721 self.match(MathExprParser.LPAREN) + self.state = 1722 + self.expr() + self.state = 1723 + self.match(MathExprParser.COMMA) self.state = 1724 self.expr() self.state = 1725 self.match(MathExprParser.COMMA) self.state = 1726 self.expr() - self.state = 1727 - self.match(MathExprParser.COMMA) - self.state = 1728 - self.expr() - self.state = 1731 + self.state = 1729 self._errHandler.sync(self) _la = self._input.LA(1) if _la==MathExprParser.COMMA: - self.state = 1729 + self.state = 1727 self.match(MathExprParser.COMMA) - self.state = 1730 + self.state = 1728 self.expr() - self.state = 1733 + self.state = 1731 self.match(MathExprParser.RPAREN) pass - elif token in [MathExprParser.WEIBULLDIST]: - localctx = MathExprParser.WeibullDistFuncContext(self, localctx) - self.enterOuterAlt(localctx, 12) - self.state = 1735 - self.match(MathExprParser.WEIBULLDIST) - self.state = 1736 + elif token in [MathExprParser.GUMBELDIST]: + localctx = MathExprParser.GumbelDistFuncContext(self, localctx) + self.enterOuterAlt(localctx, 11) + self.state = 1733 + self.match(MathExprParser.GUMBELDIST) + self.state = 1734 self.match(MathExprParser.LPAREN) + self.state = 1735 + self.expr() + self.state = 1736 + self.match(MathExprParser.COMMA) self.state = 1737 self.expr() self.state = 1738 self.match(MathExprParser.COMMA) self.state = 1739 self.expr() - self.state = 1740 - self.match(MathExprParser.COMMA) - self.state = 1741 - self.expr() - self.state = 1744 + self.state = 1742 self._errHandler.sync(self) _la = self._input.LA(1) if _la==MathExprParser.COMMA: - self.state = 1742 + self.state = 1740 self.match(MathExprParser.COMMA) - self.state = 1743 + self.state = 1741 self.expr() - self.state = 1746 + self.state = 1744 self.match(MathExprParser.RPAREN) pass - elif token in [MathExprParser.CHI2DIST]: - localctx = MathExprParser.Chi2DistFuncContext(self, localctx) - self.enterOuterAlt(localctx, 13) - self.state = 1748 - self.match(MathExprParser.CHI2DIST) - self.state = 1749 + elif token in [MathExprParser.WEIBULLDIST]: + localctx = MathExprParser.WeibullDistFuncContext(self, localctx) + self.enterOuterAlt(localctx, 12) + self.state = 1746 + self.match(MathExprParser.WEIBULLDIST) + self.state = 1747 self.match(MathExprParser.LPAREN) + self.state = 1748 + self.expr() + self.state = 1749 + self.match(MathExprParser.COMMA) self.state = 1750 self.expr() self.state = 1751 @@ -14854,11 +14901,11 @@ class MathExprParser ( Parser ): self.state = 1757 self.match(MathExprParser.RPAREN) pass - elif token in [MathExprParser.STUDENTTDIST]: - localctx = MathExprParser.StudentTDistFuncContext(self, localctx) - self.enterOuterAlt(localctx, 14) + elif token in [MathExprParser.CHI2DIST]: + localctx = MathExprParser.Chi2DistFuncContext(self, localctx) + self.enterOuterAlt(localctx, 13) self.state = 1759 - self.match(MathExprParser.STUDENTTDIST) + self.match(MathExprParser.CHI2DIST) self.state = 1760 self.match(MathExprParser.LPAREN) self.state = 1761 @@ -14880,11 +14927,11 @@ class MathExprParser ( Parser ): self.state = 1768 self.match(MathExprParser.RPAREN) pass - elif token in [MathExprParser.PERLIN]: - localctx = MathExprParser.PerlinFuncContext(self, localctx) - self.enterOuterAlt(localctx, 15) + elif token in [MathExprParser.STUDENTTDIST]: + localctx = MathExprParser.StudentTDistFuncContext(self, localctx) + self.enterOuterAlt(localctx, 14) self.state = 1770 - self.match(MathExprParser.PERLIN) + self.match(MathExprParser.STUDENTTDIST) self.state = 1771 self.match(MathExprParser.LPAREN) self.state = 1772 @@ -14895,237 +14942,263 @@ class MathExprParser ( Parser ): self.expr() self.state = 1777 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,102,self._ctx) - if la_ == 1: + _la = self._input.LA(1) + if _la==MathExprParser.COMMA: self.state = 1775 self.match(MathExprParser.COMMA) self.state = 1776 self.expr() + self.state = 1779 + self.match(MathExprParser.RPAREN) + pass + elif token in [MathExprParser.PERLIN]: + localctx = MathExprParser.PerlinFuncContext(self, localctx) + self.enterOuterAlt(localctx, 15) self.state = 1781 + self.match(MathExprParser.PERLIN) + self.state = 1782 + self.match(MathExprParser.LPAREN) + self.state = 1783 + self.expr() + self.state = 1784 + self.match(MathExprParser.COMMA) + self.state = 1785 + self.expr() + self.state = 1788 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,103,self._ctx) if la_ == 1: - self.state = 1779 + self.state = 1786 self.match(MathExprParser.COMMA) - self.state = 1780 + self.state = 1787 self.expr() - self.state = 1785 + self.state = 1792 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,104,self._ctx) + if la_ == 1: + self.state = 1790 + self.match(MathExprParser.COMMA) + self.state = 1791 + self.expr() + + + self.state = 1796 self._errHandler.sync(self) _la = self._input.LA(1) if _la==MathExprParser.COMMA: - self.state = 1783 - self.match(MathExprParser.COMMA) - self.state = 1784 - self.expr() - - - self.state = 1787 - self.match(MathExprParser.RPAREN) - pass - elif token in [MathExprParser.CELLULAR]: - localctx = MathExprParser.CellularFuncContext(self, localctx) - self.enterOuterAlt(localctx, 16) - self.state = 1789 - self.match(MathExprParser.CELLULAR) - self.state = 1790 - self.match(MathExprParser.LPAREN) - self.state = 1791 - self.expr() - self.state = 1792 - self.match(MathExprParser.COMMA) - self.state = 1793 - self.expr() - self.state = 1796 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,105,self._ctx) - if la_ == 1: self.state = 1794 self.match(MathExprParser.COMMA) self.state = 1795 self.expr() + self.state = 1798 + self.match(MathExprParser.RPAREN) + pass + elif token in [MathExprParser.CELLULAR]: + localctx = MathExprParser.CellularFuncContext(self, localctx) + self.enterOuterAlt(localctx, 16) self.state = 1800 + self.match(MathExprParser.CELLULAR) + self.state = 1801 + self.match(MathExprParser.LPAREN) + self.state = 1802 + self.expr() + self.state = 1803 + self.match(MathExprParser.COMMA) + self.state = 1804 + self.expr() + self.state = 1807 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,106,self._ctx) if la_ == 1: - self.state = 1798 + self.state = 1805 self.match(MathExprParser.COMMA) - self.state = 1799 + self.state = 1806 self.expr() - self.state = 1804 + self.state = 1811 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,107,self._ctx) + if la_ == 1: + self.state = 1809 + self.match(MathExprParser.COMMA) + self.state = 1810 + self.expr() + + + self.state = 1815 self._errHandler.sync(self) _la = self._input.LA(1) if _la==MathExprParser.COMMA: - self.state = 1802 - self.match(MathExprParser.COMMA) - self.state = 1803 - self.expr() - - - self.state = 1806 - self.match(MathExprParser.RPAREN) - pass - elif token in [MathExprParser.PLASMA]: - localctx = MathExprParser.PlasmaFuncContext(self, localctx) - self.enterOuterAlt(localctx, 17) - self.state = 1808 - self.match(MathExprParser.PLASMA) - self.state = 1809 - self.match(MathExprParser.LPAREN) - self.state = 1810 - self.expr() - self.state = 1811 - self.match(MathExprParser.COMMA) - self.state = 1812 - self.expr() - self.state = 1815 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,108,self._ctx) - if la_ == 1: self.state = 1813 self.match(MathExprParser.COMMA) self.state = 1814 self.expr() + self.state = 1817 + self.match(MathExprParser.RPAREN) + pass + elif token in [MathExprParser.PLASMA]: + localctx = MathExprParser.PlasmaFuncContext(self, localctx) + self.enterOuterAlt(localctx, 17) self.state = 1819 + self.match(MathExprParser.PLASMA) + self.state = 1820 + self.match(MathExprParser.LPAREN) + self.state = 1821 + self.expr() + self.state = 1822 + self.match(MathExprParser.COMMA) + self.state = 1823 + self.expr() + self.state = 1826 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,109,self._ctx) if la_ == 1: - self.state = 1817 + self.state = 1824 self.match(MathExprParser.COMMA) - self.state = 1818 + self.state = 1825 self.expr() - self.state = 1823 + self.state = 1830 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,110,self._ctx) + if la_ == 1: + self.state = 1828 + self.match(MathExprParser.COMMA) + self.state = 1829 + self.expr() + + + self.state = 1834 self._errHandler.sync(self) _la = self._input.LA(1) if _la==MathExprParser.COMMA: - self.state = 1821 - self.match(MathExprParser.COMMA) - self.state = 1822 - self.expr() - - - self.state = 1825 - self.match(MathExprParser.RPAREN) - pass - elif token in [MathExprParser.RIDGED]: - localctx = MathExprParser.RidgedFuncContext(self, localctx) - self.enterOuterAlt(localctx, 18) - self.state = 1827 - self.match(MathExprParser.RIDGED) - self.state = 1828 - self.match(MathExprParser.LPAREN) - self.state = 1829 - self.expr() - self.state = 1830 - self.match(MathExprParser.COMMA) - self.state = 1831 - self.expr() - self.state = 1834 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,111,self._ctx) - if la_ == 1: self.state = 1832 self.match(MathExprParser.COMMA) self.state = 1833 self.expr() + self.state = 1836 + self.match(MathExprParser.RPAREN) + pass + elif token in [MathExprParser.RIDGED]: + localctx = MathExprParser.RidgedFuncContext(self, localctx) + self.enterOuterAlt(localctx, 18) self.state = 1838 + self.match(MathExprParser.RIDGED) + self.state = 1839 + self.match(MathExprParser.LPAREN) + self.state = 1840 + self.expr() + self.state = 1841 + self.match(MathExprParser.COMMA) + self.state = 1842 + self.expr() + self.state = 1845 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,112,self._ctx) if la_ == 1: - self.state = 1836 + self.state = 1843 self.match(MathExprParser.COMMA) - self.state = 1837 + self.state = 1844 self.expr() - self.state = 1842 + self.state = 1849 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,113,self._ctx) + if la_ == 1: + self.state = 1847 + self.match(MathExprParser.COMMA) + self.state = 1848 + self.expr() + + + self.state = 1853 self._errHandler.sync(self) _la = self._input.LA(1) if _la==MathExprParser.COMMA: - self.state = 1840 + self.state = 1851 self.match(MathExprParser.COMMA) - self.state = 1841 + self.state = 1852 self.expr() - self.state = 1844 + self.state = 1855 self.match(MathExprParser.RPAREN) pass elif token in [MathExprParser.DOMAIN_WARP]: localctx = MathExprParser.DomainWarpFuncContext(self, localctx) self.enterOuterAlt(localctx, 19) - self.state = 1846 - self.match(MathExprParser.DOMAIN_WARP) - self.state = 1847 - self.match(MathExprParser.LPAREN) - self.state = 1848 - self.expr() - self.state = 1849 - self.match(MathExprParser.COMMA) - self.state = 1850 - self.expr() - self.state = 1851 - self.match(MathExprParser.COMMA) - self.state = 1852 - self.expr() - self.state = 1853 - self.match(MathExprParser.COMMA) - self.state = 1854 - self.expr() self.state = 1857 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,114,self._ctx) - if la_ == 1: - self.state = 1855 - self.match(MathExprParser.COMMA) - self.state = 1856 - self.expr() - - + self.match(MathExprParser.DOMAIN_WARP) + self.state = 1858 + self.match(MathExprParser.LPAREN) + self.state = 1859 + self.expr() + self.state = 1860 + self.match(MathExprParser.COMMA) self.state = 1861 + self.expr() + self.state = 1862 + self.match(MathExprParser.COMMA) + self.state = 1863 + self.expr() + self.state = 1864 + self.match(MathExprParser.COMMA) + self.state = 1865 + self.expr() + self.state = 1868 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,115,self._ctx) if la_ == 1: - self.state = 1859 + self.state = 1866 self.match(MathExprParser.COMMA) - self.state = 1860 + self.state = 1867 self.expr() - self.state = 1865 + self.state = 1872 self._errHandler.sync(self) la_ = self._interp.adaptivePredict(self._input,116,self._ctx) if la_ == 1: - self.state = 1863 + self.state = 1870 self.match(MathExprParser.COMMA) - self.state = 1864 + self.state = 1871 self.expr() - self.state = 1869 + self.state = 1876 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,117,self._ctx) + if la_ == 1: + self.state = 1874 + self.match(MathExprParser.COMMA) + self.state = 1875 + self.expr() + + + self.state = 1880 self._errHandler.sync(self) _la = self._input.LA(1) if _la==MathExprParser.COMMA: - self.state = 1867 + self.state = 1878 self.match(MathExprParser.COMMA) - self.state = 1868 + self.state = 1879 self.expr() - self.state = 1871 + self.state = 1882 self.match(MathExprParser.RPAREN) pass else: diff --git a/more_math/Parser/legacy/MathExprVisitor.py b/more_math/Parser/legacy/MathExprVisitor.py index 2f14e8b..0645fb5 100644 --- a/more_math/Parser/legacy/MathExprVisitor.py +++ b/more_math/Parser/legacy/MathExprVisitor.py @@ -1079,6 +1079,11 @@ class MathExprVisitor(ParseTreeVisitor): return self.visitChildren(ctx) + # Visit a parse tree produced by MathExprParser#CoordsFunc. + def visitCoordsFunc(self, ctx:MathExprParser.CoordsFuncContext): + return self.visitChildren(ctx) + + # Visit a parse tree produced by MathExprParser#SwapFunc. def visitSwapFunc(self, ctx:MathExprParser.SwapFuncContext): return self.visitChildren(ctx) diff --git a/more_math/helper_functions.py b/more_math/helper_functions.py index f5827ab..79b3410 100644 --- a/more_math/helper_functions.py +++ b/more_math/helper_functions.py @@ -42,7 +42,10 @@ def parse_expr(expr: str): def getIndexTensorAlongDim(tensor, dim): """Create a tensor of indices along a dimension, broadcasted to full shape.""" - shape = tensor.shape + if tensor is torch.Tensor: + shape = tensor.shape + else: + shape = torch.Size(tensor) values = torch.arange(shape[dim], dtype=torch.float32, device=tensor.device) view_shape = [1] * len(shape) view_shape[dim] = shape[dim] diff --git a/web/inbuilt_symbols.js b/web/inbuilt_symbols.js index 9513a55..ba4cc1a 100644 --- a/web/inbuilt_symbols.js +++ b/web/inbuilt_symbols.js @@ -9,7 +9,7 @@ export const CONSTANTS = new Set([ ]); export const FUNCTIONS = new Set([ -"abs", "acos", "acosh", "all", "angle", "any", "append", "argmax", "argmin", "argsort", "as_nested_tensor", "asin", "asinh", "atan", "atan2", "atanh", "band", "batch_shuffle", "bitcount", "bitwise_and", "bitwise_not", "bitwise_or", "bitwise_xor", "blur", "bnot", "bor", "botk", "botk_ind", "botk_indices", "bxor", "cat", "ceil", "cellular", "cellular_noise", "cielab_to_rgb", "clamp", "cnt", "concat", "concatenate", "conv", "convolution", "corr", "correlation", "cos", "cosh", "cosine_similarity", "cossim", "count", "cov", "crop", "cross", "cubic", "cubic_ease", "cumprod", "cumsum", "diag", "diagonal_matrix", "dilate", "dist", "distance", "domain_warp", "domain_warp_noise", "dot", "edge", "elastic", "elastic_ease", "endswith", "entropy", "erf", "erfinv", "erode", "exp", "ezconv", "ezconvolution", "fft", "find", "flatten", "flip", "float", "floor", "flow_ang", "flow_angle", "flow_apply", "flow_mag", "flow_magnitude", "flow_to_image", "fract", "gamma", "gaussian", "gelu", "get_value", "hist", "histogram", "hsv_to_rgb", "ifft", "int", "int_to_rgb", "interpolate_area", "interpolate_linear", "interpolate_nearest", "interpolate_nearest_exact", "join", "length", "lerp", "linspace", "ln", "log", "logspace", "lower", "map", "matmul", "mean", "median", "mode", "moment", "morph_close", "morph_open", "motion_mask", "nan_to_num", "noise", "now", "nvl", "oklab_to_rgb", "overlay", "pad", "percentile", "perlin", "perlin_noise", "perm", "permute", "pinv", "plasma", "plasma_noise", "popcnt", "popcount", "pow", "prcnt", "print", "print_shape", "pshp", "quantile", "quartil", "quartile", "rand", "randb", "randbeta", "randc", "rande", "randg", "randgumbel", "randchi2", "randl", "randln", "randn", "random_bernoulli", "random_beta", "random_cauchy", "random_exponential", "random_gamma", "random_gumbel", "random_chi2", "random_laplace", "random_log_normal", "random_normal", "random_poisson", "random_studentt", "random_uniform", "random_weibull", "randp", "randt", "randu", "randw", "range", "relu", "remap", "repeat", "replace", "reshape", "rgb_to_cielab", "rgb_to_hsv", "rgb_to_int", "rgb_to_oklab", "ridged", "ridged_noise", "rife", "roll", "round", "rshp", "select", "shape", "shuffle", "sigm", "sign", "sin", "sine", "sine_ease", "singular_value_decomposition", "sinh", "smax", "smin", "smootherstep", "smoothstep", "snorm", "softmax", "softmin", "softplus", "sort", "split", "sqrt", "squeeze", "stack_clear", "stack_get", "stack_has", "stack_pop", "stack_push", "startswith", "std", "step", "substr", "substring", "sum", "svd", "swap", "tan", "tanh", "tensor", "text_image", "timestamp", "tmax", "tmin", "tnorm", "topk", "topk_ind", "topk_indices", "trim", "turbulence", "unique", "unsqueeze", "upper", "var", "voronoi", "voronoi_noise", "where", "worley" +"abs", "acos", "acosh", "all", "angle", "any", "append", "argmax", "argmin", "argsort", "as_nested_tensor", "asin", "asinh", "atan", "atan2", "atanh", "band", "batch_shuffle", "bitcount", "bitwise_and", "bitwise_not", "bitwise_or", "bitwise_xor", "blur", "bnot", "bor", "botk", "botk_ind", "botk_indices", "bxor", "cat", "ceil", "cellular", "cellular_noise", "cielab_to_rgb", "clamp", "cnt", "concat", "concatenate", "conv", "convolution", "coordinates", "coords", "corr", "correlation", "cos", "cosh", "cosine_similarity", "cossim", "count", "cov", "crop", "cross", "cubic", "cubic_ease", "cumprod", "cumsum", "diag", "diagonal_matrix", "dilate", "dist", "distance", "domain_warp", "domain_warp_noise", "dot", "edge", "elastic", "elastic_ease", "endswith", "entropy", "erf", "erfinv", "erode", "exp", "ezconv", "ezconvolution", "fft", "find", "flatten", "flip", "float", "floor", "flow_ang", "flow_angle", "flow_apply", "flow_mag", "flow_magnitude", "flow_to_image", "fract", "gamma", "gaussian", "gelu", "get_value", "hist", "histogram", "hsv_to_rgb", "ifft", "int", "int_to_rgb", "interpolate_area", "interpolate_linear", "interpolate_nearest", "interpolate_nearest_exact", "join", "length", "lerp", "linspace", "ln", "log", "logspace", "lower", "map", "matmul", "mean", "median", "mode", "moment", "morph_close", "morph_open", "motion_mask", "nan_to_num", "noise", "now", "nvl", "oklab_to_rgb", "overlay", "pad", "percentile", "perlin", "perlin_noise", "perm", "permute", "pinv", "plasma", "plasma_noise", "popcnt", "popcount", "pow", "prcnt", "print", "print_shape", "pshp", "quantile", "quartil", "quartile", "rand", "randb", "randbeta", "randc", "rande", "randg", "randgumbel", "randchi2", "randl", "randln", "randn", "random_bernoulli", "random_beta", "random_cauchy", "random_exponential", "random_gamma", "random_gumbel", "random_chi2", "random_laplace", "random_log_normal", "random_normal", "random_poisson", "random_studentt", "random_uniform", "random_weibull", "randp", "randt", "randu", "randw", "range", "relu", "remap", "repeat", "replace", "reshape", "rgb_to_cielab", "rgb_to_hsv", "rgb_to_int", "rgb_to_oklab", "ridged", "ridged_noise", "rife", "roll", "round", "rshp", "select", "shape", "shuffle", "sigm", "sign", "sin", "sine", "sine_ease", "singular_value_decomposition", "sinh", "smax", "smin", "smootherstep", "smoothstep", "snorm", "softmax", "softmin", "softplus", "sort", "split", "sqrt", "squeeze", "stack_clear", "stack_get", "stack_has", "stack_pop", "stack_push", "startswith", "std", "step", "substr", "substring", "sum", "svd", "swap", "tan", "tanh", "tensor", "text_image", "timestamp", "tmax", "tmin", "tnorm", "topk", "topk_ind", "topk_indices", "trim", "turbulence", "unique", "unsqueeze", "upper", "var", "voronoi", "voronoi_noise", "where", "worley" ]); export const FUNCTION_META = { @@ -54,6 +54,8 @@ export const FUNCTION_META = { concatenate: { minArgs: 2, maxArgs: null, snippet: "concatenate()", description: "concatenate(x1, x2, ..., dim) - concatenates tensors along the specified dimension" }, conv: { minArgs: 2, maxArgs: null, snippet: "conv()", description: "convolution(tensor, [kernel_sizes...], kernel) - applies convolution with kernel. Expects [batch,channel, ...]" }, convolution: { minArgs: 2, maxArgs: null, snippet: "convolution()", description: "convolution(tensor, [kernel_sizes...], kernel) - applies convolution with kernel. Expects [batch,channel, ...]" }, + coordinates: { minArgs: 2, maxArgs: 3, snippet: "coordinates()", description: "coords(shape, dim, [dtype]) - generates a tensor with the specified shape whose values are the coordinates of each element along the specified dimension. The dtype can be specified to control the data type of the output tensor." }, + coords: { minArgs: 2, maxArgs: 3, snippet: "coords()", description: "coords(shape, dim, [dtype]) - generates a tensor with the specified shape whose values are the coordinates of each element along the specified dimension. The dtype can be specified to control the data type of the output tensor." }, corr: { minArgs: 2, maxArgs: 2, snippet: "corr()", description: "correlation(x, y) - computes the correlation between x and y" }, correlation: { minArgs: 2, maxArgs: 2, snippet: "correlation()", description: "correlation(x, y) - computes the correlation between x and y" }, cos: { minArgs: 1, maxArgs: 1, snippet: "cos()", description: "cos(x) - applies cosinus function to value or each element of value" },