diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt
index bfeef83..448d7e4 100644
--- a/RELEASE_NOTES.txt
+++ b/RELEASE_NOTES.txt
@@ -6,7 +6,9 @@
 
 Milestone 92
 ------------
-  *
+  * Removed custom attributes from SkVertices and the corresponding `varying` feature from
+    SkRuntimeEffect.
+    https://review.skia.org/398222
 
 * * *
 
diff --git a/gm/vertices.cpp b/gm/vertices.cpp
index d8d3a80..a1ac94a 100644
--- a/gm/vertices.cpp
+++ b/gm/vertices.cpp
@@ -272,49 +272,6 @@
     draw_batching(canvas);
 }
 
-using AttrType = SkVertices::Attribute::Type;
-
-DEF_SIMPLE_GM(vertices_data, canvas, 512, 256) {
-    for (auto attrType : {AttrType::kFloat4, AttrType::kByte4_unorm}) {
-        SkRect r = SkRect::MakeWH(256, 256);
-        int vcount = 4;  // just a quad
-        int icount = 0;
-        SkVertices::Attribute attrs[] = { attrType };
-        SkVertices::Builder builder(SkVertices::kTriangleFan_VertexMode, vcount, icount, attrs, 1);
-
-        r.toQuad(builder.positions());
-
-        if (attrType == AttrType::kFloat4) {
-            SkV4* col = (SkV4*)builder.customData();
-            col[0] = {1, 0, 0, 1};        // red
-            col[1] = {0, 1, 0, 1};        // green
-            col[2] = {0, 0, 1, 1};        // blue
-            col[3] = {0.5, 0.5, 0.5, 1};  // gray
-        } else {
-            uint32_t* col = (uint32_t*)builder.customData();
-            col[0] = 0xFF0000FF;
-            col[1] = 0xFF00FF00;
-            col[2] = 0xFFFF0000;
-            col[3] = 0xFF7F7F7F;
-        }
-
-        SkPaint paint;
-        const char* gProg = R"(
-            varying float4 vtx_color;
-            half4 main(float2 p) {
-                return vtx_color;
-            }
-        )";
-        auto [effect, errorText] = SkRuntimeEffect::Make(SkString(gProg));
-        if (!effect) {
-            SK_ABORT("RuntimeEffect error: %s\n", errorText.c_str());
-        }
-        paint.setShader(effect->makeShader(nullptr, nullptr, 0, nullptr, true));
-        canvas->drawVertices(builder.detach(), paint);
-        canvas->translate(r.width(), 0);
-    }
-}
-
 // Test case for skbug.com/10069. We need to draw the vertices twice (with different matrices) to
 // trigger the bug.
 DEF_SIMPLE_GM(vertices_perspective, canvas, 256, 256) {
@@ -353,279 +310,3 @@
     canvas->drawVertices(verts, paint);
     canvas->restore();
 }
-
-DEF_SIMPLE_GM(vertices_data_lerp, canvas, 256, 256) {
-    SkPoint pts[12] = {{0, 0},     {85, 0},    {171, 0},  {256, 0}, {256, 85}, {256, 171},
-                       {256, 256}, {171, 256}, {85, 256}, {0, 256}, {0, 171},  {0, 85}};
-
-    auto patchVerts = SkPatchUtils::MakeVertices(pts, nullptr, nullptr, 12, 12);
-    SkVerticesPriv pv(patchVerts->priv());
-
-    SkVertices::Attribute attrs[1] = { AttrType::kFloat };
-    SkVertices::Builder builder(pv.mode(), pv.vertexCount(), pv.indexCount(), attrs, 1);
-
-    memcpy(builder.positions(), pv.positions(), pv.vertexCount() * sizeof(SkPoint));
-    memcpy(builder.indices(), pv.indices(), pv.indexCount() * sizeof(uint16_t));
-
-    SkRandom rnd;
-    float* lerpData = (float*)builder.customData();
-    for (int i = 0; i < pv.vertexCount(); ++i) {
-        lerpData[i] = rnd.nextBool() ? 1.0f : 0.0f;
-    }
-
-    auto verts = builder.detach();
-
-    SkPaint paint;
-    const char* gProg = R"(
-        uniform shader c0;
-        uniform shader c1;
-        varying float vtx_lerp;
-        half4 main(float2 p) {
-            half4 col0 = sample(c0, p);
-            half4 col1 = sample(c1, p);
-            return mix(col0, col1, vtx_lerp);
-        }
-    )";
-    auto [effect, errorText] = SkRuntimeEffect::Make(SkString(gProg));
-    SkMatrix scale = SkMatrix::Scale(2, 2);
-    sk_sp<SkShader> children[] = {
-        GetResourceAsImage("images/mandrill_256.png")->makeShader(SkSamplingOptions()),
-        GetResourceAsImage("images/color_wheel.png")->makeShader(SkSamplingOptions(), scale),
-    };
-    paint.setShader(effect->makeShader(nullptr, children, 2, nullptr, false));
-
-    canvas->drawVertices(verts, paint);
-}
-
-static constexpr SkScalar kSin60 = 0.8660254f; // sqrt(3) / 2
-static constexpr SkPoint kHexVerts[] = {
-    { 0, 0 },
-    { 0, -1 },
-    { kSin60, -0.5f },
-    { kSin60, 0.5f },
-    { 0, 1 },
-    { -kSin60, 0.5f },
-    { -kSin60, -0.5f },
-    { 0, -1 },
-};
-
-static constexpr SkColor4f kColors[] = {
-    SkColors::kWhite,
-    SkColors::kRed,
-    SkColors::kYellow,
-    SkColors::kGreen,
-    SkColors::kCyan,
-    SkColors::kBlue,
-    SkColors::kMagenta,
-    SkColors::kRed,
-};
-
-using Attr = SkVertices::Attribute;
-
-DEF_SIMPLE_GM(vertices_custom_colors, canvas, 400, 200) {
-    ToolUtils::draw_checkerboard(canvas);
-
-    auto draw = [=](SkScalar cx, SkScalar cy, SkVertices::Builder& builder, const SkPaint& paint) {
-        memcpy(builder.positions(), kHexVerts, sizeof(kHexVerts));
-
-        canvas->save();
-        canvas->translate(cx, cy);
-        canvas->scale(45, 45);
-        canvas->drawVertices(builder.detach(), paint);
-        canvas->restore();
-    };
-
-    auto transColor = [](int i) {
-        return SkColor4f { kColors[i].fR, kColors[i].fG, kColors[i].fB, i % 2 ? 0.5f : 1.0f };
-    };
-
-    // Fixed function SkVertices, opaque
-    {
-        SkVertices::Builder builder(SkVertices::kTriangleFan_VertexMode, 8, 0,
-                                    SkVertices::kHasColors_BuilderFlag);
-        for (int i = 0; i < 8; ++i) {
-            builder.colors()[i] = kColors[i].toSkColor();
-        }
-        draw(50, 50, builder, SkPaint());
-    }
-
-    // Fixed function SkVertices, w/transparency
-    {
-        SkVertices::Builder builder(SkVertices::kTriangleFan_VertexMode, 8, 0,
-                                    SkVertices::kHasColors_BuilderFlag);
-        for (int i = 0; i < 8; ++i) {
-            builder.colors()[i] = transColor(i).toSkColor();
-        }
-        draw(50, 150, builder, SkPaint());
-    }
-
-    const char* gProg = R"(
-        varying half4 vtx_color;
-        half4 main(float2 p) {
-            return vtx_color;
-        }
-    )";
-    SkPaint skslPaint;
-    auto [effect, errorText] = SkRuntimeEffect::Make(SkString(gProg));
-    skslPaint.setShader(effect->makeShader(nullptr, nullptr, 0, nullptr, false));
-
-    Attr byteColorAttr(Attr::Type::kByte4_unorm, Attr::Usage::kColor);
-    Attr float4ColorAttr(Attr::Type::kFloat4, Attr::Usage::kColor);
-    Attr float3ColorAttr(Attr::Type::kFloat3, Attr::Usage::kColor);
-
-    // Custom vertices, byte colors, opaque
-    {
-        SkVertices::Builder builder(SkVertices::kTriangleFan_VertexMode, 8, 0, &byteColorAttr, 1);
-        for (int i = 0; i < 8; ++i) {
-            ((uint32_t*)builder.customData())[i] = kColors[i].toBytes_RGBA();
-        }
-        draw(150, 50, builder, skslPaint);
-    }
-
-    // Custom vertices, byte colors, w/transparency
-    {
-        SkVertices::Builder builder(SkVertices::kTriangleFan_VertexMode, 8, 0, &byteColorAttr, 1);
-        for (int i = 0; i < 8; ++i) {
-            ((uint32_t*)builder.customData())[i] = transColor(i).toBytes_RGBA();
-        }
-        draw(150, 150, builder, skslPaint);
-    }
-
-    // Custom vertices, float4 colors, opaque
-    {
-        SkVertices::Builder builder(SkVertices::kTriangleFan_VertexMode, 8, 0, &float4ColorAttr, 1);
-        for (int i = 0; i < 8; ++i) {
-            ((SkColor4f*)builder.customData())[i] = kColors[i];
-        }
-        draw(250, 50, builder, skslPaint);
-    }
-
-    // Custom vertices, float4 colors, w/transparency
-    {
-        SkVertices::Builder builder(SkVertices::kTriangleFan_VertexMode, 8, 0, &float4ColorAttr, 1);
-        SkColor4f* clr = (SkColor4f*)builder.customData();
-        for (int i = 0; i < 8; ++i) {
-            clr[i] = transColor(i);
-        }
-        draw(250, 150, builder, skslPaint);
-    }
-
-    // Custom vertices, float3 colors, opaque
-    {
-        SkVertices::Builder builder(SkVertices::kTriangleFan_VertexMode, 8, 0, &float3ColorAttr, 1);
-        for (int i = 0; i < 8; ++i) {
-            ((SkV3*)builder.customData())[i] = { kColors[i].fR, kColors[i].fG, kColors[i].fB };
-        }
-        draw(350, 50, builder, skslPaint);
-    }
-}
-
-static sk_sp<SkVertices> make_cone(Attr::Usage u, const char* markerName) {
-    Attr attr(Attr::Type::kFloat3, u, markerName);
-
-    constexpr int kPerimeterVerts = 64;
-    // +1 for the center, +1 to repeat the first perimeter point (so we draw a complete circle)
-    constexpr int kNumVerts = kPerimeterVerts + 2;
-
-    SkVertices::Builder builder(SkVertices::kTriangleFan_VertexMode, kNumVerts, /*indexCount=*/0,
-                                &attr, /*attrCount=*/1);
-
-    SkPoint* pos = builder.positions();
-    SkPoint3* vec = static_cast<SkPoint3*>(builder.customData());
-
-    pos[0] = { 0, 0 };
-    vec[0] = { 0, 0, 1 };
-
-    for (int i = 0; i < kPerimeterVerts + 1; ++i) {
-        SkScalar t = (i / SkIntToScalar(kPerimeterVerts)) * 2 * SK_ScalarPI;
-        SkScalar s = SkScalarSin(t),
-                 c = SkScalarCos(t);
-        pos[i + 1] = { c, s };
-        vec[i + 1] = { c, s, 0 };
-    }
-
-    return builder.detach();
-}
-
-DEF_SIMPLE_GM(vertices_custom_matrices, canvas, 400, 400) {
-    ToolUtils::draw_checkerboard(canvas);
-
-    const char* kViewSpace = "local_to_view";
-    const char* kWorldSpace = "local_to_world";
-    const char* kLocalSpace = "local_to_local";
-
-    auto draw = [=](SkScalar cx, SkScalar cy, sk_sp<SkVertices> vertices, const char* prog,
-                    SkScalar squish = 1.0f) {
-        SkPaint paint;
-        auto [effect, errorText] = SkRuntimeEffect::Make(SkString(prog));
-        paint.setShader(effect->makeShader(nullptr, nullptr, 0, nullptr, false));
-
-        canvas->save();
-
-        // Device space: mesh is upright, translated to its "cell"
-        canvas->translate(cx, cy);
-
-        // View (camera) space: Mesh is upright, centered on origin, device scale
-        canvas->markCTM(kViewSpace);
-        canvas->rotate(90);
-
-        // World space: Mesh is sideways, centered on origin, device scale (possibly squished)
-        canvas->markCTM(kWorldSpace);
-        canvas->rotate(-90);
-        canvas->scale(45, 45 * squish);
-
-        // Local space: Mesh is upright, centered on origin, unit scale
-        canvas->markCTM(kLocalSpace);
-        canvas->drawVertices(vertices, paint);
-
-        canvas->restore();
-    };
-
-    const char* vectorProg = R"(
-        varying float3 vtx_vec;
-        half4 main(float2 p) {
-            return (vtx_vec * 0.5 + 0.5).rgb1;
-        })";
-
-    // raw, local vectors, normals, and positions should all look the same (no real transform)
-    draw(50,  50, make_cone(Attr::Usage::kRaw, nullptr), vectorProg);
-    draw(150, 50, make_cone(Attr::Usage::kVector, kLocalSpace), vectorProg);
-    draw(250, 50, make_cone(Attr::Usage::kNormalVector, kLocalSpace), vectorProg);
-    draw(350, 50, make_cone(Attr::Usage::kPosition, kLocalSpace), vectorProg);
-
-    // world-space vectors and normals are rotated 90 degrees, positions are centered but scaled up
-    draw(150, 150, make_cone(Attr::Usage::kVector, kWorldSpace), vectorProg);
-    draw(250, 150, make_cone(Attr::Usage::kNormalVector, kWorldSpace), vectorProg);
-    draw(350, 150, make_cone(Attr::Usage::kPosition, kWorldSpace), vectorProg);
-
-    // Squished vectors are "wrong", but normals are correct (because we use the inverse transpose)
-    // Positions remain scaled up (saturated), but otherwise correct
-    draw(150, 250, make_cone(Attr::Usage::kVector, kWorldSpace), vectorProg, 0.5f);
-    draw(250, 250, make_cone(Attr::Usage::kNormalVector, kWorldSpace), vectorProg, 0.5f);
-    draw(350, 250, make_cone(Attr::Usage::kPosition, kWorldSpace), vectorProg, 0.5f);
-
-    draw( 50, 350, make_cone(Attr::Usage::kVector, nullptr), vectorProg, 0.5f);
-    draw(150, 350, make_cone(Attr::Usage::kNormalVector, nullptr), vectorProg, 0.5f);
-
-    // For canvas-space positions, color them according to their position relative to the center.
-    // We do this test twice, with and without saveLayer. That ensures that we get the canvas CTM,
-    // not just a local-to-device matrix, which exposes effect authors to an implementation detail.
-
-    const char* ctmPositionProg250 = R"(
-        varying float3 vtx_pos;
-        half4 main(float2 p) {
-            return ((vtx_pos - float3(250, 350, 0)) / 50 + 0.5).rgb1;
-        }
-    )";
-    draw(250, 350, make_cone(Attr::Usage::kPosition, nullptr), ctmPositionProg250, 0.5f);
-
-    const char* ctmPositionProg350 = R"(
-        varying float3 vtx_pos;
-        half4 main(float2 p) {
-            return ((vtx_pos - float3(350, 350, 0)) / 50 + 0.5).rgb1;
-        }
-    )";
-    canvas->saveLayer({ 300, 300, 400, 400 }, nullptr);
-    draw(350, 350, make_cone(Attr::Usage::kPosition, nullptr), ctmPositionProg350, 0.5f);
-    canvas->restore();
-}
diff --git a/include/core/SkVertices.h b/include/core/SkVertices.h
index 7184dd2..fc53e9d 100644
--- a/include/core/SkVertices.h
+++ b/include/core/SkVertices.h
@@ -55,70 +55,6 @@
                         nullptr);
     }
 
-    static constexpr int kMaxCustomAttributes = 8;
-
-    /**
-     *  EXPERIMENTAL - An SkVertices object can be constructed with a custom collection of vertex
-     *  attributes. Each attribute is described by a single Attribute struct. Type defines the CPU
-     *  type of the data. Usage determines what transformation (if any) is applied to that data in
-     *  the vertex shader. For positions or vectors, markerName identifies what matrix is used in
-     *  the vertex shader to transform the data. Those names should match a named transform on the
-     *  CTM stack, created by calling SkCanvas::markCTM().
-     *
-     *  For attributes with a usage of kVector, kNormalVector, or kPosition, a null markerName
-     *  will transform the attribute by the canvas CTM matrix.
-     */
-    struct Attribute {
-        enum class Type : uint8_t {
-            kFloat,
-            kFloat2,
-            kFloat3,
-            kFloat4,
-            kByte4_unorm,
-        };
-
-        enum class Usage : uint8_t {
-            // Raw values passed directly to effect
-            kRaw,
-
-            // sRGB unpremul colors, transformed to destination color space (3 or 4 channels)
-            // Colors are always assumed to be in RGBA order, and are automatically premultiplied.
-            kColor,
-
-            // Local vector, transformed via marker (2 or 3 channels)
-            kVector,
-
-            // Normal vector (or any other bivector), transformed via marker (2 or 3 channels)
-            kNormalVector,
-
-            // Local position, transformed via marker (2 or 3 channels)
-            kPosition,
-        };
-
-        /**
-         *  markerName is not copied by the Attribute, so it must outlive this struct.
-         *  It is copied when this Attribute is passed to the Builder constructor.
-         */
-        Attribute(Type t = Type::kFloat, Usage u = Usage::kRaw, const char* markerName = nullptr);
-
-        bool operator==(const Attribute& that) const {
-            return fType == that.fType && fUsage == that.fUsage && fMarkerID == that.fMarkerID;
-        }
-        bool operator!=(const Attribute& that) const { return !(*this == that); }
-
-        // Number of channels that will be produced for the SkRuntimeEffect to consume.
-        // May not match the number of channels in fType. For example, kVector Attributes always
-        // produce three channels, even if the input is kFloat2.
-        int channelCount() const;
-        size_t bytesPerVertex() const;
-        bool isValid() const;
-
-        Type        fType;
-        Usage       fUsage;
-        uint32_t    fMarkerID;
-        const char* fMarkerName;  // Preserved for serialization and debugging
-    };
-
     enum BuilderFlags {
         kHasTexCoords_BuilderFlag   = 1 << 0,
         kHasColors_BuilderFlag      = 1 << 1,
@@ -127,21 +63,11 @@
     public:
         Builder(VertexMode mode, int vertexCount, int indexCount, uint32_t flags);
 
-        // EXPERIMENTAL -- do not call if you care what happens
-        Builder(VertexMode mode,
-                int vertexCount,
-                int indexCount,
-                const Attribute* attrs,
-                int attrCount);
-
         bool isValid() const { return fVertices != nullptr; }
 
         SkPoint* positions();
         uint16_t* indices();        // returns null if there are no indices
 
-        // if we have texCoords or colors, this will always be null
-        void* customData();         // returns null if there are no custom attributes
-
         // If we have custom attributes, these will always be null
         SkPoint* texCoords();       // returns null if there are no texCoords
         SkColor* colors();          // returns null if there are no colors
@@ -190,17 +116,14 @@
     uint32_t fUniqueID;
 
     // these point inside our allocation, so none of these can be "freed"
-    Attribute*   fAttributes;       // [attributeCount] or null
     SkPoint*     fPositions;        // [vertexCount]
     uint16_t*    fIndices;          // [indexCount] or null
-    void*        fCustomData;       // [customDataSize * vertexCount] or null
     SkPoint*     fTexs;             // [vertexCount] or null
     SkColor*     fColors;           // [vertexCount] or null
 
     SkRect  fBounds;    // computed to be the union of the fPositions[]
     int     fVertexCount;
     int     fIndexCount;
-    int     fAttributeCount;
 
     VertexMode fMode;
     // below here is where the actual array data is stored.
diff --git a/include/effects/SkRuntimeEffect.h b/include/effects/SkRuntimeEffect.h
index 90b6303..6e99faf 100644
--- a/include/effects/SkRuntimeEffect.h
+++ b/include/effects/SkRuntimeEffect.h
@@ -75,11 +75,6 @@
         size_t sizeInBytes() const;
     };
 
-    struct Varying {
-        SkString name;
-        int      width;  // 1 - 4 (floats)
-    };
-
     struct Options {
         // For testing purposes, completely disable the inliner. (Normally, Runtime Effects don't
         // run the inliner directly, but they still get an inlining pass once they are painted.)
@@ -172,7 +167,6 @@
 
     ConstIterable<Uniform> uniforms() const { return ConstIterable<Uniform>(fUniforms); }
     ConstIterable<SkString> children() const { return ConstIterable<SkString>(fChildren); }
-    ConstIterable<Varying> varyings() const { return ConstIterable<Varying>(fVaryings); }
 
     // Returns pointer to the named uniform variable's description, or nullptr if not found
     const Uniform* findUniform(const char* name) const;
@@ -204,7 +198,6 @@
                     std::vector<Uniform>&& uniforms,
                     std::vector<SkString>&& children,
                     std::vector<SkSL::SampleUsage>&& sampleUsages,
-                    std::vector<Varying>&& varyings,
                     uint32_t flags);
 
     static Result Make(std::unique_ptr<SkSL::Program> program, SkSL::ProgramKind kind);
@@ -241,7 +234,6 @@
     std::vector<Uniform> fUniforms;
     std::vector<SkString> fChildren;
     std::vector<SkSL::SampleUsage> fSampleUsages;
-    std::vector<Varying>  fVaryings;
 
     SkOnce fColorFilterProgramOnce;
     std::unique_ptr<skvm::Program> fColorFilterProgram;
diff --git a/include/private/SkSLModifiers.h b/include/private/SkSLModifiers.h
index 7582409..a5497b7 100644
--- a/include/private/SkSLModifiers.h
+++ b/include/private/SkSLModifiers.h
@@ -27,7 +27,7 @@
         kFlat_Flag           = 1 <<  4,
         kNoPerspective_Flag  = 1 <<  5,
         kHasSideEffects_Flag = 1 <<  6,
-        kVarying_Flag        = 1 <<  7,
+
         kInline_Flag         = 1 <<  8,
         kNoInline_Flag       = 1 <<  9,
     };
@@ -57,9 +57,6 @@
         if (fFlags & kHasSideEffects_Flag) {
             result += "sk_has_side_effects ";
         }
-        if (fFlags & kVarying_Flag) {
-            result += "varying ";
-        }
         if (fFlags & kNoInline_Flag) {
             result += "noinline ";
         }
diff --git a/resources/sksl/errors/BadModifiers.sksl b/resources/sksl/errors/BadModifiers.sksl
index 8f056e7..17065e2 100644
--- a/resources/sksl/errors/BadModifiers.sksl
+++ b/resources/sksl/errors/BadModifiers.sksl
@@ -1,6 +1,6 @@
-const in out uniform flat noperspective sk_has_side_effects varying inline noinline void func1() {}
+const in out uniform flat noperspective sk_has_side_effects inline noinline void func1() {}
 
-void func2(const in out uniform flat noperspective sk_has_side_effects varying
+void func2(const in out uniform flat noperspective sk_has_side_effects
            inline noinline float test) {}
 
-const in out uniform flat noperspective sk_has_side_effects varying inline noinline float var;
+const in out uniform flat noperspective sk_has_side_effects inline noinline float var;
diff --git a/resources/sksl/errors/ModifiersInStruct.sksl b/resources/sksl/errors/ModifiersInStruct.sksl
index cda500b..ba68d15 100644
--- a/resources/sksl/errors/ModifiersInStruct.sksl
+++ b/resources/sksl/errors/ModifiersInStruct.sksl
@@ -3,5 +3,5 @@
     uniform int b;
     flat half4 c;
     noperspective float4 d;
-    inout varying bool e;
+    inout bool e;
 };
diff --git a/samplecode/Sample3D.cpp b/samplecode/Sample3D.cpp
index 575110a..89cd578 100644
--- a/samplecode/Sample3D.cpp
+++ b/samplecode/Sample3D.cpp
@@ -423,87 +423,6 @@
 };
 DEF_SAMPLE( return new SampleBump3D; )
 
-class SampleVerts3D : public SampleCubeBase {
-    sk_sp<SkRuntimeEffect> fEffect;
-    sk_sp<SkVertices>      fVertices;
-
-public:
-    SampleVerts3D() : SampleCubeBase(kShowLightDome) {}
-
-    SkString name() override { return SkString("verts3d"); }
-
-    void onOnceBeforeDraw() override {
-        using Attr = SkVertices::Attribute;
-        Attr attrs[] = {
-            Attr(Attr::Type::kFloat3, Attr::Usage::kNormalVector),
-        };
-
-        SkVertices::Builder builder(SkVertices::kTriangleFan_VertexMode, 66, 0, attrs, 1);
-
-        SkPoint* pos = builder.positions();
-        SkV3* nrm = (SkV3*)builder.customData();
-
-        SkPoint center = { 200, 200 };
-        SkScalar radius = 200;
-
-        pos[0] = center;
-        nrm[0] = { 0, 0, 1 };
-
-        for (int i = 0; i < 65; ++i) {
-            SkScalar t = (i / 64.0f) * 2 * SK_ScalarPI;
-            SkScalar s = SkScalarSin(t),
-                     c = SkScalarCos(t);
-            pos[i + 1] = center + SkPoint { c * radius, s * radius };
-            nrm[i + 1] = { c, s, 0 };
-        }
-
-        fVertices = builder.detach();
-
-        const char code[] = R"(
-            varying float3 vtx_normal;
-
-            layout (marker=local_to_world)          uniform float4x4 localToWorld;
-            layout (marker=normals(local_to_world)) uniform float4x4 localToWorldAdjInv;
-            uniform float3   lightPos;
-
-            half4 main(float2 p) {
-                float3 norm = normalize(vtx_normal);
-                float3 plane_norm = normalize(localToWorldAdjInv * norm.xyz0).xyz;
-
-                float3 plane_pos = (localToWorld * p.xy01).xyz;
-                float3 light_dir = normalize(lightPos - plane_pos);
-
-                float ambient = 0.2;
-                float dp = dot(plane_norm, light_dir);
-                float scale = min(ambient + max(dp, 0), 1);
-
-                return half4(0.7, 0.9, 0.3, 1) * scale.xxx1;
-            }
-        )";
-        auto [effect, error] = SkRuntimeEffect::Make(SkString(code));
-        if (!effect) {
-            SkDebugf("runtime error %s\n", error.c_str());
-        }
-        fEffect = effect;
-    }
-
-    void drawContent(SkCanvas* canvas, SkColor color, int index, bool drawFront) override {
-        if (!drawFront || !front(canvas->getLocalToDevice())) {
-            return;
-        }
-
-        SkRuntimeShaderBuilder builder(fEffect);
-        builder.uniform("lightPos") = fLight.computeWorldPos(fSphere);
-
-        SkPaint paint;
-        paint.setColor(color);
-        paint.setShader(builder.makeShader(nullptr, true));
-
-        canvas->drawVertices(fVertices, paint);
-    }
-};
-DEF_SAMPLE( return new SampleVerts3D; )
-
 #include "modules/skottie/include/Skottie.h"
 
 class SampleSkottieCube : public SampleCubeBase {
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index a3e9dad..d21c503 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -1799,27 +1799,6 @@
     // We expect fans to be converted to triangles when building or deserializing SkVertices.
     SkASSERT(vertices->priv().mode() != SkVertices::kTriangleFan_VertexMode);
 
-    // If the vertices contain custom attributes, ensure they line up with the paint's shader.
-    const SkRuntimeEffect* effect =
-            paint.getShader() ? as_SB(paint.getShader())->asRuntimeEffect() : nullptr;
-    if ((size_t)vertices->priv().attributeCount() != (effect ? effect->varyings().count() : 0)) {
-        return;
-    }
-    if (effect) {
-        int attrIndex = 0;
-        for (const auto& v : effect->varyings()) {
-            const SkVertices::Attribute& attr(vertices->priv().attributes()[attrIndex++]);
-            // Mismatch between the SkSL varying and the vertex shader output for this attribute
-            if (attr.channelCount() != v.width) {
-                return;
-            }
-            // If we can't provide any of the asked-for matrices, we can't draw this
-            if (attr.fMarkerID && !fMarkerStack->findMarker(attr.fMarkerID, nullptr)) {
-                return;
-            }
-        }
-    }
-
 #ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
     // Preserve legacy behavior for Android: ignore the SkShader if there are no texCoords present
     if (paint.getShader() &&
diff --git a/src/core/SkDraw.h b/src/core/SkDraw.h
index f190f4c..8e7aaa3 100644
--- a/src/core/SkDraw.h
+++ b/src/core/SkDraw.h
@@ -128,8 +128,6 @@
     void drawBitmapAsMask(const SkBitmap&, const SkSamplingOptions&, const SkPaint&) const;
     void draw_fixed_vertices(const SkVertices*, SkBlendMode, const SkPaint&, const SkMatrix&,
                              const SkPoint dev2[], const SkPoint3 dev3[], SkArenaAlloc*) const;
-    void draw_vdata_vertices(const SkVertices*, const SkPaint&, const SkMatrix&,
-                             const SkPoint[], const SkPoint3[], SkArenaAlloc*) const;
 
     void drawPath(const SkPath&,
                   const SkPaint&,
diff --git a/src/core/SkDraw_vertices.cpp b/src/core/SkDraw_vertices.cpp
index fca9aad..f7ff3e4 100644
--- a/src/core/SkDraw_vertices.cpp
+++ b/src/core/SkDraw_vertices.cpp
@@ -268,7 +268,6 @@
                                  const SkPoint dev2[], const SkPoint3 dev3[],
                                  SkArenaAlloc* outerAlloc) const {
     SkVerticesPriv info(vertices->priv());
-    SkASSERT(!info.hasCustomData());
 
     const int vertexCount = info.vertexCount();
     const int indexCount = info.indexCount();
@@ -416,13 +415,6 @@
     }
 }
 
-void SkDraw::draw_vdata_vertices(const SkVertices* vt, const SkPaint& paint,
-                                 const SkMatrix& ctmInv,
-                                 const SkPoint dev2[], const SkPoint3 dev3[],
-                                 SkArenaAlloc* outerAlloc) const {
-    // TODO: Handle custom attributes
-}
-
 void SkDraw::drawVertices(const SkVertices* vertices, SkBlendMode bmode,
                           const SkPaint& paint) const {
     SkVerticesPriv info(vertices->priv());
@@ -467,9 +459,5 @@
         }
     }
 
-    if (!info.hasCustomData()) {
-        this->draw_fixed_vertices(vertices, bmode, paint, ctmInv, dev2, dev3, &outerAlloc);
-    } else {
-        this->draw_vdata_vertices(vertices, paint, ctmInv, dev2, dev3, &outerAlloc);
-    }
+    this->draw_fixed_vertices(vertices, bmode, paint, ctmInv, dev2, dev3, &outerAlloc);
 }
diff --git a/src/core/SkPicturePriv.h b/src/core/SkPicturePriv.h
index 4dc5bce..3f87424 100644
--- a/src/core/SkPicturePriv.h
+++ b/src/core/SkPicturePriv.h
@@ -106,10 +106,11 @@
         kMatrixImageFilterSampling_Version  = 83,
         kImageFilterImageSampling_Version   = 84,
         kNoFilterQualityShaders_Version     = 85,
+        kVerticesRemoveCustomData_Version   = 86,
 
         // Only SKPs within the min/current picture version range (inclusive) can be read.
         kMin_Version     = kEdgeAAQuadColor4f_Version,
-        kCurrent_Version = kNoFilterQualityShaders_Version
+        kCurrent_Version = kVerticesRemoveCustomData_Version
     };
 
     static_assert(SkPicturePriv::kMin_Version <= SkPicturePriv::kCubicResamplerImageShader_Version,
diff --git a/src/core/SkRuntimeEffect.cpp b/src/core/SkRuntimeEffect.cpp
index fb8a614..b6055fc 100644
--- a/src/core/SkRuntimeEffect.cpp
+++ b/src/core/SkRuntimeEffect.cpp
@@ -209,7 +209,7 @@
     // can sample children with matrices or explicit coords. Because the children are color filters,
     // we know (by induction) that they don't use those coords, so we keep the overall invariant.
     //
-    // Further down, we also ensure that color filters can't use varyings or layout(marker), which
+    // Further down, we also ensure that color filters can't use layout(marker), which
     // would allow them to change behavior based on the CTM.
     // TODO(skbug.com/11813): When ProgramKind is always kRuntimeColorFilter or kRuntimeShader,
     // this can be simpler. There is no way for color filters to refer to sk_FragCoord or sample
@@ -223,12 +223,11 @@
     std::vector<Uniform> uniforms;
     std::vector<SkString> children;
     std::vector<SkSL::SampleUsage> sampleUsages;
-    std::vector<Varying> varyings;
     const SkSL::Context& ctx(compiler->context());
 
     // Go through program elements, pulling out information that we need
     for (const SkSL::ProgramElement* elem : program->elements()) {
-        // Variables (uniform, varying, etc.)
+        // Variables (uniform, etc.)
         if (elem->is<SkSL::GlobalVarDeclaration>()) {
             const SkSL::GlobalVarDeclaration& global = elem->as<SkSL::GlobalVarDeclaration>();
             const SkSL::VarDeclaration& varDecl = global.declaration()->as<SkSL::VarDeclaration>();
@@ -236,16 +235,8 @@
             const SkSL::Variable& var = varDecl.var();
             const SkSL::Type& varType = var.type();
 
-            // Varyings (only used in conjunction with drawVertices)
-            if (var.modifiers().fFlags & SkSL::Modifiers::kVarying_Flag) {
-                flags &= ~kAllowColorFilter_Flag;
-                varyings.push_back({var.name(),
-                                    varType.typeKind() == SkSL::Type::TypeKind::kVector
-                                            ? varType.columns()
-                                            : 1});
-            }
             // Child effects that can be sampled ('shader' or 'colorFilter')
-            else if (varType.isEffectChild()) {
+            if (varType.isEffectChild()) {
                 children.push_back(var.name());
                 sampleUsages.push_back(SkSL::Analysis::GetSampleUsage(
                         *program, var, sampleCoordsUsage.fWrite != 0));
@@ -300,7 +291,6 @@
                                                       std::move(uniforms),
                                                       std::move(children),
                                                       std::move(sampleUsages),
-                                                      std::move(varyings),
                                                       flags));
     return Result{std::move(effect), SkString()};
 }
@@ -404,7 +394,6 @@
                                  std::vector<Uniform>&& uniforms,
                                  std::vector<SkString>&& children,
                                  std::vector<SkSL::SampleUsage>&& sampleUsages,
-                                 std::vector<Varying>&& varyings,
                                  uint32_t flags)
         : fHash(SkGoodHash()(sksl))
         , fSkSL(std::move(sksl))
@@ -413,7 +402,6 @@
         , fUniforms(std::move(uniforms))
         , fChildren(std::move(children))
         , fSampleUsages(std::move(sampleUsages))
-        , fVaryings(std::move(varyings))
         , fFlags(flags) {
     SkASSERT(fBaseProgram);
     SkASSERT(fChildren.size() == fSampleUsages.size());
diff --git a/src/core/SkVertices.cpp b/src/core/SkVertices.cpp
index 8933c6a..972ccd8 100644
--- a/src/core/SkVertices.cpp
+++ b/src/core/SkVertices.cpp
@@ -29,107 +29,19 @@
     return id;
 }
 
-SkVertices::Attribute::Attribute(Type t, Usage u, const char* markerName)
-        : fType(t)
-        , fUsage(u)
-        , fMarkerName(markerName) {
-    fMarkerID = fMarkerName ? SkOpts::hash_fn(fMarkerName, strlen(fMarkerName), 0) : 0;
-    SkASSERT(!fMarkerName || fMarkerID != 0);
-}
-
-int SkVertices::Attribute::channelCount() const {
-    SkASSERT(this->isValid());
-    switch (fUsage) {
-        case Usage::kRaw:          break;
-        case Usage::kColor:        return 4;
-        case Usage::kVector:       return 3;
-        case Usage::kNormalVector: return 3;
-        case Usage::kPosition:     return 3;
-    }
-    switch (fType) {
-        case Type::kFloat:       return 1;
-        case Type::kFloat2:      return 2;
-        case Type::kFloat3:      return 3;
-        case Type::kFloat4:      return 4;
-        case Type::kByte4_unorm: return 4;
-    }
-    SkUNREACHABLE;
-}
-
-size_t SkVertices::Attribute::bytesPerVertex() const {
-    switch (fType) {
-        case Type::kFloat:       return 1 * sizeof(float);
-        case Type::kFloat2:      return 2 * sizeof(float);
-        case Type::kFloat3:      return 3 * sizeof(float);
-        case Type::kFloat4:      return 4 * sizeof(float);
-        case Type::kByte4_unorm: return 4 * sizeof(uint8_t);
-    }
-    SkUNREACHABLE;
-}
-
-bool SkVertices::Attribute::isValid() const {
-    if (fMarkerName && !SkCanvasPriv::ValidateMarker(fMarkerName)) {
-        return false;
-    }
-    switch (fUsage) {
-        case Usage::kRaw:
-            return fMarkerID == 0;
-        case Usage::kColor:
-            return fMarkerID == 0 && (fType == Type::kFloat3 || fType == Type::kFloat4 ||
-                                      fType == Type::kByte4_unorm);
-        case Usage::kVector:
-        case Usage::kNormalVector:
-        case Usage::kPosition:
-            return fType == Type::kFloat2 || fType == Type::kFloat3;
-    }
-    SkUNREACHABLE;
-}
-
-static size_t custom_data_size(const SkVertices::Attribute* attrs, int attrCount) {
-    size_t size = 0;
-    for (int i = 0; i < attrCount; ++i) {
-        size += attrs[i].bytesPerVertex();
-    }
-    return size;
-}
-
 struct SkVertices::Desc {
     VertexMode  fMode;
     int         fVertexCount,
                 fIndexCount;
     bool        fHasTexs,
                 fHasColors;
-
-    const Attribute* fAttributes;
-    int              fAttributeCount;
-
-    void validate() const {
-        SkASSERT(fAttributeCount == 0 || (!fHasTexs && !fHasColors));
-    }
 };
 
 struct SkVertices::Sizes {
     Sizes(const Desc& desc) {
-        desc.validate();
-
         SkSafeMath safe;
 
-        fNameSize = 0;
-        for (int i = 0; i < desc.fAttributeCount; ++i) {
-            const Attribute& attr(desc.fAttributes[i]);
-            if (!attr.isValid()) {
-                return;
-            }
-            if (attr.fMarkerName) {
-                fNameSize = safe.add(fNameSize, strlen(attr.fMarkerName) + 1 /*null terminator*/);
-            }
-        }
-        fNameSize = SkAlign4(fNameSize);
-
-        fAttrSize = safe.mul(desc.fAttributeCount, sizeof(Attribute));
         fVSize = safe.mul(desc.fVertexCount, sizeof(SkPoint));
-        fDSize = safe.mul(custom_data_size(desc.fAttributes, desc.fAttributeCount),
-                          desc.fVertexCount);
         fTSize = desc.fHasTexs ? safe.mul(desc.fVertexCount, sizeof(SkPoint)) : 0;
         fCSize = desc.fHasColors ? safe.mul(desc.fVertexCount, sizeof(SkColor)) : 0;
 
@@ -157,16 +69,13 @@
         }
 
         fTotal = safe.add(sizeof(SkVertices),
-                 safe.add(fAttrSize,
-                 safe.add(fNameSize,
                  safe.add(fVSize,
-                 safe.add(fDSize,
                  safe.add(fTSize,
                  safe.add(fCSize,
-                          fISize)))))));
+                          fISize))));
 
         if (safe.ok()) {
-            fArrays = fVSize + fDSize + fTSize + fCSize + fISize;  // just the sum of the arrays
+            fArrays = fVSize + fTSize + fCSize + fISize;  // just the sum of the arrays
         } else {
             sk_bzero(this, sizeof(*this));
         }
@@ -175,11 +84,8 @@
     bool isValid() const { return fTotal != 0; }
 
     size_t fTotal = 0;  // size of entire SkVertices allocation (obj + arrays)
-    size_t fAttrSize;  // size of attributes
-    size_t fNameSize;  // size of attribute marker names
     size_t fArrays; // size of all the data arrays (V + D + T + C + I)
     size_t fVSize;
-    size_t fDSize;  // size of all customData = [customDataSize * fVertexCount]
     size_t fTSize;
     size_t fCSize;
     size_t fISize;
@@ -193,18 +99,7 @@
                              uint32_t builderFlags) {
     bool hasTexs = SkToBool(builderFlags & SkVertices::kHasTexCoords_BuilderFlag);
     bool hasColors = SkToBool(builderFlags & SkVertices::kHasColors_BuilderFlag);
-    this->init({mode, vertexCount, indexCount, hasTexs, hasColors, nullptr, 0});
-}
-
-SkVertices::Builder::Builder(VertexMode mode,
-                             int vertexCount,
-                             int indexCount,
-                             const SkVertices::Attribute* attrs,
-                             int attrCount) {
-    if (attrCount <= 0 || attrCount > kMaxCustomAttributes || !attrs) {
-        return;
-    }
-    this->init({mode, vertexCount, indexCount, false, false, attrs, attrCount});
+    this->init({mode, vertexCount, indexCount, hasTexs, hasColors});
 }
 
 SkVertices::Builder::Builder(const Desc& desc) {
@@ -235,31 +130,13 @@
         return new_ptr;
     };
 
-    fVertices->fAttributes = (Attribute*)advance(sizes.fAttrSize);
-    char* markerNames      =             advance(sizes.fNameSize);
-
-    // Copy the attributes into our block of memory (immediately after the SkVertices)
-    sk_careful_memcpy(fVertices->fAttributes, desc.fAttributes,
-                      desc.fAttributeCount * sizeof(Attribute));
-
-    // Now copy the marker names, and fix up the pointers in our attributes
-    for (int i = 0; i < desc.fAttributeCount; ++i) {
-        Attribute& attr(fVertices->fAttributes[i]);
-        if (attr.fMarkerName) {
-            attr.fMarkerName = strcpy(markerNames, attr.fMarkerName);
-            markerNames += (strlen(markerNames) + 1 /*null terminator*/);
-        }
-    }
-
     fVertices->fPositions      = (SkPoint*) advance(sizes.fVSize);
-    fVertices->fCustomData     = (void*)    advance(sizes.fDSize);
     fVertices->fTexs           = (SkPoint*) advance(sizes.fTSize);
     fVertices->fColors         = (SkColor*) advance(sizes.fCSize);
     fVertices->fIndices        = (uint16_t*)advance(sizes.fISize);
 
     fVertices->fVertexCount    = desc.fVertexCount;
     fVertices->fIndexCount     = desc.fIndexCount;
-    fVertices->fAttributeCount = desc.fAttributeCount;
     fVertices->fMode           = desc.fMode;
 
     // We defer assigning fBounds and fUniqueID until detach() is called
@@ -299,10 +176,6 @@
     return fVertices ? const_cast<SkPoint*>(fVertices->fPositions) : nullptr;
 }
 
-void* SkVertices::Builder::customData() {
-    return fVertices ? const_cast<void*>(fVertices->fCustomData) : nullptr;
-}
-
 SkPoint* SkVertices::Builder::texCoords() {
     return fVertices ? const_cast<SkPoint*>(fVertices->fTexs) : nullptr;
 }
@@ -327,7 +200,7 @@
                                        const SkPoint pos[], const SkPoint texs[],
                                        const SkColor colors[],
                                        int indexCount, const uint16_t indices[]) {
-    auto desc = Desc{mode, vertexCount, indexCount, !!texs, !!colors, nullptr, 0};
+    auto desc = Desc{mode, vertexCount, indexCount, !!texs, !!colors};
     Builder builder(desc);
     if (!builder.isValid()) {
         return nullptr;
@@ -349,25 +222,11 @@
 }
 
 SkVertices::Sizes SkVertices::getSizes() const {
-    Sizes sizes(
-            {fMode, fVertexCount, fIndexCount, !!fTexs, !!fColors, fAttributes, fAttributeCount});
+    Sizes sizes({fMode, fVertexCount, fIndexCount, !!fTexs, !!fColors});
     SkASSERT(sizes.isValid());
     return sizes;
 }
 
-size_t SkVerticesPriv::customDataSize() const {
-    return custom_data_size(fVertices->fAttributes, fVertices->fAttributeCount);
-}
-
-bool SkVerticesPriv::hasUsage(SkVertices::Attribute::Usage u) const {
-    for (int i = 0; i < fVertices->fAttributeCount; ++i) {
-        if (fVertices->fAttributes[i].fUsage == u) {
-            return true;
-        }
-    }
-    return false;
-}
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
 // storage = packed | vertex_count | index_count | attr_count
@@ -395,18 +254,9 @@
     buffer.writeUInt(packed);
     buffer.writeInt(fVertices->fVertexCount);
     buffer.writeInt(fVertices->fIndexCount);
-    buffer.writeInt(fVertices->fAttributeCount);
-
-    // Attribute metadata
-    for (int i = 0; i < fVertices->fAttributeCount; ++i) {
-        buffer.writeInt(static_cast<int>(fVertices->fAttributes[i].fType));
-        buffer.writeInt(static_cast<int>(fVertices->fAttributes[i].fUsage));
-        buffer.writeString(fVertices->fAttributes[i].fMarkerName);
-    }
 
     // Data arrays
     buffer.writeByteArray(fVertices->fPositions, sizes.fVSize);
-    buffer.writeByteArray(fVertices->fCustomData, sizes.fDSize);
     buffer.writeByteArray(fVertices->fTexs, sizes.fTSize);
     buffer.writeByteArray(fVertices->fColors, sizes.fCSize);
     // if index-count is odd, we won't be 4-bytes aligned, so we call the pad version
@@ -424,44 +274,24 @@
 
     auto decode = [](SkReadBuffer& buffer) -> sk_sp<SkVertices> {
         SkSafeRange safe;
+        bool hasCustomData = buffer.isVersionLT(SkPicturePriv::kVerticesRemoveCustomData_Version);
 
         const uint32_t packed = buffer.readUInt();
         const int vertexCount = safe.checkGE(buffer.readInt(), 0);
         const int indexCount = safe.checkGE(buffer.readInt(), 0);
-        const int attrCount = safe.checkGE(buffer.readInt(), 0);
+        const int attrCount = hasCustomData ? safe.checkGE(buffer.readInt(), 0) : 0;
         const SkVertices::VertexMode mode = safe.checkLE<SkVertices::VertexMode>(
                 packed & kMode_Mask, SkVertices::kLast_VertexMode);
         const bool hasTexs = SkToBool(packed & kHasTexs_Mask);
         const bool hasColors = SkToBool(packed & kHasColors_Mask);
 
-        if (!safe                                           // Invalid header fields
-            || attrCount > SkVertices::kMaxCustomAttributes // Too many custom attributes?
-            || (attrCount > 0 && (hasTexs || hasColors))) { // Overspecified (incompatible features)
+        // Check that the header fields and buffer are valid. If this is data with the experimental
+        // custom attributes feature - we don't support that any more.
+        if (!safe || !buffer.isValid() || attrCount) {
             return nullptr;
         }
 
-        SkVertices::Attribute attrs[SkVertices::kMaxCustomAttributes];
-        SkString attrNames[SkVertices::kMaxCustomAttributes];
-        for (int i = 0; i < attrCount; ++i) {
-            auto type = buffer.checkRange(SkVertices::Attribute::Type::kFloat,
-                                          SkVertices::Attribute::Type::kByte4_unorm);
-            auto usage = buffer.checkRange(SkVertices::Attribute::Usage::kRaw,
-                                           SkVertices::Attribute::Usage::kPosition);
-            buffer.readString(&attrNames[i]);
-            const char* markerName = attrNames[i].isEmpty() ? nullptr : attrNames[i].c_str();
-            if (markerName && !SkCanvasPriv::ValidateMarker(markerName)) {
-                return nullptr;
-            }
-            attrs[i] = SkVertices::Attribute(type, usage, markerName);
-        }
-
-        // Ensure that all of the attribute metadata was valid before proceeding
-        if (!buffer.isValid()) {
-            return nullptr;
-        }
-
-        const SkVertices::Desc desc{mode, vertexCount, indexCount, hasTexs, hasColors,
-                                    attrCount ? attrs : nullptr, attrCount};
+        const SkVertices::Desc desc{mode, vertexCount, indexCount, hasTexs, hasColors};
         SkVertices::Sizes sizes(desc);
         if (!sizes.isValid()) {
             return nullptr;
@@ -473,7 +303,13 @@
         }
 
         buffer.readByteArray(builder.positions(), sizes.fVSize);
-        buffer.readByteArray(builder.customData(), sizes.fDSize);
+        if (hasCustomData) {
+            size_t customDataSize = 0;
+            buffer.skipByteArray(&customDataSize);
+            if (customDataSize != 0) {
+                return nullptr;
+            }
+        }
         buffer.readByteArray(builder.texCoords(), sizes.fTSize);
         buffer.readByteArray(builder.colors(), sizes.fCSize);
         size_t isize = (mode == SkVertices::kTriangleFan_VertexMode) ? sizes.fBuilderTriFanISize
diff --git a/src/core/SkVerticesPriv.h b/src/core/SkVerticesPriv.h
index 73b1a31..3aa0411 100644
--- a/src/core/SkVerticesPriv.h
+++ b/src/core/SkVerticesPriv.h
@@ -22,24 +22,17 @@
 public:
     SkVertices::VertexMode mode() const { return fVertices->fMode; }
 
-    bool hasCustomData() const { return SkToBool(fVertices->fCustomData); }
     bool hasColors() const { return SkToBool(fVertices->fColors); }
     bool hasTexCoords() const { return SkToBool(fVertices->fTexs); }
     bool hasIndices() const { return SkToBool(fVertices->fIndices); }
 
-    bool hasUsage(SkVertices::Attribute::Usage) const;
-
     int vertexCount() const { return fVertices->fVertexCount; }
     int indexCount() const { return fVertices->fIndexCount; }
-    int attributeCount() const { return fVertices->fAttributeCount; }
-    size_t customDataSize() const;
 
     const SkPoint* positions() const { return fVertices->fPositions; }
-    const void* customData() const { return fVertices->fCustomData; }
     const SkPoint* texCoords() const { return fVertices->fTexs; }
     const SkColor* colors() const { return fVertices->fColors; }
     const uint16_t* indices() const { return fVertices->fIndices; }
-    const SkVertices::Attribute* attributes() const { return fVertices->fAttributes; }
 
     // Never called due to RVO in priv(), but must exist for MSVC 2017.
     SkVerticesPriv(const SkVerticesPriv&) = default;
diff --git a/src/gpu/ops/GrDrawVerticesOp.cpp b/src/gpu/ops/GrDrawVerticesOp.cpp
index 4000a67..29ce6ed 100644
--- a/src/gpu/ops/GrDrawVerticesOp.cpp
+++ b/src/gpu/ops/GrDrawVerticesOp.cpp
@@ -37,76 +37,6 @@
     kExplicit,
 };
 
-static GrVertexAttribType SkVerticesAttributeToGrVertexAttribType(const SkVertices::Attribute& a) {
-    switch (a.fType) {
-        case SkVertices::Attribute::Type::kFloat:       return kFloat_GrVertexAttribType;
-        case SkVertices::Attribute::Type::kFloat2:      return kFloat2_GrVertexAttribType;
-        case SkVertices::Attribute::Type::kFloat3:      return kFloat3_GrVertexAttribType;
-        case SkVertices::Attribute::Type::kFloat4:      return kFloat4_GrVertexAttribType;
-        case SkVertices::Attribute::Type::kByte4_unorm: return kUByte4_norm_GrVertexAttribType;
-    }
-    SkUNREACHABLE;
-}
-
-static GrSLType SkVerticesAttributeToGrSLType(const SkVertices::Attribute& a) {
-    switch (a.fType) {
-        case SkVertices::Attribute::Type::kFloat:       return kFloat_GrSLType;
-        case SkVertices::Attribute::Type::kFloat2:      return kFloat2_GrSLType;
-        case SkVertices::Attribute::Type::kFloat3:      return kFloat3_GrSLType;
-        case SkVertices::Attribute::Type::kFloat4:      return kFloat4_GrSLType;
-        case SkVertices::Attribute::Type::kByte4_unorm: return kHalf4_GrSLType;
-    }
-    SkUNREACHABLE;
-}
-
-static bool AttributeUsesViewMatrix(const SkVertices::Attribute& attr) {
-    return (attr.fMarkerID == 0) && (attr.fUsage == SkVertices::Attribute::Usage::kVector ||
-                                     attr.fUsage == SkVertices::Attribute::Usage::kNormalVector ||
-                                     attr.fUsage == SkVertices::Attribute::Usage::kPosition);
-}
-
-// Container for a collection of [uint32_t, Matrix] pairs. For a GrDrawVerticesOp whose custom
-// attributes reference some set of IDs, this stores the actual values of those matrices,
-// at the time the Op is created.
-class MarkedMatrices {
-public:
-    // For each ID required by 'info', fetch the value of that matrix from 'matrixProvider'.
-    // For vectors/normals/positions, we let ID 0 refer to the canvas CTM matrix.
-    void gather(const SkVerticesPriv& info, const SkMatrixProvider& matrixProvider) {
-        for (int i = 0; i < info.attributeCount(); ++i) {
-            uint32_t id = info.attributes()[i].fMarkerID;
-            if (id != 0 || AttributeUsesViewMatrix(info.attributes()[i])) {
-                if (std::none_of(fMatrices.begin(), fMatrices.end(),
-                                 [id](const auto& m) { return m.first == id; })) {
-                    SkM44 matrix;
-                    // SkCanvas should guarantee that this succeeds.
-                    SkAssertResult(matrixProvider.getLocalToMarker(id, &matrix));
-                    fMatrices.emplace_back(id, matrix);
-                }
-            }
-        }
-    }
-
-    SkM44 get(uint32_t id) const {
-        for (const auto& m : fMatrices) {
-            if (m.first == id) {
-                return m.second;
-            }
-        }
-        SkASSERT(false);
-        return SkM44{};
-    }
-
-    bool operator==(const MarkedMatrices& that) const { return fMatrices == that.fMatrices; }
-    bool operator!=(const MarkedMatrices& that) const { return !(*this == that); }
-
-private:
-    // If we expected many MarkerIDs, this should be a hash table. As it is, we're bounded by
-    // SkVertices::kMaxCustomAttributes (which is 8). Realistically, we're never going to see
-    // more than 1 or 2 unique MarkerIDs, so rely on linear search when inserting and fetching.
-    std::vector<std::pair<uint32_t, SkM44>> fMatrices;
-};
-
 class VerticesGP : public GrGeometryProcessor {
 public:
     static GrGeometryProcessor* Make(SkArenaAlloc* arena,
@@ -114,14 +44,10 @@
                                      ColorArrayType colorArrayType,
                                      const SkPMColor4f& color,
                                      sk_sp<GrColorSpaceXform> colorSpaceXform,
-                                     const SkMatrix& viewMatrix,
-                                     const SkVertices::Attribute* attrs,
-                                     int attrCount,
-                                     const MarkedMatrices* customMatrices) {
+                                     const SkMatrix& viewMatrix) {
         return arena->make([&](void* ptr) {
             return new (ptr) VerticesGP(localCoordsType, colorArrayType, color,
-                                        std::move(colorSpaceXform), viewMatrix, attrs, attrCount,
-                                        customMatrices);
+                                        std::move(colorSpaceXform), viewMatrix);
         });
     }
 
@@ -192,111 +118,6 @@
                                                                           : gp.positionAttr();
             gpArgs->fLocalCoordVar = coordsAttr.asShaderVar();
 
-            // Add varyings and globals for all custom attributes
-            using Usage = SkVertices::Attribute::Usage;
-            for (size_t i = kFirstCustomIndex; i < gp.fAttributes.size(); ++i) {
-                const auto& attr(gp.fAttributes[i]);
-                const int customIdx = i - kFirstCustomIndex;
-                const auto& customAttr(gp.fCustomAttributes[customIdx]);
-
-                GrSLType varyingType = attr.gpuType();
-                SkString varyingIn(attr.name());
-
-                UniformHandle matrixHandle;
-                if (customAttr.fMarkerID || AttributeUsesViewMatrix(customAttr)) {
-                    bool normal = customAttr.fUsage == Usage::kNormalVector;
-                    for (const MarkedUniform& matrixUni : fCustomMatrixUniforms) {
-                        if (matrixUni.fID == customAttr.fMarkerID && matrixUni.fNormal == normal) {
-                            matrixHandle = matrixUni.fUniform;
-                            break;
-                        }
-                    }
-                    if (!matrixHandle.isValid()) {
-                        SkString uniName = SkStringPrintf("customMatrix_%x%s", customAttr.fMarkerID,
-                                                          normal ? "_IT" : "");
-                        matrixHandle = uniformHandler->addUniform(
-                                nullptr, kVertex_GrShaderFlag,
-                                normal ? kFloat3x3_GrSLType : kFloat4x4_GrSLType, uniName.c_str());
-                        fCustomMatrixUniforms.push_back(
-                                {customAttr.fMarkerID, normal, matrixHandle});
-                    }
-                }
-
-                switch (customAttr.fUsage) {
-                    case Usage::kRaw:
-                        break;
-                    case Usage::kColor: {
-                        // For RGB colors, expand to RGBA with A = 1
-                        if (attr.gpuType() == kFloat3_GrSLType) {
-                            varyingIn = SkStringPrintf("%s.rgb1", attr.name());
-                        }
-                        // Convert to half (as expected by the color space transform functions)
-                        varyingIn = SkStringPrintf("half4(%s)", varyingIn.c_str());
-                        // Transform to destination color space (possible no-op)
-                        SkString xformedColor;
-                        vertBuilder->appendColorGamutXform(&xformedColor, varyingIn.c_str(),
-                                                           &fColorSpaceHelper);
-                        // Store the result of the transform in a temporary
-                        vertBuilder->codeAppendf(
-                                "half4 _tmp_clr_%d = %s;", customIdx, xformedColor.c_str());
-                        // Finally, premultiply
-                        varyingIn = SkStringPrintf(
-                                "half4(_tmp_clr_%d.rgb * _tmp_clr_%d.a, _tmp_clr_%d.a)",
-                                customIdx, customIdx, customIdx);
-                        varyingType = kHalf4_GrSLType;
-                        break;
-                    }
-                    case Usage::kVector: {
-                        if (attr.gpuType() == kFloat2_GrSLType) {
-                            varyingIn = SkStringPrintf("%s.xy0", attr.name());
-                        }
-                        if (matrixHandle.isValid()) {
-                            varyingIn = SkStringPrintf("(%s * %s.xyz0).xyz",
-                                                       uniformHandler->getUniformCStr(matrixHandle),
-                                                       varyingIn.c_str());
-                        }
-                        varyingIn = SkStringPrintf("normalize(%s)", varyingIn.c_str());
-                        varyingType = kFloat3_GrSLType;
-                        break;
-                    }
-                    case Usage::kNormalVector: {
-                        if (attr.gpuType() == kFloat2_GrSLType) {
-                            varyingIn = SkStringPrintf("%s.xy0", attr.name());
-                        }
-                        if (matrixHandle.isValid()) {
-                            varyingIn = SkStringPrintf("(%s * %s)",
-                                                       uniformHandler->getUniformCStr(matrixHandle),
-                                                       varyingIn.c_str());
-                        }
-                        varyingIn = SkStringPrintf("normalize(%s)", varyingIn.c_str());
-                        varyingType = kFloat3_GrSLType;
-                        break;
-                    }
-                    case Usage::kPosition: {
-                        if (attr.gpuType() == kFloat2_GrSLType) {
-                            varyingIn = SkStringPrintf("%s.xy0", attr.name());
-                        }
-                        if (matrixHandle.isValid()) {
-                            vertBuilder->codeAppendf("float4 _tmp_pos_%d = %s * %s.xyz1;",
-                                                     customIdx,
-                                                     uniformHandler->getUniformCStr(matrixHandle),
-                                                     varyingIn.c_str());
-                            varyingIn = SkStringPrintf("_tmp_pos_%d.xyz / _tmp_pos_%d.w",
-                                                       customIdx, customIdx);
-                        }
-                        varyingType = kFloat3_GrSLType;
-                    }
-                }
-
-                GrGLSLVarying varying(varyingType);
-                varyingHandler->addVarying(attr.name(), &varying);
-                vertBuilder->codeAppendf("%s = %s;", varying.vsOut(), varyingIn.c_str());
-
-                GrShaderVar var(SkStringPrintf("_vtx_attr_%d", customIdx), varyingType);
-                fragBuilder->declareGlobal(var);
-                fragBuilder->codeAppendf("%s = %s;", var.c_str(), varying.fsIn());
-            }
-
             fragBuilder->codeAppendf("const half4 %s = half4(1);", args.fOutputCoverage);
         }
 
@@ -309,13 +130,6 @@
             key |= ComputeMatrixKey(shaderCaps, vgp.viewMatrix()) << 20;
             b->add32(key);
             b->add32(GrColorSpaceXform::XformKey(vgp.fColorSpaceXform.get()));
-
-            uint32_t usageBits = 0;
-            for (int i = 0; i < vgp.fCustomAttributeCount; ++i) {
-                b->add32(vgp.fCustomAttributes[i].fMarkerID);
-                usageBits = (usageBits << 8) | (uint32_t)vgp.fCustomAttributes[i].fUsage;
-            }
-            b->add32(usageBits);
         }
 
         void setData(const GrGLSLProgramDataManager& pdman,
@@ -331,27 +145,6 @@
             }
 
             fColorSpaceHelper.setData(pdman, vgp.fColorSpaceXform.get());
-
-            for (const auto& matrixUni : fCustomMatrixUniforms) {
-                SkASSERT(matrixUni.fUniform.isValid());
-                SkM44 mtx = vgp.fCustomMatrices->get(matrixUni.fID);
-                if (matrixUni.fNormal) {
-                    // Get the upper-left 3x3 (rotation + scale):
-                    mtx.setCol(3, {0, 0, 0, 1});
-                    mtx.setRow(3, {0, 0, 0, 1});
-                    // Invert it...
-                    SkAssertResult(mtx.invert(&mtx));
-                    // We want the inverse transpose, but we're going to feed it as a 3x3 column
-                    // major matrix to the uniform. So copy the (not-yet-transposed) values out in
-                    // row order.
-                    float mtxIT[9] = {mtx.rc(0, 0), mtx.rc(0, 1), mtx.rc(0, 2),
-                                      mtx.rc(1, 0), mtx.rc(1, 1), mtx.rc(1, 2),
-                                      mtx.rc(2, 0), mtx.rc(2, 1), mtx.rc(2, 2)};
-                    pdman.setMatrix3f(matrixUni.fUniform, mtxIT);
-                } else {
-                    pdman.setSkM44(matrixUni.fUniform, mtx);
-                }
-            }
         }
 
     private:
@@ -361,13 +154,6 @@
         UniformHandle fColorUniform;
         GrGLSLColorSpaceXformHelper fColorSpaceHelper;
 
-        struct MarkedUniform {
-            uint32_t      fID;
-            bool          fNormal;
-            UniformHandle fUniform;
-        };
-        std::vector<MarkedUniform> fCustomMatrixUniforms;
-
         using INHERITED = GrGLSLGeometryProcessor;
     };
 
@@ -384,18 +170,12 @@
                ColorArrayType colorArrayType,
                const SkPMColor4f& color,
                sk_sp<GrColorSpaceXform> colorSpaceXform,
-               const SkMatrix& viewMatrix,
-               const SkVertices::Attribute* attrs,
-               int attrCount,
-               const MarkedMatrices* customMatrices)
+               const SkMatrix& viewMatrix)
             : INHERITED(kVerticesGP_ClassID)
             , fColorArrayType(colorArrayType)
             , fColor(color)
             , fViewMatrix(viewMatrix)
-            , fColorSpaceXform(std::move(colorSpaceXform))
-            , fCustomAttributes(attrs)
-            , fCustomAttributeCount(attrCount)
-            , fCustomMatrices(customMatrices) {
+            , fColorSpaceXform(std::move(colorSpaceXform)) {
         constexpr Attribute missingAttr;
         fAttributes.push_back({"position", kFloat2_GrVertexAttribType, kFloat2_GrSLType});
         fAttributes.push_back(fColorArrayType != ColorArrayType::kUnused
@@ -405,14 +185,6 @@
                         ? Attribute{"inLocalCoord", kFloat2_GrVertexAttribType, kFloat2_GrSLType}
                         : missingAttr);
 
-        for (int i = 0; i < attrCount; ++i) {
-            // Attributes store char*, so allocate long-lived storage for the (dynamic) names
-            fAttrNames.push_back(SkStringPrintf("_vtx_attr%d", i));
-            fAttributes.push_back({fAttrNames.back().c_str(),
-                                   SkVerticesAttributeToGrVertexAttribType(attrs[i]),
-                                   SkVerticesAttributeToGrSLType(attrs[i])});
-        }
-
         this->setVertexAttributes(fAttributes.data(), fAttributes.size());
     }
 
@@ -420,20 +192,14 @@
         kPositionIndex    = 0,
         kColorIndex       = 1,
         kLocalCoordsIndex = 2,
-        kFirstCustomIndex = 3,
     };
 
-    std::vector<SkString> fAttrNames;
     std::vector<Attribute> fAttributes;
     ColorArrayType fColorArrayType;
     SkPMColor4f fColor;
     SkMatrix fViewMatrix;
     sk_sp<GrColorSpaceXform> fColorSpaceXform;
 
-    const SkVertices::Attribute* fCustomAttributes;
-    int                          fCustomAttributeCount;
-    const MarkedMatrices*        fCustomMatrices;
-
     using INHERITED = GrGeometryProcessor;
 };
 
@@ -518,8 +284,7 @@
     size_t vertexStride() const {
         return sizeof(SkPoint) +
                (this->requiresPerVertexColors() ? sizeof(uint32_t) : 0) +
-               (this->requiresPerVertexLocalCoords() ? sizeof(SkPoint) : 0) +
-               fMeshes[0].fVertices->priv().customDataSize();
+               (this->requiresPerVertexLocalCoords() ? sizeof(SkPoint) : 0);
     }
 
     Helper fHelper;
@@ -533,7 +298,6 @@
     LocalCoordsType fLocalCoordsType;
     ColorArrayType fColorArrayType;
     sk_sp<GrColorSpaceXform> fColorSpaceXform;
-    MarkedMatrices fCustomMatrices;
 
     GrSimpleMesh*  fMesh = nullptr;
     GrProgramInfo* fProgramInfo = nullptr;
@@ -564,7 +328,6 @@
                                        : ColorArrayType::kUnused;
     fLocalCoordsType = info.hasTexCoords() ? LocalCoordsType::kExplicit
                                            : LocalCoordsType::kUsePosition;
-    fCustomMatrices.gather(info, matrixProvider);
 
     Mesh& mesh = fMeshes.push_back();
     mesh.fColor = color;
@@ -621,16 +384,11 @@
 GrGeometryProcessor* DrawVerticesOp::makeGP(SkArenaAlloc* arena) {
     const SkMatrix& vm = fMultipleViewMatrices ? SkMatrix::I() : fMeshes[0].fViewMatrix;
 
-    SkVerticesPriv info(fMeshes[0].fVertices->priv());
-
-    sk_sp<GrColorSpaceXform> csxform = (fColorArrayType == ColorArrayType::kSkColor ||
-                                        info.hasUsage(SkVertices::Attribute::Usage::kColor))
-                                               ? fColorSpaceXform
-                                               : nullptr;
+    sk_sp<GrColorSpaceXform> csxform =
+            (fColorArrayType == ColorArrayType::kSkColor) ? fColorSpaceXform : nullptr;
 
     auto gp = VerticesGP::Make(arena, fLocalCoordsType, fColorArrayType, fMeshes[0].fColor,
-                               std::move(csxform), vm, info.attributes(), info.attributeCount(),
-                               &fCustomMatrices);
+                               std::move(csxform), vm);
     SkASSERT(this->vertexStride() == gp->vertexStride());
     return gp;
 }
@@ -692,8 +450,6 @@
         const SkPoint* positions = info.positions();
         const SkColor* colors = info.colors();
         const SkPoint* localCoords = info.texCoords() ? info.texCoords() : positions;
-        const void* custom = info.customData();
-        size_t customDataSize = info.customDataSize();
 
         // TODO4F: Preserve float colors
         GrColor meshColor = mesh.fColor.toBytes_RGBA();
@@ -708,10 +464,6 @@
             if (hasLocalCoordsAttribute) {
                 verts.write(localCoords[i]);
             }
-            if (customDataSize) {
-                verts.writeRaw(custom, customDataSize);
-                custom = SkTAddOffset<const void>(custom, customDataSize);
-            }
         }
 
         if (fMultipleViewMatrices) {
@@ -767,19 +519,6 @@
         return CombineResult::kCannotCombine;
     }
 
-    SkVerticesPriv vThis(this->fMeshes[0].fVertices->priv()),
-                   vThat(that->fMeshes[0].fVertices->priv());
-    if (vThis.attributeCount() != vThat.attributeCount() ||
-        !std::equal(vThis.attributes(), vThis.attributes() + vThis.attributeCount(),
-                    vThat.attributes())) {
-        return CombineResult::kCannotCombine;
-    }
-
-    // We can't batch draws if any of the custom matrices have changed.
-    if (this->fCustomMatrices != that->fCustomMatrices) {
-        return CombineResult::kCannotCombine;
-    }
-
     // We can't mix draws that use SkColor vertex colors with those that don't. We can mix uniform
     // color draws with GrColor draws (by expanding the uniform color into vertex color).
     if ((fColorArrayType == ColorArrayType::kSkColor) !=
diff --git a/src/sksl/SkSLAnalysis.cpp b/src/sksl/SkSLAnalysis.cpp
index 23384a0..2a079f3 100644
--- a/src/sksl/SkSLAnalysis.cpp
+++ b/src/sksl/SkSLAnalysis.cpp
@@ -326,8 +326,7 @@
             case Expression::Kind::kVariableReference: {
                 VariableReference& varRef = expr.as<VariableReference>();
                 const Variable* var = varRef.variable();
-                if (var->modifiers().fFlags & (Modifiers::kConst_Flag | Modifiers::kUniform_Flag |
-                                               Modifiers::kVarying_Flag)) {
+                if (var->modifiers().fFlags & (Modifiers::kConst_Flag | Modifiers::kUniform_Flag)) {
                     fErrors->error(expr.fOffset,
                                    "cannot modify immutable variable '" + var->name() + "'");
                 } else {
@@ -641,8 +640,8 @@
     const Modifiers& modifiers = v.modifiers();
     VariableCounts counts = this->get(v);
     if ((v.storage() != Variable::Storage::kLocal && counts.fRead) ||
-        (modifiers.fFlags & (Modifiers::kIn_Flag | Modifiers::kOut_Flag | Modifiers::kUniform_Flag |
-                             Modifiers::kVarying_Flag))) {
+        (modifiers.fFlags &
+         (Modifiers::kIn_Flag | Modifiers::kOut_Flag | Modifiers::kUniform_Flag))) {
         return false;
     }
     // Consider the variable dead if it's never read and never written (besides the initial-value).
diff --git a/src/sksl/SkSLIRGenerator.cpp b/src/sksl/SkSLIRGenerator.cpp
index d4f7845..33f480d 100644
--- a/src/sksl/SkSLIRGenerator.cpp
+++ b/src/sksl/SkSLIRGenerator.cpp
@@ -344,21 +344,10 @@
                                         "float3, or float4 variables");
         }
     }
-    if (modifiers.fFlags & Modifiers::kVarying_Flag) {
-        if (this->programKind() != ProgramKind::kRuntimeEffect &&
-            this->programKind() != ProgramKind::kRuntimeShader) {
-            this->errorReporter().error(offset, "'varying' is only permitted in runtime shaders");
-        }
-        if (!baseType->isFloat() &&
-            !(baseType->isVector() && baseType->componentType().isFloat())) {
-            this->errorReporter().error(offset, "'varying' must be float scalar or vector");
-        }
-    }
     int permitted = Modifiers::kConst_Flag;
     if (storage == Variable::Storage::kGlobal) {
         permitted |= Modifiers::kIn_Flag | Modifiers::kOut_Flag | Modifiers::kUniform_Flag |
-                     Modifiers::kFlat_Flag | Modifiers::kVarying_Flag |
-                     Modifiers::kNoPerspective_Flag;
+                     Modifiers::kFlat_Flag | Modifiers::kNoPerspective_Flag;
     }
     // TODO(skbug.com/11301): Migrate above checks into building a mask of permitted layout flags
     this->checkModifiers(offset, modifiers, permitted, /*permittedLayoutFlags=*/~0);
@@ -845,7 +834,6 @@
     checkModifier(Modifiers::kFlat_Flag,           "flat");
     checkModifier(Modifiers::kNoPerspective_Flag,  "noperspective");
     checkModifier(Modifiers::kHasSideEffects_Flag, "sk_has_side_effects");
-    checkModifier(Modifiers::kVarying_Flag,        "varying");
     checkModifier(Modifiers::kInline_Flag,         "inline");
     checkModifier(Modifiers::kNoInline_Flag,       "noinline");
     SkASSERT(flags == 0);
diff --git a/src/sksl/SkSLLexer.cpp b/src/sksl/SkSLLexer.cpp
index 60d2dca..8bb7bcd 100644
--- a/src/sksl/SkSLLexer.cpp
+++ b/src/sksl/SkSLLexer.cpp
@@ -18,74 +18,74 @@
         3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  1,  4,  3,  5,  6,  7,  8,  3,  9,  10, 11, 12,
         13, 14, 15, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 20, 21, 22, 23, 24, 25, 26,
         26, 26, 26, 27, 26, 6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,
-        6,  6,  6,  28, 3,  29, 30, 31, 3,  32, 33, 34, 35, 36, 37, 38, 39, 40, 6,  41, 42, 43,
-        44, 45, 46, 6,  47, 48, 49, 50, 51, 52, 53, 54, 6,  55, 56, 57, 58};
-static State transitions[59][239] = {
+        6,  6,  6,  28, 3,  29, 30, 31, 3,  32, 33, 34, 35, 36, 37, 6,  38, 39, 6,  40, 41, 42,
+        43, 44, 45, 6,  46, 47, 48, 49, 50, 51, 52, 53, 6,  54, 55, 56, 57};
+static State transitions[58][232] = {
         {
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 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, 34, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                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, 34, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 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, 34, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                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, 34, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 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, 34, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                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, 34, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 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, 34, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                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, 34, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 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, 34, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                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, 34, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 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,
@@ -99,64 +99,62 @@
                 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
                 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
                 10, 10, 10, 10, 10, 10, 10, 10, 10, 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,
+                10, 10, 10, 10, 10, 10, 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, 34, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                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, 34, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 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, 34, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                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, 34, 34, 0, 37, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         },
         {
-                0, 16, 0, 0, 0, 0, 0, 0,  0,  0, 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, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 16, 0, 0, 0, 0, 0, 0, 0,  0,  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, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 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, 34, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                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, 34, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 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, 34, 35, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                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, 34, 35, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         },
         {
                 0, 20, 0, 0, 0, 0, 0,  0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0,  0, 21, 0,  0, 0,
@@ -168,18 +166,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, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0,  0, 0,  0,  0, 0,
                 0, 0,  0, 0, 0, 0, 0,  0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0,  0, 0,  0,  0, 0,
-                0, 0,  0, 0, 0, 0, 0,  0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0,  0, 0,  0,  0,
+                0, 0,  0, 0, 0, 0, 0,  0, 0, 0, 0,  0,  0, 0,  0, 0,
         },
         {
-                0, 23, 0, 0, 0, 0, 0, 0,  0,  0, 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, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 23, 0, 0, 0, 0, 0, 0, 0,  0,  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, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 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,
@@ -191,31 +189,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, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0,  0, 0, 0,  0, 0,
                 0,  0,  0, 0, 0, 0, 0,  0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0,  0, 0, 0,  0, 0,
-                0,  0,  0, 0, 0, 0, 0,  0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 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,  0,  0, 0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0,
-                0,  0,  0, 0, 0, 0, 0,  0, 0, 0, 34, 34, 0, 37, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0,
-                40, 0,  0, 0, 0, 0, 40, 0, 0, 0, 0,  0,  0, 0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0,
-                0,  0,  0, 0, 0, 0, 0,  0, 0, 0, 0,  0,  0, 0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0,
-                0,  0,  0, 0, 0, 0, 0,  0, 0, 0, 0,  0,  0, 0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0,
-                0,  0,  0, 0, 0, 0, 0,  0, 0, 0, 0,  0,  0, 0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0,
-                0,  0,  0, 0, 0, 0, 0,  0, 0, 0, 0,  0,  0, 0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0,
-                0,  0,  0, 0, 0, 0, 0,  0, 0, 0, 0,  0,  0, 0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0,
-                0,  0,  0, 0, 0, 0, 0,  0, 0, 0, 0,  0,  0, 0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0,
-                0,  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, 0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0,
+                0, 0,  0,  0, 0, 0, 0, 0, 34, 34, 0, 37, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0,
+                0, 0,  40, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0,
+                0, 0,  0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0,
+                0, 0,  0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0,
+                0, 0,  0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0,
+                0, 0,  0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0,
+                0, 0,  0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0,
+                0, 0,  0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0,
         },
         {
-                0, 33, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 37, 34, 36, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 33, 0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 37, 34, 36, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         },
         {
                 0,  39, 0,  0,  0,  0,  0,  0,  8,  10, 10, 0,  0,  0,  0,  0,  0,  0,  0,  0,
@@ -229,7 +225,7 @@
                 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
                 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
                 10, 10, 10, 10, 10, 10, 10, 10, 10, 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,
+                10, 10, 10, 10, 10, 10, 0,  0,  0,  0,  0,  0,
         },
         {
                 0,  54, 0,  0,  0,  0,  0,  0,  8,  10, 10, 0,  0,  0,  0,  0,  0,  0,  0,  0,
@@ -243,87 +239,85 @@
                 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
                 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
                 10, 10, 10, 10, 10, 10, 10, 10, 10, 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,
+                10, 10, 10, 10, 10, 10, 0,  0,  0,  0,  0,  0,
         },
         {
-                0, 55, 0, 0, 0, 0, 0, 0,  0,  0, 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, 34, 0, 37, 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,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 55, 0, 0,  0, 0, 0, 0, 0,  0,  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, 34, 0, 37, 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, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0,  0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0,  0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0,  0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0,  0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0,  0, 0, 0, 0, 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, 34, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 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, 34, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 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, 34, 34, 0, 37, 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, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                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, 34, 34, 0, 37, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0,  0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0,  0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0,  0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0,  0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0,  0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         },
         {
-                0,  62, 0, 0, 0, 6, 0, 0, 0, 0,  0,  12, 0, 15, 0,  0, 0,  0, 19,  0, 22, 0, 0, 0,
-                26, 0,  0, 0, 0, 0, 0, 0, 0, 38, 34, 34, 0, 37, 0,  0, 0,  0, 0,   0, 0,  0, 0, 0,
-                0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  61, 60, 0, 0,  63, 0, 65, 0, 67,  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,   0, 0,  0, 0, 0,
-                0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0,  0, 0,  0, 0,   0, 0,  0, 0, 0,
-                0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0,  0, 0,  0, 0,   0, 0,  0, 0, 0,
-                0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0,  0, 0,  0, 0,   0, 0,  0, 0, 0,
-                0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0,  0, 0,  0, 0,   0, 0,  0, 0, 0,
-                0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0,  0, 0,  0, 235, 0, 0,  0, 0,
+                0,  62, 0, 0, 0, 6, 0, 0, 0, 0,  0,  12,  0, 15, 0,  0, 0,  0, 19, 0, 22, 0, 0, 0,
+                26, 0,  0, 0, 0, 0, 0, 0, 0, 38, 34, 34,  0, 37, 0,  0, 0,  0, 0,  0, 0,  0, 0, 0,
+                0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  61, 60,  0, 0,  63, 0, 65, 0, 67, 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,  0, 0,  0, 0, 0,
+                0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,   0, 0,  0,  0, 0,  0, 0,  0, 0,  0, 0, 0,
+                0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,   0, 0,  0,  0, 0,  0, 0,  0, 0,  0, 0, 0,
+                0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,   0, 0,  0,  0, 0,  0, 0,  0, 0,  0, 0, 0,
+                0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,   0, 0,  0,  0, 0,  0, 0,  0, 0,  0, 0, 0,
+                0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  228, 0, 0,  0,  0,
         },
         {
-                0,  64, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0,  0, 0, 0, 0, 0, 0, 0,
-                27, 0,  0, 0, 0, 0, 0, 0, 0, 0, 34, 34, 0, 37, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,
-                0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 66, 0, 0, 0, 0, 0, 0, 0,
-                0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0,  0, 0, 0, 0, 0, 0, 0,
-                0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0,  0, 0, 0, 0, 0, 0, 0,
-                0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0,  0, 0, 0, 0, 0, 0, 0,
-                0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0,  0, 0, 0, 0, 0, 0, 0,
-                0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0,  0, 0, 0, 0, 0, 0, 0,
-                0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0,  0, 0, 0, 0, 0, 0, 0,
-                0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0,  0, 0, 0, 0, 0, 0,
+                0, 64, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 34, 34, 0, 37, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         },
         {
-                0, 68, 0, 0, 0, 0, 0, 0,  0,  0, 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, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 68, 0, 0, 0, 0, 0, 0, 0,  0,  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, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 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, 34, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                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, 34, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 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,
@@ -337,7 +331,7 @@
                 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
                 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
                 10, 10, 10, 10, 10, 10, 10, 10, 10, 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,
+                10, 10, 10, 10, 10, 10, 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,
@@ -351,41 +345,40 @@
                 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
                 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
                 10, 10, 10, 10, 10, 10, 10, 10, 10, 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,
+                10, 10, 10, 10, 10, 10, 0,  0,  0,  0,  0,  0,
         },
         {
-                0, 79, 0, 0, 0, 0, 0, 0,  0,  0, 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, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 79, 0, 0, 0, 0, 0, 0, 0,  0,  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, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 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, 34, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                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, 34, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 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,  34, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 83, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                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, 34, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0,  0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 83, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0,  0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0,  0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0,  0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,  0, 0,  0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 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,
@@ -399,22 +392,21 @@
                 10, 10, 10,  10, 10, 10, 10,  10, 10, 10, 10, 10,  10, 10, 10, 10, 10, 10, 10, 10,
                 10, 10, 183, 10, 10, 10, 187, 10, 10, 10, 10, 192, 10, 10, 10, 10, 10, 10, 10, 10,
                 10, 10, 10,  10, 10, 10, 10,  10, 10, 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,
+                10, 10, 10,  10, 10, 10, 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,   34, 34, 0,  37,
-                0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,   0,   53,  53, 0,  0,  0,
-                0,  0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  70,  70,  70,  70, 70, 70, 70,
-                70, 70,  70, 0,  0,  0,  0,  0,  10, 10, 87, 10, 10,  90,  10,  10, 10, 94, 10,
-                10, 10,  10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,  109, 10,  10, 10, 10, 10,
-                10, 116, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,  128, 10,  10, 10, 10, 133,
-                10, 10,  10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,  10,  148, 10, 10, 10, 10,
-                10, 10,  10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,  10,  10,  10, 10, 10, 10,
-                10, 10,  10, 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, 10, 10, 222, 10,  10,  10, 10, 10, 10,
-                10, 10,  10, 10, 10, 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,  34, 34,  0,  37, 0,  0,
+                0,  0,  0,  0,  0,   0,  0,  0,   0,   0,  0,  0,  53,  53, 0,  0,   0,  0,  0,  0,
+                0,  0,  0,  0,  0,   0,  0,  0,   0,   70, 70, 70, 70,  70, 70, 70,  70, 70, 70, 0,
+                0,  0,  0,  0,  10,  10, 87, 10,  10,  90, 10, 10, 10,  94, 10, 10,  10, 10, 10, 10,
+                10, 10, 10, 10, 10,  10, 10, 10,  109, 10, 10, 10, 10,  10, 10, 116, 10, 10, 10, 10,
+                10, 10, 10, 10, 10,  10, 10, 128, 10,  10, 10, 10, 133, 10, 10, 10,  10, 10, 10, 10,
+                10, 10, 10, 10, 10,  10, 10, 148, 10,  10, 10, 10, 10,  10, 10, 10,  10, 10, 10, 10,
+                10, 10, 10, 10, 10,  10, 10, 10,  10,  10, 10, 10, 10,  10, 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, 10,
+                10, 10, 10, 10, 10,  10, 0,  0,   0,   0,  0,  0,
         },
         {
                 0,  84, 0,  0,  0,  0,  0,  8,  8,  10, 10, 0,  0,  0,  0,  0,  0,  0,  0,  0,
@@ -428,7 +420,7 @@
                 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
                 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
                 10, 10, 10, 10, 10, 10, 10, 10, 10, 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,
+                10, 10, 10, 10, 10, 10, 0,  0,  0,  0,  0,  0,
         },
         {
                 0,  89, 0,   0,  0,  0,  0,   8,   8,  10, 10, 0,  0,  0,  0,   0,  0,   0,  0,  0,
@@ -442,7 +434,7 @@
                 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, 197, 10, 10, 10,
                 10, 10, 203, 10, 10, 10, 10,  208, 10, 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,
+                10, 10, 10,  10, 10, 10, 0,   0,   0,  0,  0,  0,
         },
         {
                 0,  106, 0,  0,  0,  0,  0,  8,  8,  10,  10, 0,  0,  0,  0,  0,  0,  0,   0,  0,
@@ -456,7 +448,7 @@
                 10, 10,  10, 10, 10, 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, 10, 10,  10, 10, 10, 0,  0,  0,  0,  0,   0,
+                10, 10,  10, 10, 10, 10, 0,  0,  0,  0,   0,  0,
         },
         {
                 0,  120, 0,  0,   0,   0,  0,  8,  8,   10, 10,  0,  0,   0,   0,   0,   0,   0,
@@ -471,66 +463,51 @@
                 10, 10,  10, 166, 10,  10, 10, 10, 171, 10, 10,  10, 10,  176, 10,  10,  10,  10,
                 10, 10,  10, 10,  10,  10, 10, 10, 10,  10, 191, 10, 193, 10,  10,  196, 10,  10,
                 10, 10,  10, 10,  10,  10, 10, 10, 10,  10, 10,  10, 10,  10,  213, 10,  10,  10,
-                10, 10,  10, 10,  10,  10, 10, 10, 10,  10, 10,  10, 10,  10,  10,  232, 10,  0,
-                0,  0,   0,  0,   0,
+                10, 10,  10, 10,  10,  10, 10, 10, 225, 10, 0,   0,  0,   0,   0,   0,
         },
         {
-                0,  127, 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,  34, 34, 0,  37,
-                0,  0,   0,  0,   0,   0,  0,  0,   0,  0,  0,  0,  0,   0,  53, 53, 0,  0,  0,
-                0,  0,   0,  0,   0,   0,  0,  0,   0,  0,  0,  0,  70,  70, 72, 70, 70, 70, 70,
-                70, 70,  70, 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, 108, 10, 10, 10, 10, 10, 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, 10, 10,  10, 10, 10, 10, 10,  10, 10, 10, 10, 10, 10,
-                10, 10,  10, 10,  10,  10, 10, 10,  10, 10, 10, 10, 10,  10, 10, 10, 10, 10, 10,
-                10, 10,  10, 10,  10,  10, 10, 10,  10, 10, 10, 10, 10,  10, 10, 10, 10, 10, 10,
-                10, 10,  10, 194, 195, 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,  10, 10, 10, 10, 10, 10,
-                10, 10,  10, 10,  10,  0,  0,  0,   0,  0,  0,
+                0,   127, 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,  34, 34,
+                0,   37,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,   0,   0,  53, 53,
+                0,   0,   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,   0,  0,   0,   70, 70, 72,
+                70,  70,  70, 70, 70, 70, 70, 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, 108,
+                10,  10,  10, 10, 10, 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, 10,  10,  10, 10, 10,
+                10,  10,  10, 10, 10, 10, 10, 10, 10, 10, 10, 10,  10, 10,  10,  10, 10, 10,
+                10,  10,  10, 10, 10, 10, 10, 10, 10, 10, 10, 10,  10, 10,  10,  10, 10, 10,
+                10,  10,  10, 10, 10, 10, 10, 10, 10, 10, 10, 10,  10, 194, 195, 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, 10, 10, 10, 10, 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,  34, 34, 0,  37, 0,  0,
-                0,  0,  0,  0,  0,  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, 70, 70, 70, 70, 70, 70, 70, 70, 70, 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, 227, 10, 10, 10, 10, 10, 10, 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,  34, 34, 0,  37, 0,  0,
+                0,  0,   0,  0,   0,  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, 70, 70, 70, 70, 70, 70, 70, 78, 70, 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, 184, 10, 10, 10, 10, 10,  10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+                10, 10,  10, 10,  10, 10, 10, 10, 209, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+                10, 222, 10, 10,  10, 10, 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,  34, 34, 0,  37, 0,  0,
-                0,  0,  0,  0,   0,  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, 70, 70, 70, 70, 70, 70, 70, 78, 70, 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, 184, 10, 10, 10, 10, 10,  10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
-                10, 10, 10, 10,  10, 10, 10, 10, 209, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
-                10, 10, 10, 10,  10, 10, 10, 10, 229, 10, 10, 10, 10, 0,  0,  0,  0,  0,  0,
-        },
-        {
-                0,  137, 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,  34,  34,  0,   37,
-                0,  0,   0,   0,  0,  0,   0,   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, 70, 70, 70,  70,  75,  70,
-                70, 70,  70,  0,  0,  0,   0,   0,   10, 10, 10, 10,  10, 10, 10, 10,  10,  10,  10,
-                10, 10,  10,  10, 10, 10,  102, 10,  10, 10, 10, 113, 10, 10, 10, 10,  10,  10,  10,
-                10, 10,  10,  10, 10, 10,  10,  10,  10, 10, 10, 10,  10, 10, 10, 10,  10,  10,  10,
-                10, 10,  10,  10, 10, 10,  10,  141, 10, 10, 10, 10,  10, 10, 10, 10,  10,  10,  10,
-                10, 10,  155, 10, 10, 158, 10,  10,  10, 10, 10, 10,  10, 10, 10, 10,  169, 10,  10,
-                10, 10,  10,  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, 206, 10,  10,  10,
-                10, 10,  10,  10, 10, 10,  216, 10,  10, 10, 10, 10,  10, 10, 10, 225, 10,  10,  10,
-                10, 230, 10,  10, 10, 0,   0,   0,   0,  0,  0,
+                0,  137, 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,  34,  34,
+                0,  37,  0,  0,  0,  0,  0,   0,   0,   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, 70,  70,
+                70, 70,  75, 70, 70, 70, 70,  0,   0,   0,  0,   0,   10, 10,  10,  10, 10,  10,
+                10, 10,  10, 10, 10, 10, 10,  10,  10,  10, 10,  102, 10, 10,  10,  10, 113, 10,
+                10, 10,  10, 10, 10, 10, 10,  10,  10,  10, 10,  10,  10, 10,  10,  10, 10,  10,
+                10, 10,  10, 10, 10, 10, 10,  10,  10,  10, 10,  10,  10, 10,  141, 10, 10,  10,
+                10, 10,  10, 10, 10, 10, 10,  10,  10,  10, 155, 10,  10, 158, 10,  10, 10,  10,
+                10, 10,  10, 10, 10, 10, 169, 10,  10,  10, 10,  10,  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,  206, 10,  10, 10,  10,  10, 10,  10,  10, 10,  216,
+                10, 10,  10, 10, 10, 10, 223, 10,  10,  10, 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,
@@ -544,22 +521,22 @@
                 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, 10, 10, 10, 10, 10, 10, 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,
+                10, 10,  10, 10, 10, 10, 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,   34,  34, 0,  37,
-                0,  0,   0,   0,  0,   0,  0,   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, 70,  70,  70,  70, 70, 70,
-                70, 70,  70,  0,  0,   0,  0,   0,  10, 10, 10, 10, 10, 93,  10,  10,  10, 10, 10,
-                10, 10,  10,  10, 10,  10, 10,  10, 10, 10, 10, 10, 10, 10,  10,  111, 10, 10, 10,
-                10, 10,  10,  10, 10,  10, 121, 10, 10, 10, 10, 10, 10, 132, 129, 10,  10, 10, 10,
-                10, 10,  10,  10, 10,  10, 140, 10, 10, 10, 10, 10, 10, 10,  10,  10,  10, 10, 10,
-                10, 10,  10,  10, 157, 10, 10,  10, 10, 10, 10, 10, 10, 10,  10,  10,  10, 10, 10,
-                10, 10,  10,  10, 10,  10, 10,  10, 10, 10, 10, 10, 10, 10,  10,  10,  10, 10, 10,
-                10, 10,  10,  10, 10,  10, 10,  10, 10, 10, 10, 10, 10, 10,  10,  10,  10, 10, 10,
-                10, 10,  10,  10, 10,  10, 10,  10, 10, 10, 10, 10, 10, 10,  10,  10,  10, 10, 10,
-                10, 10,  231, 10, 10,  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,  34, 34,
+                0,  37,  0,   0,  0,  0,  0,  0,   0,  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, 70, 70,
+                70, 70,  70,  70, 70, 70, 70, 0,   0,  0,  0,  0,  10,  10,  10, 10, 10, 93,
+                10, 10,  10,  10, 10, 10, 10, 10,  10, 10, 10, 10, 10,  10,  10, 10, 10, 10,
+                10, 10,  111, 10, 10, 10, 10, 10,  10, 10, 10, 10, 121, 10,  10, 10, 10, 10,
+                10, 132, 129, 10, 10, 10, 10, 10,  10, 10, 10, 10, 10,  140, 10, 10, 10, 10,
+                10, 10,  10,  10, 10, 10, 10, 10,  10, 10, 10, 10, 157, 10,  10, 10, 10, 10,
+                10, 10,  10,  10, 10, 10, 10, 10,  10, 10, 10, 10, 10,  10,  10, 10, 10, 10,
+                10, 10,  10,  10, 10, 10, 10, 10,  10, 10, 10, 10, 10,  10,  10, 10, 10, 10,
+                10, 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, 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,
@@ -573,37 +550,37 @@
                 10, 10, 10, 10, 10, 10,  10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
                 10, 10, 10, 10, 10, 10,  10, 10, 10, 10, 10, 10, 10, 10, 10, 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, 0,  0,  0,  0,  0,  0,
+                10, 10, 10, 10, 10, 10,  0,  0,  0,  0,  0,  0,
         },
         {
-                0,  153, 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,  34, 34,  0,  37,
-                0,  0,   0,  0,   0,   0,   0,   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, 70, 70, 70, 70,  70, 70,
-                70, 70,  70, 0,   0,   0,   0,   0,   10,  10, 10, 10, 10, 10, 10, 10, 10,  10, 10,
-                10, 10,  98, 10,  10,  10,  10,  103, 10,  10, 10, 10, 10, 10, 10, 10, 10,  10, 10,
-                10, 10,  10, 10,  10,  10,  124, 10,  10,  10, 10, 10, 10, 10, 10, 10, 10,  10, 10,
-                10, 10,  10, 10,  139, 10,  10,  10,  142, 10, 10, 10, 10, 10, 10, 10, 10,  10, 10,
-                10, 10,  10, 156, 10,  10,  159, 10,  10,  10, 10, 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,  215, 10,  10,  10,  10, 10, 10, 10, 10, 10, 10, 226, 10, 10,
-                10, 10,  10, 10,  10,  0,   0,   0,   0,   0,  0,
+                0,  153, 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,   34,  34,
+                0,  37,  0,  0,  0,  0,  0,  0,  0,  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,  70,  70,
+                70, 70,  70, 70, 70, 70, 70, 0,  0,  0,  0,  0,   10,  10, 10,  10,  10,  10,
+                10, 10,  10, 10, 10, 10, 10, 98, 10, 10, 10, 10,  103, 10, 10,  10,  10,  10,
+                10, 10,  10, 10, 10, 10, 10, 10, 10, 10, 10, 10,  124, 10, 10,  10,  10,  10,
+                10, 10,  10, 10, 10, 10, 10, 10, 10, 10, 10, 139, 10,  10, 10,  142, 10,  10,
+                10, 10,  10, 10, 10, 10, 10, 10, 10, 10, 10, 156, 10,  10, 159, 10,  10,  10,
+                10, 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,  215, 10,
+                10, 10,  10, 10, 10, 10, 10, 10, 10, 10, 0,  0,   0,   0,  0,   0,
         },
         {
-                0,  172, 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,  34, 34,  0,  37,
-                0,  0,   0,  0,  0,  0,  0,   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, 70,  70, 70, 70,  70, 70,
-                70, 70,  70, 0,  0,  0,  0,   0,  10,  10, 10, 10,  10, 97,  10, 10, 10,  10, 10,
-                10, 10,  10, 10, 10, 10, 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, 135, 10, 10, 10,  10, 10,
-                10, 10,  10, 10, 10, 10, 144, 10, 10,  10, 10, 10,  10, 10,  10, 10, 150, 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, 10, 10,  10, 10,
-                10, 10,  10, 10, 10, 10, 10,  10, 218, 10, 10, 10,  10, 10,  10, 10, 10,  10, 10,
-                10, 10,  10, 10, 10, 0,  0,   0,  0,   0,  0,
+                0,  172, 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,  34,  34,
+                0,  37,  0,  0,  0,  0,   0,  0,  0,  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, 70,  70,
+                70, 70,  70, 70, 70, 70,  70, 0,  0,  0,   0,  0,  10, 10,  10, 10, 10,  97,
+                10, 10,  10, 10, 10, 10,  10, 10, 10, 10,  10, 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, 135, 10, 10, 10, 10,  10, 10, 10, 10,  10, 10, 10, 144, 10, 10, 10,  10,
+                10, 10,  10, 10, 10, 150, 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, 10, 10, 10,  10, 10, 10, 10,  10, 10, 10,  10,
+                10, 218, 10, 10, 10, 10,  10, 10, 10, 10,  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,
@@ -617,37 +594,37 @@
                 10, 10, 10, 10, 165, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,  10, 10, 10, 10, 10,
                 10, 10, 10, 10, 10,  10, 10, 10, 10, 10, 10, 10, 10, 10, 10,  10, 10, 10, 10, 10,
                 10, 10, 10, 10, 10,  10, 10, 10, 10, 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,
+                10, 10, 10, 10, 10,  10, 0,  0,  0,  0,  0,  0,
         },
         {
-                0,  175, 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,  34, 34, 0,  37,
-                0,  0,   0,   0,  0,  0,  0,  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, 70,  70, 70, 70, 70, 70,
-                70, 70,  70,  0,  0,  0,  0,  0,   85, 10,  10,  10, 10, 10,  10, 10, 10, 10, 10,
-                10, 10,  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,  10,  10, 10, 10,  10, 10, 10, 10, 10,
-                10, 10,  136, 10, 10, 10, 10, 10,  10, 10,  10,  10, 10, 10,  10, 10, 10, 10, 10,
-                10, 10,  10,  10, 10, 10, 10, 10,  10, 10,  163, 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,  201, 10, 10, 10,  10, 10, 10, 10, 10,
-                10, 211, 10,  10, 10, 10, 10, 10,  10, 219, 10,  10, 10, 223, 10, 10, 10, 10, 10,
-                10, 10,  10,  10, 10, 0,  0,  0,   0,  0,   0,
+                0,   175, 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,  34,  34,
+                0,   37,  0,   0,  0,  0,  0,  0,  0,   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, 70,  70,
+                70,  70,  70,  70, 70, 70, 70, 0,  0,   0,   0,  0,  85,  10, 10, 10, 10,  10,
+                10,  10,  10,  10, 10, 10, 10, 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, 10,  10,
+                10,  10,  10,  10, 10, 10, 10, 10, 10,  136, 10, 10, 10,  10, 10, 10, 10,  10,
+                10,  10,  10,  10, 10, 10, 10, 10, 10,  10,  10, 10, 10,  10, 10, 10, 10,  10,
+                163, 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,  201, 10, 10, 10, 10, 10, 10,  10,  10, 10, 211, 10, 10, 10, 10,  10,
+                10,  10,  219, 10, 10, 10, 10, 10, 10,  10,  0,  0,  0,   0,  0,  0,
         },
         {
-                0,  181, 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,   34,  34,  0,  37,
-                0,  0,   0,  0,  0,  0,  0,  0,   0,   0,  0,  0,   0,  0,  0,   0,   0,   0,  0,
-                0,  0,   0,  0,  0,  0,  0,  0,   0,   0,  0,  0,   73, 70, 70,  70,  70,  70, 70,
-                70, 70,  70, 0,  0,  0,  0,  0,   10,  10, 10, 10,  10, 10, 91,  10,  10,  10, 95,
-                96, 10,  10, 99, 10, 10, 10, 10,  10,  10, 10, 10,  10, 10, 10,  10,  10,  10, 114,
-                10, 10,  10, 10, 10, 10, 10, 122, 10,  10, 10, 10,  10, 10, 10,  130, 10,  10, 10,
-                10, 10,  10, 10, 10, 10, 10, 10,  10,  10, 10, 10,  10, 10, 10,  10,  10,  10, 10,
-                10, 10,  10, 10, 10, 10, 10, 10,  10,  10, 10, 164, 10, 10, 10,  10,  10,  10, 10,
-                10, 10,  10, 10, 10, 10, 10, 10,  10,  10, 10, 10,  10, 10, 186, 10,  188, 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,  10,  10, 10, 10,  10, 10, 10,  10,  10,  10, 10,
-                10, 10,  10, 10, 10, 0,  0,  0,   0,   0,  0,
+                0,   181, 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,  34, 34,
+                0,   37,  0,  0,   0,  0,   0,  0,   0,  0,  0,  0,  0,  0,   0,  0,  0,  0,
+                0,   0,   0,  0,   0,  0,   0,  0,   0,  0,  0,  0,  0,  0,   0,  73, 70, 70,
+                70,  70,  70, 70,  70, 70,  70, 0,   0,  0,  0,  0,  10, 10,  10, 10, 10, 10,
+                91,  10,  10, 10,  95, 96,  10, 10,  99, 10, 10, 10, 10, 10,  10, 10, 10, 10,
+                10,  10,  10, 10,  10, 114, 10, 10,  10, 10, 10, 10, 10, 122, 10, 10, 10, 10,
+                10,  10,  10, 130, 10, 10,  10, 10,  10, 10, 10, 10, 10, 10,  10, 10, 10, 10,
+                10,  10,  10, 10,  10, 10,  10, 10,  10, 10, 10, 10, 10, 10,  10, 10, 10, 10,
+                10,  164, 10, 10,  10, 10,  10, 10,  10, 10, 10, 10, 10, 10,  10, 10, 10, 10,
+                10,  10,  10, 10,  10, 186, 10, 188, 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,  10,  10, 10,  10, 10,  10, 10,  10, 10, 0,  0,  0,  0,   0,  0,
         },
         {
                 0,  210, 0,  0,   0,  0,   0,  8,   8,   10,  10, 0,   0,  0,  0,   0,  0,  0,
@@ -662,40 +639,39 @@
                 10, 10,  10, 10,  10, 168, 10, 10,  10,  10,  10, 174, 10, 10, 177, 10, 10, 10,
                 10, 200, 10, 10,  10, 10,  10, 10,  10,  10,  10, 10,  10, 10, 10,  10, 10, 198,
                 10, 10,  10, 10,  10, 204, 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, 10, 0,
-                0,  0,   0,  0,   0,
+                10, 10,  10, 10,  10, 10,  10, 10,  10,  10,  0,  0,   0,  0,  0,   0,
         },
         {
-                0,  214, 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,   34, 34, 0,   37,
-                0,  0,   0,   0,  0,  0,  0,   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, 70, 70,  70, 70, 70,  70,
-                70, 70,  70,  0,  0,  0,  0,   0,  10,  10, 10,  10,  10, 10, 10,  10, 10, 10,  10,
-                10, 10,  10,  10, 10, 10, 10,  10, 104, 10, 10,  10,  10, 10, 110, 10, 10, 10,  10,
-                10, 10,  10,  10, 10, 10, 10,  10, 10,  10, 125, 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, 10, 10,  10, 10, 10,  10,
-                10, 173, 10,  10, 10, 10, 178, 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,  212, 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,   214, 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,   34,  34,
+                0,   37,  0,  0,   0,  0,  0,   0,  0,  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,  70,  70,
+                70,  70,  70, 70,  70, 70, 70,  0,  0,  0,  0,   0,  10, 10,  10, 10,  10,  10,
+                10,  10,  10, 10,  10, 10, 10,  10, 10, 10, 10,  10, 10, 104, 10, 10,  10,  10,
+                10,  110, 10, 10,  10, 10, 10,  10, 10, 10, 10,  10, 10, 10,  10, 10,  125, 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, 10,  10, 10, 10,  10, 10, 10, 173, 10, 10, 10,  10, 178, 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, 212, 10, 10,  10,  10,
+                10,  10,  10, 10,  10, 10, 10,  10, 10, 10, 0,   0,  0,  0,   0,  0,
         },
         {
-                0,  221, 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,  34, 34, 0,  37, 0,  0,
-                0,  0,   0,  0,  0,  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,  70, 70, 70, 70, 70, 70, 70, 70, 70, 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, 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, 10, 10, 10, 10, 10, 10, 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,  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,  34, 34, 0,  37, 0,  0,
+                0,  0,  0,  0,  0,  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,  70, 70, 70, 70, 70, 70, 70, 70, 70, 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, 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, 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,  228, 0,  0,  0,  0,  0,  8,  8,  10, 10, 0,  0,  0,  0,  0,  0,  0,  0,  0,
+                0,  221, 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,  34, 34, 0,  37, 0,  0,
                 0,  0,   0,  0,  0,  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, 70, 70, 70, 74, 70, 70, 70, 70, 70, 0,
@@ -706,7 +682,7 @@
                 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, 0,  0,  0,  0,  0,  0,
+                10, 10,  10, 10, 10, 10, 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,
@@ -720,84 +696,80 @@
                 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
                 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
                 10, 10, 10, 10, 10, 10, 10, 10, 10, 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,
+                10, 10, 10, 10, 10, 10, 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,  34, 34, 0,  37, 0,  0,
-                0,  0,  0,  0,   0,  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, 70, 70, 70, 70, 70, 70, 70, 70, 70, 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, 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, 10, 10,
-                10, 10, 10, 10,  10, 10, 10, 10, 10,  10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 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, 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,  34, 34, 0,  37, 0,  0,
+                0,  0,  0,  0,  0,  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, 70, 70, 70, 70, 70, 70, 70, 70, 70, 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, 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, 10, 10,
+                10, 10, 10, 10, 10, 10, 10, 10, 10,  10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+                10, 10, 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, 233, 0, 0, 0, 0, 0, 0, 0, 0, 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, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 226, 0, 0, 0, 0, 0, 0, 0,  0,  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, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,   0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,   0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,   0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,   0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,   0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,   0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,   0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         },
         {
-                0, 234, 0, 0, 0, 0, 0, 0, 0, 0, 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, 34, 0, 37, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0,
-                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0,   0, 0, 0, 0, 0,
-                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0,   0, 0, 0, 0, 0,
-                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0,   0, 0, 0, 0, 0,
-                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0,   0, 0, 0, 0, 0,
-                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0,   0, 0, 0, 0, 0,
-                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0,   0, 0, 0, 0, 0,
-                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0,   0, 0, 0, 0, 0,
-                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 236, 0, 0, 0, 0,
+                0, 227, 0, 0, 0, 0, 0, 0, 0,  0,  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, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0,
+                0, 0,   0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0,
+                0, 0,   0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0,
+                0, 0,   0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0,
+                0, 0,   0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0,
+                0, 0,   0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0,
+                0, 0,   0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0,
+                0, 0,   0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0,
         },
         {
-                0, 237, 0, 0, 0, 0, 0, 0, 0, 0, 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, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 230, 0, 0, 0, 0, 0, 0, 0,  0,  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, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,   0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,   0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,   0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,   0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,   0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,   0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,   0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         },
         {
-                0, 238, 0, 0, 0, 0, 0, 0, 0, 0, 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, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 231, 0, 0, 0, 0, 0, 0, 0,  0,  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, 34, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,   0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,   0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,   0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,   0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,   0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                0, 0,   0, 0, 0, 0, 0, 0, 0,  0,  0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                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[239] = {
-        -1, -1, 84, 84, 87, 61, 67, 87, 35, 34, 34, 51, 76, 56, 60, 81, 37, 38, 49, 74, 47, 45,
-        72, 44, 48, 46, 73, 83, 43, 1,  -1, -1, 1,  50, -1, -1, 86, 85, 75, 2,  1,  1,  -1, -1,
-        1,  -1, -1, 1,  2,  -1, -1, 1,  -1, 2,  2,  64, 63, 82, 69, 52, 77, 71, 65, 66, 68, 70,
-        53, 78, 62, 87, 36, 36, 6,  36, 36, 36, 36, 36, 12, 41, 42, 55, 80, 59, 34, 34, 34, 34,
-        15, 34, 34, 34, 13, 34, 34, 34, 33, 34, 34, 34, 23, 34, 34, 34, 34, 16, 34, 34, 34, 34,
-        34, 34, 14, 34, 34, 34, 34, 34, 17, 10, 34, 34, 34, 7,  34, 34, 32, 34, 34, 34, 34, 4,
-        34, 34, 24, 34, 8,  34, 5,  19, 34, 34, 34, 26, 34, 34, 21, 34, 34, 34, 34, 34, 31, 34,
-        34, 34, 34, 34, 34, 34, 27, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 25, 34, 34, 20, 34,
-        34, 34, 34, 34, 18, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
-        34, 28, 34, 34, 34, 34, 30, 34, 34, 34, 34, 11, 34, 34, 34, 3,  34, 34, 34, 34, 34, 34,
-        22, 34, 34, 34, 34, 34, 34, 29, 34, 34, 34, 34, 9,  39, 54, 79, 58, 40, 57,
+static int8_t accepts[232] = {
+        -1, -1, 83, 83, 86, 60, 66, 86, 34, 33, 33, 50, 75, 55, 59, 80, 36, 37, 48, 73, 46, 44,
+        71, 43, 47, 45, 72, 82, 42, 1,  -1, -1, 1,  49, -1, -1, 85, 84, 74, 2,  1,  1,  -1, -1,
+        1,  -1, -1, 1,  2,  -1, -1, 1,  -1, 2,  2,  63, 62, 81, 68, 51, 76, 70, 64, 65, 67, 69,
+        52, 77, 61, 86, 35, 35, 6,  35, 35, 35, 35, 35, 12, 40, 41, 54, 79, 58, 33, 33, 33, 33,
+        15, 33, 33, 33, 13, 33, 33, 33, 32, 33, 33, 33, 23, 33, 33, 33, 33, 16, 33, 33, 33, 33,
+        33, 33, 14, 33, 33, 33, 33, 33, 17, 10, 33, 33, 33, 7,  33, 33, 31, 33, 33, 33, 33, 4,
+        33, 33, 24, 33, 8,  33, 5,  19, 33, 33, 33, 26, 33, 33, 21, 33, 33, 33, 33, 33, 30, 33,
+        33, 33, 33, 33, 33, 33, 27, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 25, 33, 33, 20, 33,
+        33, 33, 33, 33, 18, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
+        33, 28, 33, 33, 33, 33, 29, 33, 33, 33, 33, 11, 33, 33, 33, 3,  33, 33, 33, 33, 33, 33,
+        22, 33, 33, 33, 33, 9,  38, 53, 78, 57, 39, 56,
 };
 
 Token Lexer::next() {
diff --git a/src/sksl/SkSLLexer.h b/src/sksl/SkSLLexer.h
index 43b0a7d..e7a1168 100644
--- a/src/sksl/SkSLLexer.h
+++ b/src/sksl/SkSLLexer.h
@@ -44,7 +44,6 @@
         TK_INLINE,
         TK_NOINLINE,
         TK_HASSIDEEFFECTS,
-        TK_VARYING,
         TK_STRUCT,
         TK_LAYOUT,
         TK_ENUM,
diff --git a/src/sksl/SkSLParser.cpp b/src/sksl/SkSLParser.cpp
index f148cf6..5b74a1d 100644
--- a/src/sksl/SkSLParser.cpp
+++ b/src/sksl/SkSLParser.cpp
@@ -50,7 +50,6 @@
         case Token::Kind::TK_FLAT:           return Modifiers::kFlat_Flag;
         case Token::Kind::TK_NOPERSPECTIVE:  return Modifiers::kNoPerspective_Flag;
         case Token::Kind::TK_HASSIDEEFFECTS: return Modifiers::kHasSideEffects_Flag;
-        case Token::Kind::TK_VARYING:        return Modifiers::kVarying_Flag;
         case Token::Kind::TK_INLINE:         return Modifiers::kInline_Flag;
         case Token::Kind::TK_NOINLINE:       return Modifiers::kNoInline_Flag;
         default:                             return 0;
@@ -1023,8 +1022,7 @@
                   primitive, maxVertices, invocations, marker, when, ctype);
 }
 
-/* layout? (UNIFORM | CONST | IN | OUT | INOUT | LOWP | MEDIUMP | HIGHP | FLAT | NOPERSPECTIVE |
-            VARYING | INLINE)* */
+/* layout? (UNIFORM | CONST | IN | OUT | INOUT | FLAT | NOPERSPECTIVE | INLINE)* */
 Modifiers Parser::modifiers() {
     Layout layout = this->layout();
     int flags = 0;
diff --git a/src/sksl/codegen/SkSLPipelineStageCodeGenerator.cpp b/src/sksl/codegen/SkSLPipelineStageCodeGenerator.cpp
index b346b12..8308cb6 100644
--- a/src/sksl/codegen/SkSLPipelineStageCodeGenerator.cpp
+++ b/src/sksl/codegen/SkSLPipelineStageCodeGenerator.cpp
@@ -211,41 +211,11 @@
         return;
     }
 
-    auto varIndexByFlag = [this, &ref](uint32_t flag) {
-        int index = 0;
-        bool found = false;
-        for (const ProgramElement* e : fProgram.elements()) {
-            if (found) {
-                break;
-            }
-            if (e->is<GlobalVarDeclaration>()) {
-                const GlobalVarDeclaration& global = e->as<GlobalVarDeclaration>();
-                const Variable& var = global.declaration()->as<VarDeclaration>().var();
-                if (&var == ref.variable()) {
-                    found = true;
-                    break;
-                }
-                // Skip over children (shaders/colorFilters). These are indexed separately from
-                // other globals.
-                if ((var.modifiers().fFlags & flag) && !var.type().isEffectChild()) {
-                    ++index;
-                }
-            }
-        }
-        SkASSERT(found);
-        return index;
-    };
-
-    if (modifiers.fFlags & Modifiers::kVarying_Flag) {
-        this->write("_vtx_attr_");
-        this->write(to_string(varIndexByFlag(Modifiers::kVarying_Flag)));
+    auto it = fVariableNames.find(var);
+    if (it != fVariableNames.end()) {
+        this->write(it->second);
     } else {
-        auto it = fVariableNames.find(var);
-        if (it != fVariableNames.end()) {
-            this->write(it->second);
-        } else {
-            this->write(var->name());
-        }
+        this->write(var->name());
     }
 }
 
diff --git a/src/sksl/generated/sksl_gpu.dehydrated.sksl b/src/sksl/generated/sksl_gpu.dehydrated.sksl
index 2f0ccb4..27a15ee 100644
--- a/src/sksl/generated/sksl_gpu.dehydrated.sksl
+++ b/src/sksl/generated/sksl_gpu.dehydrated.sksl
@@ -3918,13 +3918,13 @@
 49,0,0,0,0,1,
 41,
 1,
-56,161,3,0,47,
+56,161,3,0,46,
 1,
 1,
 26,
-47,176,0,0,0,128,63,48,
+47,176,0,0,0,128,63,47,
 46,
-56,161,3,0,1,3,49,
+56,161,3,0,1,3,48,
 56,162,3,0,1,0,
 29,166,3,
 2,
@@ -3934,10 +3934,10 @@
 1,
 1,
 26,
-47,176,0,0,0,128,63,48,
+47,176,0,0,0,128,63,47,
 46,
-56,165,3,0,1,3,49,
-56,164,3,0,47,
+56,165,3,0,1,3,48,
+56,164,3,0,46,
 56,165,3,0,1,0,
 29,169,3,
 2,
@@ -3947,7 +3947,7 @@
 42,99,8,
 51,
 1,
-56,167,3,0,66,
+56,167,3,0,65,
 12,
 47,15,2,1,
 26,
@@ -3957,11 +3957,11 @@
 26,
 47,176,0,0,0,0,0,
 1,
-56,167,3,0,49,
+56,167,3,0,48,
 46,
 56,168,3,0,1,3,
 1,
-56,167,3,0,49,
+56,167,3,0,48,
 46,
 56,168,3,0,1,3,1,0,
 29,172,3,
@@ -3979,9 +3979,9 @@
 1,
 1,
 26,
-47,176,0,0,0,128,63,48,
+47,176,0,0,0,128,63,47,
 46,
-56,174,3,0,1,3,49,
+56,174,3,0,1,3,48,
 56,173,3,0,1,0,
 29,178,3,
 2,
@@ -3990,9 +3990,9 @@
 1,
 1,
 26,
-47,176,0,0,0,128,63,48,
+47,176,0,0,0,128,63,47,
 46,
-56,176,3,0,1,3,49,
+56,176,3,0,1,3,48,
 56,177,3,0,1,0,
 29,181,3,
 2,
@@ -4001,14 +4001,14 @@
 1,
 1,
 46,
-56,180,3,0,1,3,49,
-56,179,3,0,47,
+56,180,3,0,1,3,48,
+56,179,3,0,46,
 1,
 1,
 26,
-47,176,0,0,0,128,63,48,
+47,176,0,0,0,128,63,47,
 46,
-56,179,3,0,1,3,49,
+56,179,3,0,1,3,48,
 56,180,3,0,1,0,
 29,184,3,
 2,
@@ -4018,13 +4018,13 @@
 1,
 1,
 26,
-47,176,0,0,0,128,63,48,
+47,176,0,0,0,128,63,47,
 46,
-56,183,3,0,1,3,49,
-56,182,3,0,47,
+56,183,3,0,1,3,48,
+56,182,3,0,46,
 1,
 46,
-56,182,3,0,1,3,49,
+56,182,3,0,1,3,48,
 56,183,3,0,1,0,
 29,187,3,
 2,
@@ -4034,16 +4034,16 @@
 1,
 1,
 26,
-47,176,0,0,0,128,63,48,
+47,176,0,0,0,128,63,47,
 46,
-56,186,3,0,1,3,49,
-56,185,3,0,47,
+56,186,3,0,1,3,48,
+56,185,3,0,46,
 1,
 1,
 26,
-47,176,0,0,0,128,63,48,
+47,176,0,0,0,128,63,47,
 46,
-56,185,3,0,1,3,49,
+56,185,3,0,1,3,48,
 56,186,3,0,1,0,
 29,190,3,
 2,
@@ -4052,7 +4052,7 @@
 28,
 47,15,2,204,0,2,
 1,
-56,188,3,0,47,
+56,188,3,0,46,
 56,189,3,0,
 26,
 47,176,0,0,0,128,63,1,0,
@@ -4061,19 +4061,19 @@
 49,0,0,0,0,1,
 41,
 1,
-56,191,3,0,49,
+56,191,3,0,48,
 56,192,3,0,1,0,
 29,196,3,
 2,
 49,0,0,0,0,1,
 41,
 1,
-56,194,3,0,47,
+56,194,3,0,46,
 1,
 1,
 26,
-47,176,0,0,0,128,63,48,
-56,194,3,0,49,
+47,176,0,0,0,128,63,47,
+56,194,3,0,48,
 56,195,3,0,1,0,
 29,199,3,
 2,
@@ -4083,37 +4083,37 @@
 1,
 1,
 26,
-47,176,0,0,0,0,64,49,
+47,176,0,0,0,0,64,48,
 46,
-56,198,3,0,1,0,71,
+56,198,3,0,1,0,70,
 46,
 56,198,3,0,1,1,
 1,
 1,
 26,
-47,176,0,0,0,0,64,49,
+47,176,0,0,0,0,64,48,
 46,
-56,197,3,0,1,0,49,
+56,197,3,0,1,0,48,
 46,
 56,198,3,0,1,0,
 1,
 1,
 46,
-56,197,3,0,1,1,49,
+56,197,3,0,1,1,48,
 46,
-56,198,3,0,1,1,48,
+56,198,3,0,1,1,47,
 1,
 1,
 26,
-47,176,0,0,0,0,64,49,
+47,176,0,0,0,0,64,48,
 1,
 46,
-56,198,3,0,1,1,48,
+56,198,3,0,1,1,47,
 46,
-56,198,3,0,1,0,49,
+56,198,3,0,1,0,48,
 1,
 46,
-56,197,3,0,1,1,48,
+56,197,3,0,1,1,47,
 46,
 56,197,3,0,1,0,1,0,
 29,202,3,
@@ -4147,34 +4147,34 @@
 56,201,3,0,2,2,3,
 1,
 46,
-56,200,3,0,1,3,47,
+56,200,3,0,1,3,46,
 1,
 1,
 26,
-47,176,0,0,0,128,63,48,
+47,176,0,0,0,128,63,47,
 46,
-56,200,3,0,1,3,49,
+56,200,3,0,1,3,48,
 46,
 56,201,3,0,1,3,
 23,
 1,
 46,
-56,35,4,2,3,0,1,2,72,
+56,35,4,2,3,0,1,2,71,
 1,
 1,
 46,
-56,201,3,0,3,0,1,2,49,
+56,201,3,0,3,0,1,2,48,
 1,
 26,
-47,176,0,0,0,128,63,48,
+47,176,0,0,0,128,63,47,
 46,
-56,200,3,0,1,3,47,
+56,200,3,0,1,3,46,
 1,
 46,
-56,200,3,0,3,0,1,2,49,
+56,200,3,0,3,0,1,2,48,
 1,
 26,
-47,176,0,0,0,128,63,48,
+47,176,0,0,0,128,63,47,
 46,
 56,201,3,0,1,3,
 41,
@@ -4195,7 +4195,7 @@
 23,
 1,
 46,
-56,36,4,1,3,0,1,2,65,
+56,36,4,1,3,0,1,2,64,
 28,
 47,172,1,200,0,2,
 46,
@@ -4204,11 +4204,11 @@
 1,
 1,
 26,
-47,176,0,0,0,128,63,48,
+47,176,0,0,0,128,63,47,
 46,
-56,204,3,0,1,3,49,
+56,204,3,0,1,3,48,
 46,
-56,203,3,0,3,0,1,2,47,
+56,203,3,0,3,0,1,2,46,
 46,
 56,204,3,0,3,0,1,2,
 41,
@@ -4229,7 +4229,7 @@
 23,
 1,
 46,
-56,37,4,1,3,0,1,2,65,
+56,37,4,1,3,0,1,2,64,
 28,
 47,172,1,224,0,2,
 46,
@@ -4238,11 +4238,11 @@
 1,
 1,
 26,
-47,176,0,0,0,128,63,48,
+47,176,0,0,0,128,63,47,
 46,
-56,207,3,0,1,3,49,
+56,207,3,0,1,3,48,
 46,
-56,206,3,0,3,0,1,2,47,
+56,206,3,0,3,0,1,2,46,
 46,
 56,207,3,0,3,0,1,2,
 41,
@@ -4254,13 +4254,13 @@
 51,
 42,144,8,
 1,
-56,209,3,0,50,
+56,209,3,0,49,
 1,
-56,210,3,0,47,
+56,210,3,0,46,
 26,
 47,176,0,119,204,43,50,
 1,
-56,209,3,0,50,
+56,209,3,0,49,
 56,210,3,0,1,0,
 29,215,3,
 2,
@@ -4269,13 +4269,13 @@
 51,
 42,144,8,
 1,
-56,212,3,0,50,
+56,212,3,0,49,
 1,
-56,213,3,0,47,
+56,213,3,0,46,
 26,
 47,176,0,119,204,43,50,
 1,
-56,212,3,0,50,
+56,212,3,0,49,
 56,213,3,0,1,0,
 29,218,3,
 2,
@@ -4283,7 +4283,7 @@
 31,0,
 1,
 46,
-56,217,3,0,1,0,66,
+56,217,3,0,1,0,65,
 26,
 47,176,0,0,0,0,0,
 2,
@@ -4291,10 +4291,10 @@
 41,
 1,
 46,
-56,216,3,0,1,0,49,
+56,216,3,0,1,0,48,
 1,
 26,
-47,176,0,0,0,128,63,48,
+47,176,0,0,0,128,63,47,
 46,
 56,217,3,0,1,1,1,
 2,
@@ -4307,12 +4307,12 @@
 47,176,0,0,
 1,
 46,
-56,216,3,0,1,1,48,
+56,216,3,0,1,1,47,
 46,
 56,216,3,0,1,0,
 31,0,
 1,
-56,38,4,0,66,
+56,38,4,0,65,
 26,
 47,176,0,0,0,0,0,
 2,
@@ -4322,30 +4322,30 @@
 1,
 1,
 46,
-56,216,3,0,1,1,49,
+56,216,3,0,1,1,48,
 46,
-56,217,3,0,1,1,47,
+56,217,3,0,1,1,46,
 1,
 46,
-56,216,3,0,1,0,49,
+56,216,3,0,1,0,48,
 1,
 26,
-47,176,0,0,0,128,63,48,
+47,176,0,0,0,128,63,47,
 46,
-56,217,3,0,1,1,47,
+56,217,3,0,1,1,46,
 1,
 46,
-56,217,3,0,1,0,49,
+56,217,3,0,1,0,48,
 1,
 26,
-47,176,0,0,0,128,63,48,
+47,176,0,0,0,128,63,47,
 46,
 56,216,3,0,1,1,1,
 2,
 49,0,0,0,0,2,
 23,
 1,
-56,38,4,1,65,
+56,38,4,1,64,
 28,
 47,176,0,200,0,2,
 46,
@@ -4354,7 +4354,7 @@
 47,176,0,211,3,2,
 1,
 46,
-56,217,3,0,1,0,49,
+56,217,3,0,1,0,48,
 46,
 56,216,3,0,1,1,
 56,38,4,0,
@@ -4362,23 +4362,23 @@
 1,
 1,
 1,
-56,38,4,0,49,
+56,38,4,0,48,
 46,
-56,216,3,0,1,1,47,
+56,216,3,0,1,1,46,
 1,
 46,
-56,216,3,0,1,0,49,
+56,216,3,0,1,0,48,
 1,
 26,
-47,176,0,0,0,128,63,48,
+47,176,0,0,0,128,63,47,
 46,
-56,217,3,0,1,1,47,
+56,217,3,0,1,1,46,
 1,
 46,
-56,217,3,0,1,0,49,
+56,217,3,0,1,0,48,
 1,
 26,
-47,176,0,0,0,128,63,48,
+47,176,0,0,0,128,63,47,
 46,
 56,216,3,0,1,1,1,1,1,1,211,3,
 29,221,3,
@@ -4407,13 +4407,13 @@
 56,220,3,0,2,2,3,
 1,
 46,
-56,219,3,0,1,3,47,
+56,219,3,0,1,3,46,
 1,
 1,
 26,
-47,176,0,0,0,128,63,48,
+47,176,0,0,0,128,63,47,
 46,
-56,219,3,0,1,3,49,
+56,219,3,0,1,3,48,
 46,
 56,220,3,0,1,3,1,1,218,3,
 29,224,3,
@@ -4422,7 +4422,7 @@
 31,0,
 1,
 46,
-56,223,3,0,1,1,66,
+56,223,3,0,1,1,65,
 46,
 56,223,3,0,1,0,
 2,
@@ -4432,29 +4432,29 @@
 1,
 1,
 46,
-56,222,3,0,1,1,49,
+56,222,3,0,1,1,48,
 46,
-56,223,3,0,1,1,47,
+56,223,3,0,1,1,46,
 1,
 46,
-56,222,3,0,1,0,49,
+56,222,3,0,1,0,48,
 1,
 26,
-47,176,0,0,0,128,63,48,
+47,176,0,0,0,128,63,47,
 46,
-56,223,3,0,1,1,47,
+56,223,3,0,1,1,46,
 1,
 46,
-56,223,3,0,1,0,49,
+56,223,3,0,1,0,48,
 1,
 26,
-47,176,0,0,0,128,63,48,
+47,176,0,0,0,128,63,47,
 46,
 56,222,3,0,1,1,1,
 31,0,
 1,
 46,
-56,222,3,0,1,0,66,
+56,222,3,0,1,0,65,
 26,
 47,176,0,0,0,0,0,
 2,
@@ -4462,10 +4462,10 @@
 41,
 1,
 46,
-56,223,3,0,1,0,49,
+56,223,3,0,1,0,48,
 1,
 26,
-47,176,0,0,0,128,63,48,
+47,176,0,0,0,128,63,47,
 46,
 56,222,3,0,1,1,1,
 2,
@@ -4482,15 +4482,15 @@
 47,176,0,0,0,0,0,
 1,
 46,
-56,223,3,0,1,1,48,
+56,223,3,0,1,1,47,
 28,
 47,176,0,211,3,2,
 1,
 1,
 46,
-56,223,3,0,1,1,48,
+56,223,3,0,1,1,47,
 46,
-56,223,3,0,1,0,49,
+56,223,3,0,1,0,48,
 46,
 56,222,3,0,1,1,
 46,
@@ -4499,23 +4499,23 @@
 1,
 1,
 1,
-56,39,4,0,49,
+56,39,4,0,48,
 46,
-56,222,3,0,1,1,47,
+56,222,3,0,1,1,46,
 1,
 46,
-56,222,3,0,1,0,49,
+56,222,3,0,1,0,48,
 1,
 26,
-47,176,0,0,0,128,63,48,
+47,176,0,0,0,128,63,47,
 46,
-56,223,3,0,1,1,47,
+56,223,3,0,1,1,46,
 1,
 46,
-56,223,3,0,1,0,49,
+56,223,3,0,1,0,48,
 1,
 26,
-47,176,0,0,0,128,63,48,
+47,176,0,0,0,128,63,47,
 46,
 56,222,3,0,1,1,1,1,1,211,3,
 29,227,3,
@@ -4544,13 +4544,13 @@
 56,226,3,0,2,2,3,
 1,
 46,
-56,225,3,0,1,3,47,
+56,225,3,0,1,3,46,
 1,
 1,
 26,
-47,176,0,0,0,128,63,48,
+47,176,0,0,0,128,63,47,
 46,
-56,225,3,0,1,3,49,
+56,225,3,0,1,3,48,
 46,
 56,226,3,0,1,3,1,1,224,3,
 29,230,3,
@@ -4568,9 +4568,9 @@
 1,
 1,
 26,
-47,176,0,0,0,0,64,49,
+47,176,0,0,0,0,64,48,
 46,
-56,231,3,0,1,0,71,
+56,231,3,0,1,0,70,
 46,
 56,231,3,0,1,1,
 2,
@@ -4583,49 +4583,49 @@
 1,
 1,
 46,
-56,232,3,0,1,0,49,
+56,232,3,0,1,0,48,
 46,
-56,232,3,0,1,0,49,
+56,232,3,0,1,0,48,
 1,
 46,
-56,231,3,0,1,1,48,
-1,
-26,
-47,176,0,0,0,0,64,49,
-46,
-56,231,3,0,1,0,
-46,
-56,232,3,0,1,1,47,
-1,
-1,
-26,
-47,176,0,0,0,128,63,48,
-46,
-56,232,3,0,1,1,49,
-46,
-56,231,3,0,1,0,47,
-1,
-46,
-56,232,3,0,1,0,49,
-1,
-1,
-40,48,
-46,
 56,231,3,0,1,1,47,
 1,
 26,
-47,176,0,0,0,0,64,49,
+47,176,0,0,0,0,64,48,
 46,
-56,231,3,0,1,0,47,
+56,231,3,0,1,0,
+46,
+56,232,3,0,1,1,46,
+1,
+1,
+26,
+47,176,0,0,0,128,63,47,
+46,
+56,232,3,0,1,1,48,
+46,
+56,231,3,0,1,0,46,
+1,
+46,
+56,232,3,0,1,0,48,
+1,
+1,
+40,47,
+46,
+56,231,3,0,1,1,46,
+1,
+26,
+47,176,0,0,0,0,64,48,
+46,
+56,231,3,0,1,0,46,
 26,
 47,176,0,0,0,128,63,1,
 31,0,
 1,
 1,
 26,
-47,176,0,0,0,128,64,49,
+47,176,0,0,0,128,64,48,
 46,
-56,232,3,0,1,0,71,
+56,232,3,0,1,0,70,
 46,
 56,232,3,0,1,1,
 2,
@@ -4650,26 +4650,26 @@
 47,176,0,0,
 1,
 46,
-56,232,3,0,1,0,49,
+56,232,3,0,1,0,48,
 46,
 56,232,3,0,1,0,
 54,41,4,
 47,176,0,0,
 1,
-56,40,4,0,49,
+56,40,4,0,48,
 46,
 56,232,3,0,1,0,
 54,42,4,
 47,176,0,0,
 1,
 46,
-56,232,3,0,1,1,49,
+56,232,3,0,1,1,48,
 46,
 56,232,3,0,1,1,
 54,43,4,
 47,176,0,0,
 1,
-56,42,4,0,49,
+56,42,4,0,48,
 46,
 56,232,3,0,1,1,
 41,
@@ -4679,58 +4679,58 @@
 1,
 1,
 1,
-56,42,4,0,49,
+56,42,4,0,48,
 1,
 46,
-56,231,3,0,1,0,48,
+56,231,3,0,1,0,47,
 1,
 46,
-56,232,3,0,1,0,49,
+56,232,3,0,1,0,48,
 1,
 1,
 1,
 26,
-47,176,0,0,0,64,64,49,
+47,176,0,0,0,64,64,48,
 46,
-56,231,3,0,1,1,48,
+56,231,3,0,1,1,47,
 1,
 26,
-47,176,0,0,0,192,64,49,
+47,176,0,0,0,192,64,48,
 46,
-56,231,3,0,1,0,48,
+56,231,3,0,1,0,47,
 26,
-47,176,0,0,0,128,63,47,
+47,176,0,0,0,128,63,46,
 1,
 1,
 1,
 26,
-47,176,0,0,0,64,65,49,
+47,176,0,0,0,64,65,48,
 46,
-56,232,3,0,1,1,49,
-56,40,4,0,49,
+56,232,3,0,1,1,48,
+56,40,4,0,48,
 1,
 46,
-56,231,3,0,1,1,48,
+56,231,3,0,1,1,47,
 1,
 26,
-47,176,0,0,0,0,64,49,
+47,176,0,0,0,0,64,48,
 46,
-56,231,3,0,1,0,48,
+56,231,3,0,1,0,47,
 1,
 1,
 26,
-47,176,0,0,0,128,65,49,
-56,41,4,0,49,
+47,176,0,0,0,128,65,48,
+56,41,4,0,48,
 1,
 46,
-56,231,3,0,1,1,48,
+56,231,3,0,1,1,47,
 1,
 26,
-47,176,0,0,0,0,64,49,
+47,176,0,0,0,0,64,48,
 46,
-56,231,3,0,1,0,48,
+56,231,3,0,1,0,47,
 1,
-56,43,4,0,49,
+56,43,4,0,48,
 46,
 56,231,3,0,1,0,
 56,42,4,0,1,
@@ -4742,39 +4742,39 @@
 1,
 1,
 46,
-56,232,3,0,1,0,49,
+56,232,3,0,1,0,48,
 1,
 1,
 46,
-56,231,3,0,1,1,48,
+56,231,3,0,1,1,47,
 1,
 26,
-47,176,0,0,0,0,64,49,
+47,176,0,0,0,0,64,48,
+46,
+56,231,3,0,1,0,46,
+26,
+47,176,0,0,0,128,63,46,
 46,
 56,231,3,0,1,0,47,
-26,
-47,176,0,0,0,128,63,47,
-46,
-56,231,3,0,1,0,48,
 1,
 28,
 47,176,0,113,0,1,
 1,
 46,
-56,232,3,0,1,1,49,
+56,232,3,0,1,1,48,
 46,
-56,232,3,0,1,0,49,
+56,232,3,0,1,0,48,
 1,
 46,
-56,231,3,0,1,1,48,
+56,231,3,0,1,1,47,
 1,
 26,
-47,176,0,0,0,0,64,49,
+47,176,0,0,0,0,64,48,
 46,
-56,231,3,0,1,0,48,
+56,231,3,0,1,0,47,
 1,
 46,
-56,232,3,0,1,1,49,
+56,232,3,0,1,1,48,
 46,
 56,231,3,0,1,0,1,1,1,211,3,
 29,236,3,
@@ -4784,7 +4784,7 @@
 51,
 1,
 46,
-56,235,3,0,1,3,66,
+56,235,3,0,1,3,65,
 26,
 47,176,0,0,0,0,0,
 56,234,3,0,
@@ -4810,13 +4810,13 @@
 56,235,3,0,2,2,3,
 1,
 46,
-56,234,3,0,1,3,47,
+56,234,3,0,1,3,46,
 1,
 1,
 26,
-47,176,0,0,0,128,63,48,
+47,176,0,0,0,128,63,47,
 46,
-56,234,3,0,1,3,49,
+56,234,3,0,1,3,48,
 46,
 56,235,3,0,1,3,1,1,233,3,
 29,239,3,
@@ -4828,33 +4828,33 @@
 1,
 1,
 46,
-56,237,3,0,3,0,1,2,47,
+56,237,3,0,3,0,1,2,46,
 46,
-56,238,3,0,3,0,1,2,48,
+56,238,3,0,3,0,1,2,47,
 1,
 26,
-47,176,0,0,0,0,64,49,
+47,176,0,0,0,0,64,48,
 28,
 47,172,1,200,0,2,
 1,
 46,
-56,237,3,0,3,0,1,2,49,
+56,237,3,0,3,0,1,2,48,
 46,
 56,238,3,0,1,3,
 1,
 46,
-56,238,3,0,3,0,1,2,49,
+56,238,3,0,3,0,1,2,48,
 46,
 56,237,3,0,1,3,
 1,
 46,
-56,237,3,0,1,3,47,
+56,237,3,0,1,3,46,
 1,
 1,
 26,
-47,176,0,0,0,128,63,48,
+47,176,0,0,0,128,63,47,
 46,
-56,237,3,0,1,3,49,
+56,237,3,0,1,3,48,
 46,
 56,238,3,0,1,3,1,0,
 29,242,3,
@@ -4866,26 +4866,26 @@
 1,
 1,
 46,
-56,241,3,0,3,0,1,2,47,
+56,241,3,0,3,0,1,2,46,
 46,
-56,240,3,0,3,0,1,2,48,
+56,240,3,0,3,0,1,2,47,
 1,
 1,
 26,
-47,176,0,0,0,0,64,49,
+47,176,0,0,0,0,64,48,
 46,
-56,241,3,0,3,0,1,2,49,
+56,241,3,0,3,0,1,2,48,
 46,
 56,240,3,0,3,0,1,2,
 1,
 46,
-56,240,3,0,1,3,47,
+56,240,3,0,1,3,46,
 1,
 1,
 26,
-47,176,0,0,0,128,63,48,
+47,176,0,0,0,128,63,47,
 46,
-56,240,3,0,1,3,49,
+56,240,3,0,1,3,48,
 46,
 56,241,3,0,1,3,1,0,
 29,245,3,
@@ -4899,33 +4899,33 @@
 1,
 1,
 26,
-47,176,0,0,0,128,63,48,
+47,176,0,0,0,128,63,47,
 46,
-56,243,3,0,1,3,49,
+56,243,3,0,1,3,48,
 46,
-56,244,3,0,3,0,1,2,47,
+56,244,3,0,3,0,1,2,46,
 1,
 1,
 26,
-47,176,0,0,0,128,63,48,
+47,176,0,0,0,128,63,47,
 46,
-56,244,3,0,1,3,49,
+56,244,3,0,1,3,48,
 46,
-56,243,3,0,3,0,1,2,47,
+56,243,3,0,3,0,1,2,46,
 1,
 46,
-56,243,3,0,3,0,1,2,49,
+56,243,3,0,3,0,1,2,48,
 46,
 56,244,3,0,3,0,1,2,
 1,
 46,
-56,243,3,0,1,3,47,
+56,243,3,0,1,3,46,
 1,
 1,
 26,
-47,176,0,0,0,128,63,48,
+47,176,0,0,0,128,63,47,
 46,
-56,243,3,0,1,3,49,
+56,243,3,0,1,3,48,
 46,
 56,244,3,0,1,3,1,0,
 29,247,3,
@@ -4971,10 +4971,10 @@
 47,172,1,0,
 1,
 1,
-56,44,4,0,48,
+56,44,4,0,47,
 28,
 47,176,0,247,3,1,
-56,248,3,0,47,
+56,248,3,0,46,
 56,248,3,0,
 54,46,4,
 47,176,0,0,
@@ -5003,54 +5003,54 @@
 31,0,
 1,
 1,
-56,46,4,0,69,
+56,46,4,0,68,
 26,
-47,176,0,0,0,0,0,60,
+47,176,0,0,0,0,0,59,
 1,
-56,44,4,0,67,
+56,44,4,0,66,
 56,46,4,0,
 2,
 49,0,0,0,0,1,
 23,
 1,
-56,45,4,1,65,
+56,45,4,1,64,
 1,
-56,44,4,0,47,
+56,44,4,0,46,
 1,
 1,
-56,45,4,0,48,
-56,44,4,0,49,
+56,45,4,0,47,
+56,44,4,0,48,
 28,
 47,176,0,211,3,2,
 56,44,4,0,
 1,
-56,44,4,0,48,
+56,44,4,0,47,
 56,46,4,0,1,
 57,
 31,0,
 1,
 1,
-56,47,4,0,68,
-56,249,3,0,60,
-1,
 56,47,4,0,67,
+56,249,3,0,59,
+1,
+56,47,4,0,66,
 56,44,4,0,
 2,
 49,0,0,0,0,1,
 41,
 1,
-56,44,4,0,47,
+56,44,4,0,46,
 28,
 47,172,1,215,3,2,
 1,
 1,
-56,45,4,0,48,
-56,44,4,0,49,
+56,45,4,0,47,
+56,44,4,0,48,
 1,
-56,249,3,0,48,
+56,249,3,0,47,
 56,44,4,0,
 1,
-56,47,4,0,48,
+56,47,4,0,47,
 56,44,4,0,1,
 2,
 49,0,0,0,0,1,
@@ -5070,7 +5070,7 @@
 46,
 56,252,3,0,1,1,
 46,
-56,252,3,0,1,2,48,
+56,252,3,0,1,2,47,
 28,
 47,176,0,200,0,2,
 28,
@@ -5087,7 +5087,7 @@
 31,0,
 1,
 46,
-56,254,3,0,1,0,69,
+56,254,3,0,1,0,68,
 46,
 56,254,3,0,1,2,
 2,
@@ -5100,15 +5100,15 @@
 28,
 47,176,0,211,3,2,
 1,
-56,255,3,0,49,
+56,255,3,0,48,
 1,
 46,
-56,254,3,0,1,1,48,
+56,254,3,0,1,1,47,
 46,
 56,254,3,0,1,0,
 1,
 46,
-56,254,3,0,1,2,48,
+56,254,3,0,1,2,47,
 46,
 56,254,3,0,1,0,
 56,255,3,0,1,
@@ -5134,7 +5134,7 @@
 31,0,
 1,
 46,
-56,1,4,0,1,0,71,
+56,1,4,0,1,0,70,
 46,
 56,1,4,0,1,1,
 2,
@@ -5142,7 +5142,7 @@
 31,0,
 1,
 46,
-56,1,4,0,1,1,71,
+56,1,4,0,1,1,70,
 46,
 56,1,4,0,1,2,
 2,
@@ -5155,7 +5155,7 @@
 31,0,
 1,
 46,
-56,1,4,0,1,0,71,
+56,1,4,0,1,0,70,
 46,
 56,1,4,0,1,2,
 2,
@@ -5179,7 +5179,7 @@
 31,0,
 1,
 46,
-56,1,4,0,1,0,71,
+56,1,4,0,1,0,70,
 46,
 56,1,4,0,1,2,
 2,
@@ -5194,7 +5194,7 @@
 31,0,
 1,
 46,
-56,1,4,0,1,1,71,
+56,1,4,0,1,1,70,
 46,
 56,1,4,0,1,2,
 2,
@@ -5234,21 +5234,21 @@
 47,176,0,0,
 1,
 46,
-56,5,4,0,1,3,49,
+56,5,4,0,1,3,48,
 46,
 56,4,4,0,1,3,
 54,50,4,
 47,172,1,0,
 1,
 46,
-56,4,4,0,3,0,1,2,49,
+56,4,4,0,3,0,1,2,48,
 46,
 56,5,4,0,1,3,
 54,51,4,
 47,172,1,0,
 1,
 46,
-56,5,4,0,3,0,1,2,49,
+56,5,4,0,3,0,1,2,48,
 46,
 56,4,4,0,1,3,
 41,
@@ -5265,19 +5265,19 @@
 56,50,4,0,
 56,51,4,0,
 56,49,4,0,
-56,51,4,0,47,
+56,51,4,0,46,
 46,
-56,5,4,0,3,0,1,2,48,
-56,51,4,0,47,
+56,5,4,0,3,0,1,2,47,
+56,51,4,0,46,
 46,
-56,4,4,0,3,0,1,2,48,
+56,4,4,0,3,0,1,2,47,
 56,50,4,0,
 1,
 1,
 46,
-56,4,4,0,1,3,47,
+56,4,4,0,1,3,46,
 46,
-56,5,4,0,1,3,48,
+56,5,4,0,1,3,47,
 56,49,4,0,1,2,251,3,3,4,
 29,9,4,
 2,
@@ -5298,21 +5298,21 @@
 47,176,0,0,
 1,
 46,
-56,8,4,0,1,3,49,
+56,8,4,0,1,3,48,
 46,
 56,7,4,0,1,3,
 54,53,4,
 47,172,1,0,
 1,
 46,
-56,7,4,0,3,0,1,2,49,
+56,7,4,0,3,0,1,2,48,
 46,
 56,8,4,0,1,3,
 54,54,4,
 47,172,1,0,
 1,
 46,
-56,8,4,0,3,0,1,2,49,
+56,8,4,0,3,0,1,2,48,
 46,
 56,7,4,0,1,3,
 41,
@@ -5329,19 +5329,19 @@
 56,54,4,0,
 56,53,4,0,
 56,52,4,0,
-56,54,4,0,47,
+56,54,4,0,46,
 46,
-56,8,4,0,3,0,1,2,48,
-56,54,4,0,47,
+56,8,4,0,3,0,1,2,47,
+56,54,4,0,46,
 46,
-56,7,4,0,3,0,1,2,48,
+56,7,4,0,3,0,1,2,47,
 56,53,4,0,
 1,
 1,
 46,
-56,7,4,0,1,3,47,
+56,7,4,0,1,3,46,
 46,
-56,8,4,0,1,3,48,
+56,8,4,0,1,3,47,
 56,52,4,0,1,2,251,3,3,4,
 29,12,4,
 2,
@@ -5362,21 +5362,21 @@
 47,176,0,0,
 1,
 46,
-56,11,4,0,1,3,49,
+56,11,4,0,1,3,48,
 46,
 56,10,4,0,1,3,
 54,56,4,
 47,172,1,0,
 1,
 46,
-56,10,4,0,3,0,1,2,49,
+56,10,4,0,3,0,1,2,48,
 46,
 56,11,4,0,1,3,
 54,57,4,
 47,172,1,0,
 1,
 46,
-56,11,4,0,3,0,1,2,49,
+56,11,4,0,3,0,1,2,48,
 46,
 56,10,4,0,1,3,
 41,
@@ -5390,19 +5390,19 @@
 47,172,1,251,3,3,
 56,56,4,0,
 56,55,4,0,
-56,57,4,0,47,
+56,57,4,0,46,
 46,
-56,11,4,0,3,0,1,2,48,
-56,57,4,0,47,
+56,11,4,0,3,0,1,2,47,
+56,57,4,0,46,
 46,
-56,10,4,0,3,0,1,2,48,
+56,10,4,0,3,0,1,2,47,
 56,56,4,0,
 1,
 1,
 46,
-56,10,4,0,1,3,47,
+56,10,4,0,1,3,46,
 46,
-56,11,4,0,1,3,48,
+56,11,4,0,1,3,47,
 56,55,4,0,1,1,251,3,
 29,15,4,
 2,
@@ -5423,21 +5423,21 @@
 47,176,0,0,
 1,
 46,
-56,14,4,0,1,3,49,
+56,14,4,0,1,3,48,
 46,
 56,13,4,0,1,3,
 54,59,4,
 47,172,1,0,
 1,
 46,
-56,13,4,0,3,0,1,2,49,
+56,13,4,0,3,0,1,2,48,
 46,
 56,14,4,0,1,3,
 54,60,4,
 47,172,1,0,
 1,
 46,
-56,14,4,0,3,0,1,2,49,
+56,14,4,0,3,0,1,2,48,
 46,
 56,13,4,0,1,3,
 41,
@@ -5451,19 +5451,19 @@
 47,172,1,251,3,3,
 56,60,4,0,
 56,58,4,0,
-56,59,4,0,47,
+56,59,4,0,46,
 46,
-56,14,4,0,3,0,1,2,48,
-56,60,4,0,47,
+56,14,4,0,3,0,1,2,47,
+56,60,4,0,46,
 46,
-56,13,4,0,3,0,1,2,48,
+56,13,4,0,3,0,1,2,47,
 56,59,4,0,
 1,
 1,
 46,
-56,13,4,0,1,3,47,
+56,13,4,0,1,3,46,
 46,
-56,14,4,0,1,3,48,
+56,14,4,0,1,3,47,
 56,58,4,0,1,1,251,3,
 21,2,0,
 49,29,0,
@@ -5835,7 +5835,7 @@
 47,15,2,2,
 1,
 46,
-56,20,4,0,3,0,1,2,50,
+56,20,4,0,3,0,1,2,49,
 28,
 47,176,0,224,0,2,
 46,
@@ -5852,7 +5852,7 @@
 47,132,1,2,
 1,
 46,
-56,22,4,0,3,0,1,2,50,
+56,22,4,0,3,0,1,2,49,
 28,
 47,168,0,216,0,2,
 46,
@@ -5867,7 +5867,7 @@
 41,
 1,
 46,
-56,25,4,0,2,0,1,50,
+56,25,4,0,2,0,1,49,
 46,
 56,25,4,0,1,2,1,0,
 29,30,4,
@@ -5885,12 +5885,12 @@
 1,
 1,
 46,
-56,27,4,0,1,0,49,
+56,27,4,0,1,0,48,
 46,
-56,28,4,0,1,1,48,
+56,28,4,0,1,1,47,
 1,
 46,
-56,27,4,0,1,1,49,
+56,27,4,0,1,1,48,
 46,
 56,28,4,0,1,0,1,0,
 29,34,4,
@@ -5908,12 +5908,12 @@
 1,
 1,
 46,
-56,31,4,0,1,0,49,
+56,31,4,0,1,0,48,
 46,
-56,32,4,0,1,1,48,
+56,32,4,0,1,1,47,
 1,
 46,
-56,31,4,0,1,1,49,
+56,31,4,0,1,1,48,
 46,
 56,32,4,0,1,0,1,0,
 20,};
diff --git a/src/sksl/generated/sksl_public.dehydrated.sksl b/src/sksl/generated/sksl_public.dehydrated.sksl
index b6ffce3..8abfa6d 100644
--- a/src/sksl/generated/sksl_public.dehydrated.sksl
+++ b/src/sksl/generated/sksl_public.dehydrated.sksl
@@ -1327,7 +1327,7 @@
 47,139,1,2,
 1,
 46,
-56,138,1,0,3,0,1,2,50,
+56,138,1,0,3,0,1,2,49,
 28,
 47,123,0,155,0,2,
 46,
@@ -1344,7 +1344,7 @@
 47,142,1,2,
 1,
 46,
-56,141,1,0,3,0,1,2,50,
+56,141,1,0,3,0,1,2,49,
 28,
 47,115,0,147,0,2,
 46,
diff --git a/src/sksl/lex/sksl.lex b/src/sksl/lex/sksl.lex
index 93fdf95..23ec9ce 100644
--- a/src/sksl/lex/sksl.lex
+++ b/src/sksl/lex/sksl.lex
@@ -37,7 +37,6 @@
 INLINE         = "inline"
 NOINLINE       = "noinline"
 HASSIDEEFFECTS = "sk_has_side_effects"
-VARYING        = "varying"
 STRUCT         = "struct"
 LAYOUT         = "layout"
 ENUM           = "enum"
diff --git a/tests/VerticesTest.cpp b/tests/VerticesTest.cpp
index d187d1c..cabee01 100644
--- a/tests/VerticesTest.cpp
+++ b/tests/VerticesTest.cpp
@@ -27,18 +27,7 @@
     if (v0.indexCount() != v1.indexCount()) {
         return false;
     }
-    if (v0.attributeCount() != v1.attributeCount()) {
-        return false;
-    }
-    for (int i = 0; i < v0.attributeCount(); ++i) {
-        if (v0.attributes()[i] != v1.attributes()[i]) {
-            return false;
-        }
-    }
 
-    if (!!v0.customData() != !!v1.customData()) {
-        return false;
-    }
     if (!!v0.texCoords() != !!v1.texCoords()) {
         return false;
     }
@@ -61,12 +50,6 @@
             }
         }
     }
-    size_t totalCustomDataSize = v0.vertexCount() * v0.customDataSize();
-    if (totalCustomDataSize) {
-        if (0 != memcmp(v0.customData(), v1.customData(), totalCustomDataSize)) {
-            return false;
-        }
-    }
     for (int i = 0; i < v0.indexCount(); ++i) {
         if (v0.indices()[i] != v1.indices()[i]) {
             return false;
@@ -122,41 +105,6 @@
         }
     }
 
-    // custom data tests
-    using AttrType = SkVertices::Attribute::Type;
-    struct {
-        int count;
-        size_t expected_size;
-        SkVertices::Attribute attrs[4];
-    } attrTests[] = {
-        { 1,  4, { AttrType::kFloat } },
-        { 1,  8, { AttrType::kFloat2 } },
-        { 1, 12, { AttrType::kFloat3 } },
-        { 1, 16, { AttrType::kFloat4 } },
-        { 1,  4, { AttrType::kByte4_unorm } },
-        { 4, 16, { AttrType::kFloat, AttrType::kFloat, AttrType::kFloat, AttrType::kFloat } },
-        { 2, 12, { AttrType::kFloat2, AttrType::kByte4_unorm } },
-        { 2, 12, { AttrType::kByte4_unorm, AttrType::kFloat2 } },
-    };
-
-    for (const auto& test : attrTests) {
-        SkVertices::Builder builder(SkVertices::kTriangles_VertexMode, vCount, iCount,
-                                    test.attrs, test.count);
-
-        float* customData = (float*)builder.customData();
-        int customDataCount = test.expected_size / sizeof(float);
-        for (int i = 0; i < vCount; ++i) {
-            builder.positions()[i].set((float)i, 1);
-            for (int j = 0; j < customDataCount; ++j) {
-                customData[i * customDataCount + j] = (float)j;
-            }
-        }
-        for (int i = 0; i < iCount; ++i) {
-            builder.indices()[i] = i % vCount;
-        }
-        self_test(builder.detach(), reporter);
-    }
-
     {
         // This has the maximum number of vertices to be rewritten as indexed triangles without
         // overflowing a 16bit index.
@@ -188,31 +136,6 @@
                                     SkVertices::kHasColors_BuilderFlag);
         REPORTER_ASSERT(reporter, !builder.isValid());
     }
-
-    // validity tests for per-vertex-data
-
-    // Check that invalid counts fail to initialize the builder
-    for (int attrCount : {-1, 0, SkVertices::kMaxCustomAttributes + 1}) {
-        SkVertices::Attribute attrs[] = { AttrType::kFloat };
-        SkVertices::Builder builder(SkVertices::kTriangleFan_VertexMode, 10, 0, attrs, attrCount);
-        REPORTER_ASSERT(reporter, !builder.isValid());
-    }
-    {   // nullptr is definitely bad
-        SkVertices::Builder builder(SkVertices::kTriangleFan_VertexMode, 10, 0, nullptr, 4);
-        REPORTER_ASSERT(reporter, !builder.isValid());
-    }
-    {   // "normal" number of per-vertex-data (all floats)
-        SkVertices::Attribute attrs[] = {AttrType::kFloat2, AttrType::kFloat2};
-        SkVertices::Builder builder(SkVertices::kTriangleFan_VertexMode, 10, 0, attrs, 2);
-        REPORTER_ASSERT(reporter, builder.isValid());
-        REPORTER_ASSERT(reporter, builder.customData() != nullptr);
-    }
-    {   // "normal" number of per-vertex-data (with packed bytes)
-        SkVertices::Attribute attrs[] = {AttrType::kFloat2, AttrType::kByte4_unorm};
-        SkVertices::Builder builder(SkVertices::kTriangleFan_VertexMode, 10, 0, attrs, 2);
-        REPORTER_ASSERT(reporter, builder.isValid());
-        REPORTER_ASSERT(reporter, builder.customData() != nullptr);
-    }
 }
 
 static void fill_triangle(SkCanvas* canvas, const SkPoint pts[], SkColor c) {
diff --git a/tests/sksl/errors/BadModifiers.glsl b/tests/sksl/errors/BadModifiers.glsl
index 39a06ec..ebdd703 100644
--- a/tests/sksl/errors/BadModifiers.glsl
+++ b/tests/sksl/errors/BadModifiers.glsl
@@ -6,19 +6,16 @@
 error: 1: 'uniform' is not permitted here
 error: 1: 'flat' is not permitted here
 error: 1: 'noperspective' is not permitted here
-error: 1: 'varying' is not permitted here
 error: 1: functions cannot be both 'inline' and 'noinline'
 error: 4: 'uniform' is not permitted here
 error: 4: 'flat' is not permitted here
 error: 4: 'noperspective' is not permitted here
 error: 4: 'sk_has_side_effects' is not permitted here
-error: 4: 'varying' is not permitted here
 error: 4: 'inline' is not permitted here
 error: 4: 'noinline' is not permitted here
 error: 6: 'in uniform' variables only permitted within fragment processors
-error: 6: 'varying' is only permitted in runtime shaders
 error: 6: 'sk_has_side_effects' is not permitted here
 error: 6: 'inline' is not permitted here
 error: 6: 'noinline' is not permitted here
 error: 6: 'const' variables must be initialized
-21 errors
+18 errors
diff --git a/tests/sksl/errors/ModifiersInStruct.glsl b/tests/sksl/errors/ModifiersInStruct.glsl
index c98590f..c22d25c 100644
--- a/tests/sksl/errors/ModifiersInStruct.glsl
+++ b/tests/sksl/errors/ModifiersInStruct.glsl
@@ -4,5 +4,5 @@
 error: 3: modifier 'uniform' is not permitted on a struct field
 error: 4: modifier 'flat' is not permitted on a struct field
 error: 5: modifier 'noperspective' is not permitted on a struct field
-error: 6: modifier 'varying inout' is not permitted on a struct field
+error: 6: modifier 'inout' is not permitted on a struct field
 5 errors
