From 338e57d4b1f5de06a43b69d70d4eff6951652d06 Mon Sep 17 00:00:00 2001 From: Ethan Nicholas Date: Wed, 19 Aug 2020 11:01:00 -0400 Subject: [PATCH] Added support for the 'inline' hint on SkSL functions Change-Id: Ib78e0ad9fd1cc15e7afeb2a9ddd6b1249828fbe7 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/311603 Commit-Queue: Ethan Nicholas Reviewed-by: John Stiles --- src/sksl/README | 2 + src/sksl/SkSLIRGenerator.cpp | 9 +- src/sksl/SkSLLexer.cpp | 1508 +++++++++-------- src/sksl/SkSLLexer.h | 1 + src/sksl/SkSLParser.cpp | 6 +- src/sksl/generated/sksl_gpu.dehydrated.sksl | 2 +- .../generated/sksl_interp.dehydrated.sksl | 2 +- src/sksl/ir/SkSLModifiers.h | 1 + src/sksl/lex/Main.cpp | 6 + src/sksl/lex/sksl.lex | 12 + tests/SkSLGLSLTest.cpp | 77 + 11 files changed, 871 insertions(+), 755 deletions(-) diff --git a/src/sksl/README b/src/sksl/README index f8530f0050..3e0b287a34 100644 --- a/src/sksl/README +++ b/src/sksl/README @@ -63,6 +63,8 @@ Differences from GLSL * All texture functions are named "sample", e.g. sample(sampler2D, float3) is equivalent to GLSL's textureProj(sampler2D, float3). * Render target width and height are available via sk_Width and sk_Height +* Functions support the 'inline' modifier, which causes the compiler to ignore + its normal inlining heuristics and inline the function if at all possible * some built-in functions and one or two rarely-used language features are not yet supported (sorry!) diff --git a/src/sksl/SkSLIRGenerator.cpp b/src/sksl/SkSLIRGenerator.cpp index bf12e0c0c4..ee95407917 100644 --- a/src/sksl/SkSLIRGenerator.cpp +++ b/src/sksl/SkSLIRGenerator.cpp @@ -874,6 +874,7 @@ void IRGenerator::checkModifiers(int offset, const Modifiers& modifiers, int per CHECK(Modifiers::kPLSIn_Flag, "__pixel_local_inEXT") CHECK(Modifiers::kPLSOut_Flag, "__pixel_local_outEXT") CHECK(Modifiers::kVarying_Flag, "varying") + CHECK(Modifiers::kInline_Flag, "inline") SkASSERT(flags == 0); } @@ -900,7 +901,8 @@ void IRGenerator::convertFunction(const ASTNode& f) { return; } const ASTNode::FunctionData& fd = f.getFunctionData(); - this->checkModifiers(f.fOffset, fd.fModifiers, Modifiers::kHasSideEffects_Flag); + this->checkModifiers(f.fOffset, fd.fModifiers, Modifiers::kHasSideEffects_Flag | + Modifiers::kInline_Flag); std::vector parameters; for (size_t i = 0; i < fd.fParameterCount; ++i) { const ASTNode& param = *(iter++); @@ -2390,8 +2392,9 @@ bool IRGenerator::isSafeToInline(const FunctionDefinition& functionDef) { // Inlining has been explicitly disabled by the IR generator. return false; } - if (functionDef.inlinedFunctionSize() >= fSettings->fInlineThreshold) { - // The function exceeds our maximum inline size. + if (!(functionDef.fDeclaration.fModifiers.fFlags & Modifiers::kInline_Flag) && + functionDef.inlinedFunctionSize() >= fSettings->fInlineThreshold) { + // The function exceeds our maximum inline size and is not flagged 'inline'. return false; } if (!fSettings->fCaps || !fSettings->fCaps->canUseDoLoops()) { diff --git a/src/sksl/SkSLLexer.cpp b/src/sksl/SkSLLexer.cpp index e0269b7cc6..d6fe295fbb 100644 --- a/src/sksl/SkSLLexer.cpp +++ b/src/sksl/SkSLLexer.cpp @@ -19,90 +19,90 @@ static int8_t mappings[127] = { 26, 26, 26, 27, 26, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 28, 6, 6, 6, 29, 6, 6, 30, 3, 31, 32, 33, 3, 34, 35, 36, 37, 38, 39, 40, 41, 42, 6, 43, 44, 45, 46, 47, 48, 6, 49, 50, 51, 52, 53, 54, 55, 56, 6, 57, 58, 59, 60}; -static int16_t transitions[61][310] = { +static int16_t transitions[61][314] = { { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { 0, 9, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -119,149 +119,153 @@ static int16_t transitions[61][310] = { 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 35, 36, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 36, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 44, 0, 0, 47, 0, - 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 44, 0, 0, 47, 0, 0, 0, + 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 26, 0, 0, 0, 0, 0, 32, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 44, 0, 0, 47, 0, - 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 26, 0, 0, 0, 0, 0, 32, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 44, 0, 0, 47, 0, 0, 0, + 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, - 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 41, + 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 38, 35, 37, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 35, 37, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { 0, 40, 0, 0, 0, 0, 0, 0, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -278,7 +282,7 @@ static int16_t transitions[61][310] = { 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, }, { 0, 55, 0, 0, 0, 0, 0, 0, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -295,107 +299,110 @@ static int16_t transitions[61][310] = { 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 63, 0, 0, 0, 6, 0, 0, 0, 0, 0, 12, 0, 16, 15, 0, 0, 0, 0, 20, 0, 23, 0, - 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 39, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 61, 0, 0, 64, 0, 66, 0, 68, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 0, 85, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 305, 0, 307, 0, 0, 0, + 0, 63, 0, 0, 0, 6, 0, 0, 0, 0, 0, 12, 0, 16, 15, 0, 0, 0, 0, 20, 0, 23, 0, + 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 39, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 61, 0, 0, 64, 0, 66, 0, 68, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 0, 85, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 309, 0, 311, 0, 0, 0, }, { - 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { 0, 9, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -412,7 +419,7 @@ static int16_t transitions[61][310] = { 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, }, { 0, 9, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -430,7 +437,7 @@ static int16_t transitions[61][310] = { 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, + 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, }, { 0, 9, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -448,7 +455,7 @@ static int16_t transitions[61][310] = { 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, + 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, }, { 0, 9, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -466,86 +473,86 @@ static int16_t transitions[61][310] = { 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, + 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 86, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 0, 0, 0, 0, 0, 0, 87, 10, 10, 10, 10, 10, 93, 10, 10, 10, 10, 10, 102, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 238, 10, 10, - 10, 242, 10, 10, 10, 10, 247, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 86, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, + 0, 0, 0, 0, 0, 0, 87, 10, 10, 10, 10, 10, 93, 10, 10, 10, 10, 10, 102, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 242, 10, 10, 10, 246, 10, 10, 10, 10, 251, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 9, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, - 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 97, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 117, 10, 10, 10, 10, 10, 10, 10, 125, 10, 10, 10, 129, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 150, 10, 10, - 10, 10, 10, 10, 157, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 169, 10, 10, - 10, 10, 174, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 185, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 220, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 240, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 277, 10, 10, 10, 10, 10, 10, 10, 285, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, - 0, 0, 0, 0, 0, 0, + 0, 9, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, + 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, 71, 71, 71, 71, + 71, 71, 71, 71, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 97, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 117, 10, 10, 10, 10, 10, 10, 10, 125, 10, 10, 10, 129, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 150, 10, 10, + 10, 10, 10, 10, 157, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 169, 10, 10, + 10, 10, 174, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 189, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 224, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 244, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 281, 10, 10, 10, 10, + 10, 10, 10, 289, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, }, { 0, 114, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -562,366 +569,364 @@ static int16_t transitions[61][310] = { 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 124, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, - 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, 71, 71, 71, 71, - 71, 78, 71, 71, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 96, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 156, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 198, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 212, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 230, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 252, 10, 10, 10, 10, 10, 258, 10, 10, 10, 10, 263, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, - 0, 0, 0, 0, 0, 0, + 0, 124, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, 71, 71, 71, 71, 71, 78, 71, 71, + 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 96, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 156, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 202, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 216, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 234, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 256, 10, 10, 10, 10, + 10, 262, 10, 10, 10, 10, 267, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 147, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 159, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 221, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 245, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 147, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, + 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 159, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 225, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 249, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 161, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 35, - 35, 0, 38, 0, 50, 46, 43, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 54, - 54, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, - 91, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 116, 10, 10, 10, 10, 10, 122, 10, 10, 10, 10, - 127, 10, 10, 10, 10, 10, 10, 134, 10, 136, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 146, 10, 148, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 164, 10, 10, 10, 10, 10, 10, 10, 172, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 193, 10, 10, 10, 197, 10, - 10, 10, 10, 202, 10, 10, 10, 10, 10, 10, 10, 10, 211, 10, 10, 10, 10, 10, - 10, 10, 219, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 246, 10, 248, 10, 10, 251, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 268, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 289, 10, 10, 10, 10, 294, 10, 10, 10, 298, 10, 10, 10, 10, 10, 0, 0, 0, - 0, 0, 0, 0, + 0, 161, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 35, + 35, 0, 38, 0, 50, 46, 43, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 54, + 54, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, + 71, 71, 71, 71, 71, 71, 71, 71, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, + 91, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 116, 10, 10, 10, 10, 10, 122, 10, 10, 10, 10, + 127, 10, 10, 10, 10, 10, 10, 134, 10, 136, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 146, 10, 148, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 164, 10, 10, 10, 10, 10, 10, 10, 172, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 184, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 197, 10, + 10, 10, 201, 10, 10, 10, 10, 206, 10, 10, 10, 10, 10, 10, 10, 10, 215, 10, + 10, 10, 10, 10, 10, 10, 223, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 250, 10, 252, + 10, 10, 255, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 272, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 293, 10, 10, 10, 10, 298, 10, 10, 10, 302, 10, 10, 10, 10, + 10, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 168, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, - 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, 73, 71, 71, 71, - 71, 71, 71, 71, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 120, 121, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 149, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 179, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 249, 250, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 272, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, - 0, 0, 0, 0, 0, 0, + 0, 168, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, + 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, 73, 71, 71, 71, + 71, 71, 71, 71, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 120, 121, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 149, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 179, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 253, 254, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 276, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 9, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 0, 0, 0, 0, - 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 282, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 9, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 0, 0, 0, 0, + 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 286, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 9, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, 71, 71, 71, 71, 71, 71, 79, 71, - 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 133, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 239, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 264, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 291, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 9, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, 71, 71, 71, 71, 71, 71, 79, 71, + 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 133, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 243, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 268, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 295, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 178, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, - 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 71, - 71, 71, 71, 76, 71, 71, 71, 71, 0, 0, 0, 0, 0, 0, 10, 10, 89, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 103, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 143, 10, - 10, 10, 10, 154, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 200, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 213, 10, 215, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 229, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 244, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 261, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 271, 10, 10, 10, 10, 10, 10, 10, 10, 280, 10, 10, 10, 10, 10, 10, 287, 10, - 10, 10, 10, 292, 10, 10, 10, 296, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, - 0, 0, 0, 0, + 0, 178, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, + 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 71, + 71, 71, 71, 76, 71, 71, 71, 71, 0, 0, 0, 0, 0, 0, 10, 10, 89, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 103, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 143, 10, + 10, 10, 10, 154, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 182, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 204, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 217, 10, 219, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 233, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 248, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 265, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 275, 10, 10, 10, 10, 10, 10, 10, 10, 284, 10, 10, 10, 10, + 10, 10, 291, 10, 10, 10, 10, 296, 10, 10, 10, 300, 10, 10, 10, 10, 10, 10, + 10, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 9, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 118, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 237, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 9, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, + 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 118, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 241, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 184, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, - 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, - 10, 92, 10, 94, 10, 10, 10, 98, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 128, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 152, 10, 10, 10, 10, 10, 10, 10, 10, 10, 162, - 10, 10, 10, 10, 10, 10, 173, 170, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 204, 205, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 224, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 284, 10, 10, 10, 288, - 10, 10, 10, 10, 293, 10, 10, 10, 10, 10, 10, 10, 301, 10, 10, 0, 0, 0, - 0, 0, 0, 0, + 0, 188, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, + 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, + 71, 71, 71, 71, 71, 71, 71, 71, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, + 10, 92, 10, 94, 10, 10, 10, 98, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 128, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 152, 10, 10, 10, 10, 10, 10, 10, 10, 10, 162, + 10, 10, 10, 10, 10, 10, 173, 170, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 181, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 208, 209, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 228, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 288, + 10, 10, 10, 292, 10, 10, 10, 10, 297, 10, 10, 10, 10, 10, 10, 10, 305, 10, + 10, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 9, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 167, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 275, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 9, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, + 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 167, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 279, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 190, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, - 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 104, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 139, 10, 10, 10, 137, 10, 10, 10, 10, 10, 10, 144, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 165, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 180, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 217, 10, 10, 10, 10, 10, 223, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 235, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 270, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 281, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 300, 10, 10, 10, 0, 0, 0, - 0, 0, 0, 0, + 0, 194, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, + 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, 71, 71, 71, 71, + 71, 71, 71, 71, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 104, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 139, + 10, 10, 10, 137, 10, 10, 10, 10, 10, 10, 144, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 165, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 180, 10, 10, 10, 183, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 221, 10, 10, 10, 10, 10, 227, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 239, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 274, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 285, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 304, + 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 206, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, - 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, - 10, 10, 10, 10, 95, 10, 10, 10, 10, 10, 10, 10, 108, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 132, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 160, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 176, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 181, 10, 10, 10, 10, 10, 187, 10, 10, 10, 191, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 216, - 10, 10, 10, 10, 10, 222, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 273, 10, 10, 10, 283, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 299, 10, 10, 10, 10, 0, 0, 0, - 0, 0, 0, 0, + 0, 210, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, + 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, 71, 71, 71, 71, + 71, 71, 71, 71, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 95, + 10, 10, 10, 10, 10, 10, 10, 108, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 132, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 160, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 176, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 185, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 191, 10, 10, 10, 195, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 220, 10, 10, 10, 10, 10, 226, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 277, 10, 10, 10, 287, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 303, 10, + 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 209, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 0, 0, 0, 0, 0, 0, 10, 88, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 192, 10, 10, 10, 196, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 213, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, + 0, 0, 0, 0, 0, 0, 10, 88, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 196, 10, 10, 10, 200, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 218, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, - 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 115, 10, 10, 10, 10, 10, 10, 10, 123, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 135, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 158, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 177, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 194, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 210, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 228, - 10, 10, 10, 10, 10, 234, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 256, 10, 10, 10, 10, 10, 10, 10, 10, 10, 266, - 10, 10, 10, 10, 10, 10, 10, 274, 10, 10, 10, 278, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 295, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, - 0, 0, 0, 0, 0, 0, + 0, 222, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, + 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, + 71, 71, 71, 71, 71, 71, 71, 71, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 115, 10, 10, 10, 10, 10, 10, 10, 123, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 135, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 158, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 177, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 198, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 214, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 232, 10, 10, + 10, 10, 10, 238, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 260, 10, 10, 10, 10, 10, 10, 10, 10, 10, 270, + 10, 10, 10, 10, 10, 10, 10, 278, 10, 10, 10, 282, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 299, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 236, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, - 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 71, - 71, 71, 71, 71, 71, 71, 71, 71, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 126, - 10, 10, 10, 130, 131, 10, 10, 10, 10, 10, 10, 10, 10, 140, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 155, 10, 10, 10, 10, 10, 10, 10, - 163, 10, 10, 10, 10, 10, 10, 10, 171, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 195, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 214, 10, 10, - 10, 10, 10, 226, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 241, 10, 243, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 254, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, - 0, 0, 0, 0, + 0, 240, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, + 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 71, + 71, 71, 71, 71, 71, 71, 71, 71, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 126, + 10, 10, 10, 130, 131, 10, 10, 10, 10, 10, 10, 10, 10, 140, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 155, 10, 10, 10, 10, 10, 10, 10, + 163, 10, 10, 10, 10, 10, 10, 10, 171, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 199, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 218, 10, 10, 10, 10, 10, 230, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 245, 10, 247, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 258, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 265, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, - 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, - 71, 71, 71, 71, 77, 71, 71, 71, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 110, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 138, 10, 142, 141, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 153, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 175, 10, 10, 10, 10, 10, - 10, 10, 183, 10, 10, 10, 10, 10, 189, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 199, 10, 10, 10, 10, 10, 10, 10, 10, 208, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 232, 10, 10, 10, 10, 10, 10, 227, 10, 10, 10, 231, 10, 10, 10, - 10, 10, 255, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 253, 10, 10, 10, 10, 10, 259, 10, 10, 262, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 286, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 297, 10, 10, 10, 10, 10, 10, 0, 0, 0, - 0, 0, 0, 0, + 0, 269, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, + 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, + 71, 71, 71, 71, 77, 71, 71, 71, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 110, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 138, 10, 142, 141, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 153, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 175, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 187, 10, 10, 10, 10, 10, 193, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 203, 10, 10, 10, 10, 10, 10, 10, 10, 212, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 236, 10, 10, 10, 10, 10, 10, 231, 10, 10, 10, + 235, 10, 10, 10, 10, 10, 259, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 257, 10, 10, 10, 10, 10, 263, 10, 10, 266, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 290, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 301, 10, 10, 10, 10, 10, + 10, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 269, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, - 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 109, 10, 10, 10, 10, 10, - 119, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 145, 10, 10, 10, 10, 10, 151, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 166, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 182, 10, 10, 10, 10, 10, 188, 10, 10, - 203, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 207, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 233, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 257, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 267, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, - 0, 0, 0, 0, 0, 0, + 0, 273, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, + 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, 71, 71, 71, 71, + 71, 71, 71, 71, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 109, 10, 10, 10, 10, 10, + 119, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 145, 10, 10, 10, 10, 10, 151, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 166, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 186, 10, 10, 10, 10, + 10, 192, 10, 10, 207, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 211, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 237, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 261, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 271, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 276, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 280, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, + 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 205, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, + }, + { + 0, 294, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, 71, 71, 75, 71, 71, 71, 71, 71, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 201, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 264, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, - }, - { - 0, 290, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, 71, 71, 75, 71, 71, 71, 71, 71, - 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 260, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, + 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, }, { 0, 9, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -938,99 +943,104 @@ static int16_t transitions[61][310] = { 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 9, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 186, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 225, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 279, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 302, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 9, 0, 0, 0, 0, 0, 8, 8, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, + 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 190, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 229, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 283, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 306, 10, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 306, 0, 0, 0, 0, 0, + 0, 308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 310, 0, 0, 0, 0, 0, }, { - 0, 308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { - 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 35, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, }; -static int8_t accepts[310] = { - -1, -1, 96, 96, 99, 70, 76, 99, 44, 43, 43, 60, 85, 65, 69, 93, 90, 46, 47, 58, 83, 56, 54, - 81, 53, 57, 55, 82, 95, 52, 1, -1, -1, 1, 59, -1, -1, 98, 97, 84, 2, 1, 1, -1, -1, 1, - -1, -1, 1, 2, -1, -1, 1, -1, 2, 2, 73, 72, 94, 78, 61, 86, 80, 74, 75, 77, 79, 62, 87, - 71, 99, 45, 45, 6, 45, 45, 45, 45, 45, 12, 50, 51, 64, 89, 68, 92, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, 43, 34, 43, 43, 43, 43, 43, 35, 43, 43, 43, 43, 43, 36, 43, - 43, 43, 43, 15, 43, 43, 43, 43, 32, 43, 43, 43, 13, 43, 43, 43, 42, 43, 43, 43, 43, 43, 43, - 29, 43, 43, 24, 43, 43, 43, 43, 16, 43, 43, 43, 43, 43, 43, 14, 43, 43, 43, 43, 43, 17, 10, - 43, 43, 43, 7, 43, 43, 41, 43, 43, 43, 43, 4, 43, 43, 25, 43, 8, 43, 5, 20, 43, 43, 22, - 43, 43, 43, 43, 43, 39, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 26, 43, 43, 19, 43, - 43, 21, 43, 43, 43, 43, 43, 43, 43, 43, 40, 43, 43, 43, 43, 43, 43, 43, 27, 43, 43, 43, 43, - 43, 31, 43, 43, 43, 18, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, - 43, 33, 43, 43, 43, 43, 38, 43, 43, 43, 43, 11, 43, 43, 43, 3, 43, 43, 43, 43, 43, 43, 23, - 43, 43, 43, 43, 43, 43, 37, 43, 43, 43, 43, 43, 43, 30, 43, 43, 43, 43, 9, 43, 43, 43, 43, - 43, 43, 43, 28, 48, 63, 88, 67, 91, 49, 66, +static int8_t accepts[314] = { + -1, -1, 97, 97, 100, 71, 77, 100, 45, 44, 44, 61, 86, 66, 70, 94, 91, 47, 48, 59, 84, + 57, 55, 82, 54, 58, 56, 83, 96, 53, 1, -1, -1, 1, 60, -1, -1, 99, 98, 85, 2, 1, + 1, -1, -1, 1, -1, -1, 1, 2, -1, -1, 1, -1, 2, 2, 74, 73, 95, 79, 62, 87, 81, + 75, 76, 78, 80, 63, 88, 72, 100, 46, 46, 6, 46, 46, 46, 46, 46, 12, 51, 52, 65, 90, + 69, 93, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 35, 44, 44, 44, + 44, 44, 36, 44, 44, 44, 44, 44, 37, 44, 44, 44, 44, 15, 44, 44, 44, 44, 32, 44, 44, + 44, 13, 44, 44, 44, 43, 44, 44, 44, 44, 44, 44, 29, 44, 44, 24, 44, 44, 44, 44, 16, + 44, 44, 44, 44, 44, 44, 14, 44, 44, 44, 44, 44, 17, 10, 44, 44, 44, 7, 44, 44, 42, + 44, 44, 44, 44, 4, 44, 44, 25, 44, 8, 44, 5, 20, 44, 44, 44, 33, 44, 44, 22, 44, + 44, 44, 44, 44, 40, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 26, 44, 44, 19, + 44, 44, 21, 44, 44, 44, 44, 44, 44, 44, 44, 41, 44, 44, 44, 44, 44, 44, 44, 27, 44, + 44, 44, 44, 44, 31, 44, 44, 44, 18, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, + 44, 44, 44, 44, 44, 44, 34, 44, 44, 44, 44, 39, 44, 44, 44, 44, 11, 44, 44, 44, 3, + 44, 44, 44, 44, 44, 44, 23, 44, 44, 44, 44, 44, 44, 38, 44, 44, 44, 44, 44, 44, 30, + 44, 44, 44, 44, 9, 44, 44, 44, 44, 44, 44, 44, 28, 49, 64, 89, 68, 92, 50, 67, }; Token Lexer::next() { diff --git a/src/sksl/SkSLLexer.h b/src/sksl/SkSLLexer.h index f342c087ab..2c2ba6c681 100644 --- a/src/sksl/SkSLLexer.h +++ b/src/sksl/SkSLLexer.h @@ -48,6 +48,7 @@ struct Token { TK_VOLATILE, TK_RESTRICT, TK_BUFFER, + TK_INLINE, TK_HASSIDEEFFECTS, TK_PLS, TK_PLSIN, diff --git a/src/sksl/SkSLParser.cpp b/src/sksl/SkSLParser.cpp index 651fa0b4b3..c906c02dfe 100644 --- a/src/sksl/SkSLParser.cpp +++ b/src/sksl/SkSLParser.cpp @@ -936,7 +936,7 @@ Layout Parser::layout() { /* layout? (UNIFORM | CONST | IN | OUT | INOUT | LOWP | MEDIUMP | HIGHP | FLAT | NOPERSPECTIVE | READONLY | WRITEONLY | COHERENT | VOLATILE | RESTRICT | BUFFER | PLS | PLSIN | - PLSOUT | VARYING)* */ + PLSOUT | VARYING | INLINE)* */ Modifiers Parser::modifiers() { Layout layout = this->layout(); int flags = 0; @@ -1016,6 +1016,10 @@ Modifiers Parser::modifiers() { this->nextToken(); flags |= Modifiers::kVarying_Flag; break; + case Token::Kind::TK_INLINE: + this->nextToken(); + flags |= Modifiers::kInline_Flag; + break; default: return Modifiers(layout, flags); } diff --git a/src/sksl/generated/sksl_gpu.dehydrated.sksl b/src/sksl/generated/sksl_gpu.dehydrated.sksl index e265735525..7d0597cb0a 100644 --- a/src/sksl/generated/sksl_gpu.dehydrated.sksl +++ b/src/sksl/generated/sksl_gpu.dehydrated.sksl @@ -1,2 +1,2 @@ static constexpr size_t SKSL_INCLUDE_sksl_gpu_LENGTH = 23297; -static uint8_t SKSL_INCLUDE_sksl_gpu[23297] = {32,10,11,83,107,66,108,101,110,100,77,111,100,101,7,100,101,103,114,101,101,115,8,36,103,101,110,84,121,112,101,7,114,97,100,105,97,110,115,5,97,110,103,108,101,3,115,105,110,3,99,111,115,3,116,97,110,1,120,4,97,115,105,110,4,97,99,111,115,1,121,4,97,116,97,110,8,121,95,111,118,101,114,95,120,4,115,105,110,104,4,99,111,115,104,4,116,97,110,104,5,97,115,105,110,104,5,97,99,111,115,104,5,97,116,97,110,104,3,112,111,119,3,101,120,112,3,108,111,103,4,101,120,112,50,4,108,111,103,50,4,115,113,114,116,9,36,103,101,110,72,84,121,112,101,11,105,110,118,101,114,115,101,115,113,114,116,3,97,98,115,9,36,103,101,110,73,84,121,112,101,4,115,105,103,110,5,102,108,111,111,114,5,116,114,117,110,99,5,114,111,117,110,100,9,114,111,117,110,100,69,118,101,110,4,99,101,105,108,5,102,114,97,99,116,5,102,108,111,97,116,3,109,111,100,4,104,97,108,102,1,105,4,109,111,100,102,3,109,105,110,3,105,110,116,3,109,97,120,6,109,105,110,86,97,108,6,109,97,120,86,97,108,5,99,108,97,109,112,8,115,97,116,117,114,97,116,101,1,97,3,109,105,120,9,36,103,101,110,66,84,121,112,101,4,101,100,103,101,4,115,116,101,112,5,101,100,103,101,48,5,101,100,103,101,49,10,115,109,111,111,116,104,115,116,101,112,5,105,115,110,97,110,5,105,115,105,110,102,5,118,97,108,117,101,14,102,108,111,97,116,66,105,116,115,84,111,73,110,116,14,105,110,116,66,105,116,115,84,111,102,108,111,97,116,9,36,103,101,110,85,84,121,112,101,15,117,105,110,116,66,105,116,115,84,111,102,108,111,97,116,1,98,1,99,3,102,109,97,5,102,114,101,120,112,5,108,100,101,120,112,1,118,6,102,108,111,97,116,50,13,112,97,99,107,85,110,111,114,109,50,120,49,54,4,117,105,110,116,13,112,97,99,107,83,110,111,114,109,50,120,49,54,6,102,108,111,97,116,52,12,112,97,99,107,85,110,111,114,109,52,120,56,12,112,97,99,107,83,110,111,114,109,52,120,56,1,112,15,117,110,112,97,99,107,85,110,111,114,109,50,120,49,54,15,117,110,112,97,99,107,83,110,111,114,109,50,120,49,54,14,117,110,112,97,99,107,85,110,111,114,109,52,120,56,14,117,110,112,97,99,107,83,110,111,114,109,52,120,56,12,112,97,99,107,72,97,108,102,50,120,49,54,14,117,110,112,97,99,107,72,97,108,102,50,120,49,54,6,108,101,110,103,116,104,2,112,48,2,112,49,8,100,105,115,116,97,110,99,101,3,100,111,116,6,102,108,111,97,116,51,5,99,114,111,115,115,5,104,97,108,102,51,9,110,111,114,109,97,108,105,122,101,10,102,116,114,97,110,115,102,111,114,109,1,78,1,73,4,78,114,101,102,11,102,97,99,101,102,111,114,119,97,114,100,7,114,101,102,108,101,99,116,3,101,116,97,7,114,101,102,114,97,99,116,4,36,109,97,116,14,109,97,116,114,105,120,67,111,109,112,77,117,108,116,1,114,12,111,117,116,101,114,80,114,111,100,117,99,116,8,102,108,111,97,116,50,120,50,8,102,108,111,97,116,51,120,51,8,102,108,111,97,116,52,120,51,8,102,108,111,97,116,50,120,51,8,102,108,111,97,116,51,120,50,8,102,108,111,97,116,50,120,52,8,102,108,111,97,116,52,120,50,8,102,108,111,97,116,51,120,52,5,104,97,108,102,50,7,104,97,108,102,50,120,50,7,104,97,108,102,51,120,51,5,104,97,108,102,52,7,104,97,108,102,52,120,51,7,104,97,108,102,50,120,51,7,104,97,108,102,51,120,50,7,104,97,108,102,50,120,52,7,104,97,108,102,52,120,50,7,104,97,108,102,51,120,52,1,109,9,116,114,97,110,115,112,111,115,101,8,102,108,111,97,116,52,120,52,7,104,97,108,102,52,120,52,11,100,101,116,101,114,109,105,110,97,110,116,7,105,110,118,101,114,115,101,4,36,118,101,99,8,108,101,115,115,84,104,97,110,5,36,98,118,101,99,5,36,104,118,101,99,5,36,105,118,101,99,5,36,115,118,101,99,6,36,117,115,118,101,99,5,36,117,118,101,99,13,108,101,115,115,84,104,97,110,69,113,117,97,108,11,103,114,101,97,116,101,114,84,104,97,110,16,103,114,101,97,116,101,114,84,104,97,110,69,113,117,97,108,5,101,113,117,97,108,8,110,111,116,69,113,117,97,108,3,97,110,121,4,98,111,111,108,3,97,108,108,3,110,111,116,8,98,105,116,67,111,117,110,116,7,102,105,110,100,76,83,66,7,102,105,110,100,77,83,66,7,116,101,120,116,117,114,101,9,116,101,120,116,117,114,101,50,68,7,115,97,109,112,108,101,114,13,109,97,107,101,83,97,109,112,108,101,114,50,68,9,115,97,109,112,108,101,114,50,68,15,36,103,115,97,109,112,108,101,114,50,68,82,101,99,116,11,116,101,120,116,117,114,101,83,105,122,101,4,105,110,116,50,11,36,103,115,97,109,112,108,101,114,49,68,1,80,6,115,97,109,112,108,101,4,98,105,97,115,11,36,103,115,97,109,112,108,101,114,50,68,10,105,115,97,109,112,108,101,114,50,68,4,105,110,116,52,18,115,97,109,112,108,101,114,69,120,116,101,114,110,97,108,79,69,83,7,115,117,98,112,97,115,115,12,115,117,98,112,97,115,115,73,110,112,117,116,11,115,117,98,112,97,115,115,76,111,97,100,14,115,117,98,112,97,115,115,73,110,112,117,116,77,83,5,105,109,97,103,101,7,105,109,97,103,101,50,68,9,105,109,97,103,101,76,111,97,100,8,105,105,109,97,103,101,50,68,4,100,70,100,120,4,100,70,100,121,6,102,119,105,100,116,104,11,105,110,116,101,114,112,111,108,97,110,116,19,105,110,116,101,114,112,111,108,97,116,101,65,116,83,97,109,112,108,101,6,111,102,102,115,101,116,19,105,110,116,101,114,112,111,108,97,116,101,65,116,79,102,102,115,101,116,3,115,114,99,3,100,115,116,11,98,108,101,110,100,95,99,108,101,97,114,9,98,108,101,110,100,95,115,114,99,9,98,108,101,110,100,95,100,115,116,14,98,108,101,110,100,95,115,114,99,95,111,118,101,114,14,98,108,101,110,100,95,100,115,116,95,111,118,101,114,12,98,108,101,110,100,95,115,114,99,95,105,110,12,98,108,101,110,100,95,100,115,116,95,105,110,13,98,108,101,110,100,95,115,114,99,95,111,117,116,13,98,108,101,110,100,95,100,115,116,95,111,117,116,14,98,108,101,110,100,95,115,114,99,95,97,116,111,112,14,98,108,101,110,100,95,100,115,116,95,97,116,111,112,9,98,108,101,110,100,95,120,111,114,10,98,108,101,110,100,95,112,108,117,115,14,98,108,101,110,100,95,109,111,100,117,108,97,116,101,12,98,108,101,110,100,95,115,99,114,101,101,110,2,115,99,2,115,97,2,100,99,2,100,97,24,95,98,108,101,110,100,95,111,118,101,114,108,97,121,95,99,111,109,112,111,110,101,110,116,13,98,108,101,110,100,95,111,118,101,114,108,97,121,12,98,108,101,110,100,95,100,97,114,107,101,110,13,98,108,101,110,100,95,108,105,103,104,116,101,110,1,110,1,100,15,95,103,117,97,114,100,101,100,95,100,105,118,105,100,101,22,95,99,111,108,111,114,95,100,111,100,103,101,95,99,111,109,112,111,110,101,110,116,17,98,108,101,110,100,95,99,111,108,111,114,95,100,111,100,103,101,21,95,99,111,108,111,114,95,98,117,114,110,95,99,111,109,112,111,110,101,110,116,16,98,108,101,110,100,95,99,111,108,111,114,95,98,117,114,110,16,98,108,101,110,100,95,104,97,114,100,95,108,105,103,104,116,21,95,115,111,102,116,95,108,105,103,104,116,95,99,111,109,112,111,110,101,110,116,16,98,108,101,110,100,95,115,111,102,116,95,108,105,103,104,116,16,98,108,101,110,100,95,100,105,102,102,101,114,101,110,99,101,15,98,108,101,110,100,95,101,120,99,108,117,115,105,111,110,14,98,108,101,110,100,95,109,117,108,116,105,112,108,121,5,99,111,108,111,114,22,95,98,108,101,110,100,95,99,111,108,111,114,95,108,117,109,105,110,97,110,99,101,11,104,117,101,83,97,116,67,111,108,111,114,5,97,108,112,104,97,8,108,117,109,67,111,108,111,114,26,95,98,108,101,110,100,95,115,101,116,95,99,111,108,111,114,95,108,117,109,105,110,97,110,99,101,23,95,98,108,101,110,100,95,99,111,108,111,114,95,115,97,116,117,114,97,116,105,111,110,9,109,105,110,77,105,100,77,97,120,3,115,97,116,34,95,98,108,101,110,100,95,115,101,116,95,99,111,108,111,114,95,115,97,116,117,114,97,116,105,111,110,95,104,101,108,112,101,114,11,104,117,101,76,117,109,67,111,108,111,114,8,115,97,116,67,111,108,111,114,27,95,98,108,101,110,100,95,115,101,116,95,99,111,108,111,114,95,115,97,116,117,114,97,116,105,111,110,9,98,108,101,110,100,95,104,117,101,16,98,108,101,110,100,95,115,97,116,117,114,97,116,105,111,110,11,98,108,101,110,100,95,99,111,108,111,114,16,98,108,101,110,100,95,108,117,109,105,110,111,115,105,116,121,4,109,111,100,101,5,98,108,101,110,100,8,117,110,112,114,101,109,117,108,14,117,110,112,114,101,109,117,108,95,102,108,111,97,116,4,112,114,111,106,45,115,107,95,67,97,112,115,46,105,110,66,108,101,110,100,77,111,100,101,115,70,97,105,108,82,97,110,100,111,109,108,121,70,111,114,65,108,108,90,101,114,111,86,101,99,6,114,101,115,117,108,116,51,115,107,95,67,97,112,115,46,109,117,115,116,71,117,97,114,100,68,105,118,105,115,105,111,110,69,118,101,110,65,102,116,101,114,69,120,112,108,105,99,105,116,90,101,114,111,67,104,101,99,107,4,68,83,113,100,4,68,67,117,98,5,68,97,83,113,100,5,68,97,67,117,98,3,108,117,109,7,109,105,110,67,111,109,112,7,109,97,120,67,111,109,112,3,115,100,97,3,100,115,97,6,107,67,108,101,97,114,4,107,83,114,99,4,107,68,115,116,8,107,83,114,99,79,118,101,114,8,107,68,115,116,79,118,101,114,6,107,83,114,99,73,110,6,107,68,115,116,73,110,7,107,83,114,99,79,117,116,7,107,68,115,116,79,117,116,8,107,83,114,99,65,84,111,112,8,107,68,115,116,65,84,111,112,4,107,88,111,114,5,107,80,108,117,115,9,107,77,111,100,117,108,97,116,101,7,107,83,99,114,101,101,110,8,107,79,118,101,114,108,97,121,7,107,68,97,114,107,101,110,8,107,76,105,103,104,116,101,110,11,107,67,111,108,111,114,68,111,100,103,101,10,107,67,111,108,111,114,66,117,114,110,10,107,72,97,114,100,76,105,103,104,116,10,107,83,111,102,116,76,105,103,104,116,11,107,68,105,102,102,101,114,101,110,99,101,10,107,69,120,99,108,117,115,105,111,110,9,107,77,117,108,116,105,112,108,121,4,107,72,117,101,11,107,83,97,116,117,114,97,116,105,111,110,6,107,67,111,108,111,114,11,107,76,117,109,105,110,111,115,105,116,121,40,239,3,14,1,0,2,0,44,2,0,9,14,0,41,3,0,22,0,3,22,4,0,9,31,0,1,2,0,39,3,0,44,5,0,9,39,0,39,3,0,3,22,6,0,9,45,0,1,5,0,39,3,0,44,7,0,9,39,0,39,3,0,3,22,8,0,9,49,0,1,7,0,39,3,0,44,9,0,9,39,0,39,3,0,3,22,10,0,9,53,0,1,9,0,39,3,0,44,11,0,9,57,0,39,3,0,3,22,12,0,9,59,0,1,11,0,39,3,0,44,13,0,9,57,0,39,3,0,3,22,14,0,9,64,0,1,13,0,39,3,0,44,15,0,9,69,0,39,3,0,3,44,16,0,9,57,0,39,3,0,3,22,17,0,9,71,0,2,15,0,16,0,39,3,0,44,18,0,9,76,0,39,3,0,3,43,19,0,2,39,17,0,22,20,0,9,71,0,1,18,0,39,3,0,39,20,0,44,21,0,9,57,0,39,3,0,3,22,22,0,9,85,0,1,21,0,39,3,0,44,23,0,9,57,0,39,3,0,3,22,24,0,9,90,0,1,23,0,39,3,0,44,25,0,9,57,0,39,3,0,3,22,26,0,9,95,0,1,25,0,39,3,0,44,27,0,9,57,0,39,3,0,3,22,28,0,9,100,0,1,27,0,39,3,0,44,29,0,9,57,0,39,3,0,3,22,30,0,9,106,0,1,29,0,39,3,0,44,31,0,9,57,0,39,3,0,3,22,32,0,9,112,0,1,31,0,39,3,0,44,33,0,9,57,0,39,3,0,3,44,34,0,9,69,0,39,3,0,3,22,35,0,9,118,0,2,33,0,34,0,39,3,0,44,36,0,9,57,0,39,3,0,3,22,37,0,9,122,0,1,36,0,39,3,0,44,38,0,9,57,0,39,3,0,3,22,39,0,9,126,0,1,38,0,39,3,0,44,40,0,9,57,0,39,3,0,3,22,41,0,9,130,0,1,40,0,39,3,0,44,42,0,9,57,0,39,3,0,3,22,43,0,9,135,0,1,42,0,39,3,0,44,44,0,9,57,0,39,3,0,3,22,45,0,9,140,0,1,44,0,39,3,0,44,46,0,9,14,0,41,47,0,145,0,3,43,48,0,2,39,4,0,22,49,0,9,31,0,1,46,0,39,47,0,39,49,0,44,50,0,9,39,0,39,47,0,3,43,51,0,2,39,6,0,22,52,0,9,45,0,1,50,0,39,47,0,39,52,0,44,53,0,9,39,0,39,47,0,3,43,54,0,2,39,8,0,22,55,0,9,49,0,1,53,0,39,47,0,39,55,0,44,56,0,9,39,0,39,47,0,3,43,57,0,2,39,10,0,22,58,0,9,53,0,1,56,0,39,47,0,39,58,0,44,59,0,9,57,0,39,47,0,3,43,60,0,2,39,12,0,22,61,0,9,59,0,1,59,0,39,47,0,39,61,0,44,62,0,9,57,0,39,47,0,3,43,63,0,2,39,14,0,22,64,0,9,64,0,1,62,0,39,47,0,39,64,0,44,65,0,9,69,0,39,47,0,3,44,66,0,9,57,0,39,47,0,3,43,67,0,3,39,17,0,39,20,0,22,68,0,9,71,0,2,65,0,66,0,39,47,0,39,68,0,44,69,0,9,76,0,39,47,0,3,43,70,0,4,39,17,0,39,20,0,39,68,0,22,71,0,9,71,0,1,69,0,39,47,0,39,71,0,44,72,0,9,57,0,39,47,0,3,43,73,0,2,39,22,0,22,74,0,9,85,0,1,72,0,39,47,0,39,74,0,44,75,0,9,57,0,39,47,0,3,43,76,0,2,39,24,0,22,77,0,9,90,0,1,75,0,39,47,0,39,77,0,44,78,0,9,57,0,39,47,0,3,43,79,0,2,39,26,0,22,80,0,9,95,0,1,78,0,39,47,0,39,80,0,44,81,0,9,57,0,39,47,0,3,43,82,0,2,39,28,0,22,83,0,9,100,0,1,81,0,39,47,0,39,83,0,44,84,0,9,57,0,39,47,0,3,43,85,0,2,39,30,0,22,86,0,9,106,0,1,84,0,39,47,0,39,86,0,44,87,0,9,57,0,39,47,0,3,43,88,0,2,39,32,0,22,89,0,9,112,0,1,87,0,39,47,0,39,89,0,44,90,0,9,57,0,39,47,0,3,44,91,0,9,69,0,39,47,0,3,43,92,0,2,39,35,0,22,93,0,9,118,0,2,90,0,91,0,39,47,0,39,93,0,44,94,0,9,57,0,39,47,0,3,43,95,0,2,39,37,0,22,96,0,9,122,0,1,94,0,39,47,0,39,96,0,44,97,0,9,57,0,39,47,0,3,43,98,0,2,39,39,0,22,99,0,9,126,0,1,97,0,39,47,0,39,99,0,44,100,0,9,57,0,39,47,0,3,43,101,0,2,39,41,0,22,102,0,9,130,0,1,100,0,39,47,0,39,102,0,44,103,0,9,57,0,39,47,0,3,43,104,0,2,39,43,0,22,105,0,9,135,0,1,103,0,39,47,0,39,105,0,44,106,0,9,57,0,39,47,0,3,43,107,0,2,39,45,0,22,108,0,9,140,0,1,106,0,39,47,0,39,108,0,44,109,0,9,57,0,39,3,0,3,22,110,0,9,155,0,1,109,0,39,3,0,44,111,0,9,57,0,39,3,0,3,22,112,0,9,167,0,1,111,0,39,3,0,44,113,0,9,57,0,39,47,0,3,43,114,0,2,39,112,0,22,115,0,9,167,0,1,113,0,39,47,0,39,115,0,44,116,0,9,57,0,41,117,0,171,0,3,43,118,0,3,39,112,0,39,115,0,22,119,0,9,167,0,1,116,0,39,117,0,39,119,0,44,120,0,9,57,0,39,3,0,3,22,121,0,9,181,0,1,120,0,39,3,0,44,122,0,9,57,0,39,47,0,3,43,123,0,2,39,121,0,22,124,0,9,181,0,1,122,0,39,47,0,39,124,0,44,125,0,9,57,0,39,117,0,3,43,126,0,3,39,121,0,39,124,0,22,127,0,9,181,0,1,125,0,39,117,0,39,127,0,44,128,0,9,57,0,39,3,0,3,22,129,0,9,186,0,1,128,0,39,3,0,44,130,0,9,57,0,39,47,0,3,43,131,0,2,39,129,0,22,132,0,9,186,0,1,130,0,39,47,0,39,132,0,44,133,0,9,57,0,39,3,0,3,22,134,0,9,192,0,1,133,0,39,3,0,44,135,0,9,57,0,39,47,0,3,43,136,0,2,39,134,0,22,137,0,9,192,0,1,135,0,39,47,0,39,137,0,44,138,0,9,57,0,39,3,0,3,22,139,0,9,198,0,1,138,0,39,3,0,44,140,0,9,57,0,39,47,0,3,43,141,0,2,39,139,0,22,142,0,9,198,0,1,140,0,39,47,0,39,142,0,44,143,0,9,57,0,39,3,0,3,22,144,0,9,204,0,1,143,0,39,3,0,44,145,0,9,57,0,39,47,0,3,43,146,0,2,39,144,0,22,147,0,9,204,0,1,145,0,39,47,0,39,147,0,44,148,0,9,57,0,39,3,0,3,22,149,0,9,214,0,1,148,0,39,3,0,44,150,0,9,57,0,39,47,0,3,43,151,0,2,39,149,0,22,152,0,9,214,0,1,150,0,39,47,0,39,152,0,44,153,0,9,57,0,39,3,0,3,22,154,0,9,219,0,1,153,0,39,3,0,44,155,0,9,57,0,39,47,0,3,43,156,0,2,39,154,0,22,157,0,9,219,0,1,155,0,39,47,0,39,157,0,44,158,0,9,57,0,39,3,0,3,44,159,0,9,69,0,41,160,0,225,0,3,22,161,0,9,231,0,2,158,0,159,0,39,3,0,44,162,0,9,57,0,39,3,0,3,44,163,0,9,69,0,39,3,0,3,43,164,0,2,39,161,0,22,165,0,9,231,0,2,162,0,163,0,39,3,0,39,165,0,44,166,0,9,57,0,39,47,0,3,44,167,0,9,69,0,41,168,0,235,0,3,43,169,0,3,39,161,0,39,165,0,22,170,0,9,231,0,2,166,0,167,0,39,47,0,39,170,0,44,171,0,9,57,0,39,47,0,3,44,172,0,9,69,0,39,47,0,3,43,173,0,4,39,161,0,39,165,0,39,170,0,22,174,0,9,231,0,2,171,0,172,0,39,47,0,39,174,0,44,175,0,9,57,0,39,3,0,3,44,176,0,28,8,4,240,0,39,3,0,3,22,177,0,9,242,0,2,175,0,176,0,39,3,0,44,178,0,9,57,0,39,47,0,3,44,179,0,28,8,4,240,0,39,47,0,3,43,180,0,2,39,177,0,22,181,0,9,242,0,2,178,0,179,0,39,47,0,39,181,0,44,182,0,9,57,0,39,3,0,3,44,183,0,9,69,0,39,3,0,3,22,184,0,9,247,0,2,182,0,183,0,39,3,0,44,185,0,9,57,0,39,3,0,3,44,186,0,9,69,0,39,160,0,3,43,187,0,2,39,184,0,22,188,0,9,247,0,2,185,0,186,0,39,3,0,39,188,0,44,189,0,9,57,0,39,47,0,3,44,190,0,9,69,0,39,47,0,3,43,191,0,3,39,184,0,39,188,0,22,192,0,9,247,0,2,189,0,190,0,39,47,0,39,192,0,44,193,0,9,57,0,39,47,0,3,44,194,0,9,69,0,39,168,0,3,43,195,0,4,39,184,0,39,188,0,39,192,0,22,196,0,9,247,0,2,193,0,194,0,39,47,0,39,196,0,44,197,0,9,57,0,39,117,0,3,44,198,0,9,69,0,39,117,0,3,43,199,0,5,39,184,0,39,188,0,39,192,0,39,196,0,22,200,0,9,247,0,2,197,0,198,0,39,117,0,39,200,0,44,201,0,9,57,0,39,117,0,3,44,202,0,9,69,0,41,203,0,251,0,3,43,204,0,6,39,184,0,39,188,0,39,192,0,39,196,0,39,200,0,22,205,0,9,247,0,2,201,0,202,0,39,117,0,39,205,0,44,206,0,9,57,0,39,3,0,3,44,207,0,9,69,0,39,3,0,3,22,208,0,9,255,0,2,206,0,207,0,39,3,0,44,209,0,9,57,0,39,3,0,3,44,210,0,9,69,0,39,160,0,3,43,211,0,2,39,208,0,22,212,0,9,255,0,2,209,0,210,0,39,3,0,39,212,0,44,213,0,9,57,0,39,47,0,3,44,214,0,9,69,0,39,47,0,3,43,215,0,3,39,208,0,39,212,0,22,216,0,9,255,0,2,213,0,214,0,39,47,0,39,216,0,44,217,0,9,57,0,39,47,0,3,44,218,0,9,69,0,39,168,0,3,43,219,0,4,39,208,0,39,212,0,39,216,0,22,220,0,9,255,0,2,217,0,218,0,39,47,0,39,220,0,44,221,0,9,57,0,39,117,0,3,44,222,0,9,69,0,39,117,0,3,43,223,0,5,39,208,0,39,212,0,39,216,0,39,220,0,22,224,0,9,255,0,2,221,0,222,0,39,117,0,39,224,0,44,225,0,9,57,0,39,117,0,3,44,226,0,9,69,0,39,203,0,3,43,227,0,6,39,208,0,39,212,0,39,216,0,39,220,0,39,224,0,22,228,0,9,255,0,2,225,0,226,0,39,117,0,39,228,0,44,229,0,9,57,0,39,3,0,3,44,230,0,9,3,1,39,3,0,3,44,231,0,9,10,1,39,3,0,3,22,232,0,9,17,1,3,229,0,230,0,231,0,39,3,0,44,233,0,9,57,0,39,3,0,3,44,234,0,9,3,1,39,160,0,3,44,235,0,9,10,1,39,160,0,3,43,236,0,2,39,232,0,22,237,0,9,17,1,3,233,0,234,0,235,0,39,3,0,39,237,0,44,238,0,9,57,0,39,47,0,3,44,239,0,9,3,1,39,47,0,3,44,240,0,9,10,1,39,47,0,3,43,241,0,3,39,232,0,39,237,0,22,242,0,9,17,1,3,238,0,239,0,240,0,39,47,0,39,242,0,44,243,0,9,57,0,39,47,0,3,44,244,0,9,3,1,39,168,0,3,44,245,0,9,10,1,39,168,0,3,43,246,0,4,39,232,0,39,237,0,39,242,0,22,247,0,9,17,1,3,243,0,244,0,245,0,39,47,0,39,247,0,44,248,0,9,57,0,39,117,0,3,44,249,0,9,3,1,39,117,0,3,44,250,0,9,10,1,39,117,0,3,43,251,0,5,39,232,0,39,237,0,39,242,0,39,247,0,22,252,0,9,17,1,3,248,0,249,0,250,0,39,117,0,39,252,0,44,253,0,9,57,0,39,117,0,3,44,254,0,9,3,1,39,203,0,3,44,255,0,9,10,1,39,203,0,3,43,0,1,6,39,232,0,39,237,0,39,242,0,39,247,0,39,252,0,22,1,1,9,17,1,3,253,0,254,0,255,0,39,117,0,39,1,1,44,2,1,9,57,0,39,3,0,3,22,3,1,9,23,1,1,2,1,39,3,0,44,4,1,9,57,0,39,47,0,3,43,5,1,2,39,3,1,22,6,1,9,23,1,1,4,1,39,47,0,39,6,1,44,7,1,9,57,0,39,3,0,3,44,8,1,9,69,0,39,3,0,3,44,9,1,9,32,1,39,3,0,3,22,10,1,9,34,1,3,7,1,8,1,9,1,39,3,0,44,11,1,9,57,0,39,3,0,3,44,12,1,9,69,0,39,3,0,3,44,13,1,9,32,1,39,160,0,3,43,14,1,2,39,10,1,22,15,1,9,34,1,3,11,1,12,1,13,1,39,3,0,39,15,1,44,16,1,9,57,0,39,47,0,3,44,17,1,9,69,0,39,47,0,3,44,18,1,9,32,1,39,47,0,3,43,19,1,3,39,10,1,39,15,1,22,20,1,9,34,1,3,16,1,17,1,18,1,39,47,0,39,20,1,44,21,1,9,57,0,39,47,0,3,44,22,1,9,69,0,39,47,0,3,44,23,1,9,32,1,39,168,0,3,43,24,1,4,39,10,1,39,15,1,39,20,1,22,25,1,9,34,1,3,21,1,22,1,23,1,39,47,0,39,25,1,44,26,1,9,57,0,39,3,0,3,44,27,1,9,69,0,39,3,0,3,44,28,1,9,32,1,41,29,1,38,1,3,43,30,1,5,39,10,1,39,15,1,39,20,1,39,25,1,22,31,1,9,34,1,3,26,1,27,1,28,1,39,3,0,39,31,1,44,32,1,9,57,0,39,47,0,3,44,33,1,9,69,0,39,47,0,3,44,34,1,9,32,1,39,29,1,3,43,35,1,6,39,10,1,39,15,1,39,20,1,39,25,1,39,31,1,22,36,1,9,34,1,3,32,1,33,1,34,1,39,47,0,39,36,1,44,37,1,9,57,0,39,117,0,3,44,38,1,9,69,0,39,117,0,3,44,39,1,9,32,1,39,29,1,3,43,40,1,7,39,10,1,39,15,1,39,20,1,39,25,1,39,31,1,39,36,1,22,41,1,9,34,1,3,37,1,38,1,39,1,39,117,0,39,41,1,44,42,1,9,57,0,39,29,1,3,44,43,1,9,69,0,39,29,1,3,44,44,1,9,32,1,39,29,1,3,43,45,1,8,39,10,1,39,15,1,39,20,1,39,25,1,39,31,1,39,36,1,39,41,1,22,46,1,9,34,1,3,42,1,43,1,44,1,39,29,1,39,46,1,44,47,1,9,48,1,39,3,0,3,44,48,1,9,57,0,39,3,0,3,22,49,1,9,53,1,2,47,1,48,1,39,3,0,44,50,1,9,48,1,39,160,0,3,44,51,1,9,57,0,39,3,0,3,43,52,1,2,39,49,1,22,53,1,9,53,1,2,50,1,51,1,39,3,0,39,53,1,44,54,1,9,48,1,39,47,0,3,44,55,1,9,57,0,39,47,0,3,43,56,1,3,39,49,1,39,53,1,22,57,1,9,53,1,2,54,1,55,1,39,47,0,39,57,1,44,58,1,9,48,1,39,168,0,3,44,59,1,9,57,0,39,47,0,3,43,60,1,4,39,49,1,39,53,1,39,57,1,22,61,1,9,53,1,2,58,1,59,1,39,47,0,39,61,1,44,62,1,9,58,1,39,3,0,3,44,63,1,9,64,1,39,3,0,3,44,64,1,9,57,0,39,3,0,3,22,65,1,9,70,1,3,62,1,63,1,64,1,39,3,0,44,66,1,9,58,1,39,160,0,3,44,67,1,9,64,1,39,160,0,3,44,68,1,9,57,0,39,3,0,3,43,69,1,2,39,65,1,22,70,1,9,70,1,3,66,1,67,1,68,1,39,3,0,39,70,1,44,71,1,9,58,1,39,47,0,3,44,72,1,9,64,1,39,47,0,3,44,73,1,9,57,0,39,47,0,3,43,74,1,3,39,65,1,39,70,1,22,75,1,9,70,1,3,71,1,72,1,73,1,39,47,0,39,75,1,44,76,1,9,58,1,39,168,0,3,44,77,1,9,64,1,39,168,0,3,44,78,1,9,57,0,39,47,0,3,43,79,1,4,39,65,1,39,70,1,39,75,1,22,80,1,9,70,1,3,76,1,77,1,78,1,39,47,0,39,80,1,44,81,1,9,57,0,39,3,0,3,22,82,1,9,81,1,1,81,1,39,29,1,44,83,1,9,57,0,39,3,0,3,22,84,1,9,87,1,1,83,1,39,29,1,44,85,1,9,93,1,39,3,0,3,22,86,1,9,99,1,1,85,1,39,117,0,44,87,1,9,93,1,39,117,0,3,22,88,1,9,114,1,1,87,1,39,3,0,44,89,1,9,93,1,41,90,1,129,1,3,22,91,1,9,139,1,1,89,1,39,3,0,44,92,1,9,32,1,39,3,0,3,44,93,1,9,155,1,39,3,0,3,44,94,1,9,157,1,39,3,0,3,22,95,1,9,159,1,3,92,1,93,1,94,1,39,3,0,44,96,1,9,32,1,39,47,0,3,44,97,1,9,155,1,39,47,0,3,44,98,1,9,157,1,39,47,0,3,43,99,1,2,39,95,1,22,100,1,9,159,1,3,96,1,97,1,98,1,39,47,0,39,100,1,44,101,1,9,57,0,39,3,0,3,44,102,1,28,8,4,122,0,39,117,0,3,22,103,1,29,8,0,16,0,0,163,1,2,101,1,102,1,39,3,0,44,104,1,9,57,0,39,3,0,3,44,105,1,28,8,2,122,0,39,117,0,3,22,106,1,9,169,1,2,104,1,105,1,39,3,0,44,107,1,9,175,1,41,108,1,177,1,3,22,109,1,9,184,1,1,107,1,41,110,1,198,1,44,111,1,9,175,1,39,108,1,3,22,112,1,9,203,1,1,111,1,39,110,1,44,113,1,9,175,1,41,114,1,217,1,3,22,115,1,9,224,1,1,113,1,39,110,1,44,116,1,9,175,1,39,114,1,3,22,117,1,9,237,1,1,116,1,39,110,1,44,118,1,9,250,1,39,110,1,3,22,119,1,9,252,1,1,118,1,39,108,1,44,120,1,9,250,1,39,110,1,3,22,121,1,9,12,2,1,120,1,39,108,1,44,122,1,9,250,1,39,110,1,3,22,123,1,9,28,2,1,122,1,39,114,1,44,124,1,9,250,1,39,110,1,3,22,125,1,9,43,2,1,124,1,39,114,1,44,126,1,9,175,1,39,108,1,3,22,127,1,9,58,2,1,126,1,39,110,1,44,128,1,9,175,1,39,110,1,3,22,129,1,9,71,2,1,128,1,39,108,1,44,130,1,9,57,0,39,3,0,3,22,131,1,9,86,2,1,130,1,39,160,0,44,132,1,9,57,0,39,47,0,3,43,133,1,2,39,131,1,22,134,1,9,86,2,1,132,1,39,168,0,39,134,1,44,135,1,9,93,2,39,3,0,3,44,136,1,9,96,2,39,3,0,3,22,137,1,9,99,2,2,135,1,136,1,39,160,0,44,138,1,9,93,2,39,47,0,3,44,139,1,9,96,2,39,47,0,3,43,140,1,2,39,137,1,22,141,1,9,99,2,2,138,1,139,1,39,168,0,39,141,1,44,142,1,9,57,0,39,3,0,3,44,143,1,9,69,0,39,3,0,3,22,144,1,9,108,2,2,142,1,143,1,39,160,0,44,145,1,9,57,0,39,47,0,3,44,146,1,9,69,0,39,47,0,3,43,147,1,2,39,144,1,22,148,1,9,108,2,2,145,1,146,1,39,168,0,39,148,1,44,149,1,9,57,0,41,150,1,112,2,3,44,151,1,9,69,0,39,150,1,3,22,152,1,9,119,2,2,149,1,151,1,39,150,1,44,153,1,9,57,0,41,154,1,125,2,3,44,155,1,9,69,0,39,154,1,3,43,156,1,2,39,152,1,22,157,1,9,119,2,2,153,1,155,1,39,154,1,39,157,1,44,158,1,9,57,0,39,3,0,3,22,159,1,9,131,2,1,158,1,39,3,0,44,160,1,9,57,0,39,47,0,3,43,161,1,2,39,159,1,22,162,1,9,131,2,1,160,1,39,47,0,39,162,1,22,163,1,9,141,2,0,39,114,1,44,164,1,9,152,2,39,3,0,3,44,165,1,9,154,2,39,3,0,3,44,166,1,9,156,2,39,3,0,3,22,167,1,9,161,2,3,164,1,165,1,166,1,39,3,0,44,168,1,9,152,2,39,47,0,3,44,169,1,9,154,2,39,47,0,3,44,170,1,9,156,2,39,47,0,3,43,171,1,2,39,167,1,22,172,1,9,161,2,3,168,1,169,1,170,1,39,47,0,39,172,1,44,173,1,9,154,2,39,3,0,3,44,174,1,9,152,2,39,3,0,3,22,175,1,9,173,2,2,173,1,174,1,39,3,0,44,176,1,9,154,2,39,47,0,3,44,177,1,9,152,2,39,47,0,3,43,178,1,2,39,175,1,22,179,1,9,173,2,2,176,1,177,1,39,47,0,39,179,1,44,180,1,9,154,2,39,3,0,3,44,181,1,9,152,2,39,3,0,3,44,182,1,9,181,2,39,160,0,3,22,183,1,9,185,2,3,180,1,181,1,182,1,39,3,0,44,184,1,9,154,2,39,47,0,3,44,185,1,9,152,2,39,47,0,3,44,186,1,9,181,2,39,160,0,3,43,187,1,2,39,183,1,22,188,1,9,185,2,3,184,1,185,1,186,1,39,47,0,39,188,1,44,189,1,9,57,0,41,190,1,193,2,3,44,191,1,9,69,0,39,190,1,3,22,192,1,9,198,2,2,189,1,191,1,39,190,1,44,193,1,9,157,1,39,108,1,3,44,194,1,9,213,2,39,108,1,3,22,195,1,9,215,2,2,193,1,194,1,41,196,1,228,2,44,197,1,9,157,1,39,150,1,3,44,198,1,9,213,2,39,150,1,3,43,199,1,2,39,195,1,22,200,1,9,215,2,2,197,1,198,1,41,201,1,237,2,39,200,1,44,202,1,9,157,1,39,114,1,3,44,203,1,9,213,2,39,114,1,3,43,204,1,3,39,195,1,39,200,1,22,205,1,9,215,2,2,202,1,203,1,41,206,1,246,2,39,205,1,44,207,1,9,157,1,39,150,1,3,44,208,1,9,213,2,39,108,1,3,43,209,1,4,39,195,1,39,200,1,39,205,1,22,210,1,9,215,2,2,207,1,208,1,41,211,1,255,2,39,210,1,44,212,1,9,157,1,39,108,1,3,44,213,1,9,213,2,39,150,1,3,43,214,1,5,39,195,1,39,200,1,39,205,1,39,210,1,22,215,1,9,215,2,2,212,1,213,1,41,216,1,8,3,39,215,1,44,217,1,9,157,1,39,114,1,3,44,218,1,9,213,2,39,108,1,3,43,219,1,6,39,195,1,39,200,1,39,205,1,39,210,1,39,215,1,22,220,1,9,215,2,2,217,1,218,1,41,221,1,17,3,39,220,1,44,222,1,9,157,1,39,108,1,3,44,223,1,9,213,2,39,114,1,3,43,224,1,7,39,195,1,39,200,1,39,205,1,39,210,1,39,215,1,39,220,1,22,225,1,9,215,2,2,222,1,223,1,41,226,1,26,3,39,225,1,44,227,1,9,157,1,39,114,1,3,44,228,1,9,213,2,39,150,1,3,43,229,1,8,39,195,1,39,200,1,39,205,1,39,210,1,39,215,1,39,220,1,39,225,1,22,230,1,9,215,2,2,227,1,228,1,41,231,1,35,3,39,230,1,44,232,1,9,157,1,39,150,1,3,44,233,1,9,213,2,39,114,1,3,43,234,1,9,39,195,1,39,200,1,39,205,1,39,210,1,39,215,1,39,220,1,39,225,1,39,230,1,22,235,1,9,215,2,2,232,1,233,1,39,206,1,39,235,1,44,236,1,9,157,1,41,237,1,44,3,3,44,238,1,9,213,2,39,237,1,3,43,239,1,10,39,195,1,39,200,1,39,205,1,39,210,1,39,215,1,39,220,1,39,225,1,39,230,1,39,235,1,22,240,1,9,215,2,2,236,1,238,1,41,241,1,50,3,39,240,1,44,242,1,9,157,1,39,154,1,3,44,243,1,9,213,2,39,154,1,3,43,244,1,11,39,195,1,39,200,1,39,205,1,39,210,1,39,215,1,39,220,1,39,225,1,39,230,1,39,235,1,39,240,1,22,245,1,9,215,2,2,242,1,243,1,41,246,1,58,3,39,245,1,44,247,1,9,157,1,41,248,1,66,3,3,44,249,1,9,213,2,39,248,1,3,43,250,1,12,39,195,1,39,200,1,39,205,1,39,210,1,39,215,1,39,220,1,39,225,1,39,230,1,39,235,1,39,240,1,39,245,1,22,251,1,9,215,2,2,247,1,249,1,41,252,1,72,3,39,251,1,44,253,1,9,157,1,39,154,1,3,44,254,1,9,213,2,39,237,1,3,43,255,1,13,39,195,1,39,200,1,39,205,1,39,210,1,39,215,1,39,220,1,39,225,1,39,230,1,39,235,1,39,240,1,39,245,1,39,251,1,22,0,2,9,215,2,2,253,1,254,1,41,1,2,80,3,39,0,2,44,2,2,9,157,1,39,237,1,3,44,3,2,9,213,2,39,154,1,3,43,4,2,14,39,195,1,39,200,1,39,205,1,39,210,1,39,215,1,39,220,1,39,225,1,39,230,1,39,235,1,39,240,1,39,245,1,39,251,1,39,0,2,22,5,2,9,215,2,2,2,2,3,2,41,6,2,88,3,39,5,2,44,7,2,9,157,1,39,248,1,3,44,8,2,9,213,2,39,237,1,3,43,9,2,15,39,195,1,39,200,1,39,205,1,39,210,1,39,215,1,39,220,1,39,225,1,39,230,1,39,235,1,39,240,1,39,245,1,39,251,1,39,0,2,39,5,2,22,10,2,9,215,2,2,7,2,8,2,41,11,2,96,3,39,10,2,44,12,2,9,157,1,39,237,1,3,44,13,2,9,213,2,39,248,1,3,43,14,2,16,39,195,1,39,200,1,39,205,1,39,210,1,39,215,1,39,220,1,39,225,1,39,230,1,39,235,1,39,240,1,39,245,1,39,251,1,39,0,2,39,5,2,39,10,2,22,15,2,9,215,2,2,12,2,13,2,41,16,2,104,3,39,15,2,44,17,2,9,157,1,39,248,1,3,44,18,2,9,213,2,39,154,1,3,43,19,2,17,39,195,1,39,200,1,39,205,1,39,210,1,39,215,1,39,220,1,39,225,1,39,230,1,39,235,1,39,240,1,39,245,1,39,251,1,39,0,2,39,5,2,39,10,2,39,15,2,22,20,2,9,215,2,2,17,2,18,2,41,21,2,112,3,39,20,2,44,22,2,9,157,1,39,154,1,3,44,23,2,9,213,2,39,248,1,3,43,24,2,18,39,195,1,39,200,1,39,205,1,39,210,1,39,215,1,39,220,1,39,225,1,39,230,1,39,235,1,39,240,1,39,245,1,39,251,1,39,0,2,39,5,2,39,10,2,39,15,2,39,20,2,22,25,2,9,215,2,2,22,2,23,2,39,252,1,39,25,2,44,26,2,9,120,3,39,196,1,3,22,27,2,9,122,3,1,26,2,39,196,1,44,28,2,9,120,3,39,201,1,3,43,29,2,2,39,27,2,22,30,2,9,122,3,1,28,2,39,201,1,39,30,2,44,31,2,9,120,3,41,32,2,132,3,3,43,33,2,3,39,27,2,39,30,2,22,34,2,9,122,3,1,31,2,39,32,2,39,34,2,44,35,2,9,120,3,39,216,1,3,43,36,2,4,39,27,2,39,30,2,39,34,2,22,37,2,9,122,3,1,35,2,39,211,1,39,37,2,44,38,2,9,120,3,39,211,1,3,43,39,2,5,39,27,2,39,30,2,39,34,2,39,37,2,22,40,2,9,122,3,1,38,2,39,216,1,39,40,2,44,41,2,9,120,3,39,226,1,3,43,42,2,6,39,27,2,39,30,2,39,34,2,39,37,2,39,40,2,22,43,2,9,122,3,1,41,2,39,221,1,39,43,2,44,44,2,9,120,3,39,221,1,3,43,45,2,7,39,27,2,39,30,2,39,34,2,39,37,2,39,40,2,39,43,2,22,46,2,9,122,3,1,44,2,39,226,1,39,46,2,44,47,2,9,120,3,39,206,1,3,43,48,2,8,39,27,2,39,30,2,39,34,2,39,37,2,39,40,2,39,43,2,39,46,2,22,49,2,9,122,3,1,47,2,39,231,1,39,49,2,44,50,2,9,120,3,39,231,1,3,43,51,2,9,39,27,2,39,30,2,39,34,2,39,37,2,39,40,2,39,43,2,39,46,2,39,49,2,22,52,2,9,122,3,1,50,2,39,206,1,39,52,2,44,53,2,9,120,3,39,241,1,3,43,54,2,10,39,27,2,39,30,2,39,34,2,39,37,2,39,40,2,39,43,2,39,46,2,39,49,2,39,52,2,22,55,2,9,122,3,1,53,2,39,241,1,39,55,2,44,56,2,9,120,3,39,246,1,3,43,57,2,11,39,27,2,39,30,2,39,34,2,39,37,2,39,40,2,39,43,2,39,46,2,39,49,2,39,52,2,39,55,2,22,58,2,9,122,3,1,56,2,39,246,1,39,58,2,44,59,2,9,120,3,41,60,2,141,3,3,43,61,2,12,39,27,2,39,30,2,39,34,2,39,37,2,39,40,2,39,43,2,39,46,2,39,49,2,39,52,2,39,55,2,39,58,2,22,62,2,9,122,3,1,59,2,39,60,2,39,62,2,44,63,2,9,120,3,39,6,2,3,43,64,2,13,39,27,2,39,30,2,39,34,2,39,37,2,39,40,2,39,43,2,39,46,2,39,49,2,39,52,2,39,55,2,39,58,2,39,62,2,22,65,2,9,122,3,1,63,2,39,1,2,39,65,2,44,66,2,9,120,3,39,1,2,3,43,67,2,14,39,27,2,39,30,2,39,34,2,39,37,2,39,40,2,39,43,2,39,46,2,39,49,2,39,52,2,39,55,2,39,58,2,39,62,2,39,65,2,22,68,2,9,122,3,1,66,2,39,6,2,39,68,2,44,69,2,9,120,3,39,16,2,3,43,70,2,15,39,27,2,39,30,2,39,34,2,39,37,2,39,40,2,39,43,2,39,46,2,39,49,2,39,52,2,39,55,2,39,58,2,39,62,2,39,65,2,39,68,2,22,71,2,9,122,3,1,69,2,39,11,2,39,71,2,44,72,2,9,120,3,39,11,2,3,43,73,2,16,39,27,2,39,30,2,39,34,2,39,37,2,39,40,2,39,43,2,39,46,2,39,49,2,39,52,2,39,55,2,39,58,2,39,62,2,39,65,2,39,68,2,39,71,2,22,74,2,9,122,3,1,72,2,39,16,2,39,74,2,44,75,2,9,120,3,39,252,1,3,43,76,2,17,39,27,2,39,30,2,39,34,2,39,37,2,39,40,2,39,43,2,39,46,2,39,49,2,39,52,2,39,55,2,39,58,2,39,62,2,39,65,2,39,68,2,39,71,2,39,74,2,22,77,2,9,122,3,1,75,2,39,21,2,39,77,2,44,78,2,9,120,3,39,21,2,3,43,79,2,18,39,27,2,39,30,2,39,34,2,39,37,2,39,40,2,39,43,2,39,46,2,39,49,2,39,52,2,39,55,2,39,58,2,39,62,2,39,65,2,39,68,2,39,71,2,39,74,2,39,77,2,22,80,2,9,122,3,1,78,2,39,252,1,39,80,2,44,81,2,9,120,3,39,196,1,3,22,82,2,9,149,3,1,81,2,39,160,0,44,83,2,9,120,3,39,201,1,3,43,84,2,2,39,82,2,22,85,2,9,149,3,1,83,2,39,160,0,39,85,2,44,86,2,9,120,3,39,32,2,3,43,87,2,3,39,82,2,39,85,2,22,88,2,9,149,3,1,86,2,39,160,0,39,88,2,44,89,2,9,120,3,39,241,1,3,43,90,2,4,39,82,2,39,85,2,39,88,2,22,91,2,9,149,3,1,89,2,39,168,0,39,91,2,44,92,2,9,120,3,39,246,1,3,43,93,2,5,39,82,2,39,85,2,39,88,2,39,91,2,22,94,2,9,149,3,1,92,2,39,168,0,39,94,2,44,95,2,9,120,3,39,60,2,3,43,96,2,6,39,82,2,39,85,2,39,88,2,39,91,2,39,94,2,22,97,2,9,149,3,1,95,2,39,168,0,39,97,2,44,98,2,9,120,3,39,196,1,3,22,99,2,9,161,3,1,98,2,39,196,1,44,100,2,9,120,3,39,201,1,3,43,101,2,2,39,99,2,22,102,2,9,161,3,1,100,2,39,201,1,39,102,2,44,103,2,9,120,3,39,32,2,3,43,104,2,3,39,99,2,39,102,2,22,105,2,9,161,3,1,103,2,39,32,2,39,105,2,44,106,2,9,120,3,39,241,1,3,43,107,2,4,39,99,2,39,102,2,39,105,2,22,108,2,9,161,3,1,106,2,39,241,1,39,108,2,44,109,2,9,120,3,39,246,1,3,43,110,2,5,39,99,2,39,102,2,39,105,2,39,108,2,22,111,2,9,161,3,1,109,2,39,246,1,39,111,2,44,112,2,9,120,3,39,60,2,3,43,113,2,6,39,99,2,39,102,2,39,105,2,39,108,2,39,111,2,22,114,2,9,161,3,1,112,2,39,60,2,39,114,2,44,115,2,9,57,0,41,116,2,169,3,3,44,117,2,9,69,0,39,116,2,3,22,118,2,9,174,3,2,115,2,117,2,41,119,2,183,3,44,120,2,9,57,0,41,121,2,189,3,3,44,122,2,9,69,0,39,121,2,3,43,123,2,2,39,118,2,22,124,2,9,174,3,2,120,2,122,2,39,119,2,39,124,2,44,125,2,9,57,0,41,126,2,195,3,3,44,127,2,9,69,0,39,126,2,3,43,128,2,3,39,118,2,39,124,2,22,129,2,9,174,3,2,125,2,127,2,39,119,2,39,129,2,44,130,2,9,57,0,41,131,2,201,3,3,44,132,2,9,69,0,39,131,2,3,43,133,2,4,39,118,2,39,124,2,39,129,2,22,134,2,9,174,3,2,130,2,132,2,39,119,2,39,134,2,44,135,2,9,57,0,41,136,2,207,3,3,44,137,2,9,69,0,39,136,2,3,43,138,2,5,39,118,2,39,124,2,39,129,2,39,134,2,22,139,2,9,174,3,2,135,2,137,2,39,119,2,39,139,2,44,140,2,9,57,0,41,141,2,214,3,3,44,142,2,9,69,0,39,141,2,3,43,143,2,6,39,118,2,39,124,2,39,129,2,39,134,2,39,139,2,22,144,2,9,174,3,2,140,2,142,2,39,119,2,39,144,2,44,145,2,9,57,0,39,116,2,3,44,146,2,9,69,0,39,116,2,3,22,147,2,9,220,3,2,145,2,146,2,39,119,2,44,148,2,9,57,0,39,121,2,3,44,149,2,9,69,0,39,121,2,3,43,150,2,2,39,147,2,22,151,2,9,220,3,2,148,2,149,2,39,119,2,39,151,2,44,152,2,9,57,0,39,126,2,3,44,153,2,9,69,0,39,126,2,3,43,154,2,3,39,147,2,39,151,2,22,155,2,9,220,3,2,152,2,153,2,39,119,2,39,155,2,44,156,2,9,57,0,39,141,2,3,44,157,2,9,69,0,39,141,2,3,43,158,2,4,39,147,2,39,151,2,39,155,2,22,159,2,9,220,3,2,156,2,157,2,39,119,2,39,159,2,44,160,2,9,57,0,39,131,2,3,44,161,2,9,69,0,39,131,2,3,43,162,2,5,39,147,2,39,151,2,39,155,2,39,159,2,22,163,2,9,220,3,2,160,2,161,2,39,119,2,39,163,2,44,164,2,9,57,0,39,136,2,3,44,165,2,9,69,0,39,136,2,3,43,166,2,6,39,147,2,39,151,2,39,155,2,39,159,2,39,163,2,22,167,2,9,220,3,2,164,2,165,2,39,119,2,39,167,2,44,168,2,9,57,0,39,116,2,3,44,169,2,9,69,0,39,116,2,3,22,170,2,9,234,3,2,168,2,169,2,39,119,2,44,171,2,9,57,0,39,121,2,3,44,172,2,9,69,0,39,121,2,3,43,173,2,2,39,170,2,22,174,2,9,234,3,2,171,2,172,2,39,119,2,39,174,2,44,175,2,9,57,0,39,126,2,3,44,176,2,9,69,0,39,126,2,3,43,177,2,3,39,170,2,39,174,2,22,178,2,9,234,3,2,175,2,176,2,39,119,2,39,178,2,44,179,2,9,57,0,39,141,2,3,44,180,2,9,69,0,39,141,2,3,43,181,2,4,39,170,2,39,174,2,39,178,2,22,182,2,9,234,3,2,179,2,180,2,39,119,2,39,182,2,44,183,2,9,57,0,39,131,2,3,44,184,2,9,69,0,39,131,2,3,43,185,2,5,39,170,2,39,174,2,39,178,2,39,182,2,22,186,2,9,234,3,2,183,2,184,2,39,119,2,39,186,2,44,187,2,9,57,0,39,136,2,3,44,188,2,9,69,0,39,136,2,3,43,189,2,6,39,170,2,39,174,2,39,178,2,39,182,2,39,186,2,22,190,2,9,234,3,2,187,2,188,2,39,119,2,39,190,2,44,191,2,9,57,0,39,116,2,3,44,192,2,9,69,0,39,116,2,3,22,193,2,9,246,3,2,191,2,192,2,39,119,2,44,194,2,9,57,0,39,121,2,3,44,195,2,9,69,0,39,121,2,3,43,196,2,2,39,193,2,22,197,2,9,246,3,2,194,2,195,2,39,119,2,39,197,2,44,198,2,9,57,0,39,126,2,3,44,199,2,9,69,0,39,126,2,3,43,200,2,3,39,193,2,39,197,2,22,201,2,9,246,3,2,198,2,199,2,39,119,2,39,201,2,44,202,2,9,57,0,39,141,2,3,44,203,2,9,69,0,39,141,2,3,43,204,2,4,39,193,2,39,197,2,39,201,2,22,205,2,9,246,3,2,202,2,203,2,39,119,2,39,205,2,44,206,2,9,57,0,39,131,2,3,44,207,2,9,69,0,39,131,2,3,43,208,2,5,39,193,2,39,197,2,39,201,2,39,205,2,22,209,2,9,246,3,2,206,2,207,2,39,119,2,39,209,2,44,210,2,9,57,0,39,136,2,3,44,211,2,9,69,0,39,136,2,3,43,212,2,6,39,193,2,39,197,2,39,201,2,39,205,2,39,209,2,22,213,2,9,246,3,2,210,2,211,2,39,119,2,39,213,2,44,214,2,9,57,0,39,116,2,3,44,215,2,9,69,0,39,116,2,3,22,216,2,9,7,4,2,214,2,215,2,39,119,2,44,217,2,9,57,0,39,121,2,3,44,218,2,9,69,0,39,121,2,3,43,219,2,2,39,216,2,22,220,2,9,7,4,2,217,2,218,2,39,119,2,39,220,2,44,221,2,9,57,0,39,126,2,3,44,222,2,9,69,0,39,126,2,3,43,223,2,3,39,216,2,39,220,2,22,224,2,9,7,4,2,221,2,222,2,39,119,2,39,224,2,44,225,2,9,57,0,39,141,2,3,44,226,2,9,69,0,39,141,2,3,43,227,2,4,39,216,2,39,220,2,39,224,2,22,228,2,9,7,4,2,225,2,226,2,39,119,2,39,228,2,44,229,2,9,57,0,39,131,2,3,44,230,2,9,69,0,39,131,2,3,43,231,2,5,39,216,2,39,220,2,39,224,2,39,228,2,22,232,2,9,7,4,2,229,2,230,2,39,119,2,39,232,2,44,233,2,9,57,0,39,136,2,3,44,234,2,9,69,0,39,136,2,3,43,235,2,6,39,216,2,39,220,2,39,224,2,39,228,2,39,232,2,22,236,2,9,7,4,2,233,2,234,2,39,119,2,39,236,2,44,237,2,9,57,0,39,119,2,3,44,238,2,9,69,0,39,119,2,3,43,239,2,7,39,216,2,39,220,2,39,224,2,39,228,2,39,232,2,39,236,2,22,240,2,9,7,4,2,237,2,238,2,39,119,2,39,240,2,44,241,2,9,57,0,39,116,2,3,44,242,2,9,69,0,39,116,2,3,22,243,2,9,13,4,2,241,2,242,2,39,119,2,44,244,2,9,57,0,39,121,2,3,44,245,2,9,69,0,39,121,2,3,43,246,2,2,39,243,2,22,247,2,9,13,4,2,244,2,245,2,39,119,2,39,247,2,44,248,2,9,57,0,39,126,2,3,44,249,2,9,69,0,39,126,2,3,43,250,2,3,39,243,2,39,247,2,22,251,2,9,13,4,2,248,2,249,2,39,119,2,39,251,2,44,252,2,9,57,0,39,141,2,3,44,253,2,9,69,0,39,141,2,3,43,254,2,4,39,243,2,39,247,2,39,251,2,22,255,2,9,13,4,2,252,2,253,2,39,119,2,39,255,2,44,0,3,9,57,0,39,131,2,3,44,1,3,9,69,0,39,131,2,3,43,2,3,5,39,243,2,39,247,2,39,251,2,39,255,2,22,3,3,9,13,4,2,0,3,1,3,39,119,2,39,3,3,44,4,3,9,57,0,39,136,2,3,44,5,3,9,69,0,39,136,2,3,43,6,3,6,39,243,2,39,247,2,39,251,2,39,255,2,39,3,3,22,7,3,9,13,4,2,4,3,5,3,39,119,2,39,7,3,44,8,3,9,57,0,39,119,2,3,44,9,3,9,69,0,39,119,2,3,43,10,3,7,39,243,2,39,247,2,39,251,2,39,255,2,39,3,3,39,7,3,22,11,3,9,13,4,2,8,3,9,3,39,119,2,39,11,3,44,12,3,9,57,0,39,119,2,3,22,13,3,9,22,4,1,12,3,41,14,3,26,4,44,15,3,9,57,0,39,119,2,3,22,16,3,9,31,4,1,15,3,39,14,3,44,17,3,9,57,0,39,119,2,3,22,18,3,9,35,4,1,17,3,39,119,2,44,19,3,9,93,1,39,117,0,3,22,20,3,9,39,4,1,19,3,39,117,0,44,21,3,9,93,1,39,90,1,3,43,22,3,2,39,20,3,22,23,3,9,39,4,1,21,3,39,117,0,39,23,3,44,24,3,9,93,1,39,117,0,3,22,25,3,9,48,4,1,24,3,39,117,0,44,26,3,9,93,1,39,90,1,3,43,27,3,2,39,25,3,22,28,3,9,48,4,1,26,3,39,117,0,39,28,3,44,29,3,9,93,1,39,117,0,3,22,30,3,9,56,4,1,29,3,39,117,0,44,31,3,9,93,1,39,90,1,3,43,32,3,2,39,30,3,22,33,3,9,56,4,1,31,3,39,117,0,39,33,3,44,34,3,9,64,4,41,35,3,72,4,3,44,36,3,9,82,4,41,37,3,82,4,3,22,38,3,9,90,4,2,34,3,36,3,41,39,3,104,4,44,40,3,9,82,4,41,41,3,114,4,3,22,42,3,9,130,4,1,40,3,41,43,3,142,4,44,44,3,9,82,4,41,45,3,147,4,3,44,46,3,9,159,4,39,160,0,3,22,47,3,9,161,4,2,44,3,46,3,39,248,1,44,48,3,9,82,4,39,45,3,3,44,49,3,9,159,4,39,160,0,3,44,50,3,9,168,4,39,160,0,3,43,51,3,2,39,47,3,22,52,3,9,161,4,3,48,3,49,3,50,3,39,248,1,39,52,3,44,53,3,9,82,4,41,54,3,173,4,3,44,55,3,9,159,4,39,108,1,3,43,56,3,3,39,47,3,39,52,3,22,57,3,9,161,4,2,53,3,55,3,39,248,1,39,57,3,44,58,3,9,82,4,41,59,3,185,4,3,44,60,3,9,159,4,39,108,1,3,43,61,3,4,39,47,3,39,52,3,39,57,3,22,62,3,9,161,4,2,58,3,60,3,41,63,3,196,4,39,62,3,44,64,3,9,82,4,41,65,3,201,4,3,44,66,3,9,159,4,39,108,1,3,44,67,3,9,168,4,39,160,0,3,43,68,3,5,39,47,3,39,52,3,39,57,3,39,62,3,22,69,3,9,161,4,3,64,3,66,3,67,3,39,248,1,39,69,3,44,70,3,9,82,4,39,65,3,3,44,71,3,9,159,4,39,108,1,3,43,72,3,6,39,47,3,39,52,3,39,57,3,39,62,3,39,69,3,22,73,3,9,161,4,2,70,3,71,3,39,248,1,39,73,3,44,74,3,9,82,4,39,41,3,3,44,75,3,9,159,4,39,108,1,3,43,76,3,7,39,47,3,39,52,3,39,57,3,39,62,3,39,69,3,39,73,3,22,77,3,9,161,4,2,74,3,75,3,39,248,1,39,77,3,44,78,3,9,82,4,39,41,3,3,44,79,3,9,159,4,39,150,1,3,43,80,3,8,39,47,3,39,52,3,39,57,3,39,62,3,39,69,3,39,73,3,39,77,3,22,81,3,9,161,4,2,78,3,79,3,39,248,1,39,81,3,44,82,3,9,220,4,41,83,3,228,4,3,22,84,3,9,241,4,1,82,3,39,114,1,44,85,3,9,220,4,41,86,3,253,4,3,44,87,3,9,161,4,39,203,0,3,43,88,3,2,39,84,3,22,89,3,9,241,4,2,85,3,87,3,39,114,1,39,89,3,44,90,3,9,82,4,39,45,3,3,44,91,3,9,159,4,39,108,1,3,43,92,3,9,39,47,3,39,52,3,39,57,3,39,62,3,39,69,3,39,73,3,39,77,3,39,81,3,22,93,3,9,161,4,2,90,3,91,3,39,248,1,39,93,3,44,94,3,9,82,4,39,45,3,3,44,95,3,9,159,4,39,108,1,3,44,96,3,9,168,4,39,160,0,3,43,97,3,10,39,47,3,39,52,3,39,57,3,39,62,3,39,69,3,39,73,3,39,77,3,39,81,3,39,93,3,22,98,3,9,161,4,3,94,3,95,3,96,3,39,248,1,39,98,3,44,99,3,9,82,4,39,54,3,3,44,100,3,9,159,4,39,150,1,3,43,101,3,11,39,47,3,39,52,3,39,57,3,39,62,3,39,69,3,39,73,3,39,77,3,39,81,3,39,93,3,39,98,3,22,102,3,9,161,4,2,99,3,100,3,39,248,1,39,102,3,44,103,3,9,82,4,39,54,3,3,44,104,3,9,159,4,39,150,1,3,44,105,3,9,168,4,39,160,0,3,43,106,3,12,39,47,3,39,52,3,39,57,3,39,62,3,39,69,3,39,73,3,39,77,3,39,81,3,39,93,3,39,98,3,39,102,3,22,107,3,9,161,4,3,103,3,104,3,105,3,39,248,1,39,107,3,44,108,3,9,12,5,41,109,3,18,5,3,44,110,3,9,159,4,39,43,3,3,22,111,3,9,26,5,2,108,3,110,3,39,114,1,44,112,3,9,12,5,41,113,3,36,5,3,44,114,3,9,159,4,39,43,3,3,43,115,3,2,39,111,3,22,116,3,9,26,5,2,112,3,114,3,39,63,3,39,116,3,44,117,3,9,250,1,39,3,0,3,22,118,3,9,45,5,1,117,3,39,3,0,44,119,3,9,250,1,39,3,0,3,22,120,3,9,50,5,1,119,3,39,3,0,44,121,3,9,250,1,39,47,0,3,43,122,3,2,39,118,3,22,123,3,9,45,5,1,121,3,39,47,0,39,123,3,44,124,3,9,250,1,39,47,0,3,43,125,3,2,39,120,3,22,126,3,9,50,5,1,124,3,39,47,0,39,126,3,44,127,3,9,250,1,39,3,0,3,22,128,3,9,55,5,1,127,3,39,3,0,44,129,3,9,250,1,39,47,0,3,43,130,3,2,39,128,3,22,131,3,9,55,5,1,129,3,39,47,0,39,131,3,44,132,3,9,62,5,39,160,0,3,44,133,3,9,161,4,39,203,0,3,22,134,3,9,74,5,2,132,3,133,3,39,160,0,44,135,3,9,62,5,39,108,1,3,44,136,3,9,161,4,39,203,0,3,43,137,3,2,39,134,3,22,138,3,9,74,5,2,135,3,136,3,39,108,1,39,138,3,44,139,3,9,62,5,39,150,1,3,44,140,3,9,161,4,39,203,0,3,43,141,3,3,39,134,3,39,138,3,22,142,3,9,74,5,2,139,3,140,3,39,150,1,39,142,3,44,143,3,9,62,5,39,114,1,3,44,144,3,9,161,4,39,203,0,3,43,145,3,4,39,134,3,39,138,3,39,142,3,22,146,3,9,74,5,2,143,3,144,3,39,114,1,39,146,3,44,147,3,9,62,5,39,160,0,3,44,148,3,9,94,5,39,108,1,3,22,149,3,9,101,5,2,147,3,148,3,39,160,0,44,150,3,9,62,5,39,108,1,3,44,151,3,9,94,5,39,108,1,3,43,152,3,2,39,149,3,22,153,3,9,101,5,2,150,3,151,3,39,108,1,39,153,3,44,154,3,9,62,5,39,150,1,3,44,155,3,9,94,5,39,108,1,3,43,156,3,3,39,149,3,39,153,3,22,157,3,9,101,5,2,154,3,155,3,39,150,1,39,157,3,44,158,3,9,62,5,39,114,1,3,44,159,3,9,94,5,39,108,1,3,43,160,3,4,39,149,3,39,153,3,39,157,3,22,161,3,9,101,5,2,158,3,159,3,39,114,1,39,161,3,44,162,3,9,121,5,39,248,1,3,44,163,3,9,125,5,39,248,1,3,22,164,3,29,8,0,16,0,0,129,5,2,162,3,163,3,39,248,1,44,165,3,9,121,5,39,248,1,3,44,166,3,9,125,5,39,248,1,3,22,167,3,29,8,0,16,0,0,141,5,2,165,3,166,3,39,248,1,44,168,3,9,121,5,39,248,1,3,44,169,3,9,125,5,39,248,1,3,22,170,3,29,8,0,16,0,0,151,5,2,168,3,169,3,39,248,1,44,171,3,9,121,5,39,248,1,3,44,172,3,9,125,5,39,248,1,3,22,173,3,29,8,0,16,0,0,161,5,2,171,3,172,3,39,248,1,44,174,3,9,121,5,39,248,1,3,44,175,3,9,125,5,39,248,1,3,22,176,3,29,8,0,16,0,0,176,5,2,174,3,175,3,39,248,1,44,177,3,9,121,5,39,248,1,3,44,178,3,9,125,5,39,248,1,3,22,179,3,29,8,0,16,0,0,191,5,2,177,3,178,3,39,248,1,44,180,3,9,121,5,39,248,1,3,44,181,3,9,125,5,39,248,1,3,22,182,3,29,8,0,16,0,0,204,5,2,180,3,181,3,39,248,1,44,183,3,9,121,5,39,248,1,3,44,184,3,9,125,5,39,248,1,3,22,185,3,29,8,0,16,0,0,217,5,2,183,3,184,3,39,248,1,44,186,3,9,121,5,39,248,1,3,44,187,3,9,125,5,39,248,1,3,22,188,3,29,8,0,16,0,0,231,5,2,186,3,187,3,39,248,1,44,189,3,9,121,5,39,248,1,3,44,190,3,9,125,5,39,248,1,3,22,191,3,29,8,0,16,0,0,245,5,2,189,3,190,3,39,248,1,44,192,3,9,121,5,39,248,1,3,44,193,3,9,125,5,39,248,1,3,22,194,3,29,8,0,16,0,0,4,6,2,192,3,193,3,39,248,1,44,195,3,9,121,5,39,248,1,3,44,196,3,9,125,5,39,248,1,3,22,197,3,29,8,0,16,0,0,19,6,2,195,3,196,3,39,248,1,44,198,3,9,121,5,39,248,1,3,44,199,3,9,125,5,39,248,1,3,22,200,3,29,8,0,16,0,0,29,6,2,198,3,199,3,39,248,1,44,201,3,9,121,5,39,248,1,3,44,202,3,9,125,5,39,248,1,3,22,203,3,29,8,0,16,0,0,40,6,2,201,3,202,3,39,248,1,44,204,3,9,121,5,39,248,1,3,44,205,3,9,125,5,39,248,1,3,22,206,3,29,8,0,16,0,0,55,6,2,204,3,205,3,39,248,1,44,207,3,9,68,6,39,168,0,3,44,208,3,9,71,6,39,168,0,3,44,209,3,9,74,6,39,168,0,3,44,210,3,9,77,6,39,168,0,3,22,211,3,29,8,0,16,0,0,80,6,4,207,3,208,3,209,3,210,3,39,168,0,44,212,3,9,121,5,39,248,1,3,44,213,3,9,125,5,39,248,1,3,22,214,3,29,8,0,16,0,0,105,6,2,212,3,213,3,39,248,1,44,215,3,9,121,5,39,248,1,3,44,216,3,9,125,5,39,248,1,3,22,217,3,29,8,0,16,0,0,119,6,2,215,3,216,3,39,248,1,44,218,3,9,121,5,39,248,1,3,44,219,3,9,125,5,39,248,1,3,22,220,3,29,8,0,16,0,0,132,6,2,218,3,219,3,39,248,1,44,221,3,9,146,6,39,168,0,3,44,222,3,9,148,6,39,168,0,3,22,223,3,29,8,0,16,0,0,150,6,2,221,3,222,3,39,168,0,44,224,3,9,68,6,39,168,0,3,44,225,3,9,71,6,39,168,0,3,44,226,3,9,74,6,39,168,0,3,44,227,3,9,77,6,39,168,0,3,22,228,3,29,8,0,16,0,0,166,6,4,224,3,225,3,226,3,227,3,39,168,0,44,229,3,9,121,5,39,248,1,3,44,230,3,9,125,5,39,248,1,3,22,231,3,29,8,0,16,0,0,189,6,2,229,3,230,3,39,248,1,44,232,3,9,68,6,39,168,0,3,44,233,3,9,71,6,39,168,0,3,44,234,3,9,74,6,39,168,0,3,44,235,3,9,77,6,39,168,0,3,22,236,3,29,8,0,16,0,0,207,6,4,232,3,233,3,234,3,235,3,39,168,0,44,237,3,9,121,5,39,248,1,3,44,238,3,9,125,5,39,248,1,3,22,239,3,29,8,0,16,0,0,229,6,2,237,3,238,3,39,248,1,44,240,3,9,121,5,39,248,1,3,44,241,3,9,125,5,39,248,1,3,22,242,3,29,8,0,16,0,0,246,6,2,240,3,241,3,39,248,1,44,243,3,9,68,6,39,168,0,3,44,244,3,9,71,6,39,168,0,3,44,245,3,9,74,6,39,168,0,3,44,246,3,9,77,6,39,168,0,3,22,247,3,29,8,0,16,0,0,7,7,4,243,3,244,3,245,3,246,3,39,168,0,44,248,3,9,121,5,39,248,1,3,44,249,3,9,125,5,39,248,1,3,22,250,3,29,8,0,16,0,0,29,7,2,248,3,249,3,39,248,1,44,251,3,9,121,5,39,248,1,3,44,252,3,9,125,5,39,248,1,3,22,253,3,29,8,0,16,0,0,46,7,2,251,3,252,3,39,248,1,44,254,3,9,121,5,39,248,1,3,44,255,3,9,125,5,39,248,1,3,22,0,4,29,8,0,16,0,0,63,7,2,254,3,255,3,39,248,1,44,1,4,9,121,5,39,248,1,3,44,2,4,9,125,5,39,248,1,3,22,3,4,29,8,0,16,0,0,79,7,2,1,4,2,4,39,248,1,44,4,4,9,94,7,39,154,1,3,22,5,4,29,8,0,16,0,0,100,7,1,4,4,39,168,0,44,6,4,9,123,7,39,154,1,3,44,7,4,9,135,7,39,168,0,3,44,8,4,9,141,7,39,154,1,3,22,9,4,29,8,0,16,0,0,150,7,3,6,4,7,4,8,4,39,154,1,44,10,4,9,94,7,39,154,1,3,22,11,4,29,8,0,16,0,0,177,7,1,10,4,39,168,0,44,12,4,9,201,7,39,154,1,3,44,13,4,9,211,7,39,168,0,3,22,14,4,29,8,0,16,0,0,215,7,2,12,4,13,4,39,154,1,44,15,4,9,250,7,39,154,1,3,44,16,4,9,6,8,39,154,1,3,22,17,4,29,8,0,16,0,0,15,8,2,15,4,16,4,39,154,1,44,18,4,9,121,5,39,248,1,3,44,19,4,9,125,5,39,248,1,3,22,20,4,29,8,0,16,0,0,43,8,2,18,4,19,4,39,248,1,44,21,4,9,121,5,39,248,1,3,44,22,4,9,125,5,39,248,1,3,22,23,4,29,8,0,16,0,0,53,8,2,21,4,22,4,39,248,1,44,24,4,9,121,5,39,248,1,3,44,25,4,9,125,5,39,248,1,3,22,26,4,29,8,0,16,0,0,70,8,2,24,4,25,4,39,248,1,44,27,4,9,121,5,39,248,1,3,44,28,4,9,125,5,39,248,1,3,22,29,4,29,8,0,16,0,0,82,8,2,27,4,28,4,39,248,1,44,30,4,9,99,8,39,1,0,3,44,31,4,9,121,5,39,248,1,3,44,32,4,9,125,5,39,248,1,3,22,33,4,29,8,0,16,0,0,104,8,3,30,4,31,4,32,4,39,248,1,44,34,4,9,94,7,39,248,1,3,22,35,4,29,8,0,16,0,0,110,8,1,34,4,39,248,1,44,36,4,9,94,7,39,114,1,3,22,37,4,29,8,0,16,0,0,119,8,1,36,4,39,114,1,44,38,4,9,250,1,39,150,1,3,22,39,4,29,8,0,16,0,0,134,8,1,38,4,39,108,1,135,0,2,0,0,0,100,7,204,3,177,7,210,3,80,6,154,3,150,7,208,3,15,8,216,3,215,7,213,3,207,6,179,3,166,6,171,3,150,6,166,3,7,7,190,3,167,0,114,0,64,0,60,0,106,0,82,0,31,4,229,2,22,4,227,2,59,0,57,0,100,0,79,0,71,0,67,0,112,0,85,0,39,4,235,2,104,8,232,3,129,5,107,3,70,8,225,3,229,6,182,3,189,6,174,3,119,6,160,3,46,7,196,3,151,5,113,3,4,6,137,3,204,5,125,3,231,5,131,3,176,5,119,3,63,7,199,3,246,6,185,3,43,8,219,3,132,6,163,3,82,8,228,3,40,6,146,3,79,7,202,3,105,6,157,3,29,6,143,3,53,8,222,3,55,6,149,3,29,7,193,3,141,5,110,3,245,5,134,3,191,5,122,3,217,5,128,3,161,5,116,3,19,6,140,3,214,0,147,0,17,1,249,0,49,0,51,0,90,0,73,0,119,2,142,1,45,5,65,3,50,5,68,3,149,3,61,2,99,2,128,1,108,2,135,1,7,4,197,2,122,0,92,0,130,0,98,0,161,2,157,1,48,4,240,2,56,4,245,2,99,1,78,1,186,0,127,0,159,1,90,1,219,0,152,0,163,1,94,1,141,2,149,1,55,5,73,3,234,3,147,2,246,3,170,2,26,5,58,3,114,1,80,1,101,5,103,3,74,5,88,3,161,3,78,2,155,0,107,0,87,1,76,1,81,1,74,1,169,1,97,1,86,2,121,1,174,3,101,2,220,3,124,2,126,0,95,0,135,0,101,0,90,4,249,2,198,2,177,1,255,0,220,0,247,0,197,0,34,1,37,1,231,0,167,0,242,0,174,0,131,2,147,1,35,4,231,2,13,4,224,2,215,2,247,1,58,2,115,1,203,1,101,1,237,1,105,1,184,1,99,1,224,1,103,1,118,0,89,0,134,8,238,3,31,0,45,0,173,2,164,1,185,2,173,1,198,0,137,0,204,0,142,0,161,4,51,3,23,1,254,0,181,0,122,0,45,0,48,0,85,0,70,0,70,1,71,1,140,0,104,0,53,1,52,1,241,4,33,3,53,0,54,0,95,0,76,0,130,4,251,2,122,3,44,2,192,0,132,0,139,1,82,1,71,2,117,1,12,2,109,1,43,2,113,1,252,1,107,1,28,2,111,1,110,8,234,3,119,8,236,3,12,44,21,164,3,2,40,0,0,0,0,1,34,6,39,248,1,1,18,0,0,0,0,1,0,21,167,3,2,40,0,0,0,0,1,34,47,165,3,0,1,0,21,170,3,2,40,0,0,0,0,1,34,47,169,3,0,1,0,21,173,3,2,40,0,0,0,0,1,34,1,47,171,3,0,56,1,1,18,0,0,128,63,57,38,47,171,3,0,1,3,39,168,0,58,47,172,3,0,39,248,1,39,248,1,1,0,21,176,3,2,40,0,0,0,0,1,34,1,1,1,18,0,0,128,63,57,38,47,175,3,0,1,3,39,168,0,58,47,174,3,0,39,248,1,56,47,175,3,0,39,248,1,1,0,21,179,3,2,40,0,0,0,0,2,23,1,35,139,8,3,0,2,40,0,0,0,0,1,23,0,1,47,177,3,0,75,6,39,248,1,1,18,0,0,0,0,39,14,3,2,40,0,0,0,0,1,34,6,39,248,1,1,18,0,0,0,0,1,48,1,48,34,1,47,177,3,0,58,38,47,178,3,0,1,3,39,248,1,1,0,21,182,3,2,40,0,0,0,0,1,34,20,39,248,1,179,3,2,47,181,3,0,47,180,3,0,1,1,179,3,21,185,3,2,40,0,0,0,0,1,34,1,1,18,0,0,128,63,57,38,47,184,3,0,1,3,39,168,0,58,47,183,3,0,39,248,1,1,0,21,188,3,2,40,0,0,0,0,1,34,1,1,18,0,0,128,63,57,38,47,186,3,0,1,3,39,168,0,58,47,187,3,0,39,248,1,1,0,21,191,3,2,40,0,0,0,0,1,34,1,1,38,47,190,3,0,1,3,58,47,189,3,0,39,248,1,56,1,1,18,0,0,128,63,57,38,47,189,3,0,1,3,39,168,0,58,47,190,3,0,39,248,1,39,248,1,1,0,21,194,3,2,40,0,0,0,0,1,34,1,1,1,18,0,0,128,63,57,38,47,193,3,0,1,3,39,168,0,58,47,192,3,0,39,248,1,56,1,38,47,192,3,0,1,3,58,47,193,3,0,39,248,1,39,248,1,1,0,21,197,3,2,40,0,0,0,0,1,34,1,1,1,18,0,0,128,63,57,38,47,196,3,0,1,3,39,168,0,58,47,195,3,0,39,248,1,56,1,1,18,0,0,128,63,57,38,47,195,3,0,1,3,39,168,0,58,47,196,3,0,39,248,1,39,248,1,1,0,21,200,3,2,40,0,0,0,0,1,34,20,39,248,1,196,0,2,1,47,198,3,0,56,47,199,3,0,39,248,1,18,0,0,128,63,1,0,21,203,3,2,40,0,0,0,0,1,34,1,47,201,3,0,58,47,202,3,0,39,248,1,1,0,21,206,3,2,40,0,0,0,0,1,34,1,47,204,3,0,56,1,1,18,0,0,128,63,57,47,204,3,0,39,248,1,58,47,205,3,0,39,248,1,39,248,1,1,0,21,211,3,2,40,0,0,0,0,2,23,0,1,1,18,0,0,0,64,58,47,209,3,0,39,168,0,80,47,210,3,0,39,14,3,2,40,0,0,0,0,1,34,1,1,18,0,0,0,64,58,47,207,3,0,39,168,0,58,47,209,3,0,39,168,0,1,48,34,1,1,47,208,3,0,58,47,210,3,0,39,168,0,57,1,1,18,0,0,0,64,58,1,47,210,3,0,57,47,209,3,0,39,168,0,39,168,0,58,1,47,208,3,0,57,47,207,3,0,39,168,0,39,168,0,39,168,0,1,0,21,214,3,2,40,1,0,44,40,4,9,185,8,39,248,1,2,1,0,185,8,0,0,3,46,39,248,1,1,45,40,4,0,6,39,248,1,4,20,39,168,0,211,3,4,38,47,212,3,0,1,0,38,47,212,3,0,1,3,38,47,213,3,0,1,0,38,47,213,3,0,1,3,20,39,168,0,211,3,4,38,47,212,3,0,1,1,38,47,212,3,0,1,3,38,47,213,3,0,1,1,38,47,213,3,0,1,3,20,39,168,0,211,3,4,38,47,212,3,0,1,2,38,47,212,3,0,1,3,38,47,213,3,0,1,2,38,47,213,3,0,1,3,1,38,47,212,3,0,1,3,56,1,1,18,0,0,128,63,57,38,47,212,3,0,1,3,39,168,0,58,38,47,213,3,0,1,3,39,168,0,39,168,0,15,1,38,47,40,4,2,3,0,1,2,81,1,1,38,47,213,3,0,3,0,1,2,58,1,18,0,0,128,63,57,38,47,212,3,0,1,3,39,168,0,39,154,1,56,1,38,47,212,3,0,3,0,1,2,58,1,18,0,0,128,63,57,38,47,213,3,0,1,3,39,168,0,39,154,1,39,154,1,39,154,1,34,47,40,4,0,1,1,211,3,21,217,3,2,40,1,0,44,41,4,9,185,8,39,248,1,2,1,0,185,8,0,0,3,46,39,248,1,1,45,41,4,0,20,39,248,1,173,3,2,47,215,3,0,47,216,3,0,15,1,38,47,41,4,1,3,0,1,2,74,20,39,154,1,192,0,2,38,47,41,4,0,3,0,1,2,1,1,1,18,0,0,128,63,57,38,47,216,3,0,1,3,39,168,0,58,38,47,215,3,0,3,0,1,2,39,154,1,56,38,47,216,3,0,3,0,1,2,39,154,1,39,154,1,34,47,41,4,0,1,1,173,3,21,220,3,2,40,1,0,44,42,4,9,185,8,39,248,1,2,1,0,185,8,0,0,3,46,39,248,1,1,45,42,4,0,20,39,248,1,173,3,2,47,218,3,0,47,219,3,0,15,1,38,47,42,4,1,3,0,1,2,74,20,39,154,1,216,0,2,38,47,42,4,0,3,0,1,2,1,1,1,18,0,0,128,63,57,38,47,219,3,0,1,3,39,168,0,58,38,47,218,3,0,3,0,1,2,39,154,1,56,38,47,219,3,0,3,0,1,2,39,154,1,39,154,1,34,47,42,4,0,1,1,173,3,21,223,3,2,40,0,0,0,0,1,23,1,35,192,8,3,0,2,40,0,0,0,0,1,34,1,47,221,3,0,59,1,47,222,3,0,56,18,119,204,43,50,39,168,0,39,168,0,1,2,40,0,0,0,0,1,34,1,47,221,3,0,59,47,222,3,0,39,168,0,1,1,0,21,228,3,2,40,0,0,0,0,1,23,0,1,47,226,3,0,75,18,0,0,0,0,39,14,3,2,40,0,0,0,0,1,34,1,47,224,3,0,58,1,18,0,0,128,63,57,47,227,3,0,39,168,0,39,168,0,1,2,40,1,0,44,43,4,9,148,6,39,168,0,2,1,0,148,6,0,0,4,46,39,168,0,1,45,43,4,0,1,47,225,3,0,57,47,224,3,0,39,168,0,23,0,1,47,43,4,0,75,18,0,0,0,0,39,14,3,2,40,0,0,0,0,1,34,1,1,1,47,225,3,0,58,47,227,3,0,39,168,0,56,1,47,224,3,0,58,1,18,0,0,128,63,57,47,227,3,0,39,168,0,39,168,0,39,168,0,56,1,47,226,3,0,58,1,18,0,0,128,63,57,47,225,3,0,39,168,0,39,168,0,39,168,0,1,48,15,1,47,43,4,1,74,20,39,168,0,192,0,2,47,227,3,0,20,39,168,0,223,3,2,1,47,226,3,0,58,47,225,3,0,39,168,0,47,43,4,0,39,168,0,34,1,1,1,47,43,4,0,58,47,225,3,0,39,168,0,56,1,47,224,3,0,58,1,18,0,0,128,63,57,47,227,3,0,39,168,0,39,168,0,39,168,0,56,1,47,226,3,0,58,1,18,0,0,128,63,57,47,225,3,0,39,168,0,39,168,0,39,168,0,1,1,1,223,3,21,231,3,2,40,0,0,0,0,1,34,6,39,248,1,4,20,39,168,0,228,3,4,38,47,229,3,0,1,0,38,47,229,3,0,1,3,38,47,230,3,0,1,0,38,47,230,3,0,1,3,20,39,168,0,228,3,4,38,47,229,3,0,1,1,38,47,229,3,0,1,3,38,47,230,3,0,1,1,38,47,230,3,0,1,3,20,39,168,0,228,3,4,38,47,229,3,0,1,2,38,47,229,3,0,1,3,38,47,230,3,0,1,2,38,47,230,3,0,1,3,1,38,47,229,3,0,1,3,56,1,1,18,0,0,128,63,57,38,47,229,3,0,1,3,39,168,0,58,38,47,230,3,0,1,3,39,168,0,39,168,0,1,1,228,3,21,236,3,2,40,1,0,44,44,4,9,148,6,39,168,0,2,1,0,148,6,0,0,3,23,0,1,47,235,3,0,75,47,234,3,0,39,14,3,2,40,0,0,0,0,1,34,1,1,1,47,233,3,0,58,47,235,3,0,39,168,0,56,1,47,232,3,0,58,1,18,0,0,128,63,57,47,235,3,0,39,168,0,39,168,0,39,168,0,56,1,47,234,3,0,58,1,18,0,0,128,63,57,47,233,3,0,39,168,0,39,168,0,39,168,0,1,23,0,1,47,232,3,0,75,18,0,0,0,0,39,14,3,2,40,0,0,0,0,1,34,1,47,234,3,0,58,1,18,0,0,128,63,57,47,233,3,0,39,168,0,39,168,0,1,48,46,39,168,0,1,45,44,4,0,20,39,168,0,216,0,2,18,0,0,0,0,1,47,235,3,0,57,20,39,168,0,223,3,2,1,1,47,235,3,0,57,47,234,3,0,39,168,0,58,47,233,3,0,39,168,0,47,232,3,0,39,168,0,34,1,1,1,47,44,4,0,58,47,233,3,0,39,168,0,56,1,47,232,3,0,58,1,18,0,0,128,63,57,47,235,3,0,39,168,0,39,168,0,39,168,0,56,1,47,234,3,0,58,1,18,0,0,128,63,57,47,233,3,0,39,168,0,39,168,0,39,168,0,1,1,223,3,21,239,3,2,40,0,0,0,0,1,34,6,39,248,1,4,20,39,168,0,236,3,4,38,47,237,3,0,1,0,38,47,237,3,0,1,3,38,47,238,3,0,1,0,38,47,238,3,0,1,3,20,39,168,0,236,3,4,38,47,237,3,0,1,1,38,47,237,3,0,1,3,38,47,238,3,0,1,1,38,47,238,3,0,1,3,20,39,168,0,236,3,4,38,47,237,3,0,1,2,38,47,237,3,0,1,3,38,47,238,3,0,1,2,38,47,238,3,0,1,3,1,38,47,237,3,0,1,3,56,1,1,18,0,0,128,63,57,38,47,237,3,0,1,3,39,168,0,58,38,47,238,3,0,1,3,39,168,0,39,168,0,1,1,236,3,21,242,3,2,40,0,0,0,0,1,34,20,39,248,1,214,3,2,47,241,3,0,47,240,3,0,1,1,214,3,21,247,3,2,40,0,0,0,0,2,23,0,1,1,18,0,0,0,64,58,47,243,3,0,39,168,0,80,47,244,3,0,39,14,3,2,40,0,0,0,0,1,34,1,1,20,39,168,0,223,3,2,1,1,47,245,3,0,58,47,245,3,0,39,168,0,58,1,47,244,3,0,57,1,18,0,0,0,64,58,47,243,3,0,39,168,0,39,168,0,39,168,0,47,246,3,0,56,1,1,18,0,0,128,63,57,47,246,3,0,39,168,0,58,47,243,3,0,39,168,0,39,168,0,56,1,47,245,3,0,58,1,1,33,57,47,244,3,0,56,1,18,0,0,0,64,58,47,243,3,0,39,168,0,39,168,0,56,18,0,0,128,63,39,168,0,39,168,0,39,168,0,1,23,0,1,1,18,0,0,128,64,58,47,245,3,0,39,168,0,80,47,246,3,0,39,14,3,2,40,4,0,44,45,4,9,244,8,39,168,0,2,44,46,4,9,249,8,39,168,0,2,44,47,4,9,254,8,39,168,0,2,44,48,4,9,4,9,39,168,0,2,4,0,249,8,1,0,244,8,0,0,4,9,3,0,254,8,2,0,5,46,39,168,0,1,45,45,4,0,1,47,245,3,0,58,47,245,3,0,39,168,0,46,39,168,0,1,45,46,4,0,1,47,45,4,0,58,47,245,3,0,39,168,0,46,39,168,0,1,45,47,4,0,1,47,246,3,0,58,47,246,3,0,39,168,0,46,39,168,0,1,45,48,4,0,1,47,47,4,0,58,47,246,3,0,39,168,0,34,20,39,168,0,223,3,2,1,1,1,1,47,47,4,0,58,1,47,243,3,0,57,1,47,245,3,0,58,1,1,1,18,0,0,64,64,58,47,244,3,0,39,168,0,57,1,18,0,0,192,64,58,47,243,3,0,39,168,0,39,168,0,57,18,0,0,128,63,39,168,0,39,168,0,39,168,0,39,168,0,56,1,1,1,18,0,0,64,65,58,47,246,3,0,39,168,0,58,47,45,4,0,39,168,0,58,1,47,244,3,0,57,1,18,0,0,0,64,58,47,243,3,0,39,168,0,39,168,0,39,168,0,39,168,0,57,1,1,18,0,0,128,65,58,47,46,4,0,39,168,0,58,1,47,244,3,0,57,1,18,0,0,0,64,58,47,243,3,0,39,168,0,39,168,0,39,168,0,39,168,0,57,1,47,48,4,0,58,47,243,3,0,39,168,0,39,168,0,47,47,4,0,1,48,34,1,1,1,1,47,245,3,0,58,1,1,47,244,3,0,57,1,18,0,0,0,64,58,47,243,3,0,39,168,0,39,168,0,56,18,0,0,128,63,39,168,0,39,168,0,56,47,243,3,0,39,168,0,57,1,20,39,168,0,108,0,1,1,47,246,3,0,58,47,245,3,0,39,168,0,58,1,47,244,3,0,57,1,18,0,0,0,64,58,47,243,3,0,39,168,0,39,168,0,39,168,0,39,168,0,57,1,47,246,3,0,58,47,243,3,0,39,168,0,39,168,0,1,1,223,3,21,250,3,2,40,0,0,0,0,2,23,0,1,38,47,249,3,0,1,3,75,18,0,0,0,0,39,14,3,2,40,0,0,0,0,1,34,47,248,3,0,1,48,34,6,39,248,1,4,20,39,168,0,247,3,4,38,47,248,3,0,1,0,38,47,248,3,0,1,3,38,47,249,3,0,1,0,38,47,249,3,0,1,3,20,39,168,0,247,3,4,38,47,248,3,0,1,1,38,47,248,3,0,1,3,38,47,249,3,0,1,1,38,47,249,3,0,1,3,20,39,168,0,247,3,4,38,47,248,3,0,1,2,38,47,248,3,0,1,3,38,47,249,3,0,1,2,38,47,249,3,0,1,3,1,38,47,248,3,0,1,3,56,1,1,18,0,0,128,63,57,38,47,248,3,0,1,3,39,168,0,58,38,47,249,3,0,1,3,39,168,0,39,168,0,1,1,247,3,21,253,3,2,40,0,0,0,0,1,34,6,39,248,1,2,1,1,38,47,251,3,0,3,0,1,2,56,38,47,252,3,0,3,0,1,2,39,154,1,57,1,18,0,0,0,64,58,20,39,154,1,192,0,2,1,38,47,251,3,0,3,0,1,2,58,38,47,252,3,0,1,3,39,154,1,1,38,47,252,3,0,3,0,1,2,58,38,47,251,3,0,1,3,39,154,1,39,154,1,39,154,1,1,38,47,251,3,0,1,3,56,1,1,18,0,0,128,63,57,38,47,251,3,0,1,3,39,168,0,58,38,47,252,3,0,1,3,39,168,0,39,168,0,1,0,21,0,4,2,40,0,0,0,0,1,34,6,39,248,1,2,1,1,38,47,255,3,0,3,0,1,2,56,38,47,254,3,0,3,0,1,2,39,154,1,57,1,1,18,0,0,0,64,58,38,47,255,3,0,3,0,1,2,39,154,1,58,38,47,254,3,0,3,0,1,2,39,154,1,39,154,1,1,38,47,254,3,0,1,3,56,1,1,18,0,0,128,63,57,38,47,254,3,0,1,3,39,168,0,58,38,47,255,3,0,1,3,39,168,0,39,168,0,1,0,21,3,4,2,40,0,0,0,0,1,34,6,39,248,1,2,1,1,1,1,18,0,0,128,63,57,38,47,1,4,0,1,3,39,168,0,58,38,47,2,4,0,3,0,1,2,39,154,1,56,1,1,18,0,0,128,63,57,38,47,2,4,0,1,3,39,168,0,58,38,47,1,4,0,3,0,1,2,39,154,1,39,154,1,56,1,38,47,1,4,0,3,0,1,2,58,38,47,2,4,0,3,0,1,2,39,154,1,39,154,1,1,38,47,1,4,0,1,3,56,1,1,18,0,0,128,63,57,38,47,1,4,0,1,3,39,168,0,58,38,47,2,4,0,1,3,39,168,0,39,168,0,1,0,21,5,4,2,40,0,0,0,0,1,34,20,39,168,0,148,1,2,6,39,154,1,3,18,154,153,153,62,18,61,10,23,63,18,174,71,225,61,47,4,4,0,1,0,21,9,4,2,40,4,0,44,49,4,9,10,9,39,168,0,2,44,50,4,9,185,8,39,154,1,2,44,51,4,9,14,9,39,168,0,2,44,52,4,9,22,9,39,168,0,2,4,0,10,9,0,0,22,9,3,0,14,9,2,0,185,8,1,0,7,46,39,168,0,1,45,49,4,0,20,39,168,0,5,4,1,47,8,4,0,46,39,154,1,1,45,50,4,0,1,1,47,49,4,0,57,20,39,168,0,5,4,1,47,6,4,0,39,168,0,56,47,6,4,0,39,154,1,46,39,168,0,1,45,51,4,0,20,39,168,0,192,0,2,20,39,168,0,192,0,2,38,47,50,4,0,1,0,38,47,50,4,0,1,1,38,47,50,4,0,1,2,46,39,168,0,1,45,52,4,0,20,39,168,0,216,0,2,20,39,168,0,216,0,2,38,47,50,4,0,1,0,38,47,50,4,0,1,1,38,47,50,4,0,1,2,23,0,1,1,47,51,4,0,78,18,0,0,0,0,39,14,3,69,1,47,49,4,0,76,47,51,4,0,39,14,3,39,14,3,2,40,0,0,0,0,1,15,1,47,50,4,1,74,1,47,49,4,0,56,1,1,1,47,50,4,0,57,47,49,4,0,39,154,1,58,47,49,4,0,39,154,1,59,1,47,49,4,0,57,47,51,4,0,39,168,0,39,154,1,39,154,1,39,154,1,1,48,23,0,1,1,47,52,4,0,77,47,7,4,0,39,14,3,69,1,47,52,4,0,76,47,49,4,0,39,14,3,39,14,3,2,40,0,0,0,0,1,34,1,47,49,4,0,56,1,1,1,47,50,4,0,57,47,49,4,0,39,154,1,58,1,47,7,4,0,57,47,49,4,0,39,168,0,39,154,1,59,1,47,52,4,0,57,47,49,4,0,39,168,0,39,154,1,39,154,1,1,48,34,47,50,4,0,1,1,5,4,21,11,4,2,40,0,0,0,0,1,34,1,20,39,168,0,216,0,2,20,39,168,0,216,0,2,38,47,10,4,0,1,0,38,47,10,4,0,1,1,38,47,10,4,0,1,2,57,20,39,168,0,192,0,2,20,39,168,0,192,0,2,38,47,10,4,0,1,0,38,47,10,4,0,1,1,38,47,10,4,0,1,2,39,168,0,1,0,21,14,4,2,40,0,0,0,0,2,23,0,1,38,47,12,4,0,1,0,78,38,47,12,4,0,1,2,39,14,3,2,40,0,0,0,0,1,34,6,39,154,1,3,18,0,0,0,0,1,1,47,13,4,0,58,1,38,47,12,4,0,1,1,57,38,47,12,4,0,1,0,39,168,0,39,168,0,59,1,38,47,12,4,0,1,2,57,38,47,12,4,0,1,0,39,168,0,39,168,0,47,13,4,0,1,48,34,6,39,154,1,1,18,0,0,0,0,1,0,21,17,4,2,40,1,0,44,53,4,9,211,7,39,168,0,2,1,0,211,7,0,0,3,46,39,168,0,1,45,53,4,0,20,39,168,0,11,4,1,47,16,4,0,23,0,1,38,47,15,4,0,1,0,80,38,47,15,4,0,1,1,39,14,3,2,40,0,0,0,0,1,23,0,1,38,47,15,4,0,1,1,80,38,47,15,4,0,1,2,39,14,3,2,40,0,0,0,0,1,15,1,38,47,15,4,1,3,0,1,2,74,20,39,154,1,14,4,2,38,47,15,4,0,3,0,1,2,47,53,4,0,39,154,1,1,23,0,1,38,47,15,4,0,1,0,80,38,47,15,4,0,1,2,39,14,3,2,40,0,0,0,0,1,15,1,38,47,15,4,1,3,0,2,1,74,20,39,154,1,14,4,2,38,47,15,4,0,3,0,2,1,47,53,4,0,39,154,1,1,2,40,0,0,0,0,1,15,1,38,47,15,4,1,3,2,0,1,74,20,39,154,1,14,4,2,38,47,15,4,0,3,2,0,1,47,53,4,0,39,154,1,1,1,23,0,1,38,47,15,4,0,1,0,80,38,47,15,4,0,1,2,39,14,3,2,40,0,0,0,0,1,15,1,38,47,15,4,1,3,1,0,2,74,20,39,154,1,14,4,2,38,47,15,4,0,3,1,0,2,47,53,4,0,39,154,1,1,23,0,1,38,47,15,4,0,1,1,80,38,47,15,4,0,1,2,39,14,3,2,40,0,0,0,0,1,15,1,38,47,15,4,1,3,1,2,0,74,20,39,154,1,14,4,2,38,47,15,4,0,3,1,2,0,47,53,4,0,39,154,1,1,2,40,0,0,0,0,1,15,1,38,47,15,4,1,3,2,1,0,74,20,39,154,1,14,4,2,38,47,15,4,0,3,2,1,0,47,53,4,0,39,154,1,1,34,47,15,4,0,1,2,11,4,14,4,21,20,4,2,40,3,0,44,54,4,9,135,7,39,168,0,2,44,55,4,9,30,9,39,154,1,2,44,56,4,9,34,9,39,154,1,2,3,0,135,7,0,0,34,9,2,0,30,9,1,0,4,46,39,168,0,1,45,54,4,0,1,38,47,19,4,0,1,3,58,38,47,18,4,0,1,3,39,168,0,46,39,154,1,1,45,55,4,0,1,38,47,18,4,0,3,0,1,2,58,38,47,19,4,0,1,3,39,154,1,46,39,154,1,1,45,56,4,0,1,38,47,19,4,0,3,0,1,2,58,38,47,18,4,0,1,3,39,154,1,34,6,39,248,1,2,1,1,1,1,20,39,154,1,9,4,3,20,39,154,1,17,4,2,47,55,4,0,47,56,4,0,47,54,4,0,47,56,4,0,56,38,47,19,4,0,3,0,1,2,39,154,1,57,47,56,4,0,39,154,1,56,38,47,18,4,0,3,0,1,2,39,154,1,57,47,55,4,0,39,154,1,1,1,38,47,18,4,0,1,3,56,38,47,19,4,0,1,3,39,168,0,57,47,54,4,0,39,168,0,1,2,9,4,17,4,21,23,4,2,40,3,0,44,57,4,9,135,7,39,168,0,2,44,58,4,9,30,9,39,154,1,2,44,59,4,9,34,9,39,154,1,2,3,0,135,7,0,0,34,9,2,0,30,9,1,0,4,46,39,168,0,1,45,57,4,0,1,38,47,22,4,0,1,3,58,38,47,21,4,0,1,3,39,168,0,46,39,154,1,1,45,58,4,0,1,38,47,21,4,0,3,0,1,2,58,38,47,22,4,0,1,3,39,154,1,46,39,154,1,1,45,59,4,0,1,38,47,22,4,0,3,0,1,2,58,38,47,21,4,0,1,3,39,154,1,34,6,39,248,1,2,1,1,1,1,20,39,154,1,9,4,3,20,39,154,1,17,4,2,47,59,4,0,47,58,4,0,47,57,4,0,47,59,4,0,56,38,47,22,4,0,3,0,1,2,39,154,1,57,47,59,4,0,39,154,1,56,38,47,21,4,0,3,0,1,2,39,154,1,57,47,58,4,0,39,154,1,1,1,38,47,21,4,0,1,3,56,38,47,22,4,0,1,3,39,168,0,57,47,57,4,0,39,168,0,1,2,9,4,17,4,21,26,4,2,40,3,0,44,60,4,9,135,7,39,168,0,2,44,61,4,9,30,9,39,154,1,2,44,62,4,9,34,9,39,154,1,2,3,0,135,7,0,0,34,9,2,0,30,9,1,0,4,46,39,168,0,1,45,60,4,0,1,38,47,25,4,0,1,3,58,38,47,24,4,0,1,3,39,168,0,46,39,154,1,1,45,61,4,0,1,38,47,24,4,0,3,0,1,2,58,38,47,25,4,0,1,3,39,154,1,46,39,154,1,1,45,62,4,0,1,38,47,25,4,0,3,0,1,2,58,38,47,24,4,0,1,3,39,154,1,34,6,39,248,1,2,1,1,1,1,20,39,154,1,9,4,3,47,61,4,0,47,60,4,0,47,62,4,0,56,38,47,25,4,0,3,0,1,2,39,154,1,57,47,62,4,0,39,154,1,56,38,47,24,4,0,3,0,1,2,39,154,1,57,47,61,4,0,39,154,1,1,1,38,47,24,4,0,1,3,56,38,47,25,4,0,1,3,39,168,0,57,47,60,4,0,39,168,0,1,1,9,4,21,29,4,2,40,3,0,44,63,4,9,135,7,39,168,0,2,44,64,4,9,30,9,39,154,1,2,44,65,4,9,34,9,39,154,1,2,3,0,135,7,0,0,34,9,2,0,30,9,1,0,4,46,39,168,0,1,45,63,4,0,1,38,47,28,4,0,1,3,58,38,47,27,4,0,1,3,39,168,0,46,39,154,1,1,45,64,4,0,1,38,47,27,4,0,3,0,1,2,58,38,47,28,4,0,1,3,39,154,1,46,39,154,1,1,45,65,4,0,1,38,47,28,4,0,3,0,1,2,58,38,47,27,4,0,1,3,39,154,1,34,6,39,248,1,2,1,1,1,1,20,39,154,1,9,4,3,47,65,4,0,47,63,4,0,47,64,4,0,56,38,47,28,4,0,3,0,1,2,39,154,1,57,47,65,4,0,39,154,1,56,38,47,27,4,0,3,0,1,2,39,154,1,57,47,64,4,0,39,154,1,1,1,38,47,27,4,0,1,3,56,38,47,28,4,0,1,3,39,168,0,57,47,63,4,0,39,168,0,1,1,9,4,13,2,0,40,29,0,44,66,4,28,8,1,38,9,39,1,0,0,44,67,4,28,8,1,45,9,39,1,0,0,44,68,4,28,8,1,50,9,39,1,0,0,44,69,4,28,8,1,55,9,39,1,0,0,44,70,4,28,8,1,64,9,39,1,0,0,44,71,4,28,8,1,73,9,39,1,0,0,44,72,4,28,8,1,80,9,39,1,0,0,44,73,4,28,8,1,87,9,39,1,0,0,44,74,4,28,8,1,95,9,39,1,0,0,44,75,4,28,8,1,103,9,39,1,0,0,44,76,4,28,8,1,112,9,39,1,0,0,44,77,4,28,8,1,121,9,39,1,0,0,44,78,4,28,8,1,126,9,39,1,0,0,44,79,4,28,8,1,132,9,39,1,0,0,44,80,4,28,8,1,142,9,39,1,0,0,44,81,4,28,8,1,150,9,39,1,0,0,44,82,4,28,8,1,159,9,39,1,0,0,44,83,4,28,8,1,167,9,39,1,0,0,44,84,4,28,8,1,176,9,39,1,0,0,44,85,4,28,8,1,188,9,39,1,0,0,44,86,4,28,8,1,199,9,39,1,0,0,44,87,4,28,8,1,210,9,39,1,0,0,44,88,4,28,8,1,221,9,39,1,0,0,44,89,4,28,8,1,233,9,39,1,0,0,44,90,4,28,8,1,244,9,39,1,0,0,44,91,4,28,8,1,254,9,39,1,0,0,44,92,4,28,8,1,3,10,39,1,0,0,44,93,4,28,8,1,15,10,39,1,0,0,44,94,4,28,8,1,22,10,39,1,0,0,29,0,38,9,0,0,15,10,27,0,188,9,19,0,176,9,18,0,159,9,16,0,221,9,22,0,50,9,2,0,112,9,10,0,80,9,6,0,95,9,8,0,64,9,4,0,233,9,23,0,199,9,20,0,254,9,25,0,167,9,17,0,22,10,28,0,132,9,13,0,244,9,24,0,150,9,15,0,126,9,12,0,3,10,26,0,142,9,14,0,210,9,21,0,45,9,1,0,103,9,9,0,73,9,5,0,87,9,7,0,55,9,3,0,121,9,11,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,21,33,4,2,40,0,0,0,0,2,37,0,40,0,0,0,0,47,30,4,0,29,26,0,0,0,0,1,34,20,39,248,1,164,3,2,47,31,4,0,47,32,4,0,26,1,0,0,0,1,34,20,39,248,1,167,3,2,47,31,4,0,47,32,4,0,26,2,0,0,0,1,34,20,39,248,1,170,3,2,47,31,4,0,47,32,4,0,26,3,0,0,0,1,34,20,39,248,1,173,3,2,47,31,4,0,47,32,4,0,26,4,0,0,0,1,34,20,39,248,1,176,3,2,47,31,4,0,47,32,4,0,26,5,0,0,0,1,34,20,39,248,1,179,3,2,47,31,4,0,47,32,4,0,26,6,0,0,0,1,34,20,39,248,1,182,3,2,47,31,4,0,47,32,4,0,26,7,0,0,0,1,34,20,39,248,1,185,3,2,47,31,4,0,47,32,4,0,26,8,0,0,0,1,34,20,39,248,1,188,3,2,47,31,4,0,47,32,4,0,26,9,0,0,0,1,34,20,39,248,1,191,3,2,47,31,4,0,47,32,4,0,26,10,0,0,0,1,34,20,39,248,1,194,3,2,47,31,4,0,47,32,4,0,26,11,0,0,0,1,34,20,39,248,1,197,3,2,47,31,4,0,47,32,4,0,26,12,0,0,0,1,34,20,39,248,1,200,3,2,47,31,4,0,47,32,4,0,26,13,0,0,0,1,34,20,39,248,1,203,3,2,47,31,4,0,47,32,4,0,26,14,0,0,0,1,34,20,39,248,1,206,3,2,47,31,4,0,47,32,4,0,26,15,0,0,0,1,34,20,39,248,1,214,3,2,47,31,4,0,47,32,4,0,26,16,0,0,0,1,34,20,39,248,1,217,3,2,47,31,4,0,47,32,4,0,26,17,0,0,0,1,34,20,39,248,1,220,3,2,47,31,4,0,47,32,4,0,26,18,0,0,0,1,34,20,39,248,1,231,3,2,47,31,4,0,47,32,4,0,26,19,0,0,0,1,34,20,39,248,1,239,3,2,47,31,4,0,47,32,4,0,26,20,0,0,0,1,34,20,39,248,1,242,3,2,47,31,4,0,47,32,4,0,26,21,0,0,0,1,34,20,39,248,1,250,3,2,47,31,4,0,47,32,4,0,26,22,0,0,0,1,34,20,39,248,1,253,3,2,47,31,4,0,47,32,4,0,26,23,0,0,0,1,34,20,39,248,1,0,4,2,47,31,4,0,47,32,4,0,26,24,0,0,0,1,34,20,39,248,1,3,4,2,47,31,4,0,47,32,4,0,26,25,0,0,0,1,34,20,39,248,1,20,4,2,47,31,4,0,47,32,4,0,26,26,0,0,0,1,34,20,39,248,1,23,4,2,47,31,4,0,47,32,4,0,26,27,0,0,0,1,34,20,39,248,1,26,4,2,47,31,4,0,47,32,4,0,26,28,0,0,0,1,34,20,39,248,1,29,4,2,47,31,4,0,47,32,4,0,34,6,39,248,1,1,18,0,0,0,0,1,29,164,3,167,3,170,3,173,3,176,3,179,3,182,3,185,3,188,3,191,3,194,3,197,3,200,3,203,3,206,3,214,3,217,3,220,3,231,3,239,3,242,3,250,3,253,3,0,4,3,4,20,4,23,4,26,4,29,4,21,35,4,2,40,0,0,0,0,1,34,6,39,248,1,2,1,38,47,34,4,0,3,0,1,2,59,20,39,168,0,216,0,2,38,47,34,4,0,1,3,18,23,183,209,56,39,154,1,38,47,34,4,0,1,3,1,0,21,37,4,2,40,0,0,0,0,1,34,6,39,114,1,2,1,38,47,36,4,0,3,0,1,2,59,20,39,160,0,208,0,2,38,47,36,4,0,1,3,18,23,183,209,56,39,150,1,38,47,36,4,0,1,3,1,0,21,39,4,2,40,0,0,0,0,1,34,1,38,47,38,4,0,2,0,1,59,38,47,38,4,0,1,2,39,108,1,1,0,}; +static uint8_t SKSL_INCLUDE_sksl_gpu[23297] = {32,10,11,83,107,66,108,101,110,100,77,111,100,101,7,100,101,103,114,101,101,115,8,36,103,101,110,84,121,112,101,7,114,97,100,105,97,110,115,5,97,110,103,108,101,3,115,105,110,3,99,111,115,3,116,97,110,1,120,4,97,115,105,110,4,97,99,111,115,1,121,4,97,116,97,110,8,121,95,111,118,101,114,95,120,4,115,105,110,104,4,99,111,115,104,4,116,97,110,104,5,97,115,105,110,104,5,97,99,111,115,104,5,97,116,97,110,104,3,112,111,119,3,101,120,112,3,108,111,103,4,101,120,112,50,4,108,111,103,50,4,115,113,114,116,9,36,103,101,110,72,84,121,112,101,11,105,110,118,101,114,115,101,115,113,114,116,3,97,98,115,9,36,103,101,110,73,84,121,112,101,4,115,105,103,110,5,102,108,111,111,114,5,116,114,117,110,99,5,114,111,117,110,100,9,114,111,117,110,100,69,118,101,110,4,99,101,105,108,5,102,114,97,99,116,5,102,108,111,97,116,3,109,111,100,4,104,97,108,102,1,105,4,109,111,100,102,3,109,105,110,3,105,110,116,3,109,97,120,6,109,105,110,86,97,108,6,109,97,120,86,97,108,5,99,108,97,109,112,8,115,97,116,117,114,97,116,101,1,97,3,109,105,120,9,36,103,101,110,66,84,121,112,101,4,101,100,103,101,4,115,116,101,112,5,101,100,103,101,48,5,101,100,103,101,49,10,115,109,111,111,116,104,115,116,101,112,5,105,115,110,97,110,5,105,115,105,110,102,5,118,97,108,117,101,14,102,108,111,97,116,66,105,116,115,84,111,73,110,116,14,105,110,116,66,105,116,115,84,111,102,108,111,97,116,9,36,103,101,110,85,84,121,112,101,15,117,105,110,116,66,105,116,115,84,111,102,108,111,97,116,1,98,1,99,3,102,109,97,5,102,114,101,120,112,5,108,100,101,120,112,1,118,6,102,108,111,97,116,50,13,112,97,99,107,85,110,111,114,109,50,120,49,54,4,117,105,110,116,13,112,97,99,107,83,110,111,114,109,50,120,49,54,6,102,108,111,97,116,52,12,112,97,99,107,85,110,111,114,109,52,120,56,12,112,97,99,107,83,110,111,114,109,52,120,56,1,112,15,117,110,112,97,99,107,85,110,111,114,109,50,120,49,54,15,117,110,112,97,99,107,83,110,111,114,109,50,120,49,54,14,117,110,112,97,99,107,85,110,111,114,109,52,120,56,14,117,110,112,97,99,107,83,110,111,114,109,52,120,56,12,112,97,99,107,72,97,108,102,50,120,49,54,14,117,110,112,97,99,107,72,97,108,102,50,120,49,54,6,108,101,110,103,116,104,2,112,48,2,112,49,8,100,105,115,116,97,110,99,101,3,100,111,116,6,102,108,111,97,116,51,5,99,114,111,115,115,5,104,97,108,102,51,9,110,111,114,109,97,108,105,122,101,10,102,116,114,97,110,115,102,111,114,109,1,78,1,73,4,78,114,101,102,11,102,97,99,101,102,111,114,119,97,114,100,7,114,101,102,108,101,99,116,3,101,116,97,7,114,101,102,114,97,99,116,4,36,109,97,116,14,109,97,116,114,105,120,67,111,109,112,77,117,108,116,1,114,12,111,117,116,101,114,80,114,111,100,117,99,116,8,102,108,111,97,116,50,120,50,8,102,108,111,97,116,51,120,51,8,102,108,111,97,116,52,120,51,8,102,108,111,97,116,50,120,51,8,102,108,111,97,116,51,120,50,8,102,108,111,97,116,50,120,52,8,102,108,111,97,116,52,120,50,8,102,108,111,97,116,51,120,52,5,104,97,108,102,50,7,104,97,108,102,50,120,50,7,104,97,108,102,51,120,51,5,104,97,108,102,52,7,104,97,108,102,52,120,51,7,104,97,108,102,50,120,51,7,104,97,108,102,51,120,50,7,104,97,108,102,50,120,52,7,104,97,108,102,52,120,50,7,104,97,108,102,51,120,52,1,109,9,116,114,97,110,115,112,111,115,101,8,102,108,111,97,116,52,120,52,7,104,97,108,102,52,120,52,11,100,101,116,101,114,109,105,110,97,110,116,7,105,110,118,101,114,115,101,4,36,118,101,99,8,108,101,115,115,84,104,97,110,5,36,98,118,101,99,5,36,104,118,101,99,5,36,105,118,101,99,5,36,115,118,101,99,6,36,117,115,118,101,99,5,36,117,118,101,99,13,108,101,115,115,84,104,97,110,69,113,117,97,108,11,103,114,101,97,116,101,114,84,104,97,110,16,103,114,101,97,116,101,114,84,104,97,110,69,113,117,97,108,5,101,113,117,97,108,8,110,111,116,69,113,117,97,108,3,97,110,121,4,98,111,111,108,3,97,108,108,3,110,111,116,8,98,105,116,67,111,117,110,116,7,102,105,110,100,76,83,66,7,102,105,110,100,77,83,66,7,116,101,120,116,117,114,101,9,116,101,120,116,117,114,101,50,68,7,115,97,109,112,108,101,114,13,109,97,107,101,83,97,109,112,108,101,114,50,68,9,115,97,109,112,108,101,114,50,68,15,36,103,115,97,109,112,108,101,114,50,68,82,101,99,116,11,116,101,120,116,117,114,101,83,105,122,101,4,105,110,116,50,11,36,103,115,97,109,112,108,101,114,49,68,1,80,6,115,97,109,112,108,101,4,98,105,97,115,11,36,103,115,97,109,112,108,101,114,50,68,10,105,115,97,109,112,108,101,114,50,68,4,105,110,116,52,18,115,97,109,112,108,101,114,69,120,116,101,114,110,97,108,79,69,83,7,115,117,98,112,97,115,115,12,115,117,98,112,97,115,115,73,110,112,117,116,11,115,117,98,112,97,115,115,76,111,97,100,14,115,117,98,112,97,115,115,73,110,112,117,116,77,83,5,105,109,97,103,101,7,105,109,97,103,101,50,68,9,105,109,97,103,101,76,111,97,100,8,105,105,109,97,103,101,50,68,4,100,70,100,120,4,100,70,100,121,6,102,119,105,100,116,104,11,105,110,116,101,114,112,111,108,97,110,116,19,105,110,116,101,114,112,111,108,97,116,101,65,116,83,97,109,112,108,101,6,111,102,102,115,101,116,19,105,110,116,101,114,112,111,108,97,116,101,65,116,79,102,102,115,101,116,3,115,114,99,3,100,115,116,11,98,108,101,110,100,95,99,108,101,97,114,9,98,108,101,110,100,95,115,114,99,9,98,108,101,110,100,95,100,115,116,14,98,108,101,110,100,95,115,114,99,95,111,118,101,114,14,98,108,101,110,100,95,100,115,116,95,111,118,101,114,12,98,108,101,110,100,95,115,114,99,95,105,110,12,98,108,101,110,100,95,100,115,116,95,105,110,13,98,108,101,110,100,95,115,114,99,95,111,117,116,13,98,108,101,110,100,95,100,115,116,95,111,117,116,14,98,108,101,110,100,95,115,114,99,95,97,116,111,112,14,98,108,101,110,100,95,100,115,116,95,97,116,111,112,9,98,108,101,110,100,95,120,111,114,10,98,108,101,110,100,95,112,108,117,115,14,98,108,101,110,100,95,109,111,100,117,108,97,116,101,12,98,108,101,110,100,95,115,99,114,101,101,110,2,115,99,2,115,97,2,100,99,2,100,97,24,95,98,108,101,110,100,95,111,118,101,114,108,97,121,95,99,111,109,112,111,110,101,110,116,13,98,108,101,110,100,95,111,118,101,114,108,97,121,12,98,108,101,110,100,95,100,97,114,107,101,110,13,98,108,101,110,100,95,108,105,103,104,116,101,110,1,110,1,100,15,95,103,117,97,114,100,101,100,95,100,105,118,105,100,101,22,95,99,111,108,111,114,95,100,111,100,103,101,95,99,111,109,112,111,110,101,110,116,17,98,108,101,110,100,95,99,111,108,111,114,95,100,111,100,103,101,21,95,99,111,108,111,114,95,98,117,114,110,95,99,111,109,112,111,110,101,110,116,16,98,108,101,110,100,95,99,111,108,111,114,95,98,117,114,110,16,98,108,101,110,100,95,104,97,114,100,95,108,105,103,104,116,21,95,115,111,102,116,95,108,105,103,104,116,95,99,111,109,112,111,110,101,110,116,16,98,108,101,110,100,95,115,111,102,116,95,108,105,103,104,116,16,98,108,101,110,100,95,100,105,102,102,101,114,101,110,99,101,15,98,108,101,110,100,95,101,120,99,108,117,115,105,111,110,14,98,108,101,110,100,95,109,117,108,116,105,112,108,121,5,99,111,108,111,114,22,95,98,108,101,110,100,95,99,111,108,111,114,95,108,117,109,105,110,97,110,99,101,11,104,117,101,83,97,116,67,111,108,111,114,5,97,108,112,104,97,8,108,117,109,67,111,108,111,114,26,95,98,108,101,110,100,95,115,101,116,95,99,111,108,111,114,95,108,117,109,105,110,97,110,99,101,23,95,98,108,101,110,100,95,99,111,108,111,114,95,115,97,116,117,114,97,116,105,111,110,9,109,105,110,77,105,100,77,97,120,3,115,97,116,34,95,98,108,101,110,100,95,115,101,116,95,99,111,108,111,114,95,115,97,116,117,114,97,116,105,111,110,95,104,101,108,112,101,114,11,104,117,101,76,117,109,67,111,108,111,114,8,115,97,116,67,111,108,111,114,27,95,98,108,101,110,100,95,115,101,116,95,99,111,108,111,114,95,115,97,116,117,114,97,116,105,111,110,9,98,108,101,110,100,95,104,117,101,16,98,108,101,110,100,95,115,97,116,117,114,97,116,105,111,110,11,98,108,101,110,100,95,99,111,108,111,114,16,98,108,101,110,100,95,108,117,109,105,110,111,115,105,116,121,4,109,111,100,101,5,98,108,101,110,100,8,117,110,112,114,101,109,117,108,14,117,110,112,114,101,109,117,108,95,102,108,111,97,116,4,112,114,111,106,45,115,107,95,67,97,112,115,46,105,110,66,108,101,110,100,77,111,100,101,115,70,97,105,108,82,97,110,100,111,109,108,121,70,111,114,65,108,108,90,101,114,111,86,101,99,6,114,101,115,117,108,116,51,115,107,95,67,97,112,115,46,109,117,115,116,71,117,97,114,100,68,105,118,105,115,105,111,110,69,118,101,110,65,102,116,101,114,69,120,112,108,105,99,105,116,90,101,114,111,67,104,101,99,107,4,68,83,113,100,4,68,67,117,98,5,68,97,83,113,100,5,68,97,67,117,98,3,108,117,109,7,109,105,110,67,111,109,112,7,109,97,120,67,111,109,112,3,115,100,97,3,100,115,97,6,107,67,108,101,97,114,4,107,83,114,99,4,107,68,115,116,8,107,83,114,99,79,118,101,114,8,107,68,115,116,79,118,101,114,6,107,83,114,99,73,110,6,107,68,115,116,73,110,7,107,83,114,99,79,117,116,7,107,68,115,116,79,117,116,8,107,83,114,99,65,84,111,112,8,107,68,115,116,65,84,111,112,4,107,88,111,114,5,107,80,108,117,115,9,107,77,111,100,117,108,97,116,101,7,107,83,99,114,101,101,110,8,107,79,118,101,114,108,97,121,7,107,68,97,114,107,101,110,8,107,76,105,103,104,116,101,110,11,107,67,111,108,111,114,68,111,100,103,101,10,107,67,111,108,111,114,66,117,114,110,10,107,72,97,114,100,76,105,103,104,116,10,107,83,111,102,116,76,105,103,104,116,11,107,68,105,102,102,101,114,101,110,99,101,10,107,69,120,99,108,117,115,105,111,110,9,107,77,117,108,116,105,112,108,121,4,107,72,117,101,11,107,83,97,116,117,114,97,116,105,111,110,6,107,67,111,108,111,114,11,107,76,117,109,105,110,111,115,105,116,121,40,239,3,14,1,0,2,0,44,2,0,9,14,0,41,3,0,22,0,3,22,4,0,9,31,0,1,2,0,39,3,0,44,5,0,9,39,0,39,3,0,3,22,6,0,9,45,0,1,5,0,39,3,0,44,7,0,9,39,0,39,3,0,3,22,8,0,9,49,0,1,7,0,39,3,0,44,9,0,9,39,0,39,3,0,3,22,10,0,9,53,0,1,9,0,39,3,0,44,11,0,9,57,0,39,3,0,3,22,12,0,9,59,0,1,11,0,39,3,0,44,13,0,9,57,0,39,3,0,3,22,14,0,9,64,0,1,13,0,39,3,0,44,15,0,9,69,0,39,3,0,3,44,16,0,9,57,0,39,3,0,3,22,17,0,9,71,0,2,15,0,16,0,39,3,0,44,18,0,9,76,0,39,3,0,3,43,19,0,2,39,17,0,22,20,0,9,71,0,1,18,0,39,3,0,39,20,0,44,21,0,9,57,0,39,3,0,3,22,22,0,9,85,0,1,21,0,39,3,0,44,23,0,9,57,0,39,3,0,3,22,24,0,9,90,0,1,23,0,39,3,0,44,25,0,9,57,0,39,3,0,3,22,26,0,9,95,0,1,25,0,39,3,0,44,27,0,9,57,0,39,3,0,3,22,28,0,9,100,0,1,27,0,39,3,0,44,29,0,9,57,0,39,3,0,3,22,30,0,9,106,0,1,29,0,39,3,0,44,31,0,9,57,0,39,3,0,3,22,32,0,9,112,0,1,31,0,39,3,0,44,33,0,9,57,0,39,3,0,3,44,34,0,9,69,0,39,3,0,3,22,35,0,9,118,0,2,33,0,34,0,39,3,0,44,36,0,9,57,0,39,3,0,3,22,37,0,9,122,0,1,36,0,39,3,0,44,38,0,9,57,0,39,3,0,3,22,39,0,9,126,0,1,38,0,39,3,0,44,40,0,9,57,0,39,3,0,3,22,41,0,9,130,0,1,40,0,39,3,0,44,42,0,9,57,0,39,3,0,3,22,43,0,9,135,0,1,42,0,39,3,0,44,44,0,9,57,0,39,3,0,3,22,45,0,9,140,0,1,44,0,39,3,0,44,46,0,9,14,0,41,47,0,145,0,3,43,48,0,2,39,4,0,22,49,0,9,31,0,1,46,0,39,47,0,39,49,0,44,50,0,9,39,0,39,47,0,3,43,51,0,2,39,6,0,22,52,0,9,45,0,1,50,0,39,47,0,39,52,0,44,53,0,9,39,0,39,47,0,3,43,54,0,2,39,8,0,22,55,0,9,49,0,1,53,0,39,47,0,39,55,0,44,56,0,9,39,0,39,47,0,3,43,57,0,2,39,10,0,22,58,0,9,53,0,1,56,0,39,47,0,39,58,0,44,59,0,9,57,0,39,47,0,3,43,60,0,2,39,12,0,22,61,0,9,59,0,1,59,0,39,47,0,39,61,0,44,62,0,9,57,0,39,47,0,3,43,63,0,2,39,14,0,22,64,0,9,64,0,1,62,0,39,47,0,39,64,0,44,65,0,9,69,0,39,47,0,3,44,66,0,9,57,0,39,47,0,3,43,67,0,3,39,17,0,39,20,0,22,68,0,9,71,0,2,65,0,66,0,39,47,0,39,68,0,44,69,0,9,76,0,39,47,0,3,43,70,0,4,39,17,0,39,20,0,39,68,0,22,71,0,9,71,0,1,69,0,39,47,0,39,71,0,44,72,0,9,57,0,39,47,0,3,43,73,0,2,39,22,0,22,74,0,9,85,0,1,72,0,39,47,0,39,74,0,44,75,0,9,57,0,39,47,0,3,43,76,0,2,39,24,0,22,77,0,9,90,0,1,75,0,39,47,0,39,77,0,44,78,0,9,57,0,39,47,0,3,43,79,0,2,39,26,0,22,80,0,9,95,0,1,78,0,39,47,0,39,80,0,44,81,0,9,57,0,39,47,0,3,43,82,0,2,39,28,0,22,83,0,9,100,0,1,81,0,39,47,0,39,83,0,44,84,0,9,57,0,39,47,0,3,43,85,0,2,39,30,0,22,86,0,9,106,0,1,84,0,39,47,0,39,86,0,44,87,0,9,57,0,39,47,0,3,43,88,0,2,39,32,0,22,89,0,9,112,0,1,87,0,39,47,0,39,89,0,44,90,0,9,57,0,39,47,0,3,44,91,0,9,69,0,39,47,0,3,43,92,0,2,39,35,0,22,93,0,9,118,0,2,90,0,91,0,39,47,0,39,93,0,44,94,0,9,57,0,39,47,0,3,43,95,0,2,39,37,0,22,96,0,9,122,0,1,94,0,39,47,0,39,96,0,44,97,0,9,57,0,39,47,0,3,43,98,0,2,39,39,0,22,99,0,9,126,0,1,97,0,39,47,0,39,99,0,44,100,0,9,57,0,39,47,0,3,43,101,0,2,39,41,0,22,102,0,9,130,0,1,100,0,39,47,0,39,102,0,44,103,0,9,57,0,39,47,0,3,43,104,0,2,39,43,0,22,105,0,9,135,0,1,103,0,39,47,0,39,105,0,44,106,0,9,57,0,39,47,0,3,43,107,0,2,39,45,0,22,108,0,9,140,0,1,106,0,39,47,0,39,108,0,44,109,0,9,57,0,39,3,0,3,22,110,0,9,155,0,1,109,0,39,3,0,44,111,0,9,57,0,39,3,0,3,22,112,0,9,167,0,1,111,0,39,3,0,44,113,0,9,57,0,39,47,0,3,43,114,0,2,39,112,0,22,115,0,9,167,0,1,113,0,39,47,0,39,115,0,44,116,0,9,57,0,41,117,0,171,0,3,43,118,0,3,39,112,0,39,115,0,22,119,0,9,167,0,1,116,0,39,117,0,39,119,0,44,120,0,9,57,0,39,3,0,3,22,121,0,9,181,0,1,120,0,39,3,0,44,122,0,9,57,0,39,47,0,3,43,123,0,2,39,121,0,22,124,0,9,181,0,1,122,0,39,47,0,39,124,0,44,125,0,9,57,0,39,117,0,3,43,126,0,3,39,121,0,39,124,0,22,127,0,9,181,0,1,125,0,39,117,0,39,127,0,44,128,0,9,57,0,39,3,0,3,22,129,0,9,186,0,1,128,0,39,3,0,44,130,0,9,57,0,39,47,0,3,43,131,0,2,39,129,0,22,132,0,9,186,0,1,130,0,39,47,0,39,132,0,44,133,0,9,57,0,39,3,0,3,22,134,0,9,192,0,1,133,0,39,3,0,44,135,0,9,57,0,39,47,0,3,43,136,0,2,39,134,0,22,137,0,9,192,0,1,135,0,39,47,0,39,137,0,44,138,0,9,57,0,39,3,0,3,22,139,0,9,198,0,1,138,0,39,3,0,44,140,0,9,57,0,39,47,0,3,43,141,0,2,39,139,0,22,142,0,9,198,0,1,140,0,39,47,0,39,142,0,44,143,0,9,57,0,39,3,0,3,22,144,0,9,204,0,1,143,0,39,3,0,44,145,0,9,57,0,39,47,0,3,43,146,0,2,39,144,0,22,147,0,9,204,0,1,145,0,39,47,0,39,147,0,44,148,0,9,57,0,39,3,0,3,22,149,0,9,214,0,1,148,0,39,3,0,44,150,0,9,57,0,39,47,0,3,43,151,0,2,39,149,0,22,152,0,9,214,0,1,150,0,39,47,0,39,152,0,44,153,0,9,57,0,39,3,0,3,22,154,0,9,219,0,1,153,0,39,3,0,44,155,0,9,57,0,39,47,0,3,43,156,0,2,39,154,0,22,157,0,9,219,0,1,155,0,39,47,0,39,157,0,44,158,0,9,57,0,39,3,0,3,44,159,0,9,69,0,41,160,0,225,0,3,22,161,0,9,231,0,2,158,0,159,0,39,3,0,44,162,0,9,57,0,39,3,0,3,44,163,0,9,69,0,39,3,0,3,43,164,0,2,39,161,0,22,165,0,9,231,0,2,162,0,163,0,39,3,0,39,165,0,44,166,0,9,57,0,39,47,0,3,44,167,0,9,69,0,41,168,0,235,0,3,43,169,0,3,39,161,0,39,165,0,22,170,0,9,231,0,2,166,0,167,0,39,47,0,39,170,0,44,171,0,9,57,0,39,47,0,3,44,172,0,9,69,0,39,47,0,3,43,173,0,4,39,161,0,39,165,0,39,170,0,22,174,0,9,231,0,2,171,0,172,0,39,47,0,39,174,0,44,175,0,9,57,0,39,3,0,3,44,176,0,28,8,4,240,0,39,3,0,3,22,177,0,9,242,0,2,175,0,176,0,39,3,0,44,178,0,9,57,0,39,47,0,3,44,179,0,28,8,4,240,0,39,47,0,3,43,180,0,2,39,177,0,22,181,0,9,242,0,2,178,0,179,0,39,47,0,39,181,0,44,182,0,9,57,0,39,3,0,3,44,183,0,9,69,0,39,3,0,3,22,184,0,9,247,0,2,182,0,183,0,39,3,0,44,185,0,9,57,0,39,3,0,3,44,186,0,9,69,0,39,160,0,3,43,187,0,2,39,184,0,22,188,0,9,247,0,2,185,0,186,0,39,3,0,39,188,0,44,189,0,9,57,0,39,47,0,3,44,190,0,9,69,0,39,47,0,3,43,191,0,3,39,184,0,39,188,0,22,192,0,9,247,0,2,189,0,190,0,39,47,0,39,192,0,44,193,0,9,57,0,39,47,0,3,44,194,0,9,69,0,39,168,0,3,43,195,0,4,39,184,0,39,188,0,39,192,0,22,196,0,9,247,0,2,193,0,194,0,39,47,0,39,196,0,44,197,0,9,57,0,39,117,0,3,44,198,0,9,69,0,39,117,0,3,43,199,0,5,39,184,0,39,188,0,39,192,0,39,196,0,22,200,0,9,247,0,2,197,0,198,0,39,117,0,39,200,0,44,201,0,9,57,0,39,117,0,3,44,202,0,9,69,0,41,203,0,251,0,3,43,204,0,6,39,184,0,39,188,0,39,192,0,39,196,0,39,200,0,22,205,0,9,247,0,2,201,0,202,0,39,117,0,39,205,0,44,206,0,9,57,0,39,3,0,3,44,207,0,9,69,0,39,3,0,3,22,208,0,9,255,0,2,206,0,207,0,39,3,0,44,209,0,9,57,0,39,3,0,3,44,210,0,9,69,0,39,160,0,3,43,211,0,2,39,208,0,22,212,0,9,255,0,2,209,0,210,0,39,3,0,39,212,0,44,213,0,9,57,0,39,47,0,3,44,214,0,9,69,0,39,47,0,3,43,215,0,3,39,208,0,39,212,0,22,216,0,9,255,0,2,213,0,214,0,39,47,0,39,216,0,44,217,0,9,57,0,39,47,0,3,44,218,0,9,69,0,39,168,0,3,43,219,0,4,39,208,0,39,212,0,39,216,0,22,220,0,9,255,0,2,217,0,218,0,39,47,0,39,220,0,44,221,0,9,57,0,39,117,0,3,44,222,0,9,69,0,39,117,0,3,43,223,0,5,39,208,0,39,212,0,39,216,0,39,220,0,22,224,0,9,255,0,2,221,0,222,0,39,117,0,39,224,0,44,225,0,9,57,0,39,117,0,3,44,226,0,9,69,0,39,203,0,3,43,227,0,6,39,208,0,39,212,0,39,216,0,39,220,0,39,224,0,22,228,0,9,255,0,2,225,0,226,0,39,117,0,39,228,0,44,229,0,9,57,0,39,3,0,3,44,230,0,9,3,1,39,3,0,3,44,231,0,9,10,1,39,3,0,3,22,232,0,9,17,1,3,229,0,230,0,231,0,39,3,0,44,233,0,9,57,0,39,3,0,3,44,234,0,9,3,1,39,160,0,3,44,235,0,9,10,1,39,160,0,3,43,236,0,2,39,232,0,22,237,0,9,17,1,3,233,0,234,0,235,0,39,3,0,39,237,0,44,238,0,9,57,0,39,47,0,3,44,239,0,9,3,1,39,47,0,3,44,240,0,9,10,1,39,47,0,3,43,241,0,3,39,232,0,39,237,0,22,242,0,9,17,1,3,238,0,239,0,240,0,39,47,0,39,242,0,44,243,0,9,57,0,39,47,0,3,44,244,0,9,3,1,39,168,0,3,44,245,0,9,10,1,39,168,0,3,43,246,0,4,39,232,0,39,237,0,39,242,0,22,247,0,9,17,1,3,243,0,244,0,245,0,39,47,0,39,247,0,44,248,0,9,57,0,39,117,0,3,44,249,0,9,3,1,39,117,0,3,44,250,0,9,10,1,39,117,0,3,43,251,0,5,39,232,0,39,237,0,39,242,0,39,247,0,22,252,0,9,17,1,3,248,0,249,0,250,0,39,117,0,39,252,0,44,253,0,9,57,0,39,117,0,3,44,254,0,9,3,1,39,203,0,3,44,255,0,9,10,1,39,203,0,3,43,0,1,6,39,232,0,39,237,0,39,242,0,39,247,0,39,252,0,22,1,1,9,17,1,3,253,0,254,0,255,0,39,117,0,39,1,1,44,2,1,9,57,0,39,3,0,3,22,3,1,9,23,1,1,2,1,39,3,0,44,4,1,9,57,0,39,47,0,3,43,5,1,2,39,3,1,22,6,1,9,23,1,1,4,1,39,47,0,39,6,1,44,7,1,9,57,0,39,3,0,3,44,8,1,9,69,0,39,3,0,3,44,9,1,9,32,1,39,3,0,3,22,10,1,9,34,1,3,7,1,8,1,9,1,39,3,0,44,11,1,9,57,0,39,3,0,3,44,12,1,9,69,0,39,3,0,3,44,13,1,9,32,1,39,160,0,3,43,14,1,2,39,10,1,22,15,1,9,34,1,3,11,1,12,1,13,1,39,3,0,39,15,1,44,16,1,9,57,0,39,47,0,3,44,17,1,9,69,0,39,47,0,3,44,18,1,9,32,1,39,47,0,3,43,19,1,3,39,10,1,39,15,1,22,20,1,9,34,1,3,16,1,17,1,18,1,39,47,0,39,20,1,44,21,1,9,57,0,39,47,0,3,44,22,1,9,69,0,39,47,0,3,44,23,1,9,32,1,39,168,0,3,43,24,1,4,39,10,1,39,15,1,39,20,1,22,25,1,9,34,1,3,21,1,22,1,23,1,39,47,0,39,25,1,44,26,1,9,57,0,39,3,0,3,44,27,1,9,69,0,39,3,0,3,44,28,1,9,32,1,41,29,1,38,1,3,43,30,1,5,39,10,1,39,15,1,39,20,1,39,25,1,22,31,1,9,34,1,3,26,1,27,1,28,1,39,3,0,39,31,1,44,32,1,9,57,0,39,47,0,3,44,33,1,9,69,0,39,47,0,3,44,34,1,9,32,1,39,29,1,3,43,35,1,6,39,10,1,39,15,1,39,20,1,39,25,1,39,31,1,22,36,1,9,34,1,3,32,1,33,1,34,1,39,47,0,39,36,1,44,37,1,9,57,0,39,117,0,3,44,38,1,9,69,0,39,117,0,3,44,39,1,9,32,1,39,29,1,3,43,40,1,7,39,10,1,39,15,1,39,20,1,39,25,1,39,31,1,39,36,1,22,41,1,9,34,1,3,37,1,38,1,39,1,39,117,0,39,41,1,44,42,1,9,57,0,39,29,1,3,44,43,1,9,69,0,39,29,1,3,44,44,1,9,32,1,39,29,1,3,43,45,1,8,39,10,1,39,15,1,39,20,1,39,25,1,39,31,1,39,36,1,39,41,1,22,46,1,9,34,1,3,42,1,43,1,44,1,39,29,1,39,46,1,44,47,1,9,48,1,39,3,0,3,44,48,1,9,57,0,39,3,0,3,22,49,1,9,53,1,2,47,1,48,1,39,3,0,44,50,1,9,48,1,39,160,0,3,44,51,1,9,57,0,39,3,0,3,43,52,1,2,39,49,1,22,53,1,9,53,1,2,50,1,51,1,39,3,0,39,53,1,44,54,1,9,48,1,39,47,0,3,44,55,1,9,57,0,39,47,0,3,43,56,1,3,39,49,1,39,53,1,22,57,1,9,53,1,2,54,1,55,1,39,47,0,39,57,1,44,58,1,9,48,1,39,168,0,3,44,59,1,9,57,0,39,47,0,3,43,60,1,4,39,49,1,39,53,1,39,57,1,22,61,1,9,53,1,2,58,1,59,1,39,47,0,39,61,1,44,62,1,9,58,1,39,3,0,3,44,63,1,9,64,1,39,3,0,3,44,64,1,9,57,0,39,3,0,3,22,65,1,9,70,1,3,62,1,63,1,64,1,39,3,0,44,66,1,9,58,1,39,160,0,3,44,67,1,9,64,1,39,160,0,3,44,68,1,9,57,0,39,3,0,3,43,69,1,2,39,65,1,22,70,1,9,70,1,3,66,1,67,1,68,1,39,3,0,39,70,1,44,71,1,9,58,1,39,47,0,3,44,72,1,9,64,1,39,47,0,3,44,73,1,9,57,0,39,47,0,3,43,74,1,3,39,65,1,39,70,1,22,75,1,9,70,1,3,71,1,72,1,73,1,39,47,0,39,75,1,44,76,1,9,58,1,39,168,0,3,44,77,1,9,64,1,39,168,0,3,44,78,1,9,57,0,39,47,0,3,43,79,1,4,39,65,1,39,70,1,39,75,1,22,80,1,9,70,1,3,76,1,77,1,78,1,39,47,0,39,80,1,44,81,1,9,57,0,39,3,0,3,22,82,1,9,81,1,1,81,1,39,29,1,44,83,1,9,57,0,39,3,0,3,22,84,1,9,87,1,1,83,1,39,29,1,44,85,1,9,93,1,39,3,0,3,22,86,1,9,99,1,1,85,1,39,117,0,44,87,1,9,93,1,39,117,0,3,22,88,1,9,114,1,1,87,1,39,3,0,44,89,1,9,93,1,41,90,1,129,1,3,22,91,1,9,139,1,1,89,1,39,3,0,44,92,1,9,32,1,39,3,0,3,44,93,1,9,155,1,39,3,0,3,44,94,1,9,157,1,39,3,0,3,22,95,1,9,159,1,3,92,1,93,1,94,1,39,3,0,44,96,1,9,32,1,39,47,0,3,44,97,1,9,155,1,39,47,0,3,44,98,1,9,157,1,39,47,0,3,43,99,1,2,39,95,1,22,100,1,9,159,1,3,96,1,97,1,98,1,39,47,0,39,100,1,44,101,1,9,57,0,39,3,0,3,44,102,1,28,8,4,122,0,39,117,0,3,22,103,1,29,8,0,16,0,0,163,1,2,101,1,102,1,39,3,0,44,104,1,9,57,0,39,3,0,3,44,105,1,28,8,2,122,0,39,117,0,3,22,106,1,9,169,1,2,104,1,105,1,39,3,0,44,107,1,9,175,1,41,108,1,177,1,3,22,109,1,9,184,1,1,107,1,41,110,1,198,1,44,111,1,9,175,1,39,108,1,3,22,112,1,9,203,1,1,111,1,39,110,1,44,113,1,9,175,1,41,114,1,217,1,3,22,115,1,9,224,1,1,113,1,39,110,1,44,116,1,9,175,1,39,114,1,3,22,117,1,9,237,1,1,116,1,39,110,1,44,118,1,9,250,1,39,110,1,3,22,119,1,9,252,1,1,118,1,39,108,1,44,120,1,9,250,1,39,110,1,3,22,121,1,9,12,2,1,120,1,39,108,1,44,122,1,9,250,1,39,110,1,3,22,123,1,9,28,2,1,122,1,39,114,1,44,124,1,9,250,1,39,110,1,3,22,125,1,9,43,2,1,124,1,39,114,1,44,126,1,9,175,1,39,108,1,3,22,127,1,9,58,2,1,126,1,39,110,1,44,128,1,9,175,1,39,110,1,3,22,129,1,9,71,2,1,128,1,39,108,1,44,130,1,9,57,0,39,3,0,3,22,131,1,9,86,2,1,130,1,39,160,0,44,132,1,9,57,0,39,47,0,3,43,133,1,2,39,131,1,22,134,1,9,86,2,1,132,1,39,168,0,39,134,1,44,135,1,9,93,2,39,3,0,3,44,136,1,9,96,2,39,3,0,3,22,137,1,9,99,2,2,135,1,136,1,39,160,0,44,138,1,9,93,2,39,47,0,3,44,139,1,9,96,2,39,47,0,3,43,140,1,2,39,137,1,22,141,1,9,99,2,2,138,1,139,1,39,168,0,39,141,1,44,142,1,9,57,0,39,3,0,3,44,143,1,9,69,0,39,3,0,3,22,144,1,9,108,2,2,142,1,143,1,39,160,0,44,145,1,9,57,0,39,47,0,3,44,146,1,9,69,0,39,47,0,3,43,147,1,2,39,144,1,22,148,1,9,108,2,2,145,1,146,1,39,168,0,39,148,1,44,149,1,9,57,0,41,150,1,112,2,3,44,151,1,9,69,0,39,150,1,3,22,152,1,9,119,2,2,149,1,151,1,39,150,1,44,153,1,9,57,0,41,154,1,125,2,3,44,155,1,9,69,0,39,154,1,3,43,156,1,2,39,152,1,22,157,1,9,119,2,2,153,1,155,1,39,154,1,39,157,1,44,158,1,9,57,0,39,3,0,3,22,159,1,9,131,2,1,158,1,39,3,0,44,160,1,9,57,0,39,47,0,3,43,161,1,2,39,159,1,22,162,1,9,131,2,1,160,1,39,47,0,39,162,1,22,163,1,9,141,2,0,39,114,1,44,164,1,9,152,2,39,3,0,3,44,165,1,9,154,2,39,3,0,3,44,166,1,9,156,2,39,3,0,3,22,167,1,9,161,2,3,164,1,165,1,166,1,39,3,0,44,168,1,9,152,2,39,47,0,3,44,169,1,9,154,2,39,47,0,3,44,170,1,9,156,2,39,47,0,3,43,171,1,2,39,167,1,22,172,1,9,161,2,3,168,1,169,1,170,1,39,47,0,39,172,1,44,173,1,9,154,2,39,3,0,3,44,174,1,9,152,2,39,3,0,3,22,175,1,9,173,2,2,173,1,174,1,39,3,0,44,176,1,9,154,2,39,47,0,3,44,177,1,9,152,2,39,47,0,3,43,178,1,2,39,175,1,22,179,1,9,173,2,2,176,1,177,1,39,47,0,39,179,1,44,180,1,9,154,2,39,3,0,3,44,181,1,9,152,2,39,3,0,3,44,182,1,9,181,2,39,160,0,3,22,183,1,9,185,2,3,180,1,181,1,182,1,39,3,0,44,184,1,9,154,2,39,47,0,3,44,185,1,9,152,2,39,47,0,3,44,186,1,9,181,2,39,160,0,3,43,187,1,2,39,183,1,22,188,1,9,185,2,3,184,1,185,1,186,1,39,47,0,39,188,1,44,189,1,9,57,0,41,190,1,193,2,3,44,191,1,9,69,0,39,190,1,3,22,192,1,9,198,2,2,189,1,191,1,39,190,1,44,193,1,9,157,1,39,108,1,3,44,194,1,9,213,2,39,108,1,3,22,195,1,9,215,2,2,193,1,194,1,41,196,1,228,2,44,197,1,9,157,1,39,150,1,3,44,198,1,9,213,2,39,150,1,3,43,199,1,2,39,195,1,22,200,1,9,215,2,2,197,1,198,1,41,201,1,237,2,39,200,1,44,202,1,9,157,1,39,114,1,3,44,203,1,9,213,2,39,114,1,3,43,204,1,3,39,195,1,39,200,1,22,205,1,9,215,2,2,202,1,203,1,41,206,1,246,2,39,205,1,44,207,1,9,157,1,39,150,1,3,44,208,1,9,213,2,39,108,1,3,43,209,1,4,39,195,1,39,200,1,39,205,1,22,210,1,9,215,2,2,207,1,208,1,41,211,1,255,2,39,210,1,44,212,1,9,157,1,39,108,1,3,44,213,1,9,213,2,39,150,1,3,43,214,1,5,39,195,1,39,200,1,39,205,1,39,210,1,22,215,1,9,215,2,2,212,1,213,1,41,216,1,8,3,39,215,1,44,217,1,9,157,1,39,114,1,3,44,218,1,9,213,2,39,108,1,3,43,219,1,6,39,195,1,39,200,1,39,205,1,39,210,1,39,215,1,22,220,1,9,215,2,2,217,1,218,1,41,221,1,17,3,39,220,1,44,222,1,9,157,1,39,108,1,3,44,223,1,9,213,2,39,114,1,3,43,224,1,7,39,195,1,39,200,1,39,205,1,39,210,1,39,215,1,39,220,1,22,225,1,9,215,2,2,222,1,223,1,41,226,1,26,3,39,225,1,44,227,1,9,157,1,39,114,1,3,44,228,1,9,213,2,39,150,1,3,43,229,1,8,39,195,1,39,200,1,39,205,1,39,210,1,39,215,1,39,220,1,39,225,1,22,230,1,9,215,2,2,227,1,228,1,41,231,1,35,3,39,230,1,44,232,1,9,157,1,39,150,1,3,44,233,1,9,213,2,39,114,1,3,43,234,1,9,39,195,1,39,200,1,39,205,1,39,210,1,39,215,1,39,220,1,39,225,1,39,230,1,22,235,1,9,215,2,2,232,1,233,1,39,206,1,39,235,1,44,236,1,9,157,1,41,237,1,44,3,3,44,238,1,9,213,2,39,237,1,3,43,239,1,10,39,195,1,39,200,1,39,205,1,39,210,1,39,215,1,39,220,1,39,225,1,39,230,1,39,235,1,22,240,1,9,215,2,2,236,1,238,1,41,241,1,50,3,39,240,1,44,242,1,9,157,1,39,154,1,3,44,243,1,9,213,2,39,154,1,3,43,244,1,11,39,195,1,39,200,1,39,205,1,39,210,1,39,215,1,39,220,1,39,225,1,39,230,1,39,235,1,39,240,1,22,245,1,9,215,2,2,242,1,243,1,41,246,1,58,3,39,245,1,44,247,1,9,157,1,41,248,1,66,3,3,44,249,1,9,213,2,39,248,1,3,43,250,1,12,39,195,1,39,200,1,39,205,1,39,210,1,39,215,1,39,220,1,39,225,1,39,230,1,39,235,1,39,240,1,39,245,1,22,251,1,9,215,2,2,247,1,249,1,41,252,1,72,3,39,251,1,44,253,1,9,157,1,39,154,1,3,44,254,1,9,213,2,39,237,1,3,43,255,1,13,39,195,1,39,200,1,39,205,1,39,210,1,39,215,1,39,220,1,39,225,1,39,230,1,39,235,1,39,240,1,39,245,1,39,251,1,22,0,2,9,215,2,2,253,1,254,1,41,1,2,80,3,39,0,2,44,2,2,9,157,1,39,237,1,3,44,3,2,9,213,2,39,154,1,3,43,4,2,14,39,195,1,39,200,1,39,205,1,39,210,1,39,215,1,39,220,1,39,225,1,39,230,1,39,235,1,39,240,1,39,245,1,39,251,1,39,0,2,22,5,2,9,215,2,2,2,2,3,2,41,6,2,88,3,39,5,2,44,7,2,9,157,1,39,248,1,3,44,8,2,9,213,2,39,237,1,3,43,9,2,15,39,195,1,39,200,1,39,205,1,39,210,1,39,215,1,39,220,1,39,225,1,39,230,1,39,235,1,39,240,1,39,245,1,39,251,1,39,0,2,39,5,2,22,10,2,9,215,2,2,7,2,8,2,41,11,2,96,3,39,10,2,44,12,2,9,157,1,39,237,1,3,44,13,2,9,213,2,39,248,1,3,43,14,2,16,39,195,1,39,200,1,39,205,1,39,210,1,39,215,1,39,220,1,39,225,1,39,230,1,39,235,1,39,240,1,39,245,1,39,251,1,39,0,2,39,5,2,39,10,2,22,15,2,9,215,2,2,12,2,13,2,41,16,2,104,3,39,15,2,44,17,2,9,157,1,39,248,1,3,44,18,2,9,213,2,39,154,1,3,43,19,2,17,39,195,1,39,200,1,39,205,1,39,210,1,39,215,1,39,220,1,39,225,1,39,230,1,39,235,1,39,240,1,39,245,1,39,251,1,39,0,2,39,5,2,39,10,2,39,15,2,22,20,2,9,215,2,2,17,2,18,2,41,21,2,112,3,39,20,2,44,22,2,9,157,1,39,154,1,3,44,23,2,9,213,2,39,248,1,3,43,24,2,18,39,195,1,39,200,1,39,205,1,39,210,1,39,215,1,39,220,1,39,225,1,39,230,1,39,235,1,39,240,1,39,245,1,39,251,1,39,0,2,39,5,2,39,10,2,39,15,2,39,20,2,22,25,2,9,215,2,2,22,2,23,2,39,252,1,39,25,2,44,26,2,9,120,3,39,196,1,3,22,27,2,9,122,3,1,26,2,39,196,1,44,28,2,9,120,3,39,201,1,3,43,29,2,2,39,27,2,22,30,2,9,122,3,1,28,2,39,201,1,39,30,2,44,31,2,9,120,3,41,32,2,132,3,3,43,33,2,3,39,27,2,39,30,2,22,34,2,9,122,3,1,31,2,39,32,2,39,34,2,44,35,2,9,120,3,39,216,1,3,43,36,2,4,39,27,2,39,30,2,39,34,2,22,37,2,9,122,3,1,35,2,39,211,1,39,37,2,44,38,2,9,120,3,39,211,1,3,43,39,2,5,39,27,2,39,30,2,39,34,2,39,37,2,22,40,2,9,122,3,1,38,2,39,216,1,39,40,2,44,41,2,9,120,3,39,226,1,3,43,42,2,6,39,27,2,39,30,2,39,34,2,39,37,2,39,40,2,22,43,2,9,122,3,1,41,2,39,221,1,39,43,2,44,44,2,9,120,3,39,221,1,3,43,45,2,7,39,27,2,39,30,2,39,34,2,39,37,2,39,40,2,39,43,2,22,46,2,9,122,3,1,44,2,39,226,1,39,46,2,44,47,2,9,120,3,39,206,1,3,43,48,2,8,39,27,2,39,30,2,39,34,2,39,37,2,39,40,2,39,43,2,39,46,2,22,49,2,9,122,3,1,47,2,39,231,1,39,49,2,44,50,2,9,120,3,39,231,1,3,43,51,2,9,39,27,2,39,30,2,39,34,2,39,37,2,39,40,2,39,43,2,39,46,2,39,49,2,22,52,2,9,122,3,1,50,2,39,206,1,39,52,2,44,53,2,9,120,3,39,241,1,3,43,54,2,10,39,27,2,39,30,2,39,34,2,39,37,2,39,40,2,39,43,2,39,46,2,39,49,2,39,52,2,22,55,2,9,122,3,1,53,2,39,241,1,39,55,2,44,56,2,9,120,3,39,246,1,3,43,57,2,11,39,27,2,39,30,2,39,34,2,39,37,2,39,40,2,39,43,2,39,46,2,39,49,2,39,52,2,39,55,2,22,58,2,9,122,3,1,56,2,39,246,1,39,58,2,44,59,2,9,120,3,41,60,2,141,3,3,43,61,2,12,39,27,2,39,30,2,39,34,2,39,37,2,39,40,2,39,43,2,39,46,2,39,49,2,39,52,2,39,55,2,39,58,2,22,62,2,9,122,3,1,59,2,39,60,2,39,62,2,44,63,2,9,120,3,39,6,2,3,43,64,2,13,39,27,2,39,30,2,39,34,2,39,37,2,39,40,2,39,43,2,39,46,2,39,49,2,39,52,2,39,55,2,39,58,2,39,62,2,22,65,2,9,122,3,1,63,2,39,1,2,39,65,2,44,66,2,9,120,3,39,1,2,3,43,67,2,14,39,27,2,39,30,2,39,34,2,39,37,2,39,40,2,39,43,2,39,46,2,39,49,2,39,52,2,39,55,2,39,58,2,39,62,2,39,65,2,22,68,2,9,122,3,1,66,2,39,6,2,39,68,2,44,69,2,9,120,3,39,16,2,3,43,70,2,15,39,27,2,39,30,2,39,34,2,39,37,2,39,40,2,39,43,2,39,46,2,39,49,2,39,52,2,39,55,2,39,58,2,39,62,2,39,65,2,39,68,2,22,71,2,9,122,3,1,69,2,39,11,2,39,71,2,44,72,2,9,120,3,39,11,2,3,43,73,2,16,39,27,2,39,30,2,39,34,2,39,37,2,39,40,2,39,43,2,39,46,2,39,49,2,39,52,2,39,55,2,39,58,2,39,62,2,39,65,2,39,68,2,39,71,2,22,74,2,9,122,3,1,72,2,39,16,2,39,74,2,44,75,2,9,120,3,39,252,1,3,43,76,2,17,39,27,2,39,30,2,39,34,2,39,37,2,39,40,2,39,43,2,39,46,2,39,49,2,39,52,2,39,55,2,39,58,2,39,62,2,39,65,2,39,68,2,39,71,2,39,74,2,22,77,2,9,122,3,1,75,2,39,21,2,39,77,2,44,78,2,9,120,3,39,21,2,3,43,79,2,18,39,27,2,39,30,2,39,34,2,39,37,2,39,40,2,39,43,2,39,46,2,39,49,2,39,52,2,39,55,2,39,58,2,39,62,2,39,65,2,39,68,2,39,71,2,39,74,2,39,77,2,22,80,2,9,122,3,1,78,2,39,252,1,39,80,2,44,81,2,9,120,3,39,196,1,3,22,82,2,9,149,3,1,81,2,39,160,0,44,83,2,9,120,3,39,201,1,3,43,84,2,2,39,82,2,22,85,2,9,149,3,1,83,2,39,160,0,39,85,2,44,86,2,9,120,3,39,32,2,3,43,87,2,3,39,82,2,39,85,2,22,88,2,9,149,3,1,86,2,39,160,0,39,88,2,44,89,2,9,120,3,39,241,1,3,43,90,2,4,39,82,2,39,85,2,39,88,2,22,91,2,9,149,3,1,89,2,39,168,0,39,91,2,44,92,2,9,120,3,39,246,1,3,43,93,2,5,39,82,2,39,85,2,39,88,2,39,91,2,22,94,2,9,149,3,1,92,2,39,168,0,39,94,2,44,95,2,9,120,3,39,60,2,3,43,96,2,6,39,82,2,39,85,2,39,88,2,39,91,2,39,94,2,22,97,2,9,149,3,1,95,2,39,168,0,39,97,2,44,98,2,9,120,3,39,196,1,3,22,99,2,9,161,3,1,98,2,39,196,1,44,100,2,9,120,3,39,201,1,3,43,101,2,2,39,99,2,22,102,2,9,161,3,1,100,2,39,201,1,39,102,2,44,103,2,9,120,3,39,32,2,3,43,104,2,3,39,99,2,39,102,2,22,105,2,9,161,3,1,103,2,39,32,2,39,105,2,44,106,2,9,120,3,39,241,1,3,43,107,2,4,39,99,2,39,102,2,39,105,2,22,108,2,9,161,3,1,106,2,39,241,1,39,108,2,44,109,2,9,120,3,39,246,1,3,43,110,2,5,39,99,2,39,102,2,39,105,2,39,108,2,22,111,2,9,161,3,1,109,2,39,246,1,39,111,2,44,112,2,9,120,3,39,60,2,3,43,113,2,6,39,99,2,39,102,2,39,105,2,39,108,2,39,111,2,22,114,2,9,161,3,1,112,2,39,60,2,39,114,2,44,115,2,9,57,0,41,116,2,169,3,3,44,117,2,9,69,0,39,116,2,3,22,118,2,9,174,3,2,115,2,117,2,41,119,2,183,3,44,120,2,9,57,0,41,121,2,189,3,3,44,122,2,9,69,0,39,121,2,3,43,123,2,2,39,118,2,22,124,2,9,174,3,2,120,2,122,2,39,119,2,39,124,2,44,125,2,9,57,0,41,126,2,195,3,3,44,127,2,9,69,0,39,126,2,3,43,128,2,3,39,118,2,39,124,2,22,129,2,9,174,3,2,125,2,127,2,39,119,2,39,129,2,44,130,2,9,57,0,41,131,2,201,3,3,44,132,2,9,69,0,39,131,2,3,43,133,2,4,39,118,2,39,124,2,39,129,2,22,134,2,9,174,3,2,130,2,132,2,39,119,2,39,134,2,44,135,2,9,57,0,41,136,2,207,3,3,44,137,2,9,69,0,39,136,2,3,43,138,2,5,39,118,2,39,124,2,39,129,2,39,134,2,22,139,2,9,174,3,2,135,2,137,2,39,119,2,39,139,2,44,140,2,9,57,0,41,141,2,214,3,3,44,142,2,9,69,0,39,141,2,3,43,143,2,6,39,118,2,39,124,2,39,129,2,39,134,2,39,139,2,22,144,2,9,174,3,2,140,2,142,2,39,119,2,39,144,2,44,145,2,9,57,0,39,116,2,3,44,146,2,9,69,0,39,116,2,3,22,147,2,9,220,3,2,145,2,146,2,39,119,2,44,148,2,9,57,0,39,121,2,3,44,149,2,9,69,0,39,121,2,3,43,150,2,2,39,147,2,22,151,2,9,220,3,2,148,2,149,2,39,119,2,39,151,2,44,152,2,9,57,0,39,126,2,3,44,153,2,9,69,0,39,126,2,3,43,154,2,3,39,147,2,39,151,2,22,155,2,9,220,3,2,152,2,153,2,39,119,2,39,155,2,44,156,2,9,57,0,39,141,2,3,44,157,2,9,69,0,39,141,2,3,43,158,2,4,39,147,2,39,151,2,39,155,2,22,159,2,9,220,3,2,156,2,157,2,39,119,2,39,159,2,44,160,2,9,57,0,39,131,2,3,44,161,2,9,69,0,39,131,2,3,43,162,2,5,39,147,2,39,151,2,39,155,2,39,159,2,22,163,2,9,220,3,2,160,2,161,2,39,119,2,39,163,2,44,164,2,9,57,0,39,136,2,3,44,165,2,9,69,0,39,136,2,3,43,166,2,6,39,147,2,39,151,2,39,155,2,39,159,2,39,163,2,22,167,2,9,220,3,2,164,2,165,2,39,119,2,39,167,2,44,168,2,9,57,0,39,116,2,3,44,169,2,9,69,0,39,116,2,3,22,170,2,9,234,3,2,168,2,169,2,39,119,2,44,171,2,9,57,0,39,121,2,3,44,172,2,9,69,0,39,121,2,3,43,173,2,2,39,170,2,22,174,2,9,234,3,2,171,2,172,2,39,119,2,39,174,2,44,175,2,9,57,0,39,126,2,3,44,176,2,9,69,0,39,126,2,3,43,177,2,3,39,170,2,39,174,2,22,178,2,9,234,3,2,175,2,176,2,39,119,2,39,178,2,44,179,2,9,57,0,39,141,2,3,44,180,2,9,69,0,39,141,2,3,43,181,2,4,39,170,2,39,174,2,39,178,2,22,182,2,9,234,3,2,179,2,180,2,39,119,2,39,182,2,44,183,2,9,57,0,39,131,2,3,44,184,2,9,69,0,39,131,2,3,43,185,2,5,39,170,2,39,174,2,39,178,2,39,182,2,22,186,2,9,234,3,2,183,2,184,2,39,119,2,39,186,2,44,187,2,9,57,0,39,136,2,3,44,188,2,9,69,0,39,136,2,3,43,189,2,6,39,170,2,39,174,2,39,178,2,39,182,2,39,186,2,22,190,2,9,234,3,2,187,2,188,2,39,119,2,39,190,2,44,191,2,9,57,0,39,116,2,3,44,192,2,9,69,0,39,116,2,3,22,193,2,9,246,3,2,191,2,192,2,39,119,2,44,194,2,9,57,0,39,121,2,3,44,195,2,9,69,0,39,121,2,3,43,196,2,2,39,193,2,22,197,2,9,246,3,2,194,2,195,2,39,119,2,39,197,2,44,198,2,9,57,0,39,126,2,3,44,199,2,9,69,0,39,126,2,3,43,200,2,3,39,193,2,39,197,2,22,201,2,9,246,3,2,198,2,199,2,39,119,2,39,201,2,44,202,2,9,57,0,39,141,2,3,44,203,2,9,69,0,39,141,2,3,43,204,2,4,39,193,2,39,197,2,39,201,2,22,205,2,9,246,3,2,202,2,203,2,39,119,2,39,205,2,44,206,2,9,57,0,39,131,2,3,44,207,2,9,69,0,39,131,2,3,43,208,2,5,39,193,2,39,197,2,39,201,2,39,205,2,22,209,2,9,246,3,2,206,2,207,2,39,119,2,39,209,2,44,210,2,9,57,0,39,136,2,3,44,211,2,9,69,0,39,136,2,3,43,212,2,6,39,193,2,39,197,2,39,201,2,39,205,2,39,209,2,22,213,2,9,246,3,2,210,2,211,2,39,119,2,39,213,2,44,214,2,9,57,0,39,116,2,3,44,215,2,9,69,0,39,116,2,3,22,216,2,9,7,4,2,214,2,215,2,39,119,2,44,217,2,9,57,0,39,121,2,3,44,218,2,9,69,0,39,121,2,3,43,219,2,2,39,216,2,22,220,2,9,7,4,2,217,2,218,2,39,119,2,39,220,2,44,221,2,9,57,0,39,126,2,3,44,222,2,9,69,0,39,126,2,3,43,223,2,3,39,216,2,39,220,2,22,224,2,9,7,4,2,221,2,222,2,39,119,2,39,224,2,44,225,2,9,57,0,39,141,2,3,44,226,2,9,69,0,39,141,2,3,43,227,2,4,39,216,2,39,220,2,39,224,2,22,228,2,9,7,4,2,225,2,226,2,39,119,2,39,228,2,44,229,2,9,57,0,39,131,2,3,44,230,2,9,69,0,39,131,2,3,43,231,2,5,39,216,2,39,220,2,39,224,2,39,228,2,22,232,2,9,7,4,2,229,2,230,2,39,119,2,39,232,2,44,233,2,9,57,0,39,136,2,3,44,234,2,9,69,0,39,136,2,3,43,235,2,6,39,216,2,39,220,2,39,224,2,39,228,2,39,232,2,22,236,2,9,7,4,2,233,2,234,2,39,119,2,39,236,2,44,237,2,9,57,0,39,119,2,3,44,238,2,9,69,0,39,119,2,3,43,239,2,7,39,216,2,39,220,2,39,224,2,39,228,2,39,232,2,39,236,2,22,240,2,9,7,4,2,237,2,238,2,39,119,2,39,240,2,44,241,2,9,57,0,39,116,2,3,44,242,2,9,69,0,39,116,2,3,22,243,2,9,13,4,2,241,2,242,2,39,119,2,44,244,2,9,57,0,39,121,2,3,44,245,2,9,69,0,39,121,2,3,43,246,2,2,39,243,2,22,247,2,9,13,4,2,244,2,245,2,39,119,2,39,247,2,44,248,2,9,57,0,39,126,2,3,44,249,2,9,69,0,39,126,2,3,43,250,2,3,39,243,2,39,247,2,22,251,2,9,13,4,2,248,2,249,2,39,119,2,39,251,2,44,252,2,9,57,0,39,141,2,3,44,253,2,9,69,0,39,141,2,3,43,254,2,4,39,243,2,39,247,2,39,251,2,22,255,2,9,13,4,2,252,2,253,2,39,119,2,39,255,2,44,0,3,9,57,0,39,131,2,3,44,1,3,9,69,0,39,131,2,3,43,2,3,5,39,243,2,39,247,2,39,251,2,39,255,2,22,3,3,9,13,4,2,0,3,1,3,39,119,2,39,3,3,44,4,3,9,57,0,39,136,2,3,44,5,3,9,69,0,39,136,2,3,43,6,3,6,39,243,2,39,247,2,39,251,2,39,255,2,39,3,3,22,7,3,9,13,4,2,4,3,5,3,39,119,2,39,7,3,44,8,3,9,57,0,39,119,2,3,44,9,3,9,69,0,39,119,2,3,43,10,3,7,39,243,2,39,247,2,39,251,2,39,255,2,39,3,3,39,7,3,22,11,3,9,13,4,2,8,3,9,3,39,119,2,39,11,3,44,12,3,9,57,0,39,119,2,3,22,13,3,9,22,4,1,12,3,41,14,3,26,4,44,15,3,9,57,0,39,119,2,3,22,16,3,9,31,4,1,15,3,39,14,3,44,17,3,9,57,0,39,119,2,3,22,18,3,9,35,4,1,17,3,39,119,2,44,19,3,9,93,1,39,117,0,3,22,20,3,9,39,4,1,19,3,39,117,0,44,21,3,9,93,1,39,90,1,3,43,22,3,2,39,20,3,22,23,3,9,39,4,1,21,3,39,117,0,39,23,3,44,24,3,9,93,1,39,117,0,3,22,25,3,9,48,4,1,24,3,39,117,0,44,26,3,9,93,1,39,90,1,3,43,27,3,2,39,25,3,22,28,3,9,48,4,1,26,3,39,117,0,39,28,3,44,29,3,9,93,1,39,117,0,3,22,30,3,9,56,4,1,29,3,39,117,0,44,31,3,9,93,1,39,90,1,3,43,32,3,2,39,30,3,22,33,3,9,56,4,1,31,3,39,117,0,39,33,3,44,34,3,9,64,4,41,35,3,72,4,3,44,36,3,9,82,4,41,37,3,82,4,3,22,38,3,9,90,4,2,34,3,36,3,41,39,3,104,4,44,40,3,9,82,4,41,41,3,114,4,3,22,42,3,9,130,4,1,40,3,41,43,3,142,4,44,44,3,9,82,4,41,45,3,147,4,3,44,46,3,9,159,4,39,160,0,3,22,47,3,9,161,4,2,44,3,46,3,39,248,1,44,48,3,9,82,4,39,45,3,3,44,49,3,9,159,4,39,160,0,3,44,50,3,9,168,4,39,160,0,3,43,51,3,2,39,47,3,22,52,3,9,161,4,3,48,3,49,3,50,3,39,248,1,39,52,3,44,53,3,9,82,4,41,54,3,173,4,3,44,55,3,9,159,4,39,108,1,3,43,56,3,3,39,47,3,39,52,3,22,57,3,9,161,4,2,53,3,55,3,39,248,1,39,57,3,44,58,3,9,82,4,41,59,3,185,4,3,44,60,3,9,159,4,39,108,1,3,43,61,3,4,39,47,3,39,52,3,39,57,3,22,62,3,9,161,4,2,58,3,60,3,41,63,3,196,4,39,62,3,44,64,3,9,82,4,41,65,3,201,4,3,44,66,3,9,159,4,39,108,1,3,44,67,3,9,168,4,39,160,0,3,43,68,3,5,39,47,3,39,52,3,39,57,3,39,62,3,22,69,3,9,161,4,3,64,3,66,3,67,3,39,248,1,39,69,3,44,70,3,9,82,4,39,65,3,3,44,71,3,9,159,4,39,108,1,3,43,72,3,6,39,47,3,39,52,3,39,57,3,39,62,3,39,69,3,22,73,3,9,161,4,2,70,3,71,3,39,248,1,39,73,3,44,74,3,9,82,4,39,41,3,3,44,75,3,9,159,4,39,108,1,3,43,76,3,7,39,47,3,39,52,3,39,57,3,39,62,3,39,69,3,39,73,3,22,77,3,9,161,4,2,74,3,75,3,39,248,1,39,77,3,44,78,3,9,82,4,39,41,3,3,44,79,3,9,159,4,39,150,1,3,43,80,3,8,39,47,3,39,52,3,39,57,3,39,62,3,39,69,3,39,73,3,39,77,3,22,81,3,9,161,4,2,78,3,79,3,39,248,1,39,81,3,44,82,3,9,220,4,41,83,3,228,4,3,22,84,3,9,241,4,1,82,3,39,114,1,44,85,3,9,220,4,41,86,3,253,4,3,44,87,3,9,161,4,39,203,0,3,43,88,3,2,39,84,3,22,89,3,9,241,4,2,85,3,87,3,39,114,1,39,89,3,44,90,3,9,82,4,39,45,3,3,44,91,3,9,159,4,39,108,1,3,43,92,3,9,39,47,3,39,52,3,39,57,3,39,62,3,39,69,3,39,73,3,39,77,3,39,81,3,22,93,3,9,161,4,2,90,3,91,3,39,248,1,39,93,3,44,94,3,9,82,4,39,45,3,3,44,95,3,9,159,4,39,108,1,3,44,96,3,9,168,4,39,160,0,3,43,97,3,10,39,47,3,39,52,3,39,57,3,39,62,3,39,69,3,39,73,3,39,77,3,39,81,3,39,93,3,22,98,3,9,161,4,3,94,3,95,3,96,3,39,248,1,39,98,3,44,99,3,9,82,4,39,54,3,3,44,100,3,9,159,4,39,150,1,3,43,101,3,11,39,47,3,39,52,3,39,57,3,39,62,3,39,69,3,39,73,3,39,77,3,39,81,3,39,93,3,39,98,3,22,102,3,9,161,4,2,99,3,100,3,39,248,1,39,102,3,44,103,3,9,82,4,39,54,3,3,44,104,3,9,159,4,39,150,1,3,44,105,3,9,168,4,39,160,0,3,43,106,3,12,39,47,3,39,52,3,39,57,3,39,62,3,39,69,3,39,73,3,39,77,3,39,81,3,39,93,3,39,98,3,39,102,3,22,107,3,9,161,4,3,103,3,104,3,105,3,39,248,1,39,107,3,44,108,3,9,12,5,41,109,3,18,5,3,44,110,3,9,159,4,39,43,3,3,22,111,3,9,26,5,2,108,3,110,3,39,114,1,44,112,3,9,12,5,41,113,3,36,5,3,44,114,3,9,159,4,39,43,3,3,43,115,3,2,39,111,3,22,116,3,9,26,5,2,112,3,114,3,39,63,3,39,116,3,44,117,3,9,250,1,39,3,0,3,22,118,3,9,45,5,1,117,3,39,3,0,44,119,3,9,250,1,39,3,0,3,22,120,3,9,50,5,1,119,3,39,3,0,44,121,3,9,250,1,39,47,0,3,43,122,3,2,39,118,3,22,123,3,9,45,5,1,121,3,39,47,0,39,123,3,44,124,3,9,250,1,39,47,0,3,43,125,3,2,39,120,3,22,126,3,9,50,5,1,124,3,39,47,0,39,126,3,44,127,3,9,250,1,39,3,0,3,22,128,3,9,55,5,1,127,3,39,3,0,44,129,3,9,250,1,39,47,0,3,43,130,3,2,39,128,3,22,131,3,9,55,5,1,129,3,39,47,0,39,131,3,44,132,3,9,62,5,39,160,0,3,44,133,3,9,161,4,39,203,0,3,22,134,3,9,74,5,2,132,3,133,3,39,160,0,44,135,3,9,62,5,39,108,1,3,44,136,3,9,161,4,39,203,0,3,43,137,3,2,39,134,3,22,138,3,9,74,5,2,135,3,136,3,39,108,1,39,138,3,44,139,3,9,62,5,39,150,1,3,44,140,3,9,161,4,39,203,0,3,43,141,3,3,39,134,3,39,138,3,22,142,3,9,74,5,2,139,3,140,3,39,150,1,39,142,3,44,143,3,9,62,5,39,114,1,3,44,144,3,9,161,4,39,203,0,3,43,145,3,4,39,134,3,39,138,3,39,142,3,22,146,3,9,74,5,2,143,3,144,3,39,114,1,39,146,3,44,147,3,9,62,5,39,160,0,3,44,148,3,9,94,5,39,108,1,3,22,149,3,9,101,5,2,147,3,148,3,39,160,0,44,150,3,9,62,5,39,108,1,3,44,151,3,9,94,5,39,108,1,3,43,152,3,2,39,149,3,22,153,3,9,101,5,2,150,3,151,3,39,108,1,39,153,3,44,154,3,9,62,5,39,150,1,3,44,155,3,9,94,5,39,108,1,3,43,156,3,3,39,149,3,39,153,3,22,157,3,9,101,5,2,154,3,155,3,39,150,1,39,157,3,44,158,3,9,62,5,39,114,1,3,44,159,3,9,94,5,39,108,1,3,43,160,3,4,39,149,3,39,153,3,39,157,3,22,161,3,9,101,5,2,158,3,159,3,39,114,1,39,161,3,44,162,3,9,121,5,39,248,1,3,44,163,3,9,125,5,39,248,1,3,22,164,3,29,8,0,16,0,0,129,5,2,162,3,163,3,39,248,1,44,165,3,9,121,5,39,248,1,3,44,166,3,9,125,5,39,248,1,3,22,167,3,29,8,0,16,0,0,141,5,2,165,3,166,3,39,248,1,44,168,3,9,121,5,39,248,1,3,44,169,3,9,125,5,39,248,1,3,22,170,3,29,8,0,16,0,0,151,5,2,168,3,169,3,39,248,1,44,171,3,9,121,5,39,248,1,3,44,172,3,9,125,5,39,248,1,3,22,173,3,29,8,0,16,0,0,161,5,2,171,3,172,3,39,248,1,44,174,3,9,121,5,39,248,1,3,44,175,3,9,125,5,39,248,1,3,22,176,3,29,8,0,16,0,0,176,5,2,174,3,175,3,39,248,1,44,177,3,9,121,5,39,248,1,3,44,178,3,9,125,5,39,248,1,3,22,179,3,29,8,0,16,0,0,191,5,2,177,3,178,3,39,248,1,44,180,3,9,121,5,39,248,1,3,44,181,3,9,125,5,39,248,1,3,22,182,3,29,8,0,16,0,0,204,5,2,180,3,181,3,39,248,1,44,183,3,9,121,5,39,248,1,3,44,184,3,9,125,5,39,248,1,3,22,185,3,29,8,0,16,0,0,217,5,2,183,3,184,3,39,248,1,44,186,3,9,121,5,39,248,1,3,44,187,3,9,125,5,39,248,1,3,22,188,3,29,8,0,16,0,0,231,5,2,186,3,187,3,39,248,1,44,189,3,9,121,5,39,248,1,3,44,190,3,9,125,5,39,248,1,3,22,191,3,29,8,0,16,0,0,245,5,2,189,3,190,3,39,248,1,44,192,3,9,121,5,39,248,1,3,44,193,3,9,125,5,39,248,1,3,22,194,3,29,8,0,16,0,0,4,6,2,192,3,193,3,39,248,1,44,195,3,9,121,5,39,248,1,3,44,196,3,9,125,5,39,248,1,3,22,197,3,29,8,0,16,0,0,19,6,2,195,3,196,3,39,248,1,44,198,3,9,121,5,39,248,1,3,44,199,3,9,125,5,39,248,1,3,22,200,3,29,8,0,16,0,0,29,6,2,198,3,199,3,39,248,1,44,201,3,9,121,5,39,248,1,3,44,202,3,9,125,5,39,248,1,3,22,203,3,29,8,0,16,0,0,40,6,2,201,3,202,3,39,248,1,44,204,3,9,121,5,39,248,1,3,44,205,3,9,125,5,39,248,1,3,22,206,3,29,8,0,16,0,0,55,6,2,204,3,205,3,39,248,1,44,207,3,9,68,6,39,168,0,3,44,208,3,9,71,6,39,168,0,3,44,209,3,9,74,6,39,168,0,3,44,210,3,9,77,6,39,168,0,3,22,211,3,29,8,0,16,0,0,80,6,4,207,3,208,3,209,3,210,3,39,168,0,44,212,3,9,121,5,39,248,1,3,44,213,3,9,125,5,39,248,1,3,22,214,3,29,8,0,16,0,0,105,6,2,212,3,213,3,39,248,1,44,215,3,9,121,5,39,248,1,3,44,216,3,9,125,5,39,248,1,3,22,217,3,29,8,0,16,0,0,119,6,2,215,3,216,3,39,248,1,44,218,3,9,121,5,39,248,1,3,44,219,3,9,125,5,39,248,1,3,22,220,3,29,8,0,16,0,0,132,6,2,218,3,219,3,39,248,1,44,221,3,9,146,6,39,168,0,3,44,222,3,9,148,6,39,168,0,3,22,223,3,29,8,0,16,0,0,150,6,2,221,3,222,3,39,168,0,44,224,3,9,68,6,39,168,0,3,44,225,3,9,71,6,39,168,0,3,44,226,3,9,74,6,39,168,0,3,44,227,3,9,77,6,39,168,0,3,22,228,3,29,8,0,16,0,0,166,6,4,224,3,225,3,226,3,227,3,39,168,0,44,229,3,9,121,5,39,248,1,3,44,230,3,9,125,5,39,248,1,3,22,231,3,29,8,0,16,0,0,189,6,2,229,3,230,3,39,248,1,44,232,3,9,68,6,39,168,0,3,44,233,3,9,71,6,39,168,0,3,44,234,3,9,74,6,39,168,0,3,44,235,3,9,77,6,39,168,0,3,22,236,3,29,8,0,16,0,0,207,6,4,232,3,233,3,234,3,235,3,39,168,0,44,237,3,9,121,5,39,248,1,3,44,238,3,9,125,5,39,248,1,3,22,239,3,29,8,0,16,0,0,229,6,2,237,3,238,3,39,248,1,44,240,3,9,121,5,39,248,1,3,44,241,3,9,125,5,39,248,1,3,22,242,3,29,8,0,16,0,0,246,6,2,240,3,241,3,39,248,1,44,243,3,9,68,6,39,168,0,3,44,244,3,9,71,6,39,168,0,3,44,245,3,9,74,6,39,168,0,3,44,246,3,9,77,6,39,168,0,3,22,247,3,29,8,0,16,0,0,7,7,4,243,3,244,3,245,3,246,3,39,168,0,44,248,3,9,121,5,39,248,1,3,44,249,3,9,125,5,39,248,1,3,22,250,3,29,8,0,16,0,0,29,7,2,248,3,249,3,39,248,1,44,251,3,9,121,5,39,248,1,3,44,252,3,9,125,5,39,248,1,3,22,253,3,29,8,0,16,0,0,46,7,2,251,3,252,3,39,248,1,44,254,3,9,121,5,39,248,1,3,44,255,3,9,125,5,39,248,1,3,22,0,4,29,8,0,16,0,0,63,7,2,254,3,255,3,39,248,1,44,1,4,9,121,5,39,248,1,3,44,2,4,9,125,5,39,248,1,3,22,3,4,29,8,0,16,0,0,79,7,2,1,4,2,4,39,248,1,44,4,4,9,94,7,39,154,1,3,22,5,4,29,8,0,16,0,0,100,7,1,4,4,39,168,0,44,6,4,9,123,7,39,154,1,3,44,7,4,9,135,7,39,168,0,3,44,8,4,9,141,7,39,154,1,3,22,9,4,29,8,0,16,0,0,150,7,3,6,4,7,4,8,4,39,154,1,44,10,4,9,94,7,39,154,1,3,22,11,4,29,8,0,16,0,0,177,7,1,10,4,39,168,0,44,12,4,9,201,7,39,154,1,3,44,13,4,9,211,7,39,168,0,3,22,14,4,29,8,0,16,0,0,215,7,2,12,4,13,4,39,154,1,44,15,4,9,250,7,39,154,1,3,44,16,4,9,6,8,39,154,1,3,22,17,4,29,8,0,16,0,0,15,8,2,15,4,16,4,39,154,1,44,18,4,9,121,5,39,248,1,3,44,19,4,9,125,5,39,248,1,3,22,20,4,29,8,0,16,0,0,43,8,2,18,4,19,4,39,248,1,44,21,4,9,121,5,39,248,1,3,44,22,4,9,125,5,39,248,1,3,22,23,4,29,8,0,16,0,0,53,8,2,21,4,22,4,39,248,1,44,24,4,9,121,5,39,248,1,3,44,25,4,9,125,5,39,248,1,3,22,26,4,29,8,0,16,0,0,70,8,2,24,4,25,4,39,248,1,44,27,4,9,121,5,39,248,1,3,44,28,4,9,125,5,39,248,1,3,22,29,4,29,8,0,16,0,0,82,8,2,27,4,28,4,39,248,1,44,30,4,9,99,8,39,1,0,3,44,31,4,9,121,5,39,248,1,3,44,32,4,9,125,5,39,248,1,3,22,33,4,29,8,0,16,0,0,104,8,3,30,4,31,4,32,4,39,248,1,44,34,4,9,94,7,39,248,1,3,22,35,4,29,8,0,16,0,0,110,8,1,34,4,39,248,1,44,36,4,9,94,7,39,114,1,3,22,37,4,29,8,0,16,0,0,119,8,1,36,4,39,114,1,44,38,4,9,250,1,39,150,1,3,22,39,4,29,8,0,16,0,0,134,8,1,38,4,39,108,1,135,0,2,0,0,0,100,7,204,3,177,7,210,3,80,6,154,3,150,7,208,3,15,8,216,3,215,7,213,3,207,6,179,3,166,6,171,3,150,6,166,3,7,7,190,3,167,0,114,0,64,0,60,0,106,0,82,0,31,4,229,2,22,4,227,2,59,0,57,0,100,0,79,0,71,0,67,0,112,0,85,0,39,4,235,2,104,8,232,3,129,5,107,3,70,8,225,3,229,6,182,3,189,6,174,3,119,6,160,3,46,7,196,3,151,5,113,3,4,6,137,3,204,5,125,3,231,5,131,3,176,5,119,3,63,7,199,3,246,6,185,3,43,8,219,3,132,6,163,3,82,8,228,3,40,6,146,3,79,7,202,3,105,6,157,3,29,6,143,3,53,8,222,3,55,6,149,3,29,7,193,3,141,5,110,3,245,5,134,3,191,5,122,3,217,5,128,3,161,5,116,3,19,6,140,3,214,0,147,0,17,1,249,0,49,0,51,0,90,0,73,0,119,2,142,1,45,5,65,3,50,5,68,3,149,3,61,2,99,2,128,1,108,2,135,1,7,4,197,2,122,0,92,0,130,0,98,0,161,2,157,1,48,4,240,2,56,4,245,2,99,1,78,1,186,0,127,0,159,1,90,1,219,0,152,0,163,1,94,1,141,2,149,1,55,5,73,3,234,3,147,2,246,3,170,2,26,5,58,3,114,1,80,1,101,5,103,3,74,5,88,3,161,3,78,2,155,0,107,0,87,1,76,1,81,1,74,1,169,1,97,1,86,2,121,1,174,3,101,2,220,3,124,2,126,0,95,0,135,0,101,0,90,4,249,2,198,2,177,1,255,0,220,0,247,0,197,0,34,1,37,1,231,0,167,0,242,0,174,0,131,2,147,1,35,4,231,2,13,4,224,2,215,2,247,1,58,2,115,1,203,1,101,1,237,1,105,1,184,1,99,1,224,1,103,1,118,0,89,0,134,8,238,3,31,0,45,0,173,2,164,1,185,2,173,1,198,0,137,0,204,0,142,0,161,4,51,3,23,1,254,0,181,0,122,0,45,0,48,0,85,0,70,0,70,1,71,1,140,0,104,0,53,1,52,1,241,4,33,3,53,0,54,0,95,0,76,0,130,4,251,2,122,3,44,2,192,0,132,0,139,1,82,1,71,2,117,1,12,2,109,1,43,2,113,1,252,1,107,1,28,2,111,1,110,8,234,3,119,8,236,3,12,44,21,164,3,2,40,0,0,0,0,1,34,6,39,248,1,1,18,0,0,0,0,1,0,21,167,3,2,40,0,0,0,0,1,34,47,165,3,0,1,0,21,170,3,2,40,0,0,0,0,1,34,47,169,3,0,1,0,21,173,3,2,40,0,0,0,0,1,34,1,47,171,3,0,57,1,1,18,0,0,128,63,58,38,47,171,3,0,1,3,39,168,0,59,47,172,3,0,39,248,1,39,248,1,1,0,21,176,3,2,40,0,0,0,0,1,34,1,1,1,18,0,0,128,63,58,38,47,175,3,0,1,3,39,168,0,59,47,174,3,0,39,248,1,57,47,175,3,0,39,248,1,1,0,21,179,3,2,40,0,0,0,0,2,23,1,35,139,8,3,0,2,40,0,0,0,0,1,23,0,1,47,177,3,0,76,6,39,248,1,1,18,0,0,0,0,39,14,3,2,40,0,0,0,0,1,34,6,39,248,1,1,18,0,0,0,0,1,48,1,48,34,1,47,177,3,0,59,38,47,178,3,0,1,3,39,248,1,1,0,21,182,3,2,40,0,0,0,0,1,34,20,39,248,1,179,3,2,47,181,3,0,47,180,3,0,1,1,179,3,21,185,3,2,40,0,0,0,0,1,34,1,1,18,0,0,128,63,58,38,47,184,3,0,1,3,39,168,0,59,47,183,3,0,39,248,1,1,0,21,188,3,2,40,0,0,0,0,1,34,1,1,18,0,0,128,63,58,38,47,186,3,0,1,3,39,168,0,59,47,187,3,0,39,248,1,1,0,21,191,3,2,40,0,0,0,0,1,34,1,1,38,47,190,3,0,1,3,59,47,189,3,0,39,248,1,57,1,1,18,0,0,128,63,58,38,47,189,3,0,1,3,39,168,0,59,47,190,3,0,39,248,1,39,248,1,1,0,21,194,3,2,40,0,0,0,0,1,34,1,1,1,18,0,0,128,63,58,38,47,193,3,0,1,3,39,168,0,59,47,192,3,0,39,248,1,57,1,38,47,192,3,0,1,3,59,47,193,3,0,39,248,1,39,248,1,1,0,21,197,3,2,40,0,0,0,0,1,34,1,1,1,18,0,0,128,63,58,38,47,196,3,0,1,3,39,168,0,59,47,195,3,0,39,248,1,57,1,1,18,0,0,128,63,58,38,47,195,3,0,1,3,39,168,0,59,47,196,3,0,39,248,1,39,248,1,1,0,21,200,3,2,40,0,0,0,0,1,34,20,39,248,1,196,0,2,1,47,198,3,0,57,47,199,3,0,39,248,1,18,0,0,128,63,1,0,21,203,3,2,40,0,0,0,0,1,34,1,47,201,3,0,59,47,202,3,0,39,248,1,1,0,21,206,3,2,40,0,0,0,0,1,34,1,47,204,3,0,57,1,1,18,0,0,128,63,58,47,204,3,0,39,248,1,59,47,205,3,0,39,248,1,39,248,1,1,0,21,211,3,2,40,0,0,0,0,2,23,0,1,1,18,0,0,0,64,59,47,209,3,0,39,168,0,81,47,210,3,0,39,14,3,2,40,0,0,0,0,1,34,1,1,18,0,0,0,64,59,47,207,3,0,39,168,0,59,47,209,3,0,39,168,0,1,48,34,1,1,47,208,3,0,59,47,210,3,0,39,168,0,58,1,1,18,0,0,0,64,59,1,47,210,3,0,58,47,209,3,0,39,168,0,39,168,0,59,1,47,208,3,0,58,47,207,3,0,39,168,0,39,168,0,39,168,0,1,0,21,214,3,2,40,1,0,44,40,4,9,185,8,39,248,1,2,1,0,185,8,0,0,3,46,39,248,1,1,45,40,4,0,6,39,248,1,4,20,39,168,0,211,3,4,38,47,212,3,0,1,0,38,47,212,3,0,1,3,38,47,213,3,0,1,0,38,47,213,3,0,1,3,20,39,168,0,211,3,4,38,47,212,3,0,1,1,38,47,212,3,0,1,3,38,47,213,3,0,1,1,38,47,213,3,0,1,3,20,39,168,0,211,3,4,38,47,212,3,0,1,2,38,47,212,3,0,1,3,38,47,213,3,0,1,2,38,47,213,3,0,1,3,1,38,47,212,3,0,1,3,57,1,1,18,0,0,128,63,58,38,47,212,3,0,1,3,39,168,0,59,38,47,213,3,0,1,3,39,168,0,39,168,0,15,1,38,47,40,4,2,3,0,1,2,82,1,1,38,47,213,3,0,3,0,1,2,59,1,18,0,0,128,63,58,38,47,212,3,0,1,3,39,168,0,39,154,1,57,1,38,47,212,3,0,3,0,1,2,59,1,18,0,0,128,63,58,38,47,213,3,0,1,3,39,168,0,39,154,1,39,154,1,39,154,1,34,47,40,4,0,1,1,211,3,21,217,3,2,40,1,0,44,41,4,9,185,8,39,248,1,2,1,0,185,8,0,0,3,46,39,248,1,1,45,41,4,0,20,39,248,1,173,3,2,47,215,3,0,47,216,3,0,15,1,38,47,41,4,1,3,0,1,2,75,20,39,154,1,192,0,2,38,47,41,4,0,3,0,1,2,1,1,1,18,0,0,128,63,58,38,47,216,3,0,1,3,39,168,0,59,38,47,215,3,0,3,0,1,2,39,154,1,57,38,47,216,3,0,3,0,1,2,39,154,1,39,154,1,34,47,41,4,0,1,1,173,3,21,220,3,2,40,1,0,44,42,4,9,185,8,39,248,1,2,1,0,185,8,0,0,3,46,39,248,1,1,45,42,4,0,20,39,248,1,173,3,2,47,218,3,0,47,219,3,0,15,1,38,47,42,4,1,3,0,1,2,75,20,39,154,1,216,0,2,38,47,42,4,0,3,0,1,2,1,1,1,18,0,0,128,63,58,38,47,219,3,0,1,3,39,168,0,59,38,47,218,3,0,3,0,1,2,39,154,1,57,38,47,219,3,0,3,0,1,2,39,154,1,39,154,1,34,47,42,4,0,1,1,173,3,21,223,3,2,40,0,0,0,0,1,23,1,35,192,8,3,0,2,40,0,0,0,0,1,34,1,47,221,3,0,60,1,47,222,3,0,57,18,119,204,43,50,39,168,0,39,168,0,1,2,40,0,0,0,0,1,34,1,47,221,3,0,60,47,222,3,0,39,168,0,1,1,0,21,228,3,2,40,0,0,0,0,1,23,0,1,47,226,3,0,76,18,0,0,0,0,39,14,3,2,40,0,0,0,0,1,34,1,47,224,3,0,59,1,18,0,0,128,63,58,47,227,3,0,39,168,0,39,168,0,1,2,40,1,0,44,43,4,9,148,6,39,168,0,2,1,0,148,6,0,0,4,46,39,168,0,1,45,43,4,0,1,47,225,3,0,58,47,224,3,0,39,168,0,23,0,1,47,43,4,0,76,18,0,0,0,0,39,14,3,2,40,0,0,0,0,1,34,1,1,1,47,225,3,0,59,47,227,3,0,39,168,0,57,1,47,224,3,0,59,1,18,0,0,128,63,58,47,227,3,0,39,168,0,39,168,0,39,168,0,57,1,47,226,3,0,59,1,18,0,0,128,63,58,47,225,3,0,39,168,0,39,168,0,39,168,0,1,48,15,1,47,43,4,1,75,20,39,168,0,192,0,2,47,227,3,0,20,39,168,0,223,3,2,1,47,226,3,0,59,47,225,3,0,39,168,0,47,43,4,0,39,168,0,34,1,1,1,47,43,4,0,59,47,225,3,0,39,168,0,57,1,47,224,3,0,59,1,18,0,0,128,63,58,47,227,3,0,39,168,0,39,168,0,39,168,0,57,1,47,226,3,0,59,1,18,0,0,128,63,58,47,225,3,0,39,168,0,39,168,0,39,168,0,1,1,1,223,3,21,231,3,2,40,0,0,0,0,1,34,6,39,248,1,4,20,39,168,0,228,3,4,38,47,229,3,0,1,0,38,47,229,3,0,1,3,38,47,230,3,0,1,0,38,47,230,3,0,1,3,20,39,168,0,228,3,4,38,47,229,3,0,1,1,38,47,229,3,0,1,3,38,47,230,3,0,1,1,38,47,230,3,0,1,3,20,39,168,0,228,3,4,38,47,229,3,0,1,2,38,47,229,3,0,1,3,38,47,230,3,0,1,2,38,47,230,3,0,1,3,1,38,47,229,3,0,1,3,57,1,1,18,0,0,128,63,58,38,47,229,3,0,1,3,39,168,0,59,38,47,230,3,0,1,3,39,168,0,39,168,0,1,1,228,3,21,236,3,2,40,1,0,44,44,4,9,148,6,39,168,0,2,1,0,148,6,0,0,3,23,0,1,47,235,3,0,76,47,234,3,0,39,14,3,2,40,0,0,0,0,1,34,1,1,1,47,233,3,0,59,47,235,3,0,39,168,0,57,1,47,232,3,0,59,1,18,0,0,128,63,58,47,235,3,0,39,168,0,39,168,0,39,168,0,57,1,47,234,3,0,59,1,18,0,0,128,63,58,47,233,3,0,39,168,0,39,168,0,39,168,0,1,23,0,1,47,232,3,0,76,18,0,0,0,0,39,14,3,2,40,0,0,0,0,1,34,1,47,234,3,0,59,1,18,0,0,128,63,58,47,233,3,0,39,168,0,39,168,0,1,48,46,39,168,0,1,45,44,4,0,20,39,168,0,216,0,2,18,0,0,0,0,1,47,235,3,0,58,20,39,168,0,223,3,2,1,1,47,235,3,0,58,47,234,3,0,39,168,0,59,47,233,3,0,39,168,0,47,232,3,0,39,168,0,34,1,1,1,47,44,4,0,59,47,233,3,0,39,168,0,57,1,47,232,3,0,59,1,18,0,0,128,63,58,47,235,3,0,39,168,0,39,168,0,39,168,0,57,1,47,234,3,0,59,1,18,0,0,128,63,58,47,233,3,0,39,168,0,39,168,0,39,168,0,1,1,223,3,21,239,3,2,40,0,0,0,0,1,34,6,39,248,1,4,20,39,168,0,236,3,4,38,47,237,3,0,1,0,38,47,237,3,0,1,3,38,47,238,3,0,1,0,38,47,238,3,0,1,3,20,39,168,0,236,3,4,38,47,237,3,0,1,1,38,47,237,3,0,1,3,38,47,238,3,0,1,1,38,47,238,3,0,1,3,20,39,168,0,236,3,4,38,47,237,3,0,1,2,38,47,237,3,0,1,3,38,47,238,3,0,1,2,38,47,238,3,0,1,3,1,38,47,237,3,0,1,3,57,1,1,18,0,0,128,63,58,38,47,237,3,0,1,3,39,168,0,59,38,47,238,3,0,1,3,39,168,0,39,168,0,1,1,236,3,21,242,3,2,40,0,0,0,0,1,34,20,39,248,1,214,3,2,47,241,3,0,47,240,3,0,1,1,214,3,21,247,3,2,40,0,0,0,0,2,23,0,1,1,18,0,0,0,64,59,47,243,3,0,39,168,0,81,47,244,3,0,39,14,3,2,40,0,0,0,0,1,34,1,1,20,39,168,0,223,3,2,1,1,47,245,3,0,59,47,245,3,0,39,168,0,59,1,47,244,3,0,58,1,18,0,0,0,64,59,47,243,3,0,39,168,0,39,168,0,39,168,0,47,246,3,0,57,1,1,18,0,0,128,63,58,47,246,3,0,39,168,0,59,47,243,3,0,39,168,0,39,168,0,57,1,47,245,3,0,59,1,1,33,58,47,244,3,0,57,1,18,0,0,0,64,59,47,243,3,0,39,168,0,39,168,0,57,18,0,0,128,63,39,168,0,39,168,0,39,168,0,1,23,0,1,1,18,0,0,128,64,59,47,245,3,0,39,168,0,81,47,246,3,0,39,14,3,2,40,4,0,44,45,4,9,244,8,39,168,0,2,44,46,4,9,249,8,39,168,0,2,44,47,4,9,254,8,39,168,0,2,44,48,4,9,4,9,39,168,0,2,4,0,249,8,1,0,244,8,0,0,4,9,3,0,254,8,2,0,5,46,39,168,0,1,45,45,4,0,1,47,245,3,0,59,47,245,3,0,39,168,0,46,39,168,0,1,45,46,4,0,1,47,45,4,0,59,47,245,3,0,39,168,0,46,39,168,0,1,45,47,4,0,1,47,246,3,0,59,47,246,3,0,39,168,0,46,39,168,0,1,45,48,4,0,1,47,47,4,0,59,47,246,3,0,39,168,0,34,20,39,168,0,223,3,2,1,1,1,1,47,47,4,0,59,1,47,243,3,0,58,1,47,245,3,0,59,1,1,1,18,0,0,64,64,59,47,244,3,0,39,168,0,58,1,18,0,0,192,64,59,47,243,3,0,39,168,0,39,168,0,58,18,0,0,128,63,39,168,0,39,168,0,39,168,0,39,168,0,57,1,1,1,18,0,0,64,65,59,47,246,3,0,39,168,0,59,47,45,4,0,39,168,0,59,1,47,244,3,0,58,1,18,0,0,0,64,59,47,243,3,0,39,168,0,39,168,0,39,168,0,39,168,0,58,1,1,18,0,0,128,65,59,47,46,4,0,39,168,0,59,1,47,244,3,0,58,1,18,0,0,0,64,59,47,243,3,0,39,168,0,39,168,0,39,168,0,39,168,0,58,1,47,48,4,0,59,47,243,3,0,39,168,0,39,168,0,47,47,4,0,1,48,34,1,1,1,1,47,245,3,0,59,1,1,47,244,3,0,58,1,18,0,0,0,64,59,47,243,3,0,39,168,0,39,168,0,57,18,0,0,128,63,39,168,0,39,168,0,57,47,243,3,0,39,168,0,58,1,20,39,168,0,108,0,1,1,47,246,3,0,59,47,245,3,0,39,168,0,59,1,47,244,3,0,58,1,18,0,0,0,64,59,47,243,3,0,39,168,0,39,168,0,39,168,0,39,168,0,58,1,47,246,3,0,59,47,243,3,0,39,168,0,39,168,0,1,1,223,3,21,250,3,2,40,0,0,0,0,2,23,0,1,38,47,249,3,0,1,3,76,18,0,0,0,0,39,14,3,2,40,0,0,0,0,1,34,47,248,3,0,1,48,34,6,39,248,1,4,20,39,168,0,247,3,4,38,47,248,3,0,1,0,38,47,248,3,0,1,3,38,47,249,3,0,1,0,38,47,249,3,0,1,3,20,39,168,0,247,3,4,38,47,248,3,0,1,1,38,47,248,3,0,1,3,38,47,249,3,0,1,1,38,47,249,3,0,1,3,20,39,168,0,247,3,4,38,47,248,3,0,1,2,38,47,248,3,0,1,3,38,47,249,3,0,1,2,38,47,249,3,0,1,3,1,38,47,248,3,0,1,3,57,1,1,18,0,0,128,63,58,38,47,248,3,0,1,3,39,168,0,59,38,47,249,3,0,1,3,39,168,0,39,168,0,1,1,247,3,21,253,3,2,40,0,0,0,0,1,34,6,39,248,1,2,1,1,38,47,251,3,0,3,0,1,2,57,38,47,252,3,0,3,0,1,2,39,154,1,58,1,18,0,0,0,64,59,20,39,154,1,192,0,2,1,38,47,251,3,0,3,0,1,2,59,38,47,252,3,0,1,3,39,154,1,1,38,47,252,3,0,3,0,1,2,59,38,47,251,3,0,1,3,39,154,1,39,154,1,39,154,1,1,38,47,251,3,0,1,3,57,1,1,18,0,0,128,63,58,38,47,251,3,0,1,3,39,168,0,59,38,47,252,3,0,1,3,39,168,0,39,168,0,1,0,21,0,4,2,40,0,0,0,0,1,34,6,39,248,1,2,1,1,38,47,255,3,0,3,0,1,2,57,38,47,254,3,0,3,0,1,2,39,154,1,58,1,1,18,0,0,0,64,59,38,47,255,3,0,3,0,1,2,39,154,1,59,38,47,254,3,0,3,0,1,2,39,154,1,39,154,1,1,38,47,254,3,0,1,3,57,1,1,18,0,0,128,63,58,38,47,254,3,0,1,3,39,168,0,59,38,47,255,3,0,1,3,39,168,0,39,168,0,1,0,21,3,4,2,40,0,0,0,0,1,34,6,39,248,1,2,1,1,1,1,18,0,0,128,63,58,38,47,1,4,0,1,3,39,168,0,59,38,47,2,4,0,3,0,1,2,39,154,1,57,1,1,18,0,0,128,63,58,38,47,2,4,0,1,3,39,168,0,59,38,47,1,4,0,3,0,1,2,39,154,1,39,154,1,57,1,38,47,1,4,0,3,0,1,2,59,38,47,2,4,0,3,0,1,2,39,154,1,39,154,1,1,38,47,1,4,0,1,3,57,1,1,18,0,0,128,63,58,38,47,1,4,0,1,3,39,168,0,59,38,47,2,4,0,1,3,39,168,0,39,168,0,1,0,21,5,4,2,40,0,0,0,0,1,34,20,39,168,0,148,1,2,6,39,154,1,3,18,154,153,153,62,18,61,10,23,63,18,174,71,225,61,47,4,4,0,1,0,21,9,4,2,40,4,0,44,49,4,9,10,9,39,168,0,2,44,50,4,9,185,8,39,154,1,2,44,51,4,9,14,9,39,168,0,2,44,52,4,9,22,9,39,168,0,2,4,0,10,9,0,0,22,9,3,0,14,9,2,0,185,8,1,0,7,46,39,168,0,1,45,49,4,0,20,39,168,0,5,4,1,47,8,4,0,46,39,154,1,1,45,50,4,0,1,1,47,49,4,0,58,20,39,168,0,5,4,1,47,6,4,0,39,168,0,57,47,6,4,0,39,154,1,46,39,168,0,1,45,51,4,0,20,39,168,0,192,0,2,20,39,168,0,192,0,2,38,47,50,4,0,1,0,38,47,50,4,0,1,1,38,47,50,4,0,1,2,46,39,168,0,1,45,52,4,0,20,39,168,0,216,0,2,20,39,168,0,216,0,2,38,47,50,4,0,1,0,38,47,50,4,0,1,1,38,47,50,4,0,1,2,23,0,1,1,47,51,4,0,79,18,0,0,0,0,39,14,3,70,1,47,49,4,0,77,47,51,4,0,39,14,3,39,14,3,2,40,0,0,0,0,1,15,1,47,50,4,1,75,1,47,49,4,0,57,1,1,1,47,50,4,0,58,47,49,4,0,39,154,1,59,47,49,4,0,39,154,1,60,1,47,49,4,0,58,47,51,4,0,39,168,0,39,154,1,39,154,1,39,154,1,1,48,23,0,1,1,47,52,4,0,78,47,7,4,0,39,14,3,70,1,47,52,4,0,77,47,49,4,0,39,14,3,39,14,3,2,40,0,0,0,0,1,34,1,47,49,4,0,57,1,1,1,47,50,4,0,58,47,49,4,0,39,154,1,59,1,47,7,4,0,58,47,49,4,0,39,168,0,39,154,1,60,1,47,52,4,0,58,47,49,4,0,39,168,0,39,154,1,39,154,1,1,48,34,47,50,4,0,1,1,5,4,21,11,4,2,40,0,0,0,0,1,34,1,20,39,168,0,216,0,2,20,39,168,0,216,0,2,38,47,10,4,0,1,0,38,47,10,4,0,1,1,38,47,10,4,0,1,2,58,20,39,168,0,192,0,2,20,39,168,0,192,0,2,38,47,10,4,0,1,0,38,47,10,4,0,1,1,38,47,10,4,0,1,2,39,168,0,1,0,21,14,4,2,40,0,0,0,0,2,23,0,1,38,47,12,4,0,1,0,79,38,47,12,4,0,1,2,39,14,3,2,40,0,0,0,0,1,34,6,39,154,1,3,18,0,0,0,0,1,1,47,13,4,0,59,1,38,47,12,4,0,1,1,58,38,47,12,4,0,1,0,39,168,0,39,168,0,60,1,38,47,12,4,0,1,2,58,38,47,12,4,0,1,0,39,168,0,39,168,0,47,13,4,0,1,48,34,6,39,154,1,1,18,0,0,0,0,1,0,21,17,4,2,40,1,0,44,53,4,9,211,7,39,168,0,2,1,0,211,7,0,0,3,46,39,168,0,1,45,53,4,0,20,39,168,0,11,4,1,47,16,4,0,23,0,1,38,47,15,4,0,1,0,81,38,47,15,4,0,1,1,39,14,3,2,40,0,0,0,0,1,23,0,1,38,47,15,4,0,1,1,81,38,47,15,4,0,1,2,39,14,3,2,40,0,0,0,0,1,15,1,38,47,15,4,1,3,0,1,2,75,20,39,154,1,14,4,2,38,47,15,4,0,3,0,1,2,47,53,4,0,39,154,1,1,23,0,1,38,47,15,4,0,1,0,81,38,47,15,4,0,1,2,39,14,3,2,40,0,0,0,0,1,15,1,38,47,15,4,1,3,0,2,1,75,20,39,154,1,14,4,2,38,47,15,4,0,3,0,2,1,47,53,4,0,39,154,1,1,2,40,0,0,0,0,1,15,1,38,47,15,4,1,3,2,0,1,75,20,39,154,1,14,4,2,38,47,15,4,0,3,2,0,1,47,53,4,0,39,154,1,1,1,23,0,1,38,47,15,4,0,1,0,81,38,47,15,4,0,1,2,39,14,3,2,40,0,0,0,0,1,15,1,38,47,15,4,1,3,1,0,2,75,20,39,154,1,14,4,2,38,47,15,4,0,3,1,0,2,47,53,4,0,39,154,1,1,23,0,1,38,47,15,4,0,1,1,81,38,47,15,4,0,1,2,39,14,3,2,40,0,0,0,0,1,15,1,38,47,15,4,1,3,1,2,0,75,20,39,154,1,14,4,2,38,47,15,4,0,3,1,2,0,47,53,4,0,39,154,1,1,2,40,0,0,0,0,1,15,1,38,47,15,4,1,3,2,1,0,75,20,39,154,1,14,4,2,38,47,15,4,0,3,2,1,0,47,53,4,0,39,154,1,1,34,47,15,4,0,1,2,11,4,14,4,21,20,4,2,40,3,0,44,54,4,9,135,7,39,168,0,2,44,55,4,9,30,9,39,154,1,2,44,56,4,9,34,9,39,154,1,2,3,0,135,7,0,0,34,9,2,0,30,9,1,0,4,46,39,168,0,1,45,54,4,0,1,38,47,19,4,0,1,3,59,38,47,18,4,0,1,3,39,168,0,46,39,154,1,1,45,55,4,0,1,38,47,18,4,0,3,0,1,2,59,38,47,19,4,0,1,3,39,154,1,46,39,154,1,1,45,56,4,0,1,38,47,19,4,0,3,0,1,2,59,38,47,18,4,0,1,3,39,154,1,34,6,39,248,1,2,1,1,1,1,20,39,154,1,9,4,3,20,39,154,1,17,4,2,47,55,4,0,47,56,4,0,47,54,4,0,47,56,4,0,57,38,47,19,4,0,3,0,1,2,39,154,1,58,47,56,4,0,39,154,1,57,38,47,18,4,0,3,0,1,2,39,154,1,58,47,55,4,0,39,154,1,1,1,38,47,18,4,0,1,3,57,38,47,19,4,0,1,3,39,168,0,58,47,54,4,0,39,168,0,1,2,9,4,17,4,21,23,4,2,40,3,0,44,57,4,9,135,7,39,168,0,2,44,58,4,9,30,9,39,154,1,2,44,59,4,9,34,9,39,154,1,2,3,0,135,7,0,0,34,9,2,0,30,9,1,0,4,46,39,168,0,1,45,57,4,0,1,38,47,22,4,0,1,3,59,38,47,21,4,0,1,3,39,168,0,46,39,154,1,1,45,58,4,0,1,38,47,21,4,0,3,0,1,2,59,38,47,22,4,0,1,3,39,154,1,46,39,154,1,1,45,59,4,0,1,38,47,22,4,0,3,0,1,2,59,38,47,21,4,0,1,3,39,154,1,34,6,39,248,1,2,1,1,1,1,20,39,154,1,9,4,3,20,39,154,1,17,4,2,47,59,4,0,47,58,4,0,47,57,4,0,47,59,4,0,57,38,47,22,4,0,3,0,1,2,39,154,1,58,47,59,4,0,39,154,1,57,38,47,21,4,0,3,0,1,2,39,154,1,58,47,58,4,0,39,154,1,1,1,38,47,21,4,0,1,3,57,38,47,22,4,0,1,3,39,168,0,58,47,57,4,0,39,168,0,1,2,9,4,17,4,21,26,4,2,40,3,0,44,60,4,9,135,7,39,168,0,2,44,61,4,9,30,9,39,154,1,2,44,62,4,9,34,9,39,154,1,2,3,0,135,7,0,0,34,9,2,0,30,9,1,0,4,46,39,168,0,1,45,60,4,0,1,38,47,25,4,0,1,3,59,38,47,24,4,0,1,3,39,168,0,46,39,154,1,1,45,61,4,0,1,38,47,24,4,0,3,0,1,2,59,38,47,25,4,0,1,3,39,154,1,46,39,154,1,1,45,62,4,0,1,38,47,25,4,0,3,0,1,2,59,38,47,24,4,0,1,3,39,154,1,34,6,39,248,1,2,1,1,1,1,20,39,154,1,9,4,3,47,61,4,0,47,60,4,0,47,62,4,0,57,38,47,25,4,0,3,0,1,2,39,154,1,58,47,62,4,0,39,154,1,57,38,47,24,4,0,3,0,1,2,39,154,1,58,47,61,4,0,39,154,1,1,1,38,47,24,4,0,1,3,57,38,47,25,4,0,1,3,39,168,0,58,47,60,4,0,39,168,0,1,1,9,4,21,29,4,2,40,3,0,44,63,4,9,135,7,39,168,0,2,44,64,4,9,30,9,39,154,1,2,44,65,4,9,34,9,39,154,1,2,3,0,135,7,0,0,34,9,2,0,30,9,1,0,4,46,39,168,0,1,45,63,4,0,1,38,47,28,4,0,1,3,59,38,47,27,4,0,1,3,39,168,0,46,39,154,1,1,45,64,4,0,1,38,47,27,4,0,3,0,1,2,59,38,47,28,4,0,1,3,39,154,1,46,39,154,1,1,45,65,4,0,1,38,47,28,4,0,3,0,1,2,59,38,47,27,4,0,1,3,39,154,1,34,6,39,248,1,2,1,1,1,1,20,39,154,1,9,4,3,47,65,4,0,47,63,4,0,47,64,4,0,57,38,47,28,4,0,3,0,1,2,39,154,1,58,47,65,4,0,39,154,1,57,38,47,27,4,0,3,0,1,2,39,154,1,58,47,64,4,0,39,154,1,1,1,38,47,27,4,0,1,3,57,38,47,28,4,0,1,3,39,168,0,58,47,63,4,0,39,168,0,1,1,9,4,13,2,0,40,29,0,44,66,4,28,8,1,38,9,39,1,0,0,44,67,4,28,8,1,45,9,39,1,0,0,44,68,4,28,8,1,50,9,39,1,0,0,44,69,4,28,8,1,55,9,39,1,0,0,44,70,4,28,8,1,64,9,39,1,0,0,44,71,4,28,8,1,73,9,39,1,0,0,44,72,4,28,8,1,80,9,39,1,0,0,44,73,4,28,8,1,87,9,39,1,0,0,44,74,4,28,8,1,95,9,39,1,0,0,44,75,4,28,8,1,103,9,39,1,0,0,44,76,4,28,8,1,112,9,39,1,0,0,44,77,4,28,8,1,121,9,39,1,0,0,44,78,4,28,8,1,126,9,39,1,0,0,44,79,4,28,8,1,132,9,39,1,0,0,44,80,4,28,8,1,142,9,39,1,0,0,44,81,4,28,8,1,150,9,39,1,0,0,44,82,4,28,8,1,159,9,39,1,0,0,44,83,4,28,8,1,167,9,39,1,0,0,44,84,4,28,8,1,176,9,39,1,0,0,44,85,4,28,8,1,188,9,39,1,0,0,44,86,4,28,8,1,199,9,39,1,0,0,44,87,4,28,8,1,210,9,39,1,0,0,44,88,4,28,8,1,221,9,39,1,0,0,44,89,4,28,8,1,233,9,39,1,0,0,44,90,4,28,8,1,244,9,39,1,0,0,44,91,4,28,8,1,254,9,39,1,0,0,44,92,4,28,8,1,3,10,39,1,0,0,44,93,4,28,8,1,15,10,39,1,0,0,44,94,4,28,8,1,22,10,39,1,0,0,29,0,38,9,0,0,15,10,27,0,188,9,19,0,176,9,18,0,159,9,16,0,221,9,22,0,50,9,2,0,112,9,10,0,80,9,6,0,95,9,8,0,64,9,4,0,233,9,23,0,199,9,20,0,254,9,25,0,167,9,17,0,22,10,28,0,132,9,13,0,244,9,24,0,150,9,15,0,126,9,12,0,3,10,26,0,142,9,14,0,210,9,21,0,45,9,1,0,103,9,9,0,73,9,5,0,87,9,7,0,55,9,3,0,121,9,11,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,21,33,4,2,40,0,0,0,0,2,37,0,40,0,0,0,0,47,30,4,0,29,26,0,0,0,0,1,34,20,39,248,1,164,3,2,47,31,4,0,47,32,4,0,26,1,0,0,0,1,34,20,39,248,1,167,3,2,47,31,4,0,47,32,4,0,26,2,0,0,0,1,34,20,39,248,1,170,3,2,47,31,4,0,47,32,4,0,26,3,0,0,0,1,34,20,39,248,1,173,3,2,47,31,4,0,47,32,4,0,26,4,0,0,0,1,34,20,39,248,1,176,3,2,47,31,4,0,47,32,4,0,26,5,0,0,0,1,34,20,39,248,1,179,3,2,47,31,4,0,47,32,4,0,26,6,0,0,0,1,34,20,39,248,1,182,3,2,47,31,4,0,47,32,4,0,26,7,0,0,0,1,34,20,39,248,1,185,3,2,47,31,4,0,47,32,4,0,26,8,0,0,0,1,34,20,39,248,1,188,3,2,47,31,4,0,47,32,4,0,26,9,0,0,0,1,34,20,39,248,1,191,3,2,47,31,4,0,47,32,4,0,26,10,0,0,0,1,34,20,39,248,1,194,3,2,47,31,4,0,47,32,4,0,26,11,0,0,0,1,34,20,39,248,1,197,3,2,47,31,4,0,47,32,4,0,26,12,0,0,0,1,34,20,39,248,1,200,3,2,47,31,4,0,47,32,4,0,26,13,0,0,0,1,34,20,39,248,1,203,3,2,47,31,4,0,47,32,4,0,26,14,0,0,0,1,34,20,39,248,1,206,3,2,47,31,4,0,47,32,4,0,26,15,0,0,0,1,34,20,39,248,1,214,3,2,47,31,4,0,47,32,4,0,26,16,0,0,0,1,34,20,39,248,1,217,3,2,47,31,4,0,47,32,4,0,26,17,0,0,0,1,34,20,39,248,1,220,3,2,47,31,4,0,47,32,4,0,26,18,0,0,0,1,34,20,39,248,1,231,3,2,47,31,4,0,47,32,4,0,26,19,0,0,0,1,34,20,39,248,1,239,3,2,47,31,4,0,47,32,4,0,26,20,0,0,0,1,34,20,39,248,1,242,3,2,47,31,4,0,47,32,4,0,26,21,0,0,0,1,34,20,39,248,1,250,3,2,47,31,4,0,47,32,4,0,26,22,0,0,0,1,34,20,39,248,1,253,3,2,47,31,4,0,47,32,4,0,26,23,0,0,0,1,34,20,39,248,1,0,4,2,47,31,4,0,47,32,4,0,26,24,0,0,0,1,34,20,39,248,1,3,4,2,47,31,4,0,47,32,4,0,26,25,0,0,0,1,34,20,39,248,1,20,4,2,47,31,4,0,47,32,4,0,26,26,0,0,0,1,34,20,39,248,1,23,4,2,47,31,4,0,47,32,4,0,26,27,0,0,0,1,34,20,39,248,1,26,4,2,47,31,4,0,47,32,4,0,26,28,0,0,0,1,34,20,39,248,1,29,4,2,47,31,4,0,47,32,4,0,34,6,39,248,1,1,18,0,0,0,0,1,29,164,3,167,3,170,3,173,3,176,3,179,3,182,3,185,3,188,3,191,3,194,3,197,3,200,3,203,3,206,3,214,3,217,3,220,3,231,3,239,3,242,3,250,3,253,3,0,4,3,4,20,4,23,4,26,4,29,4,21,35,4,2,40,0,0,0,0,1,34,6,39,248,1,2,1,38,47,34,4,0,3,0,1,2,60,20,39,168,0,216,0,2,38,47,34,4,0,1,3,18,23,183,209,56,39,154,1,38,47,34,4,0,1,3,1,0,21,37,4,2,40,0,0,0,0,1,34,6,39,114,1,2,1,38,47,36,4,0,3,0,1,2,60,20,39,160,0,208,0,2,38,47,36,4,0,1,3,18,23,183,209,56,39,150,1,38,47,36,4,0,1,3,1,0,21,39,4,2,40,0,0,0,0,1,34,1,38,47,38,4,0,2,0,1,60,38,47,38,4,0,1,2,39,108,1,1,0,}; diff --git a/src/sksl/generated/sksl_interp.dehydrated.sksl b/src/sksl/generated/sksl_interp.dehydrated.sksl index e92c8a9ff2..05d610b1f0 100644 --- a/src/sksl/generated/sksl_interp.dehydrated.sksl +++ b/src/sksl/generated/sksl_interp.dehydrated.sksl @@ -1,2 +1,2 @@ static constexpr size_t SKSL_INCLUDE_sksl_interp_LENGTH = 5004; -static uint8_t SKSL_INCLUDE_sksl_interp[5004] = {143,1,8,121,95,111,118,101,114,95,120,8,36,103,101,110,84,121,112,101,4,97,116,97,110,9,36,103,101,110,72,84,121,112,101,1,121,3,99,111,115,1,120,3,100,111,116,5,102,108,111,97,116,4,104,97,108,102,5,102,114,97,99,116,1,109,8,102,108,111,97,116,50,120,50,7,105,110,118,101,114,115,101,8,102,108,111,97,116,51,120,51,8,102,108,111,97,116,52,120,52,7,104,97,108,102,50,120,50,7,104,97,108,102,51,120,51,7,104,97,108,102,52,120,52,6,108,101,110,103,116,104,9,110,111,114,109,97,108,105,122,101,3,112,111,119,3,115,105,110,4,115,113,114,116,3,116,97,110,3,109,105,110,9,36,103,101,110,73,84,121,112,101,3,105,110,116,3,109,97,120,6,109,105,110,86,97,108,6,109,97,120,86,97,108,5,99,108,97,109,112,8,115,97,116,117,114,97,116,101,1,97,9,36,103,101,110,66,84,121,112,101,3,109,105,120,4,36,118,101,99,8,108,101,115,115,84,104,97,110,5,36,98,118,101,99,5,36,104,118,101,99,5,36,105,118,101,99,5,36,117,118,101,99,13,108,101,115,115,84,104,97,110,69,113,117,97,108,11,103,114,101,97,116,101,114,84,104,97,110,16,103,114,101,97,116,101,114,84,104,97,110,69,113,117,97,108,5,101,113,117,97,108,8,110,111,116,69,113,117,97,108,3,97,110,121,4,98,111,111,108,3,97,108,108,3,110,111,116,3,114,97,100,7,100,101,103,114,101,101,115,6,102,108,111,97,116,50,6,102,108,111,97,116,51,6,102,108,111,97,116,52,3,100,101,103,7,114,97,100,105,97,110,115,1,98,8,100,105,115,116,97,110,99,101,5,99,114,111,115,115,40,74,1,44,1,0,9,2,0,41,2,0,11,0,3,22,3,0,9,20,0,1,1,0,39,2,0,44,4,0,9,2,0,41,5,0,25,0,3,43,6,0,2,39,3,0,22,7,0,9,20,0,1,4,0,39,5,0,39,7,0,44,8,0,9,35,0,39,2,0,3,22,9,0,9,37,0,1,8,0,39,2,0,44,10,0,9,35,0,39,5,0,3,43,11,0,2,39,9,0,22,12,0,9,37,0,1,10,0,39,5,0,39,12,0,44,13,0,9,41,0,39,2,0,3,44,14,0,9,35,0,39,2,0,3,22,15,0,9,43,0,2,13,0,14,0,41,16,0,47,0,44,17,0,9,41,0,39,5,0,3,44,18,0,9,35,0,39,5,0,3,43,19,0,2,39,15,0,22,20,0,9,43,0,2,17,0,18,0,41,21,0,53,0,39,20,0,44,22,0,9,41,0,39,2,0,3,22,23,0,9,58,0,1,22,0,39,2,0,44,24,0,9,41,0,39,5,0,3,43,25,0,2,39,23,0,22,26,0,9,58,0,1,24,0,39,5,0,39,26,0,44,27,0,9,64,0,41,28,0,66,0,3,22,29,0,9,75,0,1,27,0,39,28,0,44,30,0,9,64,0,41,31,0,83,0,3,43,32,0,2,39,29,0,22,33,0,9,75,0,1,30,0,39,31,0,39,33,0,44,34,0,9,64,0,41,35,0,92,0,3,43,36,0,3,39,29,0,39,33,0,22,37,0,9,75,0,1,34,0,39,35,0,39,37,0,44,38,0,9,64,0,41,39,0,101,0,3,43,40,0,4,39,29,0,39,33,0,39,37,0,22,41,0,9,75,0,1,38,0,39,39,0,39,41,0,44,42,0,9,64,0,41,43,0,109,0,3,43,44,0,5,39,29,0,39,33,0,39,37,0,39,41,0,22,45,0,9,75,0,1,42,0,39,43,0,39,45,0,44,46,0,9,64,0,41,47,0,117,0,3,43,48,0,6,39,29,0,39,33,0,39,37,0,39,41,0,39,45,0,22,49,0,9,75,0,1,46,0,39,47,0,39,49,0,44,50,0,9,41,0,39,2,0,3,22,51,0,9,125,0,1,50,0,39,16,0,44,52,0,9,41,0,39,5,0,3,43,53,0,2,39,51,0,22,54,0,9,125,0,1,52,0,39,21,0,39,54,0,44,55,0,9,41,0,39,2,0,3,22,56,0,9,132,0,1,55,0,39,2,0,44,57,0,9,41,0,39,5,0,3,43,58,0,2,39,56,0,22,59,0,9,132,0,1,57,0,39,5,0,39,59,0,44,60,0,9,41,0,39,2,0,3,44,61,0,9,35,0,39,2,0,3,22,62,0,9,142,0,2,60,0,61,0,39,2,0,44,63,0,9,41,0,39,5,0,3,44,64,0,9,35,0,39,5,0,3,43,65,0,2,39,62,0,22,66,0,9,142,0,2,63,0,64,0,39,5,0,39,66,0,44,67,0,9,41,0,39,2,0,3,22,68,0,9,146,0,1,67,0,39,2,0,44,69,0,9,41,0,39,5,0,3,43,70,0,2,39,68,0,22,71,0,9,146,0,1,69,0,39,5,0,39,71,0,44,72,0,9,41,0,39,2,0,3,22,73,0,9,150,0,1,72,0,39,2,0,44,74,0,9,41,0,39,5,0,3,43,75,0,2,39,73,0,22,76,0,9,150,0,1,74,0,39,5,0,39,76,0,44,77,0,9,41,0,39,2,0,3,22,78,0,9,155,0,1,77,0,39,2,0,44,79,0,9,41,0,39,5,0,3,43,80,0,2,39,78,0,22,81,0,9,155,0,1,79,0,39,5,0,39,81,0,44,82,0,9,41,0,39,2,0,3,44,83,0,9,35,0,39,2,0,3,22,84,0,9,159,0,2,82,0,83,0,39,2,0,44,85,0,9,41,0,39,2,0,3,44,86,0,9,35,0,39,16,0,3,43,87,0,2,39,84,0,22,88,0,9,159,0,2,85,0,86,0,39,2,0,39,88,0,44,89,0,9,41,0,39,5,0,3,44,90,0,9,35,0,39,5,0,3,43,91,0,3,39,84,0,39,88,0,22,92,0,9,159,0,2,89,0,90,0,39,5,0,39,92,0,44,93,0,9,41,0,39,5,0,3,44,94,0,9,35,0,39,21,0,3,43,95,0,4,39,84,0,39,88,0,39,92,0,22,96,0,9,159,0,2,93,0,94,0,39,5,0,39,96,0,44,97,0,9,41,0,41,98,0,163,0,3,44,99,0,9,35,0,39,98,0,3,43,100,0,5,39,84,0,39,88,0,39,92,0,39,96,0,22,101,0,9,159,0,2,97,0,99,0,39,98,0,39,101,0,44,102,0,9,41,0,39,98,0,3,44,103,0,9,35,0,41,104,0,173,0,3,43,105,0,6,39,84,0,39,88,0,39,92,0,39,96,0,39,101,0,22,106,0,9,159,0,2,102,0,103,0,39,98,0,39,106,0,44,107,0,9,41,0,39,2,0,3,44,108,0,9,35,0,39,2,0,3,22,109,0,9,177,0,2,107,0,108,0,39,2,0,44,110,0,9,41,0,39,2,0,3,44,111,0,9,35,0,39,16,0,3,43,112,0,2,39,109,0,22,113,0,9,177,0,2,110,0,111,0,39,2,0,39,113,0,44,114,0,9,41,0,39,5,0,3,44,115,0,9,35,0,39,5,0,3,43,116,0,3,39,109,0,39,113,0,22,117,0,9,177,0,2,114,0,115,0,39,5,0,39,117,0,44,118,0,9,41,0,39,5,0,3,44,119,0,9,35,0,39,21,0,3,43,120,0,4,39,109,0,39,113,0,39,117,0,22,121,0,9,177,0,2,118,0,119,0,39,5,0,39,121,0,44,122,0,9,41,0,39,98,0,3,44,123,0,9,35,0,39,98,0,3,43,124,0,5,39,109,0,39,113,0,39,117,0,39,121,0,22,125,0,9,177,0,2,122,0,123,0,39,98,0,39,125,0,44,126,0,9,41,0,39,98,0,3,44,127,0,9,35,0,39,104,0,3,43,128,0,6,39,109,0,39,113,0,39,117,0,39,121,0,39,125,0,22,129,0,9,177,0,2,126,0,127,0,39,98,0,39,129,0,44,130,0,9,41,0,39,2,0,3,44,131,0,9,181,0,39,2,0,3,44,132,0,9,188,0,39,2,0,3,22,133,0,9,195,0,3,130,0,131,0,132,0,39,2,0,44,134,0,9,41,0,39,2,0,3,44,135,0,9,181,0,39,16,0,3,44,136,0,9,188,0,39,16,0,3,43,137,0,2,39,133,0,22,138,0,9,195,0,3,134,0,135,0,136,0,39,2,0,39,138,0,44,139,0,9,41,0,39,5,0,3,44,140,0,9,181,0,39,5,0,3,44,141,0,9,188,0,39,5,0,3,43,142,0,3,39,133,0,39,138,0,22,143,0,9,195,0,3,139,0,140,0,141,0,39,5,0,39,143,0,44,144,0,9,41,0,39,5,0,3,44,145,0,9,181,0,39,21,0,3,44,146,0,9,188,0,39,21,0,3,43,147,0,4,39,133,0,39,138,0,39,143,0,22,148,0,9,195,0,3,144,0,145,0,146,0,39,5,0,39,148,0,44,149,0,9,41,0,39,98,0,3,44,150,0,9,181,0,39,98,0,3,44,151,0,9,188,0,39,98,0,3,43,152,0,5,39,133,0,39,138,0,39,143,0,39,148,0,22,153,0,9,195,0,3,149,0,150,0,151,0,39,98,0,39,153,0,44,154,0,9,41,0,39,98,0,3,44,155,0,9,181,0,39,104,0,3,44,156,0,9,188,0,39,104,0,3,43,157,0,6,39,133,0,39,138,0,39,143,0,39,148,0,39,153,0,22,158,0,9,195,0,3,154,0,155,0,156,0,39,98,0,39,158,0,44,159,0,9,41,0,39,2,0,3,22,160,0,9,201,0,1,159,0,39,2,0,44,161,0,9,41,0,39,5,0,3,43,162,0,2,39,160,0,22,163,0,9,201,0,1,161,0,39,5,0,39,163,0,44,164,0,9,41,0,39,2,0,3,44,165,0,9,35,0,39,2,0,3,44,166,0,9,210,0,41,167,0,212,0,3,22,168,0,9,222,0,3,164,0,165,0,166,0,39,2,0,44,169,0,9,41,0,39,5,0,3,44,170,0,9,35,0,39,5,0,3,44,171,0,9,210,0,39,167,0,3,43,172,0,2,39,168,0,22,173,0,9,222,0,3,169,0,170,0,171,0,39,5,0,39,173,0,44,174,0,9,41,0,39,98,0,3,44,175,0,9,35,0,39,98,0,3,44,176,0,9,210,0,39,167,0,3,43,177,0,3,39,168,0,39,173,0,22,178,0,9,222,0,3,174,0,175,0,176,0,39,98,0,39,178,0,44,179,0,9,41,0,39,167,0,3,44,180,0,9,35,0,39,167,0,3,44,181,0,9,210,0,39,167,0,3,43,182,0,4,39,168,0,39,173,0,39,178,0,22,183,0,9,222,0,3,179,0,180,0,181,0,39,167,0,39,183,0,44,184,0,9,41,0,39,2,0,3,44,185,0,9,35,0,39,2,0,3,44,186,0,9,210,0,39,2,0,3,43,187,0,5,39,168,0,39,173,0,39,178,0,39,183,0,22,188,0,9,222,0,3,184,0,185,0,186,0,39,2,0,39,188,0,44,189,0,9,41,0,39,2,0,3,44,190,0,9,35,0,39,2,0,3,44,191,0,9,210,0,39,16,0,3,43,192,0,6,39,168,0,39,173,0,39,178,0,39,183,0,39,188,0,22,193,0,9,222,0,3,189,0,190,0,191,0,39,2,0,39,193,0,44,194,0,9,41,0,39,5,0,3,44,195,0,9,35,0,39,5,0,3,44,196,0,9,210,0,39,5,0,3,43,197,0,7,39,168,0,39,173,0,39,178,0,39,183,0,39,188,0,39,193,0,22,198,0,9,222,0,3,194,0,195,0,196,0,39,5,0,39,198,0,44,199,0,9,41,0,39,5,0,3,44,200,0,9,35,0,39,5,0,3,44,201,0,9,210,0,39,21,0,3,43,202,0,8,39,168,0,39,173,0,39,178,0,39,183,0,39,188,0,39,193,0,39,198,0,22,203,0,9,222,0,3,199,0,200,0,201,0,39,5,0,39,203,0,44,204,0,9,41,0,41,205,0,226,0,3,44,206,0,9,35,0,39,205,0,3,22,207,0,9,231,0,2,204,0,206,0,41,208,0,240,0,44,209,0,9,41,0,41,210,0,246,0,3,44,211,0,9,35,0,39,210,0,3,43,212,0,2,39,207,0,22,213,0,9,231,0,2,209,0,211,0,39,208,0,39,213,0,44,214,0,9,41,0,41,215,0,252,0,3,44,216,0,9,35,0,39,215,0,3,43,217,0,3,39,207,0,39,213,0,22,218,0,9,231,0,2,214,0,216,0,39,208,0,39,218,0,44,219,0,9,41,0,41,220,0,2,1,3,44,221,0,9,35,0,39,220,0,3,43,222,0,4,39,207,0,39,213,0,39,218,0,22,223,0,9,231,0,2,219,0,221,0,39,208,0,39,223,0,44,224,0,9,41,0,39,205,0,3,44,225,0,9,35,0,39,205,0,3,22,226,0,9,8,1,2,224,0,225,0,39,208,0,44,227,0,9,41,0,39,210,0,3,44,228,0,9,35,0,39,210,0,3,43,229,0,2,39,226,0,22,230,0,9,8,1,2,227,0,228,0,39,208,0,39,230,0,44,231,0,9,41,0,39,215,0,3,44,232,0,9,35,0,39,215,0,3,43,233,0,3,39,226,0,39,230,0,22,234,0,9,8,1,2,231,0,232,0,39,208,0,39,234,0,44,235,0,9,41,0,39,220,0,3,44,236,0,9,35,0,39,220,0,3,43,237,0,4,39,226,0,39,230,0,39,234,0,22,238,0,9,8,1,2,235,0,236,0,39,208,0,39,238,0,44,239,0,9,41,0,39,205,0,3,44,240,0,9,35,0,39,205,0,3,22,241,0,9,22,1,2,239,0,240,0,39,208,0,44,242,0,9,41,0,39,210,0,3,44,243,0,9,35,0,39,210,0,3,43,244,0,2,39,241,0,22,245,0,9,22,1,2,242,0,243,0,39,208,0,39,245,0,44,246,0,9,41,0,39,215,0,3,44,247,0,9,35,0,39,215,0,3,43,248,0,3,39,241,0,39,245,0,22,249,0,9,22,1,2,246,0,247,0,39,208,0,39,249,0,44,250,0,9,41,0,39,220,0,3,44,251,0,9,35,0,39,220,0,3,43,252,0,4,39,241,0,39,245,0,39,249,0,22,253,0,9,22,1,2,250,0,251,0,39,208,0,39,253,0,44,254,0,9,41,0,39,205,0,3,44,255,0,9,35,0,39,205,0,3,22,0,1,9,34,1,2,254,0,255,0,39,208,0,44,1,1,9,41,0,39,210,0,3,44,2,1,9,35,0,39,210,0,3,43,3,1,2,39,0,1,22,4,1,9,34,1,2,1,1,2,1,39,208,0,39,4,1,44,5,1,9,41,0,39,215,0,3,44,6,1,9,35,0,39,215,0,3,43,7,1,3,39,0,1,39,4,1,22,8,1,9,34,1,2,5,1,6,1,39,208,0,39,8,1,44,9,1,9,41,0,39,220,0,3,44,10,1,9,35,0,39,220,0,3,43,11,1,4,39,0,1,39,4,1,39,8,1,22,12,1,9,34,1,2,9,1,10,1,39,208,0,39,12,1,44,13,1,9,41,0,39,205,0,3,44,14,1,9,35,0,39,205,0,3,22,15,1,9,51,1,2,13,1,14,1,39,208,0,44,16,1,9,41,0,39,210,0,3,44,17,1,9,35,0,39,210,0,3,43,18,1,2,39,15,1,22,19,1,9,51,1,2,16,1,17,1,39,208,0,39,19,1,44,20,1,9,41,0,39,215,0,3,44,21,1,9,35,0,39,215,0,3,43,22,1,3,39,15,1,39,19,1,22,23,1,9,51,1,2,20,1,21,1,39,208,0,39,23,1,44,24,1,9,41,0,39,220,0,3,44,25,1,9,35,0,39,220,0,3,43,26,1,4,39,15,1,39,19,1,39,23,1,22,27,1,9,51,1,2,24,1,25,1,39,208,0,39,27,1,44,28,1,9,41,0,39,208,0,3,44,29,1,9,35,0,39,208,0,3,43,30,1,5,39,15,1,39,19,1,39,23,1,39,27,1,22,31,1,9,51,1,2,28,1,29,1,39,208,0,39,31,1,44,32,1,9,41,0,39,205,0,3,44,33,1,9,35,0,39,205,0,3,22,34,1,9,57,1,2,32,1,33,1,39,208,0,44,35,1,9,41,0,39,210,0,3,44,36,1,9,35,0,39,210,0,3,43,37,1,2,39,34,1,22,38,1,9,57,1,2,35,1,36,1,39,208,0,39,38,1,44,39,1,9,41,0,39,215,0,3,44,40,1,9,35,0,39,215,0,3,43,41,1,3,39,34,1,39,38,1,22,42,1,9,57,1,2,39,1,40,1,39,208,0,39,42,1,44,43,1,9,41,0,39,220,0,3,44,44,1,9,35,0,39,220,0,3,43,45,1,4,39,34,1,39,38,1,39,42,1,22,46,1,9,57,1,2,43,1,44,1,39,208,0,39,46,1,44,47,1,9,41,0,39,208,0,3,44,48,1,9,35,0,39,208,0,3,43,49,1,5,39,34,1,39,38,1,39,42,1,39,46,1,22,50,1,9,57,1,2,47,1,48,1,39,208,0,39,50,1,44,51,1,9,41,0,39,208,0,3,22,52,1,9,66,1,1,51,1,41,53,1,70,1,44,54,1,9,41,0,39,208,0,3,22,55,1,9,75,1,1,54,1,39,53,1,44,56,1,9,41,0,39,208,0,3,22,57,1,9,79,1,1,56,1,39,208,0,44,58,1,9,83,1,39,16,0,3,22,59,1,29,8,0,16,0,0,87,1,1,58,1,39,16,0,44,60,1,9,83,1,41,61,1,95,1,3,43,62,1,2,39,59,1,22,63,1,29,8,0,16,0,0,87,1,1,60,1,39,61,1,39,63,1,44,64,1,9,83,1,41,65,1,102,1,3,43,66,1,3,39,59,1,39,63,1,22,67,1,29,8,0,16,0,0,87,1,1,64,1,39,65,1,39,67,1,44,68,1,9,83,1,41,69,1,109,1,3,43,70,1,4,39,59,1,39,63,1,39,67,1,22,71,1,29,8,0,16,0,0,87,1,1,68,1,39,69,1,39,71,1,44,72,1,9,116,1,39,16,0,3,22,73,1,29,8,0,16,0,0,120,1,1,72,1,39,16,0,44,74,1,9,116,1,39,61,1,3,43,75,1,2,39,73,1,22,76,1,29,8,0,16,0,0,120,1,1,74,1,39,61,1,39,76,1,44,77,1,9,116,1,39,65,1,3,43,78,1,3,39,73,1,39,76,1,22,79,1,29,8,0,16,0,0,120,1,1,77,1,39,65,1,39,79,1,44,80,1,9,116,1,39,69,1,3,43,81,1,4,39,73,1,39,76,1,39,79,1,22,82,1,29,8,0,16,0,0,120,1,1,80,1,39,69,1,39,82,1,44,83,1,9,210,0,39,61,1,3,44,84,1,9,128,1,39,61,1,3,22,85,1,29,8,0,16,0,0,130,1,2,83,1,84,1,39,16,0,44,86,1,9,210,0,39,65,1,3,44,87,1,9,128,1,39,65,1,3,43,88,1,2,39,85,1,22,89,1,29,8,0,16,0,0,130,1,2,86,1,87,1,39,16,0,39,89,1,44,90,1,9,210,0,39,69,1,3,44,91,1,9,128,1,39,69,1,3,43,92,1,3,39,85,1,39,89,1,22,93,1,29,8,0,16,0,0,130,1,2,90,1,91,1,39,16,0,39,93,1,44,94,1,9,210,0,39,65,1,3,44,95,1,9,128,1,39,65,1,3,22,96,1,29,8,0,16,0,0,139,1,2,94,1,95,1,39,65,1,29,0,75,1,35,1,66,1,33,1,20,0,3,0,195,0,144,0,37,0,8,0,139,1,73,1,87,1,47,1,130,1,69,1,43,0,15,0,51,1,11,1,58,0,20,0,22,1,233,0,34,1,248,0,75,0,37,0,125,0,42,0,231,0,203,0,8,1,218,0,177,0,115,0,159,0,92,0,222,0,188,0,132,0,47,0,79,1,37,1,57,1,30,1,142,0,54,0,120,1,58,1,201,0,149,0,146,0,59,0,150,0,64,0,155,0,69,0,12,12,21,59,1,2,40,0,0,0,0,1,34,1,47,58,1,0,58,18,225,46,101,66,39,16,0,1,0,21,63,1,2,40,0,0,0,0,1,34,1,47,60,1,0,58,18,225,46,101,66,39,61,1,1,0,21,67,1,2,40,0,0,0,0,1,34,1,47,64,1,0,58,18,225,46,101,66,39,65,1,1,0,21,71,1,2,40,0,0,0,0,1,34,1,47,68,1,0,58,18,225,46,101,66,39,69,1,1,0,21,73,1,2,40,0,0,0,0,1,34,1,47,72,1,0,58,18,53,250,142,60,39,16,0,1,0,21,76,1,2,40,0,0,0,0,1,34,1,47,74,1,0,58,18,53,250,142,60,39,61,1,1,0,21,79,1,2,40,0,0,0,0,1,34,1,47,77,1,0,58,18,53,250,142,60,39,65,1,1,0,21,82,1,2,40,0,0,0,0,1,34,1,47,80,1,0,58,18,53,250,142,60,39,69,1,1,0,21,85,1,2,40,0,0,0,0,1,34,20,39,16,0,51,0,1,1,47,83,1,0,57,47,84,1,0,39,61,1,1,0,21,89,1,2,40,0,0,0,0,1,34,20,39,16,0,51,0,1,1,47,86,1,0,57,47,87,1,0,39,65,1,1,0,21,93,1,2,40,0,0,0,0,1,34,20,39,16,0,51,0,1,1,47,90,1,0,57,47,91,1,0,39,69,1,1,0,21,96,1,2,40,0,0,0,0,1,34,6,39,65,1,3,1,1,38,47,94,1,0,1,1,58,38,47,95,1,0,1,2,39,16,0,57,1,38,47,94,1,0,1,2,58,38,47,95,1,0,1,1,39,16,0,39,16,0,1,1,38,47,94,1,0,1,2,58,38,47,95,1,0,1,0,39,16,0,57,1,38,47,94,1,0,1,0,58,38,47,95,1,0,1,2,39,16,0,39,16,0,1,1,38,47,94,1,0,1,0,58,38,47,95,1,0,1,1,39,16,0,57,1,38,47,94,1,0,1,1,58,38,47,95,1,0,1,0,39,16,0,39,16,0,1,0,}; +static uint8_t SKSL_INCLUDE_sksl_interp[5004] = {143,1,8,121,95,111,118,101,114,95,120,8,36,103,101,110,84,121,112,101,4,97,116,97,110,9,36,103,101,110,72,84,121,112,101,1,121,3,99,111,115,1,120,3,100,111,116,5,102,108,111,97,116,4,104,97,108,102,5,102,114,97,99,116,1,109,8,102,108,111,97,116,50,120,50,7,105,110,118,101,114,115,101,8,102,108,111,97,116,51,120,51,8,102,108,111,97,116,52,120,52,7,104,97,108,102,50,120,50,7,104,97,108,102,51,120,51,7,104,97,108,102,52,120,52,6,108,101,110,103,116,104,9,110,111,114,109,97,108,105,122,101,3,112,111,119,3,115,105,110,4,115,113,114,116,3,116,97,110,3,109,105,110,9,36,103,101,110,73,84,121,112,101,3,105,110,116,3,109,97,120,6,109,105,110,86,97,108,6,109,97,120,86,97,108,5,99,108,97,109,112,8,115,97,116,117,114,97,116,101,1,97,9,36,103,101,110,66,84,121,112,101,3,109,105,120,4,36,118,101,99,8,108,101,115,115,84,104,97,110,5,36,98,118,101,99,5,36,104,118,101,99,5,36,105,118,101,99,5,36,117,118,101,99,13,108,101,115,115,84,104,97,110,69,113,117,97,108,11,103,114,101,97,116,101,114,84,104,97,110,16,103,114,101,97,116,101,114,84,104,97,110,69,113,117,97,108,5,101,113,117,97,108,8,110,111,116,69,113,117,97,108,3,97,110,121,4,98,111,111,108,3,97,108,108,3,110,111,116,3,114,97,100,7,100,101,103,114,101,101,115,6,102,108,111,97,116,50,6,102,108,111,97,116,51,6,102,108,111,97,116,52,3,100,101,103,7,114,97,100,105,97,110,115,1,98,8,100,105,115,116,97,110,99,101,5,99,114,111,115,115,40,74,1,44,1,0,9,2,0,41,2,0,11,0,3,22,3,0,9,20,0,1,1,0,39,2,0,44,4,0,9,2,0,41,5,0,25,0,3,43,6,0,2,39,3,0,22,7,0,9,20,0,1,4,0,39,5,0,39,7,0,44,8,0,9,35,0,39,2,0,3,22,9,0,9,37,0,1,8,0,39,2,0,44,10,0,9,35,0,39,5,0,3,43,11,0,2,39,9,0,22,12,0,9,37,0,1,10,0,39,5,0,39,12,0,44,13,0,9,41,0,39,2,0,3,44,14,0,9,35,0,39,2,0,3,22,15,0,9,43,0,2,13,0,14,0,41,16,0,47,0,44,17,0,9,41,0,39,5,0,3,44,18,0,9,35,0,39,5,0,3,43,19,0,2,39,15,0,22,20,0,9,43,0,2,17,0,18,0,41,21,0,53,0,39,20,0,44,22,0,9,41,0,39,2,0,3,22,23,0,9,58,0,1,22,0,39,2,0,44,24,0,9,41,0,39,5,0,3,43,25,0,2,39,23,0,22,26,0,9,58,0,1,24,0,39,5,0,39,26,0,44,27,0,9,64,0,41,28,0,66,0,3,22,29,0,9,75,0,1,27,0,39,28,0,44,30,0,9,64,0,41,31,0,83,0,3,43,32,0,2,39,29,0,22,33,0,9,75,0,1,30,0,39,31,0,39,33,0,44,34,0,9,64,0,41,35,0,92,0,3,43,36,0,3,39,29,0,39,33,0,22,37,0,9,75,0,1,34,0,39,35,0,39,37,0,44,38,0,9,64,0,41,39,0,101,0,3,43,40,0,4,39,29,0,39,33,0,39,37,0,22,41,0,9,75,0,1,38,0,39,39,0,39,41,0,44,42,0,9,64,0,41,43,0,109,0,3,43,44,0,5,39,29,0,39,33,0,39,37,0,39,41,0,22,45,0,9,75,0,1,42,0,39,43,0,39,45,0,44,46,0,9,64,0,41,47,0,117,0,3,43,48,0,6,39,29,0,39,33,0,39,37,0,39,41,0,39,45,0,22,49,0,9,75,0,1,46,0,39,47,0,39,49,0,44,50,0,9,41,0,39,2,0,3,22,51,0,9,125,0,1,50,0,39,16,0,44,52,0,9,41,0,39,5,0,3,43,53,0,2,39,51,0,22,54,0,9,125,0,1,52,0,39,21,0,39,54,0,44,55,0,9,41,0,39,2,0,3,22,56,0,9,132,0,1,55,0,39,2,0,44,57,0,9,41,0,39,5,0,3,43,58,0,2,39,56,0,22,59,0,9,132,0,1,57,0,39,5,0,39,59,0,44,60,0,9,41,0,39,2,0,3,44,61,0,9,35,0,39,2,0,3,22,62,0,9,142,0,2,60,0,61,0,39,2,0,44,63,0,9,41,0,39,5,0,3,44,64,0,9,35,0,39,5,0,3,43,65,0,2,39,62,0,22,66,0,9,142,0,2,63,0,64,0,39,5,0,39,66,0,44,67,0,9,41,0,39,2,0,3,22,68,0,9,146,0,1,67,0,39,2,0,44,69,0,9,41,0,39,5,0,3,43,70,0,2,39,68,0,22,71,0,9,146,0,1,69,0,39,5,0,39,71,0,44,72,0,9,41,0,39,2,0,3,22,73,0,9,150,0,1,72,0,39,2,0,44,74,0,9,41,0,39,5,0,3,43,75,0,2,39,73,0,22,76,0,9,150,0,1,74,0,39,5,0,39,76,0,44,77,0,9,41,0,39,2,0,3,22,78,0,9,155,0,1,77,0,39,2,0,44,79,0,9,41,0,39,5,0,3,43,80,0,2,39,78,0,22,81,0,9,155,0,1,79,0,39,5,0,39,81,0,44,82,0,9,41,0,39,2,0,3,44,83,0,9,35,0,39,2,0,3,22,84,0,9,159,0,2,82,0,83,0,39,2,0,44,85,0,9,41,0,39,2,0,3,44,86,0,9,35,0,39,16,0,3,43,87,0,2,39,84,0,22,88,0,9,159,0,2,85,0,86,0,39,2,0,39,88,0,44,89,0,9,41,0,39,5,0,3,44,90,0,9,35,0,39,5,0,3,43,91,0,3,39,84,0,39,88,0,22,92,0,9,159,0,2,89,0,90,0,39,5,0,39,92,0,44,93,0,9,41,0,39,5,0,3,44,94,0,9,35,0,39,21,0,3,43,95,0,4,39,84,0,39,88,0,39,92,0,22,96,0,9,159,0,2,93,0,94,0,39,5,0,39,96,0,44,97,0,9,41,0,41,98,0,163,0,3,44,99,0,9,35,0,39,98,0,3,43,100,0,5,39,84,0,39,88,0,39,92,0,39,96,0,22,101,0,9,159,0,2,97,0,99,0,39,98,0,39,101,0,44,102,0,9,41,0,39,98,0,3,44,103,0,9,35,0,41,104,0,173,0,3,43,105,0,6,39,84,0,39,88,0,39,92,0,39,96,0,39,101,0,22,106,0,9,159,0,2,102,0,103,0,39,98,0,39,106,0,44,107,0,9,41,0,39,2,0,3,44,108,0,9,35,0,39,2,0,3,22,109,0,9,177,0,2,107,0,108,0,39,2,0,44,110,0,9,41,0,39,2,0,3,44,111,0,9,35,0,39,16,0,3,43,112,0,2,39,109,0,22,113,0,9,177,0,2,110,0,111,0,39,2,0,39,113,0,44,114,0,9,41,0,39,5,0,3,44,115,0,9,35,0,39,5,0,3,43,116,0,3,39,109,0,39,113,0,22,117,0,9,177,0,2,114,0,115,0,39,5,0,39,117,0,44,118,0,9,41,0,39,5,0,3,44,119,0,9,35,0,39,21,0,3,43,120,0,4,39,109,0,39,113,0,39,117,0,22,121,0,9,177,0,2,118,0,119,0,39,5,0,39,121,0,44,122,0,9,41,0,39,98,0,3,44,123,0,9,35,0,39,98,0,3,43,124,0,5,39,109,0,39,113,0,39,117,0,39,121,0,22,125,0,9,177,0,2,122,0,123,0,39,98,0,39,125,0,44,126,0,9,41,0,39,98,0,3,44,127,0,9,35,0,39,104,0,3,43,128,0,6,39,109,0,39,113,0,39,117,0,39,121,0,39,125,0,22,129,0,9,177,0,2,126,0,127,0,39,98,0,39,129,0,44,130,0,9,41,0,39,2,0,3,44,131,0,9,181,0,39,2,0,3,44,132,0,9,188,0,39,2,0,3,22,133,0,9,195,0,3,130,0,131,0,132,0,39,2,0,44,134,0,9,41,0,39,2,0,3,44,135,0,9,181,0,39,16,0,3,44,136,0,9,188,0,39,16,0,3,43,137,0,2,39,133,0,22,138,0,9,195,0,3,134,0,135,0,136,0,39,2,0,39,138,0,44,139,0,9,41,0,39,5,0,3,44,140,0,9,181,0,39,5,0,3,44,141,0,9,188,0,39,5,0,3,43,142,0,3,39,133,0,39,138,0,22,143,0,9,195,0,3,139,0,140,0,141,0,39,5,0,39,143,0,44,144,0,9,41,0,39,5,0,3,44,145,0,9,181,0,39,21,0,3,44,146,0,9,188,0,39,21,0,3,43,147,0,4,39,133,0,39,138,0,39,143,0,22,148,0,9,195,0,3,144,0,145,0,146,0,39,5,0,39,148,0,44,149,0,9,41,0,39,98,0,3,44,150,0,9,181,0,39,98,0,3,44,151,0,9,188,0,39,98,0,3,43,152,0,5,39,133,0,39,138,0,39,143,0,39,148,0,22,153,0,9,195,0,3,149,0,150,0,151,0,39,98,0,39,153,0,44,154,0,9,41,0,39,98,0,3,44,155,0,9,181,0,39,104,0,3,44,156,0,9,188,0,39,104,0,3,43,157,0,6,39,133,0,39,138,0,39,143,0,39,148,0,39,153,0,22,158,0,9,195,0,3,154,0,155,0,156,0,39,98,0,39,158,0,44,159,0,9,41,0,39,2,0,3,22,160,0,9,201,0,1,159,0,39,2,0,44,161,0,9,41,0,39,5,0,3,43,162,0,2,39,160,0,22,163,0,9,201,0,1,161,0,39,5,0,39,163,0,44,164,0,9,41,0,39,2,0,3,44,165,0,9,35,0,39,2,0,3,44,166,0,9,210,0,41,167,0,212,0,3,22,168,0,9,222,0,3,164,0,165,0,166,0,39,2,0,44,169,0,9,41,0,39,5,0,3,44,170,0,9,35,0,39,5,0,3,44,171,0,9,210,0,39,167,0,3,43,172,0,2,39,168,0,22,173,0,9,222,0,3,169,0,170,0,171,0,39,5,0,39,173,0,44,174,0,9,41,0,39,98,0,3,44,175,0,9,35,0,39,98,0,3,44,176,0,9,210,0,39,167,0,3,43,177,0,3,39,168,0,39,173,0,22,178,0,9,222,0,3,174,0,175,0,176,0,39,98,0,39,178,0,44,179,0,9,41,0,39,167,0,3,44,180,0,9,35,0,39,167,0,3,44,181,0,9,210,0,39,167,0,3,43,182,0,4,39,168,0,39,173,0,39,178,0,22,183,0,9,222,0,3,179,0,180,0,181,0,39,167,0,39,183,0,44,184,0,9,41,0,39,2,0,3,44,185,0,9,35,0,39,2,0,3,44,186,0,9,210,0,39,2,0,3,43,187,0,5,39,168,0,39,173,0,39,178,0,39,183,0,22,188,0,9,222,0,3,184,0,185,0,186,0,39,2,0,39,188,0,44,189,0,9,41,0,39,2,0,3,44,190,0,9,35,0,39,2,0,3,44,191,0,9,210,0,39,16,0,3,43,192,0,6,39,168,0,39,173,0,39,178,0,39,183,0,39,188,0,22,193,0,9,222,0,3,189,0,190,0,191,0,39,2,0,39,193,0,44,194,0,9,41,0,39,5,0,3,44,195,0,9,35,0,39,5,0,3,44,196,0,9,210,0,39,5,0,3,43,197,0,7,39,168,0,39,173,0,39,178,0,39,183,0,39,188,0,39,193,0,22,198,0,9,222,0,3,194,0,195,0,196,0,39,5,0,39,198,0,44,199,0,9,41,0,39,5,0,3,44,200,0,9,35,0,39,5,0,3,44,201,0,9,210,0,39,21,0,3,43,202,0,8,39,168,0,39,173,0,39,178,0,39,183,0,39,188,0,39,193,0,39,198,0,22,203,0,9,222,0,3,199,0,200,0,201,0,39,5,0,39,203,0,44,204,0,9,41,0,41,205,0,226,0,3,44,206,0,9,35,0,39,205,0,3,22,207,0,9,231,0,2,204,0,206,0,41,208,0,240,0,44,209,0,9,41,0,41,210,0,246,0,3,44,211,0,9,35,0,39,210,0,3,43,212,0,2,39,207,0,22,213,0,9,231,0,2,209,0,211,0,39,208,0,39,213,0,44,214,0,9,41,0,41,215,0,252,0,3,44,216,0,9,35,0,39,215,0,3,43,217,0,3,39,207,0,39,213,0,22,218,0,9,231,0,2,214,0,216,0,39,208,0,39,218,0,44,219,0,9,41,0,41,220,0,2,1,3,44,221,0,9,35,0,39,220,0,3,43,222,0,4,39,207,0,39,213,0,39,218,0,22,223,0,9,231,0,2,219,0,221,0,39,208,0,39,223,0,44,224,0,9,41,0,39,205,0,3,44,225,0,9,35,0,39,205,0,3,22,226,0,9,8,1,2,224,0,225,0,39,208,0,44,227,0,9,41,0,39,210,0,3,44,228,0,9,35,0,39,210,0,3,43,229,0,2,39,226,0,22,230,0,9,8,1,2,227,0,228,0,39,208,0,39,230,0,44,231,0,9,41,0,39,215,0,3,44,232,0,9,35,0,39,215,0,3,43,233,0,3,39,226,0,39,230,0,22,234,0,9,8,1,2,231,0,232,0,39,208,0,39,234,0,44,235,0,9,41,0,39,220,0,3,44,236,0,9,35,0,39,220,0,3,43,237,0,4,39,226,0,39,230,0,39,234,0,22,238,0,9,8,1,2,235,0,236,0,39,208,0,39,238,0,44,239,0,9,41,0,39,205,0,3,44,240,0,9,35,0,39,205,0,3,22,241,0,9,22,1,2,239,0,240,0,39,208,0,44,242,0,9,41,0,39,210,0,3,44,243,0,9,35,0,39,210,0,3,43,244,0,2,39,241,0,22,245,0,9,22,1,2,242,0,243,0,39,208,0,39,245,0,44,246,0,9,41,0,39,215,0,3,44,247,0,9,35,0,39,215,0,3,43,248,0,3,39,241,0,39,245,0,22,249,0,9,22,1,2,246,0,247,0,39,208,0,39,249,0,44,250,0,9,41,0,39,220,0,3,44,251,0,9,35,0,39,220,0,3,43,252,0,4,39,241,0,39,245,0,39,249,0,22,253,0,9,22,1,2,250,0,251,0,39,208,0,39,253,0,44,254,0,9,41,0,39,205,0,3,44,255,0,9,35,0,39,205,0,3,22,0,1,9,34,1,2,254,0,255,0,39,208,0,44,1,1,9,41,0,39,210,0,3,44,2,1,9,35,0,39,210,0,3,43,3,1,2,39,0,1,22,4,1,9,34,1,2,1,1,2,1,39,208,0,39,4,1,44,5,1,9,41,0,39,215,0,3,44,6,1,9,35,0,39,215,0,3,43,7,1,3,39,0,1,39,4,1,22,8,1,9,34,1,2,5,1,6,1,39,208,0,39,8,1,44,9,1,9,41,0,39,220,0,3,44,10,1,9,35,0,39,220,0,3,43,11,1,4,39,0,1,39,4,1,39,8,1,22,12,1,9,34,1,2,9,1,10,1,39,208,0,39,12,1,44,13,1,9,41,0,39,205,0,3,44,14,1,9,35,0,39,205,0,3,22,15,1,9,51,1,2,13,1,14,1,39,208,0,44,16,1,9,41,0,39,210,0,3,44,17,1,9,35,0,39,210,0,3,43,18,1,2,39,15,1,22,19,1,9,51,1,2,16,1,17,1,39,208,0,39,19,1,44,20,1,9,41,0,39,215,0,3,44,21,1,9,35,0,39,215,0,3,43,22,1,3,39,15,1,39,19,1,22,23,1,9,51,1,2,20,1,21,1,39,208,0,39,23,1,44,24,1,9,41,0,39,220,0,3,44,25,1,9,35,0,39,220,0,3,43,26,1,4,39,15,1,39,19,1,39,23,1,22,27,1,9,51,1,2,24,1,25,1,39,208,0,39,27,1,44,28,1,9,41,0,39,208,0,3,44,29,1,9,35,0,39,208,0,3,43,30,1,5,39,15,1,39,19,1,39,23,1,39,27,1,22,31,1,9,51,1,2,28,1,29,1,39,208,0,39,31,1,44,32,1,9,41,0,39,205,0,3,44,33,1,9,35,0,39,205,0,3,22,34,1,9,57,1,2,32,1,33,1,39,208,0,44,35,1,9,41,0,39,210,0,3,44,36,1,9,35,0,39,210,0,3,43,37,1,2,39,34,1,22,38,1,9,57,1,2,35,1,36,1,39,208,0,39,38,1,44,39,1,9,41,0,39,215,0,3,44,40,1,9,35,0,39,215,0,3,43,41,1,3,39,34,1,39,38,1,22,42,1,9,57,1,2,39,1,40,1,39,208,0,39,42,1,44,43,1,9,41,0,39,220,0,3,44,44,1,9,35,0,39,220,0,3,43,45,1,4,39,34,1,39,38,1,39,42,1,22,46,1,9,57,1,2,43,1,44,1,39,208,0,39,46,1,44,47,1,9,41,0,39,208,0,3,44,48,1,9,35,0,39,208,0,3,43,49,1,5,39,34,1,39,38,1,39,42,1,39,46,1,22,50,1,9,57,1,2,47,1,48,1,39,208,0,39,50,1,44,51,1,9,41,0,39,208,0,3,22,52,1,9,66,1,1,51,1,41,53,1,70,1,44,54,1,9,41,0,39,208,0,3,22,55,1,9,75,1,1,54,1,39,53,1,44,56,1,9,41,0,39,208,0,3,22,57,1,9,79,1,1,56,1,39,208,0,44,58,1,9,83,1,39,16,0,3,22,59,1,29,8,0,16,0,0,87,1,1,58,1,39,16,0,44,60,1,9,83,1,41,61,1,95,1,3,43,62,1,2,39,59,1,22,63,1,29,8,0,16,0,0,87,1,1,60,1,39,61,1,39,63,1,44,64,1,9,83,1,41,65,1,102,1,3,43,66,1,3,39,59,1,39,63,1,22,67,1,29,8,0,16,0,0,87,1,1,64,1,39,65,1,39,67,1,44,68,1,9,83,1,41,69,1,109,1,3,43,70,1,4,39,59,1,39,63,1,39,67,1,22,71,1,29,8,0,16,0,0,87,1,1,68,1,39,69,1,39,71,1,44,72,1,9,116,1,39,16,0,3,22,73,1,29,8,0,16,0,0,120,1,1,72,1,39,16,0,44,74,1,9,116,1,39,61,1,3,43,75,1,2,39,73,1,22,76,1,29,8,0,16,0,0,120,1,1,74,1,39,61,1,39,76,1,44,77,1,9,116,1,39,65,1,3,43,78,1,3,39,73,1,39,76,1,22,79,1,29,8,0,16,0,0,120,1,1,77,1,39,65,1,39,79,1,44,80,1,9,116,1,39,69,1,3,43,81,1,4,39,73,1,39,76,1,39,79,1,22,82,1,29,8,0,16,0,0,120,1,1,80,1,39,69,1,39,82,1,44,83,1,9,210,0,39,61,1,3,44,84,1,9,128,1,39,61,1,3,22,85,1,29,8,0,16,0,0,130,1,2,83,1,84,1,39,16,0,44,86,1,9,210,0,39,65,1,3,44,87,1,9,128,1,39,65,1,3,43,88,1,2,39,85,1,22,89,1,29,8,0,16,0,0,130,1,2,86,1,87,1,39,16,0,39,89,1,44,90,1,9,210,0,39,69,1,3,44,91,1,9,128,1,39,69,1,3,43,92,1,3,39,85,1,39,89,1,22,93,1,29,8,0,16,0,0,130,1,2,90,1,91,1,39,16,0,39,93,1,44,94,1,9,210,0,39,65,1,3,44,95,1,9,128,1,39,65,1,3,22,96,1,29,8,0,16,0,0,139,1,2,94,1,95,1,39,65,1,29,0,75,1,35,1,66,1,33,1,20,0,3,0,195,0,144,0,37,0,8,0,139,1,73,1,87,1,47,1,130,1,69,1,43,0,15,0,51,1,11,1,58,0,20,0,22,1,233,0,34,1,248,0,75,0,37,0,125,0,42,0,231,0,203,0,8,1,218,0,177,0,115,0,159,0,92,0,222,0,188,0,132,0,47,0,79,1,37,1,57,1,30,1,142,0,54,0,120,1,58,1,201,0,149,0,146,0,59,0,150,0,64,0,155,0,69,0,12,12,21,59,1,2,40,0,0,0,0,1,34,1,47,58,1,0,59,18,225,46,101,66,39,16,0,1,0,21,63,1,2,40,0,0,0,0,1,34,1,47,60,1,0,59,18,225,46,101,66,39,61,1,1,0,21,67,1,2,40,0,0,0,0,1,34,1,47,64,1,0,59,18,225,46,101,66,39,65,1,1,0,21,71,1,2,40,0,0,0,0,1,34,1,47,68,1,0,59,18,225,46,101,66,39,69,1,1,0,21,73,1,2,40,0,0,0,0,1,34,1,47,72,1,0,59,18,53,250,142,60,39,16,0,1,0,21,76,1,2,40,0,0,0,0,1,34,1,47,74,1,0,59,18,53,250,142,60,39,61,1,1,0,21,79,1,2,40,0,0,0,0,1,34,1,47,77,1,0,59,18,53,250,142,60,39,65,1,1,0,21,82,1,2,40,0,0,0,0,1,34,1,47,80,1,0,59,18,53,250,142,60,39,69,1,1,0,21,85,1,2,40,0,0,0,0,1,34,20,39,16,0,51,0,1,1,47,83,1,0,58,47,84,1,0,39,61,1,1,0,21,89,1,2,40,0,0,0,0,1,34,20,39,16,0,51,0,1,1,47,86,1,0,58,47,87,1,0,39,65,1,1,0,21,93,1,2,40,0,0,0,0,1,34,20,39,16,0,51,0,1,1,47,90,1,0,58,47,91,1,0,39,69,1,1,0,21,96,1,2,40,0,0,0,0,1,34,6,39,65,1,3,1,1,38,47,94,1,0,1,1,59,38,47,95,1,0,1,2,39,16,0,58,1,38,47,94,1,0,1,2,59,38,47,95,1,0,1,1,39,16,0,39,16,0,1,1,38,47,94,1,0,1,2,59,38,47,95,1,0,1,0,39,16,0,58,1,38,47,94,1,0,1,0,59,38,47,95,1,0,1,2,39,16,0,39,16,0,1,1,38,47,94,1,0,1,0,59,38,47,95,1,0,1,1,39,16,0,58,1,38,47,94,1,0,1,1,59,38,47,95,1,0,1,0,39,16,0,39,16,0,1,0,}; diff --git a/src/sksl/ir/SkSLModifiers.h b/src/sksl/ir/SkSLModifiers.h index e171e03953..f830b0ff09 100644 --- a/src/sksl/ir/SkSLModifiers.h +++ b/src/sksl/ir/SkSLModifiers.h @@ -35,6 +35,7 @@ struct Modifiers { kPLSIn_Flag = 1 << 14, kPLSOut_Flag = 1 << 15, kVarying_Flag = 1 << 16, + kInline_Flag = 1 << 17, }; Modifiers() diff --git a/src/sksl/lex/Main.cpp b/src/sksl/lex/Main.cpp index d71c48d8f6..6cb3bf522f 100644 --- a/src/sksl/lex/Main.cpp +++ b/src/sksl/lex/Main.cpp @@ -178,6 +178,12 @@ void process(const char* inPath, const char* lexer, const char* token, const cha std::string line; std::ifstream in(inPath); while (std::getline(in, line)) { + if (line.length() == 0) { + continue; + } + if (line.length() >= 2 && line[0] == '/' && line[1] == '/') { + continue; + } std::istringstream split(line); std::string name, delimiter, pattern; if (split >> name >> delimiter >> pattern) { diff --git a/src/sksl/lex/sksl.lex b/src/sksl/lex/sksl.lex index 1431a79f42..aa114fd6c1 100644 --- a/src/sksl/lex/sksl.lex +++ b/src/sksl/lex/sksl.lex @@ -1,3 +1,14 @@ +// ***************** +// *** IMPORTANT *** +// ***************** +// +// 1. This file is only used when gn arg sksl_lex is set to true. It is used to regenerate the +// SkSLLexer.h and SkSLLexer.cpp files. +// 2. Since token IDs are used to identify operators and baked into the .dehydrated.sksl files, +// after modifying this file it is likely everything will break until you update the dehydrated +// binaries. If things break after updating the lexer, set REHYDRATE in SkSLCompiler.cpp to 0, +// rebuild, and then set it back to 1. + FLOAT_LITERAL = [0-9]*\.[0-9]+([eE][+-]?[0-9]+)?|[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?|[0-9]+([eE][+-]?[0-9]+) INT_LITERAL = [0-9]+|0x[0-9a-fA-F]+ TRUE_LITERAL = "true" @@ -30,6 +41,7 @@ COHERENT = "coherent" VOLATILE = "volatile" RESTRICT = "restrict" BUFFER = "buffer" +INLINE = "inline" HASSIDEEFFECTS = "sk_has_side_effects" PLS = "__pixel_localEXT" PLSIN = "__pixel_local_inEXT" diff --git a/tests/SkSLGLSLTest.cpp b/tests/SkSLGLSLTest.cpp index e95af7c59f..bea23093d6 100644 --- a/tests/SkSLGLSLTest.cpp +++ b/tests/SkSLGLSLTest.cpp @@ -126,6 +126,83 @@ DEF_TEST(SkSLFunctions, r) { "}\n"); } +DEF_TEST(SkSLFunctionInlineThreshold, r) { + test(r, + "void tooBig(inout int x) {" + " ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x;" + " ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x;" + "}" + "void main() { int x = 0; tooBig(x); }", + *SkSL::ShaderCapsFactory::Default(), + "#version 400\n" + "void tooBig(inout int x) {\n" + " ++x;\n ++x;\n ++x;\n ++x;\n ++x;\n ++x;\n ++x;\n ++x;\n" + " ++x;\n ++x;\n ++x;\n ++x;\n ++x;\n ++x;\n ++x;\n ++x;\n" + " ++x;\n ++x;\n ++x;\n ++x;\n ++x;\n ++x;\n ++x;\n ++x;\n" + " ++x;\n ++x;\n ++x;\n ++x;\n ++x;\n ++x;\n ++x;\n ++x;\n" + " ++x;\n ++x;\n" + "}\n" + "void main() {\n" + " int x = 0;\n" + " tooBig(x);\n" + "}\n" + ); + test(r, + "inline void tooBig(inout int x) {" + " ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x;" + " ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x; ++x;" + "}" + "void main() { int x = 0; tooBig(x); }", + *SkSL::ShaderCapsFactory::Default(), + "#version 400\n" + "void main() {\n" + " int x = 0;\n" + " int _inlineArgvoidtooBigint0_0 = x;\n" + " {\n" + " ++_inlineArgvoidtooBigint0_0;\n ++_inlineArgvoidtooBigint0_0;\n" + " ++_inlineArgvoidtooBigint0_0;\n ++_inlineArgvoidtooBigint0_0;\n" + " ++_inlineArgvoidtooBigint0_0;\n ++_inlineArgvoidtooBigint0_0;\n" + " ++_inlineArgvoidtooBigint0_0;\n ++_inlineArgvoidtooBigint0_0;\n" + " ++_inlineArgvoidtooBigint0_0;\n ++_inlineArgvoidtooBigint0_0;\n" + " ++_inlineArgvoidtooBigint0_0;\n ++_inlineArgvoidtooBigint0_0;\n" + " ++_inlineArgvoidtooBigint0_0;\n ++_inlineArgvoidtooBigint0_0;\n" + " ++_inlineArgvoidtooBigint0_0;\n ++_inlineArgvoidtooBigint0_0;\n" + " ++_inlineArgvoidtooBigint0_0;\n ++_inlineArgvoidtooBigint0_0;\n" + " ++_inlineArgvoidtooBigint0_0;\n ++_inlineArgvoidtooBigint0_0;\n" + " ++_inlineArgvoidtooBigint0_0;\n ++_inlineArgvoidtooBigint0_0;\n" + " ++_inlineArgvoidtooBigint0_0;\n ++_inlineArgvoidtooBigint0_0;\n" + " ++_inlineArgvoidtooBigint0_0;\n ++_inlineArgvoidtooBigint0_0;\n" + " ++_inlineArgvoidtooBigint0_0;\n ++_inlineArgvoidtooBigint0_0;\n" + " ++_inlineArgvoidtooBigint0_0;\n ++_inlineArgvoidtooBigint0_0;\n" + " ++_inlineArgvoidtooBigint0_0;\n ++_inlineArgvoidtooBigint0_0;\n" + " ++_inlineArgvoidtooBigint0_0;\n ++_inlineArgvoidtooBigint0_0;\n" + " }\n" + " x = _inlineArgvoidtooBigint0_0;\n" + "\n" + "}\n" + ); + test(r, + "inline void cantActuallyInline(inout int x) {" + " for (;;) {" + " ++x;" + " if (x > 10) return;" + " }" + "}" + "void main() { int x = 0; cantActuallyInline(x); }", + *SkSL::ShaderCapsFactory::Default(), + "#version 400\n" + "void cantActuallyInline(inout int x) {\n" + " for (; ; ) {\n" + " ++x;\n" + " if (x > 10) return;\n" + " }\n" + "}\n" + "void main() {\n" + " int x = 0;\n" + " cantActuallyInline(x);\n" + "}\n"); +} + DEF_TEST(SkSLOperators, r) { test(r, "void main() {"