diff --git a/src/Lynx/Model/Position.cs b/src/Lynx/Model/Position.cs index 7e9a5ba01..a8c9e307a 100644 --- a/src/Lynx/Model/Position.cs +++ b/src/Lynx/Model/Position.cs @@ -532,8 +532,11 @@ public bool WasProduceByAValidMove() int packedScore = 0; int gamePhase = 0; - BitBoard whitePawnAttacks = PieceBitBoards[(int)Piece.P].ShiftUpRight() | PieceBitBoards[(int)Piece.P].ShiftUpLeft(); - BitBoard blackPawnAttacks = PieceBitBoards[(int)Piece.p].ShiftDownRight() | PieceBitBoards[(int)Piece.p].ShiftDownLeft(); + var whitePawns = PieceBitBoards[(int)Piece.P]; + var blackPawns = PieceBitBoards[(int)Piece.p]; + + BitBoard whitePawnAttacks = whitePawns.ShiftUpRight() | whitePawns.ShiftUpLeft(); + BitBoard blackPawnAttacks = blackPawns.ShiftDownRight() | blackPawns.ShiftDownLeft(); var whiteKing = PieceBitBoards[(int)Piece.K].GetLS1BIndex(); var blackKing = PieceBitBoards[(int)Piece.k].GetLS1BIndex(); @@ -590,6 +593,30 @@ public bool WasProduceByAValidMove() packedScore -= BishopPairBonus; } + // Pawn phalanx + var whitePawnsRight = whitePawns.ShiftRight(); + var whitePhalanx = whitePawns & whitePawnsRight; + while (whitePhalanx != 0) + { + var square = whitePhalanx.GetLS1BIndex(); + whitePhalanx.ResetLS1B(); + + var rank = Constants.Rank[square]; + packedScore += PawnPhalanxBonus[rank]; + } + + var blackPawnsRight = blackPawns.ShiftRight(); + var blackPhalanx = blackPawns & blackPawnsRight; + while (blackPhalanx != 0) + { + var square = blackPhalanx.GetLS1BIndex(); + blackPhalanx.ResetLS1B(); + + var rank = 7 - Constants.Rank[square]; + packedScore -= PawnPhalanxBonus[rank]; + } + + // Pieces protected by pawns bonus packedScore += PieceProtectedByPawnBonus * ((whitePawnAttacks & OccupancyBitBoards[(int)Side.White] /*& (~PieceBitBoards[(int)Piece.P])*/).CountBits() @@ -613,7 +640,7 @@ public bool WasProduceByAValidMove() gamePhase = maxPhase; } - int totalPawnsCount = PieceBitBoards[(int)Piece.P].CountBits() + PieceBitBoards[(int)Piece.p].CountBits(); + int totalPawnsCount = whitePawns.CountBits() + blackPawns.CountBits(); // Pawnless endgames with few pieces if (gamePhase <= 3 && totalPawnsCount == 0) diff --git a/src/Lynx/TunableEvalParameters.cs b/src/Lynx/TunableEvalParameters.cs index c0e534373..124317f54 100644 --- a/src/Lynx/TunableEvalParameters.cs +++ b/src/Lynx/TunableEvalParameters.cs @@ -1,4 +1,4 @@ -// 2024-9-13 17:21:59 35 +// 2024-9-15 19:22:49 10 using static Lynx.Utils; @@ -12,191 +12,191 @@ internal static partial class TunableEvalParameters [ [ [ - +30, +277, +266, +421, +840, 0, - -30, -277, -266, -421, -840, 0 + +27, +267, +264, +398, +808, 0, + -27, -267, -264, -398, -808, 0 ], [ - +38, +289, +259, +400, +930, 0, - -38, -289, -259, -400, -930, 0 + +41, +304, +286, +422, +924, 0, + -41, -304, -286, -422, -924, 0 ], [ - +30, +279, +256, +369, +915, 0, - -30, -279, -256, -369, -915, 0 + +33, +295, +284, +392, +939, 0, + -33, -295, -284, -392, -939, 0 ], [ - +24, +260, +241, +344, +798, 0, - -24, -260, -241, -344, -798, 0 + +25, +266, +255, +348, +776, 0, + -25, -266, -255, -348, -776, 0 ], [ - +28, +279, +251, +383, +852, 0, - -28, -279, -251, -383, -852, 0 + +30, +289, +272, +394, +878, 0, + -30, -289, -272, -394, -878, 0 ], [ - +32, +269, +253, +349, +818, 0, - -32, -269, -253, -349, -818, 0 + +34, +279, +273, +359, +836, 0, + -34, -279, -273, -359, -836, 0 ], [ - +43, +302, +280, +413, +860, 0, - -43, -302, -280, -413, -860, 0 + +45, +310, +300, +421, +916, 0, + -45, -310, -300, -421, -916, 0 ], [ - +31, +296, +268, +401, +874, 0, - -31, -296, -268, -401, -874, 0 + +33, +309, +293, +418, +914, 0, + -33, -309, -293, -418, -914, 0 ], [ - +35, +280, +255, +389, +831, 0, - -35, -280, -255, -389, -831, 0 + +33, +274, +255, +365, +810, 0, + -33, -274, -255, -365, -810, 0 ], [ - +31, +292, +271, +373, +824, 0, - -31, -292, -271, -373, -824, 0 + +29, +281, +270, +349, +817, 0, + -29, -281, -270, -349, -817, 0 ], [ - +26, +249, +234, +313, +816, 0, - -26, -249, -234, -313, -816, 0 + +28, +257, +250, +316, +832, 0, + -28, -257, -250, -316, -832, 0 ], [ - +25, +244, +230, +292, +819, 0, - -25, -244, -230, -292, -819, 0 + +28, +257, +252, +305, +834, 0, + -28, -257, -252, -305, -834, 0 ], [ - +32, +280, +264, +352, +845, 0, - -32, -280, -264, -352, -845, 0 + +33, +287, +281, +357, +833, 0, + -33, -287, -281, -357, -833, 0 ], [ - +38, +320, +297, +418, +928, 0, - -38, -320, -297, -418, -928, 0 + +39, +321, +308, +415, +879, 0, + -39, -321, -308, -415, -879, 0 ], [ - +36, +324, +289, +420, +922, 0, - -36, -324, -289, -420, -922, 0 + +37, +322, +301, +417, +884, 0, + -37, -322, -301, -417, -884, 0 ], [ - -7, +218, +187, +294, +684, 0, - +7, -218, -187, -294, -684, 0 + -2, +233, +213, +318, +711, 0, + +2, -233, -213, -318, -711, 0 ], [ - +6, +202, +221, +302, +612, 0, - -6, -202, -221, -302, -612, 0 + +0, +229, +243, +314, +675, 0, + -0, -229, -243, -314, -675, 0 ], [ - -6, +193, +217, +315, +570, 0, - +6, -193, -217, -315, -570, 0 + -6, +230, +243, +321, +655, 0, + +6, -230, -243, -321, -655, 0 ], [ - +8, +231, +222, +314, +528, 0, - -8, -231, -222, -314, -528, 0 + +4, +249, +246, +317, +635, 0, + -4, -249, -246, -317, -635, 0 ], [ - +4, +202, +240, +291, +562, 0, - -4, -202, -240, -291, -562, 0 + +3, +236, +255, +304, +654, 0, + -3, -236, -255, -304, -654, 0 ], [ - +34, +205, +228, +301, +566, 0, - -34, -205, -228, -301, -566, 0 + +25, +233, +247, +304, +657, 0, + -25, -233, -247, -304, -657, 0 ], [ - +11, +210, +238, +326, +607, 0, - -11, -210, -238, -326, -607, 0 + +5, +230, +248, +320, +676, 0, + -5, -230, -248, -320, -676, 0 ], [ - -11, +217, +224, +309, +657, 0, - +11, -217, -224, -309, -657, 0 + -12, +234, +238, +320, +693, 0, + +12, -234, -238, -320, -693, 0 ], ], [ [ - +51, +66, +102, +106, +114, 0, - -51, -66, -102, -106, -114, 0 + +45, +38, +62, +73, +87, 0, + -45, -38, -62, -73, -87, 0 ], [ - +53, +43, +84, +70, +195, 0, - -53, -43, -84, -70, -195, 0 + +55, +50, +77, +91, +185, 0, + -55, -50, -77, -91, -185, 0 ], [ - +44, +27, +73, +40, +190, 0, - -44, -27, -73, -40, -190, 0 + +47, +35, +66, +60, +206, 0, + -47, -35, -66, -60, -206, 0 ], [ - +46, +17, +65, +30, +161, 0, - -46, -17, -65, -30, -161, 0 + +42, +9, +43, +28, +137, 0, + -42, -9, -43, -28, -137, 0 ], [ - +43, +39, +75, +70, +169, 0, - -43, -39, -75, -70, -169, 0 + +46, +39, +67, +77, +195, 0, + -46, -39, -67, -77, -195, 0 ], [ - +47, +29, +80, +52, +156, 0, - -47, -29, -80, -52, -156, 0 + +47, +30, +66, +55, +173, 0, + -47, -30, -66, -55, -173, 0 ], [ - +50, +49, +91, +88, +127, 0, - -50, -49, -91, -88, -127, 0 + +48, +49, +80, +93, +177, 0, + -48, -49, -80, -93, -177, 0 ], [ - +43, +38, +73, +74, +121, 0, - -43, -38, -73, -74, -121, 0 + +40, +42, +66, +88, +160, 0, + -40, -42, -66, -88, -160, 0 ], [ - +65, +48, +79, +65, +157, 0, - -65, -48, -79, -65, -157, 0 + +55, +29, +46, +36, +134, 0, + -55, -29, -46, -36, -134, 0 ], [ - +58, +66, +89, +50, +188, 0, - -58, -66, -89, -50, -188, 0 + +49, +41, +55, +24, +172, 0, + -49, -41, -55, -24, -172, 0 ], [ - +53, +29, +45, -6, +197, 0, - -53, -29, -45, +6, -197, 0 + +50, +26, +31, -5, +202, 0, + -50, -26, -31, +5, -202, 0 ], [ - +51, +15, +56, -22, +192, 0, - -51, -15, -56, +22, -192, 0 + +49, +19, +47, -11, +201, 0, + -49, -19, -47, +11, -201, 0 ], [ - +54, +42, +75, +39, +210, 0, - -54, -42, -75, -39, -210, 0 + +51, +40, +59, +39, +189, 0, + -51, -40, -59, -39, -189, 0 ], [ - +68, +82, +119, +103, +228, 0, - -68, -82, -119, -103, -228, 0 + +64, +73, +98, +96, +180, 0, + -64, -73, -98, -96, -180, 0 ], [ - +52, +77, +112, +99, +189, 0, - -52, -77, -112, -99, -189, 0 + +47, +65, +90, +89, +152, 0, + -47, -65, -90, -89, -152, 0 ], [ - +4, -12, -4, -44, +42, 0, - -4, +12, +4, +44, -42, 0 + +3, -3, -6, -23, +46, 0, + -3, +3, +6, +23, -46, 0 ], [ - -31, -9, -97, +11, +21, 0, - +31, +9, +97, -11, -21, 0 + -28, -3, -49, +10, +21, 0, + +28, +3, +49, -10, -21, 0 ], [ - -45, -22, -106, -6, +28, 0, - +45, +22, +106, +6, -28, 0 + -40, -5, -58, +2, +27, 0, + +40, +5, +58, -2, -27, 0 ], [ - -38, -27, -112, +15, +33, 0, - +38, +27, +112, -15, -33, 0 + -30, -5, -65, +15, +28, 0, + +30, +5, +65, -15, -28, 0 ], [ - -32, -27, -126, +10, +26, 0, - +32, +27, +126, -10, -26, 0 + -24, -7, -73, +10, +25, 0, + +24, +7, +73, -10, -25, 0 ], [ - -23, -28, -97, +5, +18, 0, - +23, +28, +97, -5, -18, 0 + -23, -11, -57, +5, +27, 0, + +23, +11, +57, -5, -27, 0 ], [ - -19, +10, -40, +11, -3, 0, - +19, -10, +40, -11, +3, 0 + -17, +5, -26, +0, +17, 0, + +17, -5, +26, -0, -17, 0 ], [ - -51, -1, -30, -17, -3, 0, - +51, +1, +30, +17, +3, 0 + -31, +2, -15, -10, +11, 0, + +31, -2, +15, +10, -11, 0 ], ], ]; @@ -205,191 +205,191 @@ internal static partial class TunableEvalParameters [ [ [ - +48, +261, +316, +612, +894, 0, - -48, -261, -316, -612, -894, 0 + +44, +245, +298, +588, +826, 0, + -44, -245, -298, -588, -826, 0 ], [ - +61, +327, +386, +716, +1031, 0, - -61, -327, -386, -716, -1031, 0 + +53, +287, +340, +652, +928, 0, + -53, -287, -340, -652, -928, 0 ], [ - +73, +361, +418, +772, +1095, 0, - -73, -361, -418, -772, -1095, 0 + +64, +320, +370, +703, +956, 0, + -64, -320, -370, -703, -956, 0 ], [ - +53, +301, +337, +655, +933, 0, - -53, -301, -337, -655, -933, 0 + +45, +273, +305, +609, +843, 0, + -45, -273, -305, -609, -843, 0 ], [ - +55, +315, +367, +695, +1020, 0, - -55, -315, -367, -695, -1020, 0 + +49, +292, +338, +655, +923, 0, + -49, -292, -338, -655, -923, 0 ], [ - +51, +305, +346, +691, +988, 0, - -51, -305, -346, -691, -988, 0 + +47, +291, +328, +669, +939, 0, + -47, -291, -328, -669, -939, 0 ], [ - +71, +370, +417, +793, +1230, 0, - -71, -370, -417, -793, -1230, 0 + +69, +361, +404, +778, +1165, 0, + -69, -361, -404, -778, -1165, 0 ], [ - +48, +286, +346, +688, +1002, 0, - -48, -286, -346, -688, -1002, 0 + +44, +270, +326, +661, +944, 0, + -44, -270, -326, -661, -944, 0 ], [ - +59, +284, +332, +645, +907, 0, - -59, -284, -332, -645, -907, 0 + +57, +280, +325, +642, +878, 0, + -57, -280, -325, -642, -878, 0 ], [ - +68, +312, +349, +688, +965, 0, - -68, -312, -349, -688, -965, 0 + +66, +310, +344, +685, +930, 0, + -66, -310, -344, -685, -930, 0 ], [ - +71, +339, +374, +721, +980, 0, - -71, -339, -374, -721, -980, 0 + +69, +334, +367, +716, +961, 0, + -69, -334, -367, -716, -961, 0 ], [ - +69, +331, +361, +714, +943, 0, - -69, -331, -361, -714, -943, 0 + +67, +329, +356, +713, +950, 0, + -67, -329, -356, -713, -950, 0 ], [ - +61, +300, +337, +672, +906, 0, - -61, -300, -337, -672, -906, 0 + +60, +301, +335, +674, +928, 0, + -60, -301, -335, -674, -928, 0 ], [ - +55, +278, +317, +645, +872, 0, - -55, -278, -317, -645, -872, 0 + +54, +281, +316, +650, +912, 0, + -54, -281, -316, -650, -912, 0 ], [ - +51, +252, +302, +625, +859, 0, - -51, -252, -302, -625, -859, 0 + +51, +256, +301, +631, +892, 0, + -51, -256, -301, -631, -892, 0 ], [ - +62, +242, +296, +583, +759, 0, - -62, -242, -296, -583, -759, 0 + +58, +234, +284, +571, +745, 0, + -58, -234, -284, -571, -745, 0 ], [ - +71, +208, +244, +531, +667, 0, - -71, -208, -244, -531, -667, 0 + +72, +212, +247, +545, +687, 0, + -72, -212, -247, -545, -687, 0 ], [ - +72, +199, +232, +492, +636, 0, - -72, -199, -232, -492, -636, 0 + +74, +208, +240, +518, +672, 0, + -74, -208, -240, -518, -672, 0 ], [ - +69, +194, +224, +479, +612, 0, - -69, -194, -224, -479, -612, 0 + +71, +210, +236, +512, +657, 0, + -71, -210, -236, -512, -657, 0 ], [ - +63, +190, +211, +475, +605, 0, - -63, -190, -211, -475, -605, 0 + +65, +203, +224, +505, +663, 0, + -65, -203, -224, -505, -663, 0 ], [ - +53, +177, +197, +468, +609, 0, - -53, -177, -197, -468, -609, 0 + +56, +188, +208, +497, +671, 0, + -56, -188, -208, -497, -671, 0 ], [ - +64, +190, +219, +494, +636, 0, - -64, -190, -219, -494, -636, 0 + +66, +199, +228, +519, +684, 0, + -66, -199, -228, -519, -684, 0 ], [ - +66, +212, +247, +533, +681, 0, - -66, -212, -247, -533, -681, 0 + +65, +214, +248, +540, +697, 0, + -65, -214, -248, -540, -697, 0 ], ], [ [ - +48, +17, +21, +87, +253, 0, - -48, -17, -21, -87, -253, 0 + +44, +12, +16, +71, +182, 0, + -44, -12, -16, -71, -182, 0 ], [ - +80, +95, +105, +212, +398, 0, - -80, -95, -105, -212, -398, 0 + +67, +59, +70, +154, +296, 0, + -67, -59, -70, -154, -296, 0 ], [ - +87, +130, +139, +256, +465, 0, - -87, -130, -139, -256, -465, 0 + +73, +93, +103, +194, +330, 0, + -73, -93, -103, -194, -330, 0 ], [ - +67, +57, +54, +139, +239, 0, - -67, -57, -54, -139, -239, 0 + +52, +36, +30, +99, +152, 0, + -52, -36, -30, -99, -152, 0 ], [ - +69, +92, +85, +181, +373, 0, - -69, -92, -85, -181, -373, 0 + +62, +72, +68, +144, +280, 0, + -62, -72, -68, -144, -280, 0 ], [ - +64, +71, +73, +170, +310, 0, - -64, -71, -73, -170, -310, 0 + +59, +62, +66, +155, +260, 0, + -59, -62, -66, -155, -260, 0 ], [ - +91, +145, +148, +279, +585, 0, - -91, -145, -148, -279, -585, 0 + +89, +142, +145, +273, +519, 0, + -89, -142, -145, -273, -519, 0 ], [ - +79, +86, +80, +204, +380, 0, - -79, -86, -80, -204, -380, 0 + +73, +72, +70, +182, +323, 0, + -73, -72, -70, -182, -323, 0 ], [ - +45, +37, +33, +105, +243, 0, - -45, -37, -33, -105, -243, 0 + +45, +40, +37, +107, +217, 0, + -45, -40, -37, -107, -217, 0 ], [ - +54, +55, +55, +140, +289, 0, - -54, -55, -55, -140, -289, 0 + +54, +61, +62, +146, +259, 0, + -54, -61, -62, -146, -259, 0 ], [ - +61, +78, +76, +176, +296, 0, - -61, -78, -76, -176, -296, 0 + +60, +82, +80, +179, +281, 0, + -60, -82, -80, -179, -281, 0 ], [ - +58, +75, +63, +164, +264, 0, - -58, -75, -63, -164, -264, 0 + +58, +80, +71, +171, +272, 0, + -58, -80, -71, -171, -272, 0 ], [ - +47, +51, +45, +127, +224, 0, - -47, -51, -45, -127, -224, 0 + +47, +58, +54, +137, +252, 0, + -47, -58, -54, -137, -252, 0 ], [ - +44, +37, +31, +106, +219, 0, - -44, -37, -31, -106, -219, 0 + +45, +47, +42, +118, +258, 0, + -45, -47, -42, -118, -258, 0 ], [ - +51, +26, +23, +98, +221, 0, - -51, -26, -23, -98, -221, 0 + +53, +36, +35, +110, +254, 0, + -53, -36, -35, -110, -254, 0 ], [ - +56, -9, +4, +38, +76, 0, - -56, +9, -4, -38, -76, 0 + +54, -11, +4, +34, +82, 0, + -54, +11, -4, -34, -82, 0 ], [ - +56, -73, -9, -35, -40, 0, - -56, +73, +9, +35, +40, 0 + +58, -62, -5, -14, +23, 0, + -58, +62, +5, +14, -23, 0 ], [ - +55, -61, -11, -58, -91, 0, - -55, +61, +11, +58, +91, 0 + +58, -48, -1, -26, +3, 0, + -58, +48, +1, +26, -3, 0 ], [ - +47, -68, -18, -70, -141, 0, - -47, +68, +18, +70, +141, 0 + +51, -50, -3, -31, -21, 0, + -51, +50, +3, +31, +21, 0 ], [ - +42, -67, -25, -85, -134, 0, - -42, +67, +25, +85, +134, 0 + +46, -48, -11, -44, -11, 0, + -46, +48, +11, +44, +11, 0 ], [ - +40, -80, -37, -90, -110, 0, - -40, +80, +37, +90, +110, 0 + +44, -64, -23, -55, +7, 0, + -44, +64, +23, +55, -7, 0 ], [ - +50, -81, -27, -66, -59, 0, - -50, +81, +27, +66, +59, 0 + +54, -64, -12, -32, +20, 0, + -54, +64, +12, +32, -20, 0 ], [ - +60, -45, -9, -11, +4, 0, - -60, +45, +9, +11, -4, 0 + +57, -37, -3, -1, +32, 0, + -57, +37, +3, +1, -32, 0 ], ], ]; @@ -398,232 +398,232 @@ internal static partial class TunableEvalParameters [ [ 0, 0, 0, 0, 0, 0, 0, 0, - 40, -22, 24, -2, -107, -59, 49, 7, - -24, 32, 41, 34, 45, -17, -74, -42, - 14, 56, -16, -7, 2, -26, -18, -49, - 51, 34, 14, 23, 9, -7, -24, -40, - 42, 47, 31, -6, -8, -24, -36, -51, - 12, 93, 39, 14, 23, -21, -46, -48, + 35, -22, 31, -12, -111, -36, 58, 8, + -24, 38, 46, 42, 50, -11, -62, -38, + 13, 53, -18, -10, -1, -29, -18, -52, + 50, 31, 11, 21, 7, -10, -25, -40, + 38, 43, 27, -7, -10, -25, -38, -50, + 12, 91, 38, 4, 17, -22, -46, -47, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -12, -14, -44, 57, 2, -5, -33, -76, - 22, -9, 4, 27, 27, 15, -34, -49, - 65, 25, 2, -12, 1, -11, -16, -32, - 62, 15, 14, 8, 2, -3, -10, -28, - 61, 55, 11, -5, -15, -22, -45, -43, - 38, 55, 19, 31, 9, -24, -46, -36, + -15, -24, -39, 48, -4, 7, -36, -73, + 24, -2, 10, 34, 31, 25, -27, -47, + 69, 25, 3, -13, -1, -13, -15, -34, + 62, 13, 12, 7, -2, -7, -12, -30, + 58, 53, 8, -6, -15, -23, -46, -43, + 40, 57, 22, 22, 4, -25, -46, -36, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 90, 74, -17, -91, 21, -75, -43, -65, - -27, 7, -35, 28, -17, 23, -39, -48, - 49, 21, 4, -0, 4, -5, -18, -26, - 40, 33, 8, 17, 2, 3, -11, -24, - 54, 55, 14, -1, -3, -8, -34, -50, - 48, 58, 9, 34, 21, -4, -39, -37, + 84, 60, -14, -92, 17, -63, -45, -65, + -23, 16, -26, 37, -10, 30, -34, -45, + 50, 19, 4, -2, 2, -5, -17, -28, + 39, 32, 5, 15, -1, -1, -13, -25, + 52, 54, 11, -1, -4, -9, -35, -50, + 48, 60, 10, 27, 17, -5, -39, -37, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 76, 68, -22, 19, -47, -56, -35, -39, - -34, -32, 13, -49, -11, -15, -20, -21, - 7, -12, 8, -14, 22, -2, -18, 0, - 7, 7, 27, -1, 22, 9, -0, -2, - 9, 18, 22, 8, 30, 2, -10, -8, - 10, 23, 0, 17, 32, 13, -9, -11, + 64, 52, -22, 12, -36, -39, -37, -33, + -29, -26, 18, -34, -6, -7, -15, -20, + 6, -13, 6, -18, 19, -2, -16, -3, + 5, 5, 24, -3, 20, 6, -1, -2, + 8, 16, 19, 6, 28, 1, -12, -8, + 10, 24, 2, 9, 29, 11, -10, -11, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -12, -21, 2, -38, -51, -68, 23, 19, - -27, -34, 5, -1, -60, 18, -57, -43, - 3, 4, 2, 18, 3, 12, 9, -2, - 7, 1, 22, 27, 7, 23, 14, -3, - 12, -2, 13, 18, 9, 18, 9, -9, - 7, 9, 17, 31, 15, 16, 27, 7, + -20, -30, 1, -40, -55, -55, 29, 20, + -25, -26, 11, 8, -55, 25, -50, -40, + 0, 4, 0, 17, 2, 12, 11, -2, + 5, -1, 17, 24, 3, 21, 14, -3, + 12, -4, 10, 16, 7, 16, 8, -10, + 7, 9, 17, 24, 12, 18, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -12, 2, -37, 118, 55, -73, -131, -2, - -30, -45, -25, 3, -16, -8, -39, 18, - -17, -12, -11, -14, 13, 1, 14, 12, - -8, -18, 4, 9, 14, 9, 31, 11, - -12, -20, -2, 20, 19, 26, 31, 16, - -6, -16, 2, 47, 36, 24, 9, 9, + -24, -11, -39, 111, 58, -57, -128, 1, + -28, -41, -17, 12, -6, 2, -33, 22, + -20, -14, -13, -16, 13, 2, 14, 12, + -9, -20, 1, 6, 13, 7, 32, 11, + -12, -21, -5, 20, 18, 25, 29, 14, + -7, -16, 1, 37, 33, 25, 11, 8, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 20, -10, 34, -29, 34, -36, -1, -22, - -42, -31, -0, -3, -28, 18, -8, 22, - -15, -14, -14, -5, -0, -3, 3, 32, - -16, -14, -2, -0, 2, 9, 11, 39, - -21, -26, -15, -11, -2, 2, 30, 48, - -18, -24, -16, 29, 27, 12, 31, 24, + 11, -21, 34, -32, 36, -21, 2, -22, + -39, -23, 6, 4, -23, 25, -2, 26, + -18, -15, -16, -8, -1, -1, 5, 33, + -18, -17, -7, -4, -0, 7, 11, 39, + -22, -28, -17, -12, -3, -0, 28, 46, + -18, -24, -17, 20, 22, 14, 32, 26, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -12, 31, -24, 8, 45, 2, -61, -10, - -36, -21, -3, -4, 9, -4, 15, 5, - -18, -19, -9, -7, 7, 4, 4, 8, - -13, -19, -3, 2, 11, 9, 9, 25, - -19, -29, -13, -6, -2, 13, 11, 46, - -15, -21, -7, 13, 20, 19, 35, 27, + -25, 20, -22, 4, 46, 20, -59, -14, + -33, -13, 3, 5, 13, 4, 24, 8, + -20, -20, -11, -10, 5, 5, 5, 7, + -14, -21, -5, -0, 8, 6, 10, 24, + -20, -30, -16, -7, -3, 12, 10, 44, + -15, -21, -7, 3, 15, 18, 38, 28, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 81, 28, -39, -38, 85, -97, -21, -58, - 37, -66, 26, -27, 40, -79, -70, -29, - 54, 20, 50, -0, 9, -11, -9, -21, - 46, 34, 33, 26, 5, 14, -7, -40, - 19, 37, 36, 15, -5, -5, -26, -39, - 4, -28, 53, 35, 28, -19, -32, -49, + 77, 20, -35, -37, 78, -75, -27, -45, + 41, -64, 30, -14, 47, -71, -63, -23, + 55, 19, 47, -3, 7, -12, -9, -23, + 42, 30, 27, 24, 2, 10, -9, -40, + 17, 34, 31, 12, -7, -6, -29, -38, + 5, -27, 54, 25, 22, -21, -33, -49, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 22, 64, -137, 121, -25, -99, 2, -4, - -33, -3, 10, 8, 4, -30, 2, -10, - 23, 39, 0, 42, 13, 10, -21, -20, - -11, 7, 18, 34, 22, 20, -12, -16, - 1, 5, 14, 20, 11, 8, -25, -42, - -14, 2, -9, 38, 33, -3, -30, -49, + 9, 54, -133, 115, -20, -82, 12, 3, + -28, 6, 17, 16, 11, -24, 7, -4, + 21, 36, -2, 38, 10, 9, -20, -22, + -11, 3, 15, 29, 19, 17, -12, -16, + -1, 3, 9, 18, 8, 7, -27, -42, + -14, 4, -9, 29, 27, -6, -30, -49, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -45, 41, 21, 40, 34, -81, -14, -23, - -38, -3, 5, 27, 22, 38, -6, 3, - -22, -10, 23, 7, 31, 10, -13, -18, - -19, 4, 18, 25, 31, 8, -16, -19, - -9, 10, 11, 15, 21, 9, -6, -56, - -30, 5, 10, -6, 23, 13, -22, -48, + -48, 29, 23, 32, 32, -64, -22, -18, + -32, 8, 11, 37, 27, 49, 0, 4, + -24, -11, 21, 6, 30, 11, -13, -20, + -21, 4, 15, 24, 27, 6, -16, -20, + -10, 9, 11, 14, 21, 7, -8, -57, + -31, 4, 11, -15, 21, 11, -24, -49, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 25, -17, -8, 71, -144, 6, 47, -23, - -15, -28, 2, 30, -18, 42, 10, -29, - -26, -11, -5, 15, 11, 24, -6, -13, - -23, -20, 9, 33, 23, 32, 16, -11, - -27, -9, 11, 11, 20, 18, -3, -21, - -36, -14, 9, 15, 38, 18, -4, -25, + 11, -26, -9, 70, -145, 12, 51, -25, + -13, -18, 8, 37, -12, 51, 22, -25, + -29, -11, -7, 12, 12, 25, -3, -15, + -25, -20, 6, 30, 23, 30, 15, -12, + -27, -10, 9, 11, 20, 18, -5, -22, + -37, -15, 8, 8, 36, 21, -6, -27, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -8, -30, -8, 38, 118, -64, -95, 24, - -68, -4, -11, -9, 24, 11, 11, -8, - -11, -15, -12, 1, 26, 1, 24, 6, - -24, -15, 8, 21, 31, 21, 19, 9, - -29, -26, 4, 25, 17, 19, 5, -12, - -33, -20, -1, 26, 19, 6, 0, -11, + -15, -38, -5, 37, 117, -53, -97, 23, + -64, 4, -4, 1, 30, 20, 19, -4, + -14, -17, -14, -2, 24, 2, 25, 6, + -26, -16, 5, 19, 26, 20, 15, 9, + -29, -27, 2, 24, 18, 17, 4, -14, + -34, -21, -0, 17, 15, 7, 2, -12, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -6, -25, 10, -28, 50, -30, 33, -30, - -37, -52, -30, -7, 7, 27, 9, -21, - -16, -11, -16, 4, 13, 26, 16, 25, - -19, -17, 2, 11, 29, 28, 29, 18, - -25, -21, -13, 5, 11, 31, 24, -15, - -20, -27, -15, 22, 39, 52, -23, -16, + -13, -36, 11, -30, 46, -11, 39, -31, + -34, -43, -22, 2, 11, 35, 17, -17, + -19, -12, -18, 1, 11, 25, 18, 26, + -21, -20, -2, 8, 27, 23, 29, 16, + -26, -23, -15, 4, 9, 28, 22, -16, + -21, -27, -16, 13, 33, 54, -23, -14, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 8, -0, -7, 4, 21, -1, -22, -36, - -19, -35, -13, 27, 10, 12, 41, 12, - -23, -30, -28, -17, 22, 3, 24, -2, - -14, -20, -10, 7, 16, 37, 18, 24, - -24, -29, -17, -10, 7, 16, 37, 8, - -24, -32, -14, 11, 27, 44, 50, -62, + -1, -7, -8, 0, 23, 12, -19, -32, + -16, -26, -6, 34, 14, 20, 48, 16, + -24, -30, -29, -19, 20, 3, 24, -1, + -15, -23, -12, 3, 13, 34, 15, 23, + -24, -31, -20, -10, 6, 14, 34, 6, + -24, -31, -14, 3, 21, 42, 52, -60, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -105, -60, 75, -7, 153, 55, 58, 23, - -41, -38, 44, 84, -17, 47, -26, -60, - -41, 23, 86, 68, 8, -15, -39, -6, - -48, 63, 43, 22, -15, -63, -78, -50, - -55, 77, 89, 8, -20, -8, -53, -65, - -66, 65, 56, 5, 3, -85, -59, -35, + -84, -40, 75, 17, 88, 49, 20, 24, + -32, -30, 61, 91, -6, 49, -4, -45, + -35, 17, 81, 65, 7, -21, -42, -10, + -44, 65, 42, 23, -15, -63, -76, -52, + -52, 79, 87, 15, -13, -13, -54, -67, + -65, 67, 55, -6, -7, -92, -63, -45, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -89, 86, 103, 261, -161, -23, -29, 95, - -126, 42, 127, 106, 133, 101, -15, 5, - -59, 172, 163, 72, 58, 58, -67, 9, - -156, 11, 55, 23, -20, -52, -146, -79, - -121, 52, 59, 23, -17, -36, -136, -73, - -89, 142, 26, -37, -40, -132, -135, -146, + -88, 92, 105, 186, -101, -10, -19, 55, + -115, 27, 125, 115, 130, 91, 7, 8, + -71, 176, 143, 66, 56, 57, -79, 18, + -164, 10, 48, 24, -10, -50, -148, -77, + -122, 55, 63, 36, -20, -41, -122, -70, + -73, 138, 34, -52, -21, -124, -137, -149, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -193, 120, 127, 106, -50, -15, 268, 65, - 23, 32, 61, 190, 172, -49, 40, 35, - -123, 87, 63, 60, -9, 64, -30, -28, - -99, -2, 64, -28, 35, -15, -32, -81, - -89, -12, 48, -5, -31, -12, -110, -50, - -77, -35, 21, -83, -169, -74, -103, -74, + -176, 113, 119, 131, -19, 10, 123, 61, + 32, 35, 48, 174, 171, -41, 9, 30, + -119, 91, 61, 71, 2, 72, -29, -21, + -102, -11, 65, -29, 27, -7, -26, -82, + -81, -14, 66, -7, -35, -6, -114, -51, + -79, -35, 21, -66, -119, -79, -103, -82, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -51, 100, 97, -1, -34, 106, 121, -16, - 147, 116, 168, 131, 136, 116, 232, -16, - -65, -2, 25, -14, 12, 22, -30, -32, - -89, -53, 13, 11, 18, -89, -92, -74, - -118, -6, 27, 14, 32, 10, -62, -46, - -105, -113, 19, -129, -130, -76, -142, -86, + -54, 96, 101, 28, -41, 80, 68, 16, + 109, 84, 138, 74, 85, 95, 172, -28, + -46, 20, 45, -3, 23, 32, -20, -18, + -83, -50, 15, 17, 17, -87, -84, -76, + -105, 4, 39, 14, 40, 26, -49, -39, + -97, -111, 35, -61, -129, -78, -135, -79, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 128, 125, -142, 184, 34, 120, -29, -190, - 50, 146, 174, 188, 101, 84, 114, 67, - -125, -18, 16, 16, 71, -29, 4, -26, - -58, -9, 24, 4, 40, -42, -0, -49, - -143, -66, -1, 34, 8, 26, -30, -119, - -91, -114, -17, -259, -29, 1, -102, -68, + 77, 67, -80, 146, -4, 107, -20, -94, + 39, 107, 123, 152, 42, 52, 84, 49, + -116, -10, 27, 30, 70, -10, 19, -15, + -60, -1, 28, -1, 41, -37, 1, -39, + -140, -61, 3, 43, -6, 28, -26, -110, + -96, -108, -16, -123, -9, 7, -92, -67, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -93, -61, 93, 57, 48, 68, -108, -50, - -0, 99, 23, 97, 194, 173, 121, 82, - -64, -35, 13, 108, 100, 232, 108, 42, - -145, -55, -41, 7, -38, 61, -1, -94, - -114, -77, -51, -66, 9, 37, 21, -33, - -129, -149, -15, -104, -10, -80, -81, -100, + -44, -32, 62, 46, 43, 48, -78, -41, + -33, 46, -14, 74, 168, 163, 95, 60, + -62, -30, 22, 114, 107, 223, 110, 44, + -139, -41, -26, 16, -44, 64, 3, -89, + -109, -73, -43, -67, 13, 44, 25, -31, + -130, -143, -5, -71, 2, -71, -83, -96, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -166, -236, 8, 145, 194, 328, -16, -74, - -2, -56, -56, 165, 95, 172, 81, -61, - -20, -1, 41, -78, 144, 114, 33, -61, - -53, -62, -71, 13, 73, 81, 64, -69, - -95, -95, -11, -27, 36, 28, 34, -42, - -106, -88, -97, -117, 4, 10, -16, -87, + -110, -109, 15, 77, 114, 275, -18, -76, + -13, -29, -37, 135, 102, 178, 87, -54, + -17, -1, 49, -76, 138, 112, 20, -58, + -58, -59, -64, 5, 80, 72, 57, -73, + -100, -90, -17, -34, 29, 30, 27, -46, + -105, -87, -85, -105, 11, 11, -14, -87, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 5, -85, 225, 94, 113, 91, -264, 15, - -56, 164, -66, -24, 81, 219, 50, 36, - -100, -73, -87, 64, 60, 163, 57, -61, - -38, -56, -69, 5, 79, 137, 62, -48, - -111, -69, -32, 1, 21, 5, 77, -57, - -147, -143, -79, -115, 27, -34, 31, -66, + 29, -22, 98, 47, 42, 65, -121, 36, + -30, 101, -66, -22, 84, 178, 60, 33, + -102, -75, -97, 70, 60, 154, 57, -61, + -40, -56, -64, 13, 72, 144, 58, -38, + -114, -64, -39, -6, 20, 18, 85, -52, + -135, -135, -83, -65, 9, -32, 42, -52, 0, 0, 0, 0, 0, 0, 0, 0, ], ]; @@ -632,232 +632,232 @@ internal static partial class TunableEvalParameters [ [ 0, 0, 0, 0, 0, 0, 0, 0, - 97, 27, -6, -54, 30, -55, -117, -51, - 91, 58, 20, -14, -37, -0, 15, 35, - 25, 19, 19, 3, -11, -2, -4, 21, - -14, 2, 6, -5, -20, -9, -12, 4, - -32, -15, -7, -2, -5, -8, -2, 8, - -42, -2, 13, 35, -29, 6, 7, 14, + 98, 26, -5, -41, 35, -52, -118, -48, + 95, 56, 18, -14, -37, 0, 15, 34, + 24, 15, 19, 3, -11, -4, -5, 21, + -15, -0, 5, -7, -21, -10, -13, 3, + -32, -16, -9, -4, -5, -8, -3, 8, + -40, -1, 12, 35, -28, 5, 7, 14, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 19, 40, 54, -122, -34, -99, -65, -9, - 51, 93, 40, -14, -19, -20, 49, 49, - 7, 1, 7, -2, -3, -0, 2, 19, - -12, -15, -3, -13, -12, -11, -7, 7, - -13, -20, 6, -1, 11, 2, 14, 13, - -27, -12, 12, -13, -8, 8, 27, 24, + 21, 38, 48, -111, -25, -85, -55, -2, + 51, 92, 39, -14, -17, -21, 49, 49, + 4, -2, 5, -4, -4, -2, -1, 16, + -13, -16, -4, -14, -13, -12, -8, 6, + -15, -23, 2, -4, 8, 2, 12, 12, + -26, -13, 10, -12, -6, 7, 26, 23, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -54, 23, -48, -15, -89, -34, -23, -34, - 42, 55, 23, -23, 20, -3, 29, 36, - 6, 19, -2, -5, 1, -2, 1, 18, - -7, -5, -11, -6, -5, -2, -5, 12, - -12, -5, -2, 7, 7, -1, 14, 22, - -5, -16, 11, -5, 8, 8, 24, 36, + -45, 24, -53, -8, -79, -24, -15, -23, + 42, 50, 20, -22, 18, -3, 33, 36, + 5, 16, -5, -6, -1, -5, -3, 15, + -9, -6, -12, -8, -6, -5, -7, 11, + -14, -8, -5, 3, 5, -2, 13, 21, + -5, -17, 11, -3, 9, 8, 24, 35, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -30, -28, -16, 7, 25, -55, -44, -33, - 45, 50, 29, 31, 21, 14, 34, 42, - 7, 5, -13, -27, -21, -7, 6, 3, - -1, -4, -18, -11, -5, -16, -8, -3, - -3, -8, -4, -0, -3, -4, -5, 0, - 6, 3, 4, 13, 0, 1, 7, 16, + -25, -19, -13, 15, 22, -50, -32, -26, + 42, 46, 25, 19, 23, 12, 29, 42, + 5, 5, -13, -25, -20, -9, 4, 2, + -2, -4, -19, -13, -6, -16, -10, -6, + -4, -9, -5, -4, -4, -6, -6, -0, + 6, 3, 4, 15, 1, 1, 8, 15, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -20, -21, -39, 34, -20, -30, -34, -10, - 22, 20, 14, -17, 9, 4, 44, 31, - 4, -13, -9, -15, -10, -18, -7, 7, - -6, -1, -12, 2, -3, -6, -8, 0, - 0, 11, 9, 15, 10, -0, -4, -6, - 9, 17, 24, 11, 20, -7, -4, 0, + -16, -18, -36, 38, -15, -23, -31, -2, + 23, 20, 11, -16, 12, 3, 39, 31, + 3, -16, -10, -18, -12, -19, -8, 6, + -7, -1, -12, 1, -3, -6, -10, -2, + 0, 9, 7, 12, 8, -2, -6, -7, + 10, 16, 22, 12, 21, -7, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -9, -33, -23, -72, -23, -17, 70, -24, - 18, 21, 5, -7, -11, -4, 63, 15, - 20, 6, -7, -2, -19, -16, -2, 12, - 7, 9, -5, -10, -4, -14, -13, -7, - 11, 12, 2, -6, 3, -9, -11, -7, - 21, 20, 14, 13, 8, 3, -6, 6, + -3, -25, -23, -64, -24, -16, 70, -21, + 20, 20, 3, -10, -12, -6, 60, 16, + 20, 5, -8, -2, -19, -16, -2, 12, + 6, 7, -6, -11, -5, -15, -14, -9, + 10, 12, 1, -9, 2, -11, -12, -8, + 22, 21, 14, 15, 10, 4, -5, 6, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 1, 5, -63, -18, -42, 7, 15, 52, - 30, 9, -17, -28, -5, 0, 31, 50, - 10, -1, -7, -16, -13, -10, -3, 2, - 4, -1, -8, -3, -4, -6, -14, -16, - 10, 10, 5, 12, 10, 6, -11, -21, - 15, 19, 12, 5, 21, 10, -17, -28, + 4, 10, -65, -15, -42, 7, 16, 56, + 31, 9, -17, -26, -3, 1, 31, 51, + 9, -3, -9, -17, -14, -13, -3, 2, + 3, -2, -9, -4, -5, -7, -14, -17, + 9, 10, 4, 11, 8, 4, -13, -23, + 15, 19, 12, 6, 23, 10, -16, -27, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 32, -41, 7, -57, -31, -24, 40, 32, - 34, 17, 7, 0, -4, 12, 28, 31, - 13, 6, -11, -16, -10, -6, -11, -3, - 4, -8, -9, -8, -12, -2, -12, -24, - 4, 6, 1, 5, 7, 2, -2, -23, - 8, 9, 11, 23, 17, 18, -18, -43, + 40, -39, 2, -51, -32, -24, 43, 40, + 35, 15, 6, -2, -5, 11, 31, 35, + 11, 4, -13, -17, -12, -8, -10, -3, + 3, -9, -11, -9, -12, -2, -13, -23, + 4, 6, -0, 3, 6, 1, -3, -23, + 7, 10, 10, 24, 18, 16, -18, -42, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 3, -19, 35, -25, -71, -30, -52, -30, - 51, 75, 27, 14, -18, 13, 8, 16, - 18, 25, 3, 2, -5, -9, -6, 7, - 5, 2, 5, -3, -8, -15, -14, 4, - -4, -11, -2, -7, -2, -8, -8, 2, - 1, 4, -1, -5, -7, 6, 7, 23, + 4, -16, 33, -23, -66, -29, -47, -32, + 51, 73, 27, 11, -18, 13, 9, 18, + 17, 23, 2, 1, -5, -9, -7, 7, + 5, 2, 4, -4, -10, -16, -16, 4, + -4, -9, -2, -8, -2, -8, -7, 2, + 0, 5, -1, -3, -4, 6, 8, 23, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -22, -25, 59, -53, -39, -34, -0, -50, - 35, 56, 32, 5, -4, 1, 9, 15, - 16, 10, 10, -9, -6, -12, 5, 4, - 12, 16, -11, -9, -6, -9, -4, 2, - 3, -4, -2, -15, -5, -11, -2, 14, - 8, 1, -4, -9, -4, -1, 7, 29, + -17, -22, 53, -47, -36, -33, -2, -50, + 37, 54, 31, 7, -4, 3, 9, 15, + 16, 8, 9, -11, -7, -13, 5, 4, + 11, 15, -12, -10, -9, -11, -6, 1, + 3, -4, -1, -15, -5, -11, -2, 13, + 9, 1, -3, -7, -2, 0, 9, 29, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -1, -33, -13, -48, -33, -19, -24, -10, - 35, 28, 20, -7, 16, -2, 7, 22, - 18, 13, -1, 1, -7, -9, -1, 4, - 15, 9, 1, -10, -4, -2, 1, 3, - 7, -2, -5, -13, -11, -9, -7, 11, - 23, 3, -5, 10, -1, -1, 5, 24, + 1, -30, -14, -42, -32, -19, -19, -9, + 35, 26, 20, -6, 16, -2, 7, 22, + 18, 12, -3, -1, -8, -11, -1, 5, + 14, 7, -1, -12, -7, -4, -2, 2, + 7, -2, -5, -12, -11, -9, -7, 11, + 23, 3, -5, 14, 0, -0, 7, 24, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -8, -30, -7, -50, 41, -18, -16, -30, - 14, 8, 0, -3, 9, 10, 7, 17, - 11, 6, -0, -1, 5, -3, 5, 7, - 10, 7, -0, -11, -6, -6, 2, -1, - 9, -1, -1, -9, -7, -10, -2, 2, - 24, 11, 2, 0, -2, -2, 2, 14, + -6, -28, -8, -46, 43, -16, -16, -27, + 16, 8, 2, -1, 11, 10, 4, 17, + 11, 5, -1, -3, 3, -6, 3, 7, + 9, 5, -2, -12, -8, -8, -1, -2, + 9, -1, -2, -10, -6, -10, -2, 2, + 24, 12, 3, 2, -1, -3, 4, 14, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -4, -26, -15, -28, -49, -1, 51, -11, - 15, 1, -5, 0, 2, 20, 25, 31, - 0, 1, 1, -5, -1, 4, 5, 5, - 6, 0, -4, -6, -7, -4, -1, -2, - 6, 2, -3, -8, -12, -4, -10, -1, - 19, 10, 3, 4, 0, -3, -8, 5, + -2, -23, -19, -27, -48, 2, 54, -8, + 17, 1, -4, 1, 3, 20, 24, 32, + 1, 0, 0, -6, -2, 1, 3, 4, + 5, -1, -5, -8, -9, -6, -3, -4, + 6, 2, -3, -8, -12, -3, -10, -2, + 19, 11, 3, 7, 0, -2, -8, 5, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -15, -28, -34, -18, -31, 12, 44, 44, - 2, 5, -8, -6, -9, 16, 42, 51, - -1, -8, -7, -13, -4, 4, 10, 9, - -2, -7, -8, -8, -7, -2, -6, -3, - 0, -3, -3, -3, 1, -10, -11, -3, - 12, 6, 6, -4, 1, -2, -0, -2, + -13, -27, -39, -15, -28, 10, 43, 48, + 4, 5, -9, -7, -8, 15, 42, 51, + 0, -8, -8, -14, -4, 2, 9, 8, + -2, -7, -9, -9, -8, -3, -8, -4, + 1, -3, -3, -3, 1, -9, -10, -3, + 12, 7, 7, -2, 4, -2, 2, -2, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -24, -34, -24, -22, -26, -21, 42, 55, - 5, -4, 5, -10, -3, 19, 59, 54, - -1, -6, -12, -5, -12, 4, 11, 16, - -6, -12, -11, -15, -4, -3, 2, -13, - -3, -9, -5, -2, -3, 5, -13, -20, - 5, 5, -1, 8, 8, 5, 2, 12, + -21, -32, -28, -21, -25, -21, 39, 59, + 6, -5, 4, -11, -3, 18, 58, 56, + -1, -7, -13, -6, -13, 2, 10, 16, + -7, -12, -12, -16, -4, -4, 1, -12, + -2, -8, -5, -3, -4, 4, -14, -20, + 5, 6, -1, 12, 10, 5, 3, 13, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 52, 39, 45, -33, -117, -94, -90, -45, - 39, 108, 60, -13, -20, -35, -16, 17, - 32, 50, 14, -19, -8, -12, -12, -1, - 31, 27, 20, -5, -15, -5, -14, -5, - 16, 1, -10, -10, -2, -18, -6, 6, - 38, 11, 1, 3, -14, 5, -7, 9, + 48, 36, 46, -35, -98, -87, -84, -44, + 37, 104, 56, -13, -20, -34, -18, 14, + 30, 48, 12, -19, -9, -11, -11, -0, + 29, 25, 18, -5, -16, -6, -16, -5, + 16, 2, -11, -12, -4, -17, -6, 6, + 37, 9, 0, 6, -12, 7, -5, 12, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 33, -25, 38, -61, -10, -103, -110, -65, - 88, 68, 59, 39, -31, -40, -15, -23, - 81, 17, 39, 16, -19, -27, -7, -25, - 65, 21, 13, -2, -14, -16, -4, -13, - 37, -3, -2, -4, -16, -18, -13, -11, - 57, -15, -1, 15, -13, 2, 0, 18, + 35, -25, 35, -43, -26, -106, -112, -61, + 89, 71, 62, 38, -31, -38, -17, -22, + 83, 17, 41, 14, -20, -27, -5, -27, + 63, 21, 12, -2, -17, -17, -5, -14, + 37, -2, -3, -5, -15, -17, -14, -11, + 55, -14, -1, 17, -16, 2, 2, 19, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 18, -53, -27, -16, 27, -37, -144, -63, - 48, 58, 51, 31, 6, -0, -25, -18, - 62, 42, 37, 28, 2, -26, -15, -18, - 39, 17, 1, 9, -24, -18, -21, -8, - 18, 11, -6, 5, -21, -26, -16, -11, - 22, 6, -3, 46, 28, -19, -1, 7, + 13, -51, -28, -18, 22, -40, -128, -66, + 52, 63, 57, 37, 7, -1, -22, -16, + 61, 41, 38, 26, -2, -29, -16, -19, + 40, 16, 2, 6, -24, -21, -23, -9, + 17, 12, -9, 6, -21, -27, -15, -11, + 23, 7, -2, 45, 17, -18, 1, 9, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -43, -55, -1, -8, 15, -51, -82, -71, - -6, 36, 26, 26, 29, 25, -46, 1, - 32, 20, 40, 35, 16, -2, 7, 2, - 24, 18, 3, -3, -11, 2, 3, -1, - 23, -9, -6, -5, -6, -22, -15, -5, - 18, 5, -7, 21, 13, -2, 10, 9, + -47, -54, -1, -11, 14, -46, -79, -81, + 2, 42, 35, 38, 40, 28, -39, 1, + 29, 16, 38, 33, 11, -7, 5, -1, + 23, 18, 1, -4, -14, -0, 1, -2, + 23, -9, -8, -3, -7, -23, -17, -6, + 18, 6, -8, 11, 13, -1, 11, 9, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -92, -74, 2, -32, -5, -24, -16, 10, - -21, -18, -1, 12, 31, 23, 0, -10, - 15, 21, 9, 37, 23, 36, 11, 9, - 3, 0, -1, 5, -1, 15, 5, 8, - 10, -11, -13, 0, -6, -0, -8, 15, - 8, 6, 1, 7, -12, 2, 8, 13, + -88, -67, -12, -24, 3, -23, -21, -7, + -16, -10, 10, 23, 47, 33, 7, -7, + 14, 19, 5, 35, 24, 32, 6, 5, + 2, -2, -2, 3, -2, 11, 4, 6, + 10, -12, -13, -1, -3, 1, -8, 14, + 9, 5, 0, -15, -15, 1, 7, 14, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -45, -43, -81, -25, 23, -21, 35, -13, - -5, -9, 2, 7, 17, 10, 20, 28, - 1, -1, -13, -4, 25, -15, 16, 17, - 15, -2, 0, 5, 16, -0, 16, 20, - 0, -8, -11, -13, -3, -7, -6, -1, - 15, 12, -13, 9, -25, 15, 13, 27, + -59, -50, -76, -22, 23, -17, 31, -13, + 1, -1, 7, 8, 21, 11, 24, 32, + 2, -1, -16, -6, 24, -14, 14, 15, + 15, -4, -2, 4, 14, -1, 12, 18, + 1, -8, -11, -11, -3, -7, -5, -0, + 18, 13, -14, 3, -25, 15, 15, 27, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -44, -30, -51, -107, -37, -23, 30, 22, - -12, -1, 14, -27, 37, 40, 62, 70, - -21, -19, -24, 16, -9, 25, 56, 52, - -12, -14, -4, -15, -15, 3, 10, 33, - 3, -12, -28, -9, -23, -2, -6, 23, - 10, -4, -10, 18, -7, 1, 3, 38, + -59, -55, -57, -91, -25, -13, 29, 25, + -10, -5, 10, -22, 36, 41, 60, 73, + -21, -18, -25, 13, -10, 26, 57, 53, + -12, -14, -7, -14, -16, 2, 11, 32, + 5, -13, -27, -7, -22, -1, -3, 23, + 12, -2, -11, 17, -8, 1, 5, 37, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -89, -78, -36, -73, -79, 4, 118, -3, - 17, -62, 3, 26, 13, 47, 75, 4, - -2, -12, 5, -26, 23, 15, 65, 21, - -9, -26, 11, -13, 1, -9, 29, 28, - 7, -20, -24, -24, -13, -11, 12, 20, - 10, 5, 3, 43, -37, 6, 12, 21, + -92, -94, -11, -61, -67, 13, 95, -5, + 15, -47, 2, 23, 15, 52, 74, 3, + -2, -13, 6, -29, 21, 14, 63, 18, + -9, -26, 9, -15, 2, -12, 27, 26, + 8, -20, -23, -22, -12, -12, 12, 20, + 10, 6, 4, 32, -35, 6, 11, 19, 0, 0, 0, 0, 0, 0, 0, 0, ], ]; @@ -865,1872 +865,1872 @@ internal static partial class TunableEvalParameters internal static readonly short[][] MiddleGameKnightTable = [ [ - -230, -65, -55, -193, -141, -162, 77, -235, - 101, 0, -41, 53, 78, -30, 16, 11, - -9, 28, 120, 10, 26, 9, -14, -0, - 23, 71, 55, 74, 32, 1, -11, -48, - 55, 35, 48, 61, 8, 9, 31, -12, - 45, 14, 37, 22, 41, -0, 2, -5, - 4, 32, 66, 37, -2, -59, 39, -53, - 50, 16, 24, 59, 7, 4, -61, -104, - ], - [ - -21, 14, 93, -46, -95, -46, -259, 23, - 17, 14, 16, 30, 14, -19, -31, 15, - 9, 13, 57, 34, -18, -17, -3, 13, - 4, 26, 21, 30, 26, -6, -18, -9, - 24, 28, 11, 32, 3, 4, -23, -5, - 6, 13, 18, 14, 29, -5, 13, -16, - -19, 9, 22, 13, 6, -7, -15, -69, - -21, -54, 59, 49, 17, 35, -4, -51, - ], - [ - -84, -98, -97, 25, 229, 76, -149, -19, - -39, 14, 17, 29, 17, -7, -43, -0, - -22, 29, 26, 5, 14, -24, -38, -24, - 1, 5, 23, 25, 23, 7, -14, 20, - 23, 29, 10, 25, -4, 6, -15, 9, - -28, 5, 18, 11, 25, -9, 15, -16, - 20, -0, 20, 10, 3, -8, -23, -45, - -23, -10, -44, 64, 2, 29, -8, -17, - ], - [ - -148, -115, -119, -166, -82, -109, 94, 8, - -42, -38, 4, 17, 57, -32, -66, -2, - 92, -39, 3, 27, -20, -35, -18, -61, - 15, 1, 35, 22, 44, 12, -6, 30, - -7, 45, 3, 31, 16, 32, 11, 42, - -20, 22, 21, 38, 41, 13, 57, 21, - -43, -31, 37, 27, 18, -16, 77, -18, - 22, -6, 80, -25, 37, 54, 5, 56, - ], - [ - -51, -137, -145, -124, -40, 41, -18, -8, - -16, -8, -3, -58, -12, 29, -47, -45, - -35, 12, 26, 1, 18, -23, -18, -19, - 13, -9, 6, 18, 24, 24, -11, 12, - 11, 35, 11, 36, 8, 22, -6, 20, - -11, 17, 12, 39, 43, 21, 37, 12, - -10, 17, 30, 25, 25, 22, 27, -11, - 33, 9, 55, 52, -44, 42, 21, 4, - ], - [ - -89, -269, -37, -62, 42, -266, 3, -111, - -19, 2, 11, 14, -35, 2, -92, -5, - -4, -19, 19, 2, -3, -6, 57, -40, - 18, -18, 11, 36, 52, 55, 25, 10, - -21, 3, 11, 43, 33, 61, 30, 45, - -42, -10, 12, 51, 42, 42, 58, 42, - 32, -44, 55, 28, 23, 45, 30, -18, - 64, -31, 10, 56, 42, -33, 35, 24, - ], - [ - -67, -81, -57, -26, 61, -48, -27, -41, - 10, 2, -10, -7, 10, 34, -6, -41, - -14, 5, 32, 6, 21, 6, -12, -4, - 14, -12, 7, 14, 23, 15, -6, 14, - 2, 14, 2, 24, -7, 11, 0, 13, - -26, 1, -4, 19, 31, 11, 29, 15, - -14, -10, 8, 20, 14, -2, 12, 0, - -27, -11, 32, 49, 5, 53, -66, -14, - ], - [ - -132, -17, -154, -11, -137, 151, -66, 85, - 17, -9, 5, -24, 23, 63, 3, 23, - -38, -10, 28, -2, 18, 55, 6, 52, - -7, -24, -0, 16, 37, 19, 18, 9, - -14, 16, 5, 29, -4, 18, 24, 36, - -42, -17, -16, 15, 33, 4, 35, 19, - -34, -21, -3, 0, -3, -3, 14, 12, - -69, -45, 7, 22, -13, 31, 30, -61, - ], - [ - -83, 96, 98, 114, -79, -253, -406, -120, - -64, -107, 92, -11, -142, 49, -5, -21, - -60, 53, 129, 67, -7, 23, 74, 49, - 58, 61, 68, 38, 69, 44, 17, -31, - 12, 69, 16, 57, 11, 11, 2, -4, - 23, 37, 31, 23, 57, 22, 21, 12, - -12, -30, 56, 33, 25, -19, -59, -3, - 3, 1, 49, 80, -12, 12, -21, -312, - ], - [ - -141, -110, 82, 116, -59, -68, -170, -201, - 106, -34, -117, 54, 37, 27, -72, -67, - 70, 23, 18, 44, -2, -14, 20, 12, - 51, 41, 53, 71, 33, 33, -30, 62, - 34, 46, 12, 33, 23, 10, -25, -29, - -7, 27, 31, 21, 15, -11, 20, 2, - 2, -29, 59, 40, -22, 10, -16, -38, - -74, -25, 44, 13, -2, 25, -36, -20, - ], - [ - -80, -115, -127, -20, -3, -135, -160, -95, - -57, 7, -63, -99, 52, -55, -23, 52, - 12, 11, 73, 46, -12, -18, -29, -80, - 64, -7, 34, 61, 76, 12, -0, 62, - 15, 55, 41, 74, 33, 28, 12, -12, - -1, 29, 29, 45, 53, 18, 31, -15, - 16, 17, 24, 31, 23, 24, 2, -11, - 16, 4, 50, 48, -9, 3, 11, -68, - ], - [ - -92, -30, -124, -82, -142, -223, -80, -135, - 23, -11, -40, -69, -108, 39, -18, 2, - 34, 41, 57, 24, 5, 66, -17, 13, - 6, 3, 42, 54, 58, 51, -6, 55, - -32, 17, 23, 66, 18, 36, 36, 34, - -27, 20, 23, 36, 56, 19, 36, 27, - 111, 42, 2, 27, 25, 27, 55, -41, - -90, -11, 6, 4, 25, -1, 29, 5, - ], - [ - -52, -202, -161, -183, -80, -60, -32, -46, - -14, -27, -55, -23, 1, -19, -98, -22, - -17, 14, 34, -1, 40, 45, -5, 67, - 14, -22, 23, 34, 70, 55, 32, 26, - 24, -7, 35, 47, 33, 42, 51, 27, - -44, 4, 6, 25, 52, 59, 61, 18, - 27, 5, 4, 18, 18, 77, 22, 11, - -14, -29, 3, 46, 9, 48, 27, -40, - ], - [ - -116, -72, -40, 30, 146, -28, -55, -85, - -38, -56, -27, 31, -37, 4, -15, -73, - -50, -30, 28, -1, 23, 48, 23, 69, - -31, -19, 3, 36, 48, 53, 8, 39, - -23, -18, -5, 38, 15, 32, 10, 42, - -34, -14, 2, 23, 43, 21, 58, 41, - -34, -30, -26, 7, 5, 34, 41, -9, - -109, -39, 28, 8, 7, 41, 33, -6, - ], - [ - -218, -31, -163, 38, 8, 72, 189, 117, - -4, -22, -45, 53, 25, 71, -70, 154, - -49, -55, 12, -9, -14, -2, 18, 34, - -51, -16, 16, 15, 24, 24, 19, 27, - -31, -6, -17, 12, 7, 9, 17, 12, - -66, -30, -16, 21, 38, 5, 37, 29, - -83, -49, -22, -4, 3, -6, -21, 25, - -76, -41, 0, 32, -26, 60, 8, 13, - ], - [ - -18, 114, -66, 44, -86, -7, 46, -121, - 87, -60, 59, 1, 147, -91, 376, 121, - 38, 44, 51, 7, -106, -184, -66, -39, - 190, -6, 88, 79, 78, -40, 40, -102, - 6, -65, 73, 4, -22, -11, -195, 97, - -157, 53, 37, -6, -206, 15, -151, -30, - 217, 114, 112, -52, 4, -80, -88, -120, - 181, -52, -45, 0, 19, -224, -208, 158, - ], - [ - 267, 3, 155, 21, -105, 156, -73, -83, - 20, 44, 189, 16, 12, -24, -114, 53, - -3, -99, 69, 15, 74, -78, 19, -151, - 103, -80, 162, 190, -85, -89, -82, 187, - -49, -8, -5, 22, 36, -65, 10, -110, - 279, 194, -12, -24, 158, -144, -5, -57, - 30, 34, -156, -357, -41, 53, 9, 161, - -113, 144, -150, -195, 16, -288, -63, 7, - ], - [ - 36, 106, -8, 133, -62, -83, 3, 149, - -80, 82, 21, 49, 60, -49, 103, -192, - -206, 28, -35, 114, 207, -24, 300, -120, - 16, 87, 162, 132, 175, 85, 179, 11, - 77, -198, 29, 89, 205, -165, -9, -137, - -22, -109, -19, -85, -74, 35, -67, -80, - -157, -148, -102, 20, -283, 92, -97, 7, - -16, 96, -172, -54, 50, -55, -10, -20, - ], - [ - 59, -67, 310, -11, -101, 140, -28, 47, - -45, 79, -183, 66, 198, 21, -29, -11, - 27, 106, 13, 173, 173, 269, 88, 43, - 141, 112, 29, 238, 15, -76, -43, -128, - 138, -51, -82, -13, 242, -7, -97, 124, - -73, -125, -92, 59, -176, -79, -114, -1, - -223, -126, -147, -168, -90, 59, -124, -86, - 65, 36, -266, -12, 129, -144, -106, -76, - ], - [ - -55, -52, -78, 84, -25, 285, 12, 186, - 29, 60, 109, 149, 54, 42, -112, -205, - -41, -160, 61, 7, 173, 21, -205, 14, - -225, -35, -2, 86, 237, 77, 169, -57, - -46, 133, 11, -5, 136, 130, 193, -84, - 38, -115, 17, 19, -29, -49, 201, 72, - -137, -58, -15, -231, -4, 96, -50, -27, - -105, -211, -40, 91, -164, -195, -246, 68, - ], - [ - -10, 17, -36, -91, 90, 104, 89, -130, - -137, -75, 157, 102, 164, 167, 23, -209, - 154, 97, -56, -33, 226, -21, 214, -139, - 47, -15, 49, 27, -105, 96, 155, 21, - -175, 6, 15, 15, 44, 143, 98, 173, - -194, -57, -85, 167, 45, -59, -264, 48, - -89, -26, -207, -99, 0, -88, 35, 4, - -26, -113, -108, -141, -36, -22, -134, 188, - ], - [ - -81, -82, 163, 221, -102, 52, -61, 55, - -369, -85, 67, 261, 307, -64, 147, 146, - -140, 49, -63, -152, 170, 132, 233, 176, - -64, 181, -30, -146, 13, 72, -32, 118, - -46, -254, 21, -225, -41, 149, 128, 98, - -198, 27, -25, 154, -50, 57, -87, -133, - -11, 112, -49, -40, -21, -109, -41, -89, - 133, -7, -172, -274, -62, -149, 121, -10, - ], - [ - -120, 81, 75, -132, 169, -51, 54, 98, - 155, -91, -95, 134, 101, -34, -123, 87, - -199, 2, -94, 111, 269, 196, 145, 112, - -277, 19, 133, 69, 130, 22, 171, 91, - -217, -84, -84, -110, 105, 141, 170, 172, - -191, -13, 55, -97, -34, -68, -112, -84, - -162, -169, -84, -207, 99, 114, -18, -79, - 5, -277, 17, -57, 99, 17, 5, -62, + -161, -49, -40, -119, -110, -100, 17, -124, + 80, -3, -30, 62, 83, -36, 29, 6, + -13, 30, 115, 10, 31, 17, -4, -7, + 15, 68, 49, 72, 29, 1, -7, -50, + 42, 27, 42, 53, 7, 5, 31, -20, + 42, 7, 32, 19, 32, -6, -15, -21, + -8, 22, 50, 26, -6, -63, 26, -61, + 34, 17, -2, 27, -1, -29, -70, -100, + ], + [ + -20, -16, 84, -32, -89, -41, -190, 5, + 12, 11, 28, 50, 30, -10, -13, 19, + 9, 22, 56, 43, -6, -2, 11, 15, + 3, 31, 20, 34, 28, -1, -7, -8, + 16, 25, 11, 30, 7, 4, -18, -11, + 8, 9, 17, 14, 25, -5, 1, -27, + -30, 4, 12, 6, 5, -8, -25, -71, + -30, -58, 35, 21, 9, 7, -10, -51, + ], + [ + -82, -83, -58, 27, 172, 76, -113, -22, + -41, 14, 30, 48, 35, 3, -26, 6, + -21, 38, 28, 13, 25, -10, -25, -21, + -1, 9, 23, 28, 24, 13, -5, 21, + 15, 23, 9, 22, -1, 5, -11, 2, + -27, -0, 16, 10, 20, -11, 2, -29, + 8, -5, 9, 2, 1, -9, -32, -49, + -34, -8, -48, 35, -7, 2, -16, -16, + ], + [ + -138, -74, -73, -91, -71, -82, 53, -3, + -50, -42, 16, 31, 64, -27, -51, -4, + 89, -33, 5, 36, -9, -22, -8, -61, + 10, 4, 30, 22, 43, 14, 1, 25, + -15, 39, -1, 26, 15, 29, 12, 33, + -22, 13, 16, 34, 32, 8, 42, 7, + -52, -37, 25, 16, 13, -20, 67, -20, + 9, -7, 52, -19, 26, 24, -3, 53, + ], + [ + -49, -117, -114, -100, -33, 40, -16, -14, + -20, -11, 8, -43, 4, 42, -31, -40, + -34, 19, 27, 8, 27, -9, -6, -16, + 10, -5, 5, 20, 25, 28, -1, 12, + 3, 31, 10, 32, 9, 20, -2, 12, + -9, 13, 9, 39, 36, 18, 23, -2, + -22, 12, 20, 16, 22, 19, 17, -16, + 24, 9, 29, 22, -42, 15, 14, 3, + ], + [ + -86, -181, -21, -54, 36, -222, -9, -115, + -26, -0, 19, 26, -18, 11, -77, -3, + -6, -11, 19, 9, 7, 6, 69, -37, + 14, -15, 8, 38, 51, 58, 32, 8, + -30, -4, 8, 37, 33, 58, 31, 37, + -42, -15, 9, 49, 34, 38, 44, 28, + 15, -51, 43, 19, 19, 41, 19, -27, + 52, -31, -16, 25, 34, -33, 26, 23, + ], + [ + -63, -77, -39, -17, 65, -37, -32, -41, + 6, 1, 2, 11, 27, 43, 11, -34, + -13, 12, 34, 14, 32, 21, 1, 0, + 12, -8, 6, 17, 24, 19, 4, 14, + -5, 11, 1, 19, -5, 9, 5, 5, + -24, -3, -5, 20, 25, 9, 16, 3, + -26, -15, -1, 12, 11, -4, 2, -3, + -37, -10, 8, 19, -3, 26, -64, -13, + ], + [ + -128, -12, -141, 7, -124, 145, -56, 66, + 13, -10, 18, -9, 40, 73, 24, 29, + -35, -3, 29, 6, 30, 70, 20, 56, + -9, -21, -1, 19, 38, 24, 28, 10, + -20, 12, 4, 25, -1, 19, 28, 29, + -40, -21, -17, 16, 28, 2, 22, 6, + -46, -26, -12, -7, -4, -4, 3, 8, + -76, -43, -17, -7, -19, 4, 25, -63, + ], + [ + -67, 37, 93, 60, -52, -125, -171, -88, + -71, -108, 93, -4, -131, 51, 1, -24, + -64, 52, 123, 66, -2, 27, 81, 48, + 51, 59, 60, 35, 63, 43, 19, -36, + -4, 57, 8, 47, 7, 5, 0, -15, + 21, 28, 25, 16, 46, 16, 2, -5, + -28, -35, 41, 21, 18, -27, -75, -11, + -14, -2, 19, 45, -26, -22, -30, -250, + ], + [ + -121, -80, 53, 72, -50, -45, -95, -156, + 94, -37, -106, 66, 48, 32, -59, -59, + 63, 28, 18, 49, 0, -1, 32, 18, + 46, 44, 50, 70, 34, 36, -21, 60, + 26, 41, 11, 29, 23, 9, -24, -37, + -4, 23, 30, 22, 9, -12, 6, -13, + -12, -36, 47, 32, -23, 7, -23, -42, + -78, -23, 19, -16, -10, -4, -41, -20, + ], + [ + -75, -71, -100, 1, 5, -101, -85, -87, + -67, 3, -57, -89, 63, -49, -9, 51, + 12, 17, 70, 49, -4, -8, -21, -73, + 58, -4, 30, 61, 73, 15, 7, 59, + 4, 49, 38, 68, 32, 23, 12, -21, + -4, 22, 25, 41, 47, 14, 15, -30, + 3, 7, 10, 19, 18, 21, -10, -21, + 5, 2, 26, 16, -18, -27, 1, -61, + ], + [ + -91, -30, -88, -67, -115, -142, -60, -137, + 19, -13, -31, -53, -96, 39, -10, 3, + 33, 44, 57, 30, 17, 79, -6, 15, + 2, 5, 38, 54, 58, 53, 1, 55, + -42, 11, 20, 59, 18, 33, 37, 24, + -27, 15, 19, 37, 49, 15, 21, 13, + 95, 31, -9, 17, 20, 23, 48, -47, + -91, -13, -22, -26, 15, -29, 20, 5, + ], + [ + -51, -138, -138, -161, -72, -52, -43, -43, + -20, -29, -45, -10, 18, -13, -89, -20, + -18, 19, 34, 7, 51, 59, 7, 68, + 11, -19, 22, 36, 70, 59, 39, 25, + 15, -14, 33, 41, 34, 40, 53, 17, + -42, -0, 4, 25, 48, 56, 48, 4, + 12, -0, -5, 10, 15, 77, 13, 7, + -23, -28, -23, 19, -1, 21, 19, -40, + ], + [ + -109, -63, -29, 42, 151, -18, -70, -78, + -44, -56, -16, 48, -22, 12, -3, -69, + -46, -23, 30, 6, 32, 61, 36, 73, + -34, -16, 1, 38, 48, 57, 18, 39, + -29, -22, -6, 34, 17, 31, 14, 34, + -31, -17, 2, 24, 37, 21, 44, 30, + -44, -34, -34, 0, 4, 34, 36, -13, + -118, -36, 5, -19, 1, 15, 27, -6, + ], + [ + -214, -36, -141, 52, 16, 69, 98, 66, + -9, -20, -29, 70, 41, 82, -54, 161, + -54, -45, 17, 2, -0, 14, 33, 42, + -51, -10, 18, 20, 27, 32, 30, 29, + -35, -8, -16, 11, 12, 11, 25, 7, + -59, -30, -14, 25, 35, 7, 29, 21, + -93, -52, -28, -9, 3, -3, -27, 28, + -81, -36, -20, 5, -30, 36, 6, 19, + ], + [ + -21, 42, -20, 25, -32, -2, 20, -52, + 46, -24, 59, 19, 103, -62, 172, 53, + 33, 62, 46, 32, -69, -137, -42, -22, + 175, -5, 90, 77, 92, -33, 60, -48, + 20, -70, 83, 2, -10, -23, -124, 63, + -94, 56, 47, -18, -185, 11, -134, -21, + 143, 73, 58, -66, 8, -58, -56, -79, + 124, -50, -44, -3, 8, -151, -210, 63, + ], + [ + 111, 1, 69, 5, -28, 51, -23, -47, + 16, 22, 89, 8, 18, -8, -40, 19, + 7, -38, 42, 10, 64, -42, 1, -44, + 45, -31, 132, 139, -69, -43, -36, 68, + -8, -18, 21, 1, 35, -47, 9, -62, + 100, 105, -27, -23, 83, -105, -12, -35, + 7, 13, -97, -216, -17, 16, 2, 56, + -33, 40, -55, -72, 7, -95, -41, -1, + ], + [ + 9, 36, 1, 42, -22, -29, -15, 47, + -26, 35, -6, 31, 29, -3, 34, -73, + -99, -5, -51, 103, 142, -26, 125, -38, + 2, 52, 123, 118, 137, 51, 91, 9, + 36, -124, 39, 72, 179, -88, -21, -46, + -8, -59, -8, -84, -50, -10, -60, -19, + -61, -70, -45, -24, -182, 32, -27, 7, + -0, 24, -91, -25, 10, -33, -68, -19, + ], + [ + 16, -32, 109, 10, -43, 38, -19, 18, + -21, 25, -106, 45, 89, 8, -14, -5, + 1, 35, 15, 129, 162, 129, 43, 11, + 64, 55, 45, 151, -3, -36, -17, -66, + 62, -33, -50, 4, 227, -10, -50, 42, + -31, -84, -55, 24, -108, -52, -78, -11, + -77, -46, -88, -89, -63, 13, -48, -28, + 5, 7, -134, -9, 49, -59, -45, -24, + ], + [ + -44, -18, -26, 41, -7, 97, 3, 64, + 8, 5, 41, 74, 18, 13, -57, -78, + -23, -73, 34, -10, 152, 20, -84, -3, + -103, -12, -1, 80, 149, 41, 127, -41, + -18, 43, 4, -4, 121, 101, 81, -48, + 6, -85, -4, 7, -12, -46, 115, 22, + -61, -22, -11, -130, -32, 38, -22, -14, + -33, -163, -26, 45, -58, -92, -104, 16, + ], + [ + -23, 9, -12, -40, 31, 35, 25, -27, + -52, -37, 69, 38, 87, 97, 8, -73, + 46, 41, -16, -31, 193, -13, 124, -58, + 17, -16, 24, 30, -87, 51, 88, 11, + -84, 6, 26, 12, 34, 88, 71, 78, + -96, -40, -74, 99, 13, -81, -154, 13, + -26, -12, -88, -72, -6, -44, 12, 9, + -7, -76, -48, -63, -28, -32, -35, 66, + ], + [ + 3, -27, 62, 78, -34, 15, -11, 19, + -127, -37, 40, 111, 165, -32, 64, 63, + -49, 26, -34, -89, 95, 92, 135, 93, + -31, 102, -18, -118, 13, 47, -16, 56, + -20, -109, -11, -157, -37, 111, 76, 45, + -103, -9, -24, 75, -43, 23, -47, -39, + -4, 45, -23, -88, -32, -31, -6, -26, + 48, -37, -67, -119, -14, -63, 22, 9, + ], + [ + -26, 19, 14, -45, 69, -23, 8, 49, + 49, -25, -38, 55, 44, -24, -52, 32, + -83, -14, -44, 62, 141, 111, 89, 41, + -123, 4, 69, 46, 66, 2, 128, 37, + -90, -39, -55, -91, 77, 105, 96, 88, + -80, 23, 25, -51, -48, -63, -46, -52, + -73, -58, -46, -120, 33, 65, -12, -21, + 8, -140, 9, -21, 4, -6, -31, -25, ], ]; internal static readonly short[][] EndGameKnightTable = [ [ - 66, -50, 7, 91, 74, 31, -124, -8, - -9, -94, 19, 3, -29, 35, -18, 24, - -0, -13, -41, 37, -3, -14, -35, 21, - -9, -27, -2, -4, 12, 18, 15, 25, - 21, 6, 28, 17, 24, 13, -31, 18, - -11, 1, 6, -4, 1, 7, 3, 31, - 29, -0, -17, -14, -5, 21, -42, -22, - -43, 45, 11, -47, 5, 2, -17, -37, - ], - [ - -102, -58, -83, 11, 73, 70, 53, -80, - 35, -30, -28, -28, -51, -12, 27, -70, - -17, -9, -53, -11, 28, 7, 24, -18, - 14, 7, 5, 28, 35, 36, 20, 10, - 14, -2, 27, 32, 33, 33, 35, 9, - 33, -3, 5, 22, 34, -1, 1, 14, - 52, -10, -6, 26, -1, -7, 9, 68, - -39, -81, -12, -0, -3, -45, -9, -61, - ], - [ - -115, 37, 28, -64, -135, -57, -39, -122, - -7, -5, -13, -46, -5, 26, -9, -32, - -14, 12, 4, 33, 26, 50, 25, -10, - 4, 9, 23, 19, 40, 25, 10, -6, - 6, 8, 33, 26, 44, 26, 9, -13, - 24, 17, 5, 26, 6, 21, -3, 34, - 8, 15, 13, 24, 31, 10, 10, 6, - -29, -0, -116, 1, 6, 6, 26, 23, - ], - [ - -22, 45, -27, -4, 8, -35, -24, -137, - -1, 10, -3, -27, -32, 34, 4, -20, - 2, 19, 18, -10, 29, 21, -3, 33, - -12, 14, -5, 4, -1, 14, 3, -15, - 12, -11, 8, -7, 7, -0, 25, -32, - -7, -4, 6, 7, 23, -3, -24, 25, - 29, 94, -16, 14, -2, 50, 21, 4, - -49, -4, -5, -55, 6, -14, -0, 25, - ], - [ - -101, -2, -30, 67, -41, -104, 55, -153, - -5, -6, 4, 7, -26, 4, 25, -54, - -1, 8, -11, 22, -11, 28, 5, -16, - 20, 24, 17, 45, 9, 18, 1, 6, - 40, -10, 30, 18, 11, 33, 31, -11, - 2, 15, 19, 13, 21, -4, 4, 16, - 13, 3, 29, 1, 15, 7, -2, -20, - -24, -2, 1, 16, -70, 29, 7, -36, - ], - [ - -70, 64, -25, 5, -45, 33, -26, -15, - -13, -19, -5, -23, 9, -19, 5, -8, - 20, 26, 19, 13, 28, 11, -5, 55, - 6, 14, 25, 10, 7, 4, -4, 9, - 12, 27, 12, -1, 11, -12, 5, -19, - 11, 10, -3, 9, 19, -14, -8, -34, - -19, 27, -14, 24, 3, -2, -9, -2, - -69, 5, 6, 1, 15, -59, -4, -15, - ], - [ - -37, 16, 9, -2, -45, -24, -23, -99, - -6, 13, 10, 3, -16, -13, -21, -19, - 14, 5, 12, 17, -0, 6, -9, 2, - 10, 24, 29, 39, 24, 17, 17, 3, - 10, 9, 27, 15, 28, 14, 7, 6, - 2, 5, 8, 19, 6, 2, -5, 10, - 3, 2, -3, 4, 16, -1, 5, 16, - -27, -8, -8, -3, 9, 7, -124, -6, - ], - [ - -5, 8, 32, 19, 31, -131, -5, -79, - -24, 3, -17, 16, -41, -14, -6, -3, - 24, -4, 22, 2, 15, -23, 14, -49, - 8, 12, 15, 36, 20, 27, 29, 2, - 2, -12, 6, 20, 30, 5, 0, 16, - -3, -12, 11, 12, 27, 24, 7, -5, - -2, -14, -8, 30, 14, 32, -27, 8, - -49, -11, -18, -7, 0, 6, 26, -41, - ], - [ - -76, 15, -53, -19, 17, 70, 70, -23, - 23, 42, -40, 14, 24, -26, -4, -33, - 30, -28, -33, -9, 16, -10, -46, -21, - -6, 7, 19, 7, -3, 17, -7, -18, - 14, -17, 30, 8, 25, 8, -4, 2, - 6, -17, -8, 9, -1, -16, -9, -32, - 0, 19, -12, 8, -10, 3, 27, 34, - 23, 12, 8, -25, -6, -42, -16, 61, - ], - [ - -44, -8, -12, -39, 38, 35, 26, 20, - -31, 2, 16, -10, 8, -26, 42, 11, - -17, 7, 7, -2, 21, 13, -25, -29, - 13, -0, 6, 10, 10, 7, 16, -18, - 3, 9, 14, 12, 11, 12, 0, -2, - -17, -3, -4, 11, 10, -4, -15, -22, - -17, -4, -14, -11, 15, -20, -4, 3, - -8, 4, -6, 10, -8, -21, 23, -3, - ], - [ - -9, -1, 24, -12, -4, 20, 23, 1, - -9, -1, 10, 30, -20, 19, 21, -8, - -8, 4, 5, 7, 18, 10, 8, -2, - -10, 12, 10, 6, 5, 14, 0, -13, - -8, 1, 10, -3, 1, 6, 0, 2, - -20, -3, -11, -1, -3, -8, -19, 11, - -14, -11, -8, 1, -7, -7, -10, -37, - -4, -14, -18, -12, 8, -8, 14, 24, - ], - [ - -46, -11, 40, 42, 40, 38, -17, -22, - 14, -7, 15, 25, 14, 9, 16, -21, - -14, -5, -5, 3, 11, -0, -4, -7, - 8, 4, -1, 2, 4, -2, 9, -9, - 13, -5, 12, 2, 9, 0, -3, 0, - -8, -15, -9, -5, -7, -12, 2, -12, - -63, -13, -6, -6, -4, 2, -29, -11, - -7, -7, 9, 17, -1, 9, -0, 21, - ], - [ - -30, -0, 36, 41, 6, 35, -50, 14, - -14, 8, 19, 25, 2, 15, 23, -6, - 1, -8, 4, 11, 4, -2, 2, -23, - -6, 14, 10, 12, 5, 2, 3, -0, - -10, 5, 4, 6, 6, 3, -5, -11, - -2, -4, -3, 9, -6, -17, -13, 1, - -30, -18, -13, -0, -7, -6, -3, -16, - -7, -17, -17, -4, -6, -4, -19, 50, - ], - [ - -13, 19, 10, -8, -52, 11, -12, -22, - 10, 18, 4, -1, 10, -10, 3, -2, - -5, 5, 4, 16, 9, -12, -6, -22, - 6, 9, 7, 7, 13, 3, 14, -2, - -0, 9, 16, 3, 17, 8, 12, 3, - -23, -3, -4, 8, -2, -6, -7, -11, - -11, -16, 9, -8, -1, -22, 35, 5, - 32, -22, -12, 1, 2, -5, -13, -7, - ], - [ - 34, 12, 16, -2, -15, -10, -35, -122, - -32, -8, 10, -20, 13, -19, 8, -54, - 0, 8, 3, 24, 27, 23, 7, -19, - -4, 11, 19, 20, 22, 30, 27, 18, - -17, -4, 23, 19, 26, 35, 13, 11, - -3, -11, 6, -2, -1, 3, -17, 9, - 20, 11, -6, -11, -2, -10, 15, -18, - 22, -40, -8, -25, 5, -5, 6, -36, - ], - [ - -68, -43, 32, -17, -29, -27, -2, 49, - -45, 27, 11, -2, -27, 49, -103, -34, - -7, -4, 18, -4, 41, 49, 7, 3, - -26, 26, 5, -5, 8, 34, -39, 20, - 32, 22, 6, 28, 20, 11, 40, -12, - 9, -13, 6, 25, 38, 2, 18, -17, - -14, -8, -30, 30, -19, 19, -24, -54, - -40, 30, -9, -8, -8, 44, 42, -64, - ], - [ - 23, 9, -3, -16, 68, -89, -14, -76, - 28, 2, -51, -34, -0, -4, 49, -46, - 3, 63, -26, -7, -13, 29, -7, 1, - -12, 29, -22, 15, 30, 41, 33, -21, - 17, 2, 23, -5, 37, 16, -14, -20, - -44, -67, 18, 11, -19, 32, 11, -0, - -26, -22, 7, 59, 9, -17, 15, -12, - -7, -38, 12, 33, 17, 45, 13, -67, - ], - [ - -47, -23, 51, -69, 22, -33, -82, -39, - 25, -6, 23, 6, -3, 28, 13, 3, - 20, 8, -1, -4, -32, 9, -43, 3, - -27, 5, -44, -5, -14, 14, -25, -28, - -12, 34, 13, 21, 2, 40, 20, -7, - -13, 38, 14, 18, 38, 15, 14, 1, - -1, 3, 6, 3, 45, -35, 22, -14, - 64, 40, 58, 36, -23, -37, -36, -67, - ], - [ - 13, -33, -33, 25, 29, 15, -33, 33, - -26, 5, 40, 0, -10, -15, -15, 23, - -22, 15, 6, -15, -22, -30, -28, 21, - -34, -5, 12, -50, 16, 31, -10, 18, - -41, -5, 21, 2, -17, -2, 32, -21, - -31, 13, 26, -5, 38, 23, 25, -39, - 4, 3, 29, 17, 5, 12, -12, 26, - -101, 9, 47, -1, 8, 36, -2, -21, - ], - [ - -49, 32, 33, -8, -3, -4, -6, 9, - -2, -4, -36, -11, -1, 10, -36, 60, - 24, 24, -22, 28, -1, 25, 67, -25, - 17, -21, 11, 4, -44, 1, -17, 15, - -1, 4, 12, 29, -3, 4, -29, 5, - -33, -8, -3, 16, 19, 35, -52, -19, - -22, 31, -16, 15, 17, -6, -34, -18, - 17, -8, -37, -10, 7, 6, 53, -39, - ], - [ - -109, -6, 15, 20, 45, 7, -15, 106, - -9, -1, -31, -33, -61, -22, 15, 4, - -85, -41, -18, 29, -47, 7, -4, 64, - 19, 17, -2, 17, 37, -54, -22, 1, - 16, 8, 7, -1, -5, -37, -3, 14, - 8, -12, 5, -41, -6, 22, 58, 29, - -17, -19, 19, 40, 10, -50, -36, 21, - -2, -9, 8, 41, 33, 9, 19, 27, - ], - [ - 55, -39, -5, -52, 8, -66, 34, -15, - -3, -10, 17, -67, -107, 18, -32, 15, - 5, -23, 44, 42, -29, -7, -20, -32, - -16, -39, 17, 62, 44, -5, -43, 32, - -22, 39, 20, 60, 33, -9, -38, 2, - 15, -14, 4, -10, 23, -19, -16, 3, - -28, -31, 13, 18, 2, 12, 29, 4, - 21, -64, 0, 53, 22, 28, -38, 105, - ], - [ - -16, -122, -110, -7, -2, -9, -102, 68, - -83, 20, 24, 9, 11, 25, 23, 19, - 34, 0, 42, 4, -51, -18, -2, 34, - 58, -3, -19, 9, -2, 38, 21, 17, - 58, 7, 11, 72, 25, 34, -40, -31, - -13, -1, -31, 38, 8, 59, 62, 6, - 11, 3, 34, -11, -20, -52, -40, 56, - 13, 80, 25, 24, -62, -73, -59, -103, + 10, -51, 10, 60, 59, 5, -92, -41, + 4, -89, 16, 3, -24, 36, -20, 28, + 5, -11, -39, 39, -5, -15, -38, 20, + -6, -25, 0, -4, 12, 18, 14, 26, + 24, 4, 28, 19, 22, 15, -29, 19, + -7, 4, 6, -3, 5, 10, 7, 37, + 32, 4, -13, -12, -3, 24, -39, -18, + -39, 43, 17, -39, 6, 11, -6, -39, + ], + [ + -91, -42, -70, 8, 66, 69, -0, -67, + 35, -26, -30, -32, -52, -13, 23, -65, + -17, -12, -49, -17, 22, 2, 20, -11, + 16, 4, 4, 23, 31, 34, 14, 11, + 15, -5, 25, 30, 28, 31, 33, 12, + 32, -3, 3, 19, 33, -3, 2, 14, + 52, -7, -5, 26, -1, -7, 14, 65, + -36, -48, -9, 6, -3, -40, -5, -55, + ], + [ + -99, 24, 19, -56, -105, -51, -53, -111, + -5, -5, -16, -53, -10, 21, -11, -30, + -15, 8, 3, 28, 19, 43, 20, -13, + 5, 7, 20, 16, 38, 22, 5, -6, + 6, 8, 31, 24, 41, 24, 6, -11, + 22, 16, 2, 23, 5, 20, -2, 37, + 9, 15, 14, 25, 30, 9, 12, 8, + -26, -0, -80, 3, 7, 13, 30, 20, + ], + [ + -19, 40, -27, -31, 2, -45, -10, -120, + 1, 11, -8, -30, -29, 35, -1, -14, + 4, 15, 17, -19, 22, 17, -11, 30, + -10, 12, -3, 2, -2, 15, 2, -13, + 11, -11, 8, -7, 5, -3, 24, -29, + -6, 1, 5, 6, 22, -3, -22, 27, + 32, 90, -17, 14, -2, 52, 18, 1, + -42, -4, 1, -34, 7, -7, 3, 28, + ], + [ + -87, -13, -36, 49, -46, -92, 55, -138, + -4, -4, 2, 5, -30, -2, 28, -52, + 1, 7, -8, 18, -12, 22, -2, -12, + 19, 21, 14, 44, 7, 18, -3, 4, + 42, -10, 30, 17, 10, 31, 28, -10, + 0, 16, 19, 12, 20, -4, 4, 18, + 15, 1, 30, 2, 16, 8, 1, -19, + -24, -3, 6, 23, -52, 32, 8, -39, + ], + [ + -68, 38, -31, 7, -44, 23, -20, -10, + -11, -18, -6, -24, 8, -23, 2, -8, + 21, 27, 20, 10, 24, 6, -9, 53, + 5, 12, 25, 9, 7, 4, -6, 9, + 12, 28, 12, 0, 10, -14, 5, -18, + 13, 11, -2, 9, 19, -14, -8, -31, + -14, 28, -11, 26, 4, -0, -6, 3, + -63, 4, 12, 8, 15, -51, -0, -19, + ], + [ + -36, 19, 6, -2, -43, -23, -18, -98, + -4, 14, 8, -1, -19, -17, -25, -20, + 14, 4, 13, 13, -4, 0, -14, 1, + 9, 23, 28, 38, 23, 16, 14, 2, + 11, 9, 28, 15, 27, 13, 4, 7, + 2, 6, 8, 19, 6, 1, -4, 10, + 5, 2, -1, 6, 17, -1, 8, 17, + -22, -9, -4, 3, 10, 13, -121, -6, + ], + [ + -4, 8, 34, 16, 28, -121, -17, -59, + -21, 3, -20, 14, -45, -20, -15, -6, + 25, -6, 23, -1, 9, -29, 8, -49, + 7, 12, 16, 34, 19, 24, 24, 0, + 3, -12, 7, 20, 28, 3, -2, 16, + -2, -11, 11, 12, 27, 23, 9, -4, + -2, -13, -5, 32, 15, 34, -23, 8, + -49, -10, -14, -1, 2, 12, 26, -30, + ], + [ + -72, 25, -44, -5, 10, 48, 28, -35, + 23, 41, -38, 13, 22, -27, -4, -31, + 32, -27, -30, -10, 14, -12, -49, -19, + -4, 7, 21, 7, -2, 16, -7, -16, + 18, -14, 31, 10, 25, 8, -2, 4, + 6, -16, -6, 10, 2, -15, -4, -29, + 3, 20, -9, 11, -7, 6, 27, 35, + 27, 13, 15, -18, -1, -35, -15, 23, + ], + [ + -50, -12, -8, -29, 37, 29, 13, 7, + -27, 3, 15, -12, 6, -30, 40, 11, + -14, 6, 8, -5, 19, 9, -29, -32, + 13, -1, 7, 10, 10, 6, 14, -17, + 5, 9, 14, 12, 11, 11, -0, -0, + -17, -2, -5, 11, 11, -4, -13, -19, + -11, -2, -11, -9, 15, -18, -1, 7, + -10, 3, -1, 17, -6, -14, 26, -7, + ], + [ + -10, -10, 21, -14, -5, 15, 11, 4, + -5, -1, 10, 27, -20, 16, 18, -5, + -7, 2, 7, 4, 15, 6, 5, -5, + -9, 11, 10, 5, 4, 13, -2, -13, + -6, 2, 10, -3, 1, 6, -0, 3, + -19, -2, -10, -1, -2, -8, -17, 13, + -14, -8, -5, 3, -6, -6, -6, -31, + 0, -15, -15, -6, 9, -1, 15, 17, + ], + [ + -46, -7, 33, 41, 35, 24, -21, -25, + 15, -7, 15, 23, 13, 9, 15, -20, + -15, -5, -3, 0, 7, -4, -8, -8, + 9, 3, 0, 2, 3, -3, 7, -9, + 15, -3, 12, 3, 8, 1, -4, 1, + -7, -14, -9, -5, -6, -11, 5, -10, + -61, -10, -4, -2, -3, 4, -28, -10, + -7, -7, 14, 23, 2, 16, 2, 21, + ], + [ + -29, -11, 30, 39, 6, 36, -46, 9, + -11, 9, 19, 24, 0, 13, 22, -5, + 2, -9, 5, 7, 0, -6, -2, -23, + -6, 13, 9, 11, 4, 2, 1, 1, + -9, 6, 4, 7, 5, 3, -6, -9, + -2, -2, -3, 9, -5, -17, -10, 3, + -29, -17, -11, 2, -5, -5, -2, -16, + -8, -17, -13, 0, -4, 3, -17, 47, + ], + [ + -14, 19, 8, -8, -50, 10, -8, -28, + 12, 17, 2, -3, 9, -14, 1, -1, + -6, 4, 4, 13, 7, -16, -11, -22, + 7, 8, 7, 7, 13, 2, 11, -3, + 1, 11, 16, 3, 16, 7, 11, 4, + -24, -2, -5, 8, -2, -5, -5, -9, + -10, -16, 11, -6, -0, -22, 37, 6, + 34, -24, -9, 6, 3, 1, -11, -7, + ], + [ + 34, 13, 10, -3, -15, -6, -8, -101, + -30, -8, 8, -21, 13, -24, 3, -54, + 2, 6, 3, 19, 23, 18, 2, -22, + -4, 8, 18, 19, 21, 28, 24, 17, + -15, -4, 23, 19, 24, 35, 8, 12, + -5, -11, 5, -2, -1, 1, -16, 8, + 22, 13, -5, -10, -2, -10, 16, -20, + 15, -41, -4, -19, 5, 1, 5, -39, + ], + [ + -64, -34, 26, -13, -38, -25, 6, 18, + -30, 16, 13, -2, -13, 42, -57, -21, + -2, -6, 21, -11, 31, 40, -0, -2, + -24, 27, 5, -2, 5, 31, -43, 9, + 24, 24, 5, 29, 18, 12, 25, -2, + -10, -15, 5, 29, 34, 2, 9, -14, + 8, 1, -19, 37, -19, 13, -33, -70, + -23, 27, -14, -12, -7, 19, 51, -38, + ], + [ + 62, 9, 14, -11, 62, -74, -16, -81, + 14, 5, -28, -34, -1, -8, 35, -38, + 2, 51, -21, -6, -11, 22, -7, -17, + -2, 16, -16, 24, 25, 28, 24, -5, + 9, 4, 20, -2, 38, 12, -13, -27, + -11, -55, 19, 14, -5, 24, 11, -8, + -27, -17, -1, 32, 2, -13, 16, 1, + -18, -10, -3, 11, 20, 15, 7, -60, + ], + [ + -37, -11, 50, -48, 10, -46, -87, -15, + 19, 1, 26, 9, 4, 18, 28, -16, + 1, 12, 3, -4, -17, 10, -11, -11, + -24, 12, -36, -3, -6, 20, -3, -29, + -3, 19, 12, 25, 13, 27, 23, -28, + -15, 28, 11, 18, 34, 22, 8, -9, + -18, -16, -6, 12, 30, -24, 12, -5, + 60, 57, 34, 19, -25, -42, -25, -66, + ], + [ + 27, -38, 7, 24, 15, 27, -28, 37, + -32, 9, 27, 7, 17, -19, -20, 21, + -20, 26, 5, -5, -16, -5, -21, 22, + -7, 6, 8, -32, 18, 21, -13, 6, + -26, -10, 14, -2, -11, -2, 27, -7, + -41, 3, 19, 1, 23, 19, 19, -36, + -18, -12, 15, 4, 0, 18, -26, 22, + -98, 13, 17, 0, 20, 18, -12, -23, + ], + [ + -52, 30, 27, 4, -3, 35, -6, 26, + 5, 2, -23, 3, 7, 19, -49, 37, + 19, 9, -17, 32, 8, 24, 38, -24, + -9, -27, 10, 4, -22, 6, -7, 11, + -8, 14, 14, 29, 1, 12, -7, -5, + -31, -15, -1, 19, 17, 34, -32, -12, + -38, 25, -17, 0, 21, -2, -44, -20, + 9, -20, -38, -5, -6, -11, 22, -20, + ], + [ + -99, -2, 12, 11, 60, 19, -3, 79, + -22, -11, -12, -23, -48, -11, 22, -17, + -65, -28, -25, 27, -38, 2, 12, 46, + 25, 16, 3, 15, 33, -46, -9, 3, + -3, 8, 6, 2, -3, -26, 5, 32, + -11, -19, 2, -29, 0, 27, 32, 33, + -27, -16, 3, 34, 13, -62, -27, 22, + -6, -19, 0, 25, 34, 5, -0, 41, + ], + [ + 47, -47, 12, -27, -2, -58, 30, -16, + -34, -21, 23, -47, -76, 6, -16, 34, + -12, -23, 42, 27, -13, 1, -3, -14, + -23, -27, 14, 54, 43, 2, -50, 45, + -27, 13, 24, 45, 32, -2, -27, 15, + -5, -10, 4, 5, 20, -14, -26, -8, + -30, -22, 9, 27, 5, -3, 25, -12, + 40, -64, -14, 25, 14, 6, -15, 100, + ], + [ + -25, -88, -87, -23, 23, -18, -83, 69, + -66, 5, 10, 25, 28, 12, 1, 27, + 6, 3, 31, 13, -22, -1, 8, 45, + 19, -2, -7, 14, 10, 41, 31, 31, + 19, -2, 1, 67, 31, 43, -22, -6, + -37, -11, -24, 29, 8, 56, 46, -7, + -5, -19, 24, -29, -5, -35, -41, 36, + 9, 44, 19, 20, -46, -62, -51, -83, ], ]; internal static readonly short[][] MiddleGameBishopTable = [ [ - 111, -65, -52, -308, 78, -62, -94, -36, - -9, -62, 41, 7, -86, 13, 22, -37, - 22, 9, 25, 46, 18, -35, -20, -2, - 16, 12, -29, -4, 51, 9, -12, -52, - 33, 24, 7, 46, -9, -20, -3, -16, - 87, 3, 12, 22, -13, -47, -2, -2, - 10, 75, 16, 29, -9, 17, 8, -6, - 90, 23, 32, 41, 9, 4, 15, 5, - ], - [ - -20, -275, -38, 8, 11, -38, -208, -3, - -16, -26, 17, -33, 1, 24, -35, -4, - 31, -8, 52, -26, 28, 5, -20, -9, - 43, 6, -26, 7, 14, 3, 8, -20, - 22, 14, 16, 3, -2, -1, 3, 20, - 53, 27, 20, 16, 11, -13, -5, 9, - 17, 67, 43, 29, 20, 30, 20, -23, - 26, -38, 30, 39, 23, 42, -0, 23, - ], - [ - 74, -15, 14, 1, -110, -96, 88, -96, - -34, -32, 19, -7, 18, -6, -30, -26, - -2, -18, -9, 10, -12, 2, 5, 6, - 38, 2, -18, -13, 19, -23, 7, -27, - 33, 11, -1, 7, -21, 0, -14, 19, - 10, 18, 20, 5, 5, -16, 1, -4, - 1, 62, 28, 21, 9, 24, 6, -6, - 16, 4, -36, 4, 21, 33, -10, 18, - ], - [ - -65, 5, 50, -104, 81, -108, 79, -60, - -11, -28, 24, -81, 82, -38, -47, 18, - 32, 8, -37, 46, -76, -46, -33, 7, - 4, -1, -9, -26, 37, 16, 23, 4, - 13, -18, 8, -2, 7, 17, -8, 29, - 16, -24, 10, 13, 20, 1, -12, -11, - 8, 40, 12, 42, 12, 9, 31, -81, - 42, 15, 11, -21, 21, 52, -27, 30, - ], - [ - -29, -44, -83, -78, -185, -86, -96, 10, - -18, 22, 23, -71, -23, -23, -32, 10, - 14, 4, -24, -13, -17, 26, 13, 10, - 14, 3, -16, -0, 1, -17, 13, -20, - 34, -22, 16, 5, 14, 5, -5, 46, - 16, 3, 16, 19, 15, 14, 21, 15, - 7, 36, 27, 28, 38, 56, 66, 20, - 53, 37, 17, 32, -31, 46, 9, 60, - ], - [ - -25, 80, -54, -116, -138, -54, -53, -36, - -30, 17, -24, -19, 31, -17, -28, 10, - -15, -24, 13, 29, 11, 25, 34, 27, - 28, -5, -45, 2, 23, 4, 11, -16, - 15, -51, 10, -6, 35, 8, -11, 13, - -18, 5, -1, 25, 10, 34, 26, 25, - -33, 13, 27, 10, 36, 36, 68, 18, - -3, 22, 4, 11, 48, -33, 4, 8, - ], - [ - -13, -31, -0, -71, -39, -17, -76, 11, - -19, -4, 26, -14, 16, -12, -36, -11, - 21, 7, 4, -11, -3, 27, -2, 1, - 9, -9, -17, -1, 7, -13, 8, -24, - 5, -14, -11, -8, -10, -2, -13, 34, - 6, -15, -5, -0, -1, -6, 25, 33, - -15, 13, 13, 8, 20, 43, 64, 24, - 6, 17, 13, 7, 17, 70, -60, 27, - ], - [ - -29, -90, -122, -89, -40, 69, -62, -43, - 3, 14, 36, -27, 41, -30, -17, 9, - 9, 15, -10, -19, -5, 65, 22, 31, - -1, -18, -15, 2, 19, -7, 19, -15, - 4, -8, -3, -2, 10, 15, -13, 24, - -2, -25, -1, -0, -3, 3, 27, 33, - -24, 7, 1, 8, 9, 29, 58, 44, - -2, 8, 8, -11, 42, 57, 42, -48, - ], - [ - 28, 65, -139, -164, -297, -90, -23, -195, - 47, -11, 19, -50, -50, -52, -9, 46, - -7, 122, 75, 2, 81, 13, -98, 4, - 13, -0, 48, 5, 41, 18, 19, -43, - 49, 81, 31, 48, 8, 36, 6, 27, - 45, 59, 67, 35, 25, -7, -28, -30, - -39, 73, 57, 29, 24, 49, -4, -97, - -51, -0, 30, -14, 17, 38, 3, 14, - ], - [ - -205, -52, -29, -142, -6, -135, -7, -47, - -15, 29, -21, 19, -57, -10, 4, 41, - 49, 37, 50, 24, 38, 44, -32, 26, - 3, 24, 9, 14, 30, -41, 40, -3, - 13, 11, 19, 5, 0, 6, -11, -36, - 4, -21, 58, 29, 25, 4, -19, -15, - 14, 6, -4, 25, 28, 28, 16, 36, - 5, 31, 17, -34, 3, 34, 7, 36, - ], - [ - 10, -59, -17, -90, 38, -33, -32, -127, - 38, 4, -6, 10, 76, -46, -20, 20, - -2, 39, 19, -35, 19, 25, -33, 20, - 36, -22, 14, 21, 52, -15, 36, 6, - -35, 9, 15, 9, 17, 14, -6, -31, - -34, -1, 15, 34, 45, -11, 18, -27, - -26, -4, 15, 11, 30, 29, 21, 22, - -38, -8, -22, -7, -21, 41, -39, 17, - ], - [ - -118, -63, -11, -41, -57, -20, -27, -14, - 14, 4, 50, -14, -18, 7, -33, 32, - 54, 1, 13, 2, 25, 23, -9, -11, - -2, -5, 17, 38, 18, -3, -24, -38, - 0, -32, 18, 25, 25, -14, -13, -8, - -12, 15, 9, 27, 26, 25, 3, -12, - -3, 9, 33, -3, 61, 6, 23, 27, - 4, 0, 2, -51, 48, 11, -29, -14, - ], - [ - 4, -109, -53, -31, -92, -1, -78, 87, - 15, -19, 7, -4, 39, -1, -41, 35, - 21, 1, 7, -6, 16, 16, -5, -23, - 2, -0, 13, 6, 33, 16, 32, -1, - 10, -29, 5, 22, 20, 16, -36, 19, - -39, -9, 29, 7, 29, 16, 18, 3, - 3, -2, 24, 8, 6, -23, 26, 5, - -18, 16, 12, 3, 15, 19, -37, -22, - ], - [ - 21, -107, -39, 39, -13, -88, -7, -30, - -58, 18, -27, -25, 19, 39, -43, 6, - -29, -5, 28, -5, 17, 38, 43, -1, - 1, -7, -24, 43, 9, 32, 3, 10, - 9, -38, 3, -2, 44, -3, 11, -2, - -3, -1, -21, 21, -4, 33, 46, 12, - -16, -10, 7, 2, 17, 25, 42, -3, - -32, 8, -0, 35, -13, 35, -1, -61, - ], - [ - -46, 30, -58, -84, -16, 85, 5, -31, - -4, 5, 29, -69, 1, -9, -82, 18, - -20, -20, -0, -19, 18, 52, 17, 26, - -19, -15, -32, 5, 50, 32, 19, -3, - -17, -40, -11, 8, 6, 7, 1, 11, - -3, -20, -3, -7, 9, -15, 37, 24, - -56, -3, -11, 14, 8, 39, 60, -14, - -9, 10, 14, 6, 27, 43, 0, 17, - ], - [ - 18, 152, 97, 154, 31, -42, 152, 64, - -83, -99, -52, -4, -90, 122, 15, -47, - -73, 92, 12, 37, 31, -66, -121, -143, - 75, -11, 55, 84, -44, 56, -177, -61, - -5, 33, -4, 28, 16, -60, -58, 57, - -31, 96, 10, -13, 5, -14, -134, 34, - 37, -61, -43, 39, 6, 84, -67, 178, - -141, -62, -72, 74, 49, -91, 109, -134, - ], - [ - -30, -5, 13, 110, -66, -123, 86, 97, - 63, 185, -106, 11, 13, 1, 37, -95, - -87, -54, 35, 30, 91, -122, -98, -111, - -184, -94, 41, 183, 63, 95, 2, 54, - -133, 105, 17, -10, 140, 254, -72, 295, - 57, 179, 4, 3, 55, 7, -98, -31, - 222, 125, 0, -272, -72, -40, 86, -14, - -192, -23, -347, -174, -60, -221, 153, 21, - ], - [ - -169, 118, -2, 90, 116, -88, 46, -21, - -117, 65, -51, 78, 227, 4, 11, -327, - -24, 224, -99, 31, 97, 61, 117, 126, - -158, -22, 146, -4, 37, 59, -106, 121, - 0, -47, 173, -24, 180, -39, 61, 48, - -93, -18, 34, 44, -86, -56, 18, 159, - 17, -172, 72, -29, -52, -179, -238, 54, - 55, -2, -168, -163, -90, -29, -69, 51, - ], - [ - -44, 19, 43, 70, 43, -116, -48, -125, - -25, 25, 199, -104, -3, 302, 82, 32, - 49, 10, 14, -147, 192, 180, 161, -14, - 158, 129, -90, 119, -17, -25, 198, 75, - 10, -17, 75, 100, 10, 25, -95, -134, - -82, 26, 223, 146, 30, 107, -28, -83, - -328, -40, -34, -49, -144, -113, -149, -72, - -66, 31, 84, -57, -47, -238, -219, -217, - ], - [ - -24, 197, -40, 126, -12, -33, 158, -0, - 49, 16, 20, 242, 41, -103, 26, -123, - -238, -96, 122, 154, 11, -18, 115, 117, - -17, -47, 260, 29, 59, -88, 2, -120, - 193, 34, 19, 68, 121, -114, 170, -71, - -29, -40, -71, 130, 43, 5, -58, -82, - -11, -163, -4, -67, -61, -272, -173, -87, - -27, -127, -21, 39, -154, 111, -32, -52, - ], - [ - -13, 156, -30, 7, -155, 263, -1, -9, - -81, -70, -175, -130, -21, -73, 65, 84, - -185, 141, 77, 146, -42, -160, 30, -43, - 110, 117, 93, 52, 33, 166, -9, 56, - -159, -85, 123, 47, -1, 161, 145, -53, - 65, 80, -19, -17, 35, 135, 100, -82, - -119, 43, 31, 61, 0, -159, -129, -141, - 145, -200, -54, -192, -211, -25, 72, 3, - ], - [ - -19, -150, 17, 150, 42, 37, -44, -28, - -152, 125, -69, 58, -9, 5, -18, -98, - -57, 94, -25, 13, 7, 72, 98, 37, - -118, 79, 135, 121, 50, 156, -57, 132, - -215, -16, -16, 28, -28, 59, -11, 175, - -9, 111, -54, -2, 11, 78, -9, 70, - -42, -225, -8, 92, 171, -147, -242, -214, - -65, 82, -97, 119, 37, -219, -123, 126, - ], - [ - -50, -19, 167, -160, 141, 30, 125, -73, - -1, -253, 127, 70, -94, 68, 14, -113, - -21, -177, 31, 83, -84, 87, 65, -108, - -69, 9, 85, 2, 124, 98, 101, 152, - -128, -138, 27, -8, 109, 110, 48, -333, - 129, 8, -116, 36, -38, 98, -49, 122, - 60, -22, -135, -37, 44, 73, -151, 289, - -214, 11, -41, 37, 52, -105, -62, -35, + 82, -57, -35, -182, 59, -44, -72, -27, + -7, -63, 30, 14, -75, 18, 30, -49, + 14, 3, 22, 52, 14, -38, -17, 0, + 12, 10, -29, -5, 45, 7, -12, -45, + 21, 25, 0, 41, -8, -25, -0, -19, + 84, 2, 8, 16, -14, -43, -6, -2, + 14, 73, 12, 21, -18, 6, -4, -6, + 82, 20, 25, 32, -2, -6, 17, -0, + ], + [ + -16, -219, -40, 17, 1, -45, -183, -1, + -11, -21, 14, -22, -2, 29, -25, -14, + 26, -10, 49, -21, 26, 6, -14, -5, + 40, 6, -23, 10, 12, 5, 9, -9, + 14, 16, 12, 2, -2, -2, 7, 17, + 53, 26, 17, 10, 10, -9, -7, 10, + 23, 65, 40, 22, 12, 19, 8, -25, + 23, -49, 27, 31, 11, 30, 2, 17, + ], + [ + 73, 9, 20, 17, -103, -91, 97, -88, + -29, -28, 14, 1, 15, 0, -20, -35, + -7, -21, -9, 16, -13, 3, 9, 10, + 35, 1, -16, -11, 16, -22, 8, -16, + 26, 13, -4, 6, -21, -1, -10, 17, + 11, 18, 16, -1, 5, -13, -2, -5, + 8, 61, 25, 15, 1, 14, -7, -6, + 13, 0, -47, -3, 10, 21, -8, 12, + ], + [ + -55, 6, 33, -74, 51, -97, 89, -44, + -5, -23, 18, -81, 79, -34, -37, 13, + 27, 1, -37, 51, -78, -43, -26, 9, + -1, -2, -8, -23, 36, 16, 24, 17, + 7, -18, 6, -2, 7, 16, -5, 28, + 18, -24, 7, 9, 19, 5, -14, -9, + 17, 41, 10, 37, 7, -1, 21, -83, + 40, 12, 10, -18, 10, 43, -23, 26, + ], + [ + -37, -33, -81, -77, -170, -78, -76, 17, + -14, 26, 18, -66, -28, -16, -22, 1, + 11, 1, -24, -8, -18, 26, 17, 13, + 9, 4, -13, 0, -2, -15, 15, -9, + 26, -20, 13, 4, 14, 4, -2, 44, + 16, 3, 13, 14, 15, 17, 18, 16, + 15, 36, 24, 22, 31, 45, 55, 19, + 50, 34, 13, 26, -35, 34, 12, 55, + ], + [ + -28, 83, -56, -105, -127, -33, -36, -26, + -27, 22, -32, -10, 25, -12, -19, 0, + -18, -28, 12, 33, 11, 23, 38, 30, + 24, -6, -44, 3, 19, 6, 13, -5, + 8, -50, 7, -7, 35, 6, -8, 10, + -18, 4, -5, 21, 9, 38, 22, 26, + -24, 12, 24, 3, 28, 25, 57, 19, + -5, 19, 0, 5, 37, -36, 7, 5, + ], + [ + -14, -17, 6, -66, -35, -9, -59, 19, + -16, 1, 21, -7, 12, -6, -27, -20, + 18, 5, 3, -7, -5, 27, 2, 5, + 5, -9, -15, 0, 4, -11, 10, -13, + -2, -11, -13, -9, -10, -3, -10, 32, + 7, -16, -8, -5, -1, -3, 22, 34, + -7, 13, 10, 2, 12, 33, 53, 24, + 4, 14, 9, 1, 6, 60, -63, 22, + ], + [ + -31, -73, -114, -83, -39, 77, -35, -26, + 6, 17, 30, -19, 34, -23, -8, -2, + 5, 11, -11, -14, -6, 65, 25, 35, + -6, -20, -16, 4, 17, -6, 20, -5, + -4, -5, -6, -5, 10, 14, -10, 21, + -2, -26, -4, -6, -3, 5, 24, 32, + -16, 6, -2, 2, 2, 18, 46, 43, + -4, 4, 4, -17, 31, 47, 44, -56, + ], + [ + 15, 63, -103, -137, -241, -77, -13, -158, + 46, -7, 10, -44, -59, -50, -9, 35, + -13, 115, 74, 4, 75, 11, -98, 5, + 8, -3, 47, 4, 37, 15, 16, -31, + 41, 81, 24, 43, 7, 34, 8, 22, + 43, 57, 64, 29, 24, -4, -30, -31, + -31, 70, 52, 24, 15, 38, -16, -98, + -51, -5, 28, -20, 5, 27, 5, 9, + ], + [ + -192, -40, -34, -127, -4, -125, -8, -30, + -9, 32, -28, 20, -61, -7, 11, 29, + 48, 31, 43, 26, 34, 43, -31, 30, + -2, 24, 9, 15, 27, -40, 42, 11, + 8, 14, 17, 2, -1, 4, -7, -38, + 5, -22, 56, 26, 26, 8, -20, -11, + 19, 7, -6, 20, 21, 17, 6, 38, + 6, 32, 16, -39, -7, 25, 9, 31, + ], + [ + 8, -50, -10, -82, 37, -17, -20, -117, + 43, 6, -13, 13, 67, -46, -8, 6, + -6, 33, 17, -30, 17, 27, -29, 23, + 31, -21, 17, 23, 51, -12, 38, 14, + -41, 11, 12, 8, 17, 13, -2, -31, + -33, -0, 13, 29, 46, -7, 16, -24, + -16, -4, 12, 5, 23, 22, 11, 23, + -39, -12, -24, -12, -30, 31, -37, 13, + ], + [ + -124, -42, -4, -40, -54, -13, -10, -6, + 19, 9, 46, -10, -23, 12, -25, 23, + 51, -2, 13, 7, 22, 24, -8, -6, + -8, -5, 18, 41, 17, -2, -22, -28, + -8, -30, 15, 25, 27, -14, -10, -9, + -12, 15, 7, 22, 27, 29, 0, -13, + 3, 9, 31, -9, 55, -3, 11, 27, + 2, -4, -2, -58, 36, -1, -26, -17, + ], + [ + -3, -98, -37, -31, -93, 7, -61, 88, + 20, -14, -1, 3, 36, 1, -31, 29, + 15, -4, 5, -2, 14, 19, -1, -18, + -1, -0, 14, 9, 32, 16, 33, 11, + 4, -27, 2, 22, 22, 15, -30, 17, + -40, -10, 27, 3, 32, 20, 18, 4, + 12, -3, 22, 2, -1, -32, 16, 4, + -19, 11, 8, -3, 5, 8, -36, -28, + ], + [ + 20, -96, -34, 46, -0, -81, 1, -31, + -55, 23, -31, -24, 12, 43, -35, -1, + -32, -7, 27, -1, 15, 38, 46, 2, + -1, -8, -21, 45, 7, 35, 5, 21, + 3, -36, 0, -4, 44, -5, 16, -4, + -2, -1, -23, 17, -4, 38, 45, 14, + -8, -10, 4, -4, 9, 15, 32, -2, + -34, 5, -3, 29, -23, 25, 1, -64, + ], + [ + -52, 44, -55, -79, -12, 89, 14, -34, + -1, 7, 24, -63, -2, -3, -67, 10, + -22, -21, -1, -15, 16, 50, 21, 30, + -23, -16, -29, 7, 48, 35, 21, 8, + -23, -38, -14, 7, 7, 7, 5, 9, + -1, -20, -6, -10, 9, -11, 37, 26, + -46, -3, -13, 8, 1, 30, 48, -10, + -9, 7, 11, -0, 15, 33, 4, 12, + ], + [ + 7, 86, 64, 110, 28, -35, 74, 44, + -66, -95, -37, 6, -32, 87, 26, -41, + -56, 98, 14, 42, 29, -49, -101, -104, + 66, -6, 57, 79, -35, 60, -142, -19, + -8, 37, -2, 31, 6, -60, -54, 31, + -0, 96, 13, -15, 23, -7, -115, -8, + 27, -61, -33, 33, 10, 77, -77, 105, + -126, -27, -64, 56, 53, -110, 105, -94, + ], + [ + -25, 2, 9, 54, -32, -52, 34, 24, + 18, 105, -73, -3, 13, 7, 10, -52, + -50, -22, 44, 28, 73, -77, -52, -87, + -92, -51, 42, 160, 66, 75, -7, 18, + -84, 78, 25, -11, 100, 171, -47, 128, + 28, 143, 3, -6, 33, 4, -59, -39, + 94, 67, 6, -138, -66, -28, 55, -13, + -78, -12, -211, -89, -22, -192, 56, -4, + ], + [ + -48, 63, -3, 33, 47, -72, 4, -13, + -54, 33, -43, 37, 118, 5, 9, -154, + -26, 154, -81, 48, 84, 39, 64, 62, + -78, -6, 108, 8, 64, 67, -61, 44, + 4, -35, 165, 4, 167, -23, 41, 20, + -38, -5, 50, 32, -86, -46, 19, 74, + 3, -158, 52, -54, -36, -105, -139, 13, + 18, -5, -129, -110, -65, -49, -37, 9, + ], + [ + -33, 2, 25, 20, 25, -63, -34, -57, + -35, 9, 88, -81, -5, 147, 30, -10, + -0, 9, 31, -118, 161, 133, 93, -1, + 56, 103, -50, 76, 6, -6, 120, 21, + -5, 8, 63, 117, 16, 33, -60, -95, + -67, -3, 189, 126, 23, 73, -3, -35, + -147, -65, -17, -34, -97, -88, -119, -25, + -30, -0, 24, -26, -35, -201, -93, -93, + ], + [ + -24, 75, -29, 48, -24, -1, 48, -11, + -3, 3, 18, 120, -5, -56, 18, -44, + -94, -63, 85, 137, -5, -1, 68, 64, + -26, -13, 220, 51, 44, -64, 7, -68, + 91, 36, 21, 83, 133, -54, 86, -28, + -55, -26, -42, 135, 36, -1, -44, -49, + -39, -141, -16, -71, -24, -146, -104, -50, + -25, -70, -58, 11, -87, 83, -23, -39, + ], + [ + -16, 52, -18, -8, -92, 103, -11, -14, + -71, -43, -96, -74, -23, -60, 26, 15, + -93, 97, 64, 132, -30, -121, 28, -38, + 47, 96, 95, 61, 30, 103, -8, 28, + -97, -67, 117, 61, 7, 138, 82, -26, + 18, 77, -23, -6, 35, 95, 76, -47, + -53, 38, 9, 41, 3, -84, -92, -62, + 58, -97, -63, -110, -141, -57, 15, -8, + ], + [ + -12, -72, -2, 55, 11, 11, -23, -20, + -96, 58, -52, 10, 3, -4, -7, -52, + -28, 69, -4, 25, 14, 67, 62, 27, + -66, 58, 145, 85, 58, 155, -43, 78, + -105, -3, -32, 50, -27, 55, -28, 48, + -8, 81, -47, -5, 6, 40, -21, 35, + -21, -204, -9, 58, 141, -84, -151, -91, + -40, 43, -84, 46, 4, -145, -56, 40, + ], + [ + -18, -7, 58, -61, 68, 5, 44, -48, + -8, -114, 54, 26, -44, 42, 21, -44, + -13, -105, 13, 46, -35, 68, 53, -66, + -48, -14, 73, 8, 102, 80, 55, 34, + -44, -71, 26, -3, 86, 81, 53, -133, + 68, 1, -84, 28, -17, 53, -39, 52, + 30, -27, -80, -38, 17, 37, -86, 108, + -90, -5, -65, -1, 19, -55, -27, -15, ], ]; internal static readonly short[][] EndGameBishopTable = [ [ - -25, -12, 40, 94, 7, -8, 31, 15, - -27, 29, -24, -4, 3, -3, -58, 12, - 15, 3, -9, -10, -11, 17, 15, 1, - -1, 11, 11, 22, -22, -2, 6, 27, - 2, 18, 29, -17, 19, 16, 8, -33, - -26, 32, 4, -11, -8, 26, -40, -5, - 17, -17, 17, -31, 25, -34, -2, 25, - -62, -9, 6, -14, -11, -12, -8, -50, - ], - [ - 34, 104, -21, -75, -19, -11, 83, -34, - 15, 31, -24, 17, -27, -26, 16, 8, - 0, 41, -13, 15, -4, 12, 26, 9, - -29, 12, 19, 6, 21, -7, 5, 11, - 9, 6, 8, 18, 10, -5, -9, -12, - -5, -24, 4, 15, 4, 2, 4, -23, - -10, 2, 19, -9, -4, -18, -25, -11, - -6, -113, 21, -10, -10, -8, 7, -24, - ], - [ - -91, 16, -40, -6, 22, -23, -68, 74, - 18, 14, -39, -42, -3, 3, 26, 10, - 17, 25, 19, -8, 24, 15, 6, 19, - -8, -12, 8, 9, 6, 33, 7, -8, - -42, -6, -9, 21, 10, 13, 0, -6, - 38, -8, 10, 10, 21, 12, 9, -7, - -3, 7, 1, 35, 15, 1, 3, 13, - -3, -0, -145, 11, -24, 10, 22, -34, - ], - [ - 6, -17, -22, -33, 16, 39, -53, 46, - -18, 21, 20, 13, 1, 5, -6, 7, - -18, -9, 24, -12, 20, 18, 27, 13, - 5, -17, 33, 10, -13, 19, -4, 17, - 8, 10, 7, 3, 17, -5, 4, -26, - -43, 3, 22, 8, -0, 7, 2, -15, - -41, -13, 12, 6, 24, 7, -17, -23, - 9, -13, 7, -64, 4, -28, 28, -36, - ], - [ - 20, -6, 1, 20, 52, 30, 40, -27, - -30, -29, -6, 48, -11, 11, 4, -11, - -5, 6, 19, 17, 11, -7, -1, -12, - 10, 11, -8, 35, 0, 5, -16, 5, - -27, 10, -12, 10, 13, 5, 11, -28, - -18, 8, 21, 11, 9, -7, 8, 7, - 3, -5, 11, 10, -0, -6, -13, -20, - -37, -1, -14, -4, -94, -4, -5, -18, - ], - [ - -6, -26, -1, 20, 33, -16, 9, -84, - -9, -23, 14, 1, -9, -9, 3, -13, - -5, 33, 1, -18, 22, -4, 13, -7, - 1, 19, 22, 6, -2, 16, 10, 20, - -22, 30, 16, 2, 6, 6, 4, 4, - 7, -1, 5, 17, 17, -10, -7, -9, - 8, -5, -12, 12, 26, 8, -12, -29, - -22, 5, 9, 4, -1, -73, 3, -2, - ], - [ - 3, -9, -12, 4, -4, -6, 20, -33, - -1, -1, -5, -10, -6, -2, 5, -15, - -7, 9, 12, 4, 10, 13, 17, 25, - 6, 10, 14, 20, 8, 13, -1, 21, - 8, 1, 14, 17, 17, 7, 6, -20, - 3, 7, 8, 14, 14, 11, -13, 4, - -5, -8, -7, 0, 8, 14, -4, -0, - -14, 0, -7, -3, -4, 5, -144, -35, - ], - [ - 43, 43, 4, 20, 12, -66, 25, -22, - -13, -5, 6, -4, -19, -6, 3, 14, - -4, 4, 11, 6, 9, -41, 3, 11, - -12, 15, 3, 19, 7, 17, -12, 2, - -14, -16, 14, 5, 22, -15, 22, -13, - -7, 10, 9, 16, 19, 28, -3, -7, - 4, -10, -23, 11, 9, 12, 7, -14, - -9, -11, -7, -29, -22, 2, 10, -73, - ], - [ - 44, -25, 28, 39, 44, 4, 13, 37, - 1, 7, 30, 2, 3, -12, -10, -20, - 28, -35, -3, 15, -15, 12, 50, 10, - 3, 6, 2, 17, 5, 9, -2, -8, - -0, -1, -7, -1, 5, -2, -2, 7, - -12, -10, -10, -7, -5, 3, -4, -17, - -1, -49, -31, -8, -1, -28, -2, -7, - -3, -3, -11, -12, -28, -10, 6, -26, - ], - [ - 17, 25, 2, 26, -4, 13, 12, -3, - 5, -10, 11, 0, 8, -9, -5, -6, - 10, 5, -8, 17, -9, -6, 15, -14, - 6, -8, 6, 6, -3, 17, -3, -5, - -1, -2, 8, 9, 5, 2, -5, 18, - 8, 3, -9, -1, -2, -1, 4, -22, - 24, -8, -4, -5, -7, -2, -13, -31, - -34, -5, -8, 5, 9, -11, 2, -32, - ], - [ - 3, 12, 8, -6, -5, -0, -8, 18, - -7, 3, 5, -10, -10, 21, 15, -4, - 12, -5, 7, 10, 1, 7, 4, -6, - -12, 4, -12, 1, -11, 9, -13, -2, - 5, -2, 4, 6, 3, -1, -6, 2, - 7, 8, -3, -4, -10, 5, -20, -3, - 6, -12, -2, -4, -11, -14, -13, -15, - 15, 7, 3, 2, 0, 2, 29, -12, - ], - [ - 33, 17, -10, 6, -9, -9, -4, -10, - 1, -1, -4, -6, -4, 1, 17, -9, - -8, 2, 5, 7, -2, 12, 10, 16, - 0, 3, -8, -4, 4, 0, 10, 9, - -10, 10, 2, 3, -3, 7, 4, 2, - 7, -4, -3, -1, -1, -10, -2, -10, - -12, -11, -10, 6, -6, 10, -17, -18, - -4, 11, 11, 18, -16, 9, -25, 1, - ], - [ - -1, 27, 4, -1, 16, 4, -1, -24, - -24, 3, 2, -10, -2, -4, 20, 5, - -5, 1, -1, 2, 13, 2, 19, 12, - 0, 1, -1, 4, 2, 15, -11, 5, - 2, 8, 3, 2, 10, 0, 12, -15, - 10, 2, -9, 2, -9, -3, 4, -6, - -11, -11, -10, -3, 0, 0, -16, -17, - 3, -3, -9, -1, -0, 8, 11, -22, - ], - [ - -2, 23, 10, -7, 2, 23, 3, 40, - 1, -9, 15, 5, -10, -4, 5, -5, - -2, -4, -3, -3, 11, 3, -5, 18, - -8, -3, 9, -7, 9, 5, 4, -8, - -13, 9, 2, 12, 3, 9, -0, 14, - -5, 0, 3, 2, 5, -0, -13, 6, - -1, -7, -11, -6, -10, -8, -20, -38, - -2, -3, -1, -19, 15, -5, -11, -11, - ], - [ - 6, 5, 4, 20, -5, -16, -23, -31, - 5, -22, 6, 14, 16, -27, 37, -0, - -10, 1, 8, 15, 22, 1, 2, 23, - 9, 2, 13, 14, -1, 1, 12, 23, - -0, 12, 7, 9, 11, 20, 8, 6, - -9, -5, 3, 9, 7, 12, 11, 4, - 1, -13, -3, -18, -10, -8, -21, 2, - -15, -13, -22, -8, -15, -17, -31, -40, - ], - [ - -3, -86, -30, -25, 32, -3, -50, 20, - 51, 39, -10, -17, 11, -20, -10, -13, - 41, 5, 20, 1, -4, 37, 5, 39, - 11, 22, 12, -4, 15, -15, 34, 31, - 3, -34, 16, -15, -25, 17, 17, 5, - -3, -20, -4, -3, 3, -1, 18, -31, - -13, 3, -11, -22, -5, -30, -11, -57, - 39, 16, 13, -14, -44, 24, -36, 67, - ], - [ - 22, -29, -5, 21, -20, -30, -23, -5, - 7, -13, 26, 6, 19, -7, -43, -28, - 26, 39, -9, -1, -27, 22, 6, 13, - 40, 75, 6, -28, -21, -21, -13, -12, - 17, 3, 5, 11, -20, -34, -13, -21, - -24, -29, -8, -5, -13, -8, 38, -4, - -25, -30, -15, 22, 15, -15, 6, -6, - -2, 22, 57, 38, 25, 51, -52, 22, - ], - [ - 41, -5, 10, -12, -19, -14, -40, 4, - 62, -19, 10, -21, -48, -32, 2, 38, - 25, -43, 32, 5, -6, -27, -34, -24, - 10, 28, -15, 13, -25, -31, 7, -34, - 14, 14, -23, 2, -26, -2, -11, 39, - 17, 25, -14, -10, 29, 7, 23, -26, - -8, 21, -28, 15, -11, 14, 57, -11, - -40, 2, 28, 38, 27, -22, 1, 24, - ], - [ - 25, 18, -8, -8, -16, 17, -15, -20, - -32, -31, -17, -1, -2, -55, -6, -24, - -8, 5, -8, 46, -33, -37, -47, 20, - 3, -14, 33, -29, 13, -7, -24, -18, - 27, 9, -13, -12, -12, 11, 7, 71, - 3, -0, -30, -37, 11, -5, 13, 41, - 57, 24, -10, -1, 1, 19, 10, 21, - 10, -21, 14, 3, -6, 18, 14, 46, - ], - [ - -8, -36, -6, -33, -25, 15, -1, 11, - -28, 9, 3, -61, -30, 17, -4, 33, - 47, -22, -14, -35, 20, -2, 2, -10, - -8, 7, -45, -7, -19, 39, 11, 26, - -11, 8, 6, -14, -28, 25, 0, 48, - 20, 2, -10, -25, -15, 21, 3, 43, - 8, 26, -22, 22, 0, 32, 23, 3, - 20, -10, 11, -0, 28, -16, -11, -33, - ], - [ - 7, -31, -10, -16, -3, -16, -23, 6, - 3, -3, 36, 0, -4, -0, 2, -6, - 25, -29, -25, -20, 14, 50, 12, 23, - -31, -29, -16, -5, 9, -13, 23, 15, - 52, 22, -6, 2, 1, -24, -10, 0, - -14, 6, 5, 3, -10, -23, 20, 34, - 55, -20, -12, -6, -16, 39, 18, -5, - -49, 18, 8, 7, 26, -15, -29, -28, - ], - [ - -10, -2, -23, -11, 22, -7, 32, -23, - -17, -22, -7, -27, -6, -8, 4, 29, - 14, -29, -10, -7, 17, 5, 13, -3, - 23, -16, -33, -24, 3, -3, 25, 6, - 14, 7, 20, -15, 17, -9, 19, -7, - 22, -10, 22, 9, -8, -2, -29, 4, - 9, 55, 14, -23, -46, -20, 36, 16, - 1, -17, 24, -36, -11, 40, 1, -1, - ], - [ - -35, -1, -48, 32, -39, 5, -6, 18, - -17, 25, -25, 2, -32, 60, 15, 28, - 14, -7, -1, -12, 9, 48, 29, -4, - -14, 4, -1, 9, -7, 13, 4, -17, - 12, 1, -22, 1, -1, -12, 8, 54, - -28, 31, -4, 19, 17, -5, 1, -48, - 2, -10, 15, -14, -29, -18, 0, -17, - 28, -21, 15, -10, 3, 14, -26, -4, + -16, -10, 38, 56, 11, -7, 29, 16, + -25, 30, -21, -5, 2, -3, -63, 16, + 19, 5, -8, -12, -11, 19, 14, -3, + 1, 10, 9, 21, -20, -2, 8, 26, + 6, 17, 29, -17, 17, 17, 6, -31, + -25, 31, 4, -11, -9, 24, -38, -5, + 17, -17, 18, -28, 25, -31, 1, 22, + -56, -8, 10, -13, -11, -7, -8, -51, + ], + [ + 28, 82, -20, -70, -15, 0, 72, -28, + 14, 29, -28, 14, -31, -28, 10, 10, + 4, 38, -12, 12, -4, 11, 21, 8, + -27, 12, 17, 3, 20, -8, 5, 8, + 11, 4, 9, 16, 10, -6, -9, -13, + -5, -25, 3, 14, 4, 1, 4, -23, + -10, 2, 19, -8, -1, -15, -21, -8, + -5, -75, 18, -9, -8, -4, 8, -21, + ], + [ + -90, 13, -39, -7, 26, -20, -68, 73, + 17, 12, -43, -41, -3, 0, 19, 12, + 18, 24, 18, -8, 23, 13, 2, 18, + -7, -11, 7, 10, 5, 32, 5, -8, + -41, -8, -10, 18, 9, 11, -1, -5, + 32, -11, 7, 9, 19, 10, 7, -5, + -5, 5, 2, 34, 17, 2, 7, 12, + -3, 0, -106, 10, -21, 14, 21, -33, + ], + [ + -1, -13, -18, -36, 20, 38, -52, 42, + -16, 19, 16, 19, 0, 5, -12, 5, + -13, -3, 23, -17, 20, 14, 22, 14, + 8, -15, 31, 8, -14, 15, -4, 16, + 10, 11, 6, 2, 14, -6, 3, -25, + -42, 1, 19, 5, -0, 5, 1, -15, + -43, -13, 12, 6, 22, 7, -15, -20, + 11, -12, 6, -41, 5, -26, 26, -37, + ], + [ + 29, -3, 1, 22, 44, 28, 37, -26, + -28, -31, -9, 50, -6, 7, -0, -9, + -5, 6, 18, 15, 11, -7, -3, -12, + 13, 9, -8, 33, -0, 3, -18, 4, + -23, 8, -13, 8, 11, 4, 10, -28, + -17, 6, 20, 10, 7, -9, 7, 4, + -2, -3, 10, 10, 1, -5, -10, -20, + -34, -1, -13, -6, -74, -1, -6, -15, + ], + [ + -2, -24, 2, 18, 32, -22, 6, -82, + -8, -25, 11, 4, -7, -10, 1, -11, + -4, 34, 0, -19, 20, -5, 10, -6, + 2, 19, 22, 5, -1, 15, 9, 18, + -19, 30, 16, 2, 5, 5, 2, 4, + 7, -2, 7, 18, 16, -12, -7, -9, + 5, -3, -11, 14, 27, 10, -9, -30, + -19, 4, 9, 5, 1, -64, 1, -6, + ], + [ + 5, -9, -12, 5, -3, -8, 18, -33, + 1, -2, -8, -10, -4, -4, 1, -14, + -6, 10, 12, 2, 10, 12, 15, 26, + 7, 9, 13, 20, 8, 12, -2, 19, + 9, 0, 14, 16, 17, 6, 4, -19, + 3, 7, 9, 15, 12, 9, -14, 3, + -7, -7, -5, 2, 10, 17, -2, 0, + -13, 1, -6, -2, -1, 6, -140, -35, + ], + [ + 46, 42, 3, 22, 15, -66, 14, -29, + -10, -6, 4, -3, -15, -9, -1, 16, + -4, 6, 10, 3, 8, -41, 1, 9, + -10, 14, 4, 17, 7, 15, -12, 2, + -13, -18, 14, 6, 20, -16, 19, -13, + -6, 9, 8, 18, 18, 27, -4, -6, + 3, -8, -20, 12, 11, 14, 10, -14, + -10, -11, -7, -28, -21, 4, 8, -62, + ], + [ + 48, -22, 23, 37, 34, 3, 13, 31, + 1, 5, 29, 5, 5, -11, -12, -18, + 29, -34, -2, 14, -13, 11, 49, 12, + 4, 6, 2, 16, 5, 10, -2, -10, + 1, -3, -6, -2, 5, -3, -4, 9, + -10, -12, -10, -6, -6, 1, -5, -15, + -2, -48, -29, -7, 1, -26, 0, -8, + -2, -2, -12, -11, -25, -7, 4, -27, + ], + [ + 17, 25, 4, 25, -3, 12, 14, -3, + 5, -10, 8, 4, 10, -9, -9, -4, + 10, 5, -7, 15, -9, -6, 15, -14, + 7, -9, 4, 6, -4, 17, -5, -8, + -1, -3, 7, 9, 4, 1, -6, 18, + 9, 3, -10, -0, -4, -3, 2, -23, + 22, -8, -3, -4, -6, -2, -10, -31, + -34, -6, -8, 5, 11, -8, 1, -30, + ], + [ + 3, 11, 10, -4, -3, -2, -8, 17, + -8, 2, 4, -7, -7, 21, 11, -1, + 13, -5, 8, 10, 1, 6, 3, -6, + -10, 3, -13, -1, -12, 8, -14, -3, + 6, -3, 4, 6, 2, -2, -6, 0, + 7, 7, -3, -3, -10, 4, -21, -3, + 4, -11, -2, -2, -9, -14, -10, -15, + 15, 7, 3, 3, 2, 4, 29, -11, + ], + [ + 34, 15, -9, 9, -9, -8, -7, -11, + 1, -3, -8, -3, -2, -1, 14, -6, + -7, 2, 4, 6, -2, 12, 10, 15, + 2, 2, -8, -5, 2, -1, 9, 8, + -8, 9, 2, 3, -4, 6, 3, 3, + 7, -5, -3, -1, -2, -11, -3, -9, + -13, -11, -9, 8, -5, 12, -14, -19, + -4, 10, 10, 19, -14, 12, -24, 2, + ], + [ + 3, 27, 3, 1, 17, 3, -3, -23, + -25, 2, -1, -7, -0, -6, 15, 6, + -4, 1, 0, 1, 13, 1, 18, 11, + 1, 0, -2, 4, 1, 15, -12, 3, + 4, 7, 2, 1, 9, -1, 11, -15, + 10, 1, -10, 2, -10, -4, 4, -8, + -13, -10, -9, -2, 1, 2, -14, -19, + 3, -3, -9, 1, 1, 10, 12, -20, + ], + [ + -1, 23, 10, -6, 1, 24, 2, 41, + 2, -10, 13, 8, -7, -6, 1, -5, + -2, -5, -3, -3, 12, 3, -6, 18, + -8, -3, 8, -8, 9, 3, 4, -10, + -11, 9, 1, 11, 2, 8, -2, 15, + -6, -1, 3, 2, 4, -1, -14, 6, + -3, -7, -9, -4, -9, -7, -17, -39, + -2, -3, -2, -18, 16, -2, -10, -10, + ], + [ + 9, 4, 6, 23, -6, -15, -23, -27, + 5, -22, 3, 18, 17, -28, 31, 0, + -10, -0, 8, 15, 24, 1, 2, 23, + 11, 2, 12, 13, -2, -1, 10, 22, + 1, 12, 8, 9, 10, 19, 7, 6, + -9, -5, 3, 9, 6, 10, 11, 3, + 0, -12, -3, -17, -9, -7, -18, -3, + -14, -15, -23, -5, -13, -15, -32, -40, + ], + [ + 0, -73, -20, -13, 36, -4, -38, 23, + 48, 36, -17, -19, 2, -16, -13, -16, + 36, 2, 20, -1, -4, 34, 2, 31, + 13, 20, 10, -4, 13, -14, 26, 25, + 5, -33, 15, -17, -24, 16, 16, 10, + -7, -21, -6, -3, -2, -2, 12, -17, + -10, 2, -13, -22, -6, -27, -6, -40, + 35, 11, 9, -12, -45, 33, -30, 55, + ], + [ + 22, -29, -4, 35, -25, -41, -14, 5, + 19, 2, 15, 13, 19, -7, -41, -36, + 19, 31, -9, -0, -26, 11, -3, 7, + 25, 70, 8, -24, -23, -19, -14, -8, + 8, 8, 6, 11, -17, -22, -18, 10, + -14, -21, -7, -4, -10, -8, 29, -1, + -1, -22, -16, 2, 14, -17, 11, -5, + -24, 20, 32, 24, 19, 48, -34, 25, + ], + [ + 23, 7, 10, -2, -5, -21, -37, 6, + 52, -15, 5, -9, -30, -36, -3, 11, + 24, -28, 31, 1, -3, -24, -28, -16, + -2, 25, -7, 12, -31, -31, -2, -23, + 14, 11, -20, -1, -24, -6, -10, 47, + 9, 24, -16, -8, 30, 5, 22, -15, + -7, 19, -25, 17, -11, -0, 43, -6, + -34, 3, 22, 28, 26, -18, -3, 31, + ], + [ + 23, 22, -5, 1, -14, 7, -16, -27, + -29, -28, -3, -2, -1, -35, -1, -18, + -3, 7, -10, 41, -27, -29, -36, 18, + 22, -9, 28, -19, 9, -11, -12, -12, + 30, 5, -10, -15, -11, 8, 1, 64, + 1, 5, -24, -33, 11, -0, 9, 33, + 26, 26, -11, -3, -5, 15, 1, 14, + 1, -19, 25, -0, -7, 13, -7, 27, + ], + [ + -7, -20, -8, -23, -24, 11, 20, 15, + -21, 11, -2, -37, -25, 10, -6, 24, + 26, -29, -8, -31, 23, -5, 11, -1, + -8, 2, -40, -11, -16, 38, 9, 18, + 3, 7, 5, -17, -31, 17, 13, 45, + 21, -1, -16, -26, -14, 23, 1, 38, + 11, 20, -23, 21, -5, 15, 10, -7, + 20, -14, 19, 4, 17, -11, -9, -32, + ], + [ + 9, -17, -11, -13, -14, 4, -22, 6, + 1, -9, 19, -5, -2, -4, 3, 4, + 10, -22, -23, -19, 14, 44, 14, 23, + -23, -26, -17, -7, 10, -1, 22, 23, + 42, 19, -6, 1, -2, -19, 3, -1, + -8, 6, 6, 2, -10, -16, 27, 29, + 47, -18, -10, -3, -15, 26, 14, -16, + -36, 5, 10, -5, 15, -12, -20, -24, + ], + [ + -11, -13, -19, 0, 28, -4, 31, -25, + -28, -11, -14, -19, -7, -7, -1, 20, + 10, -26, -14, -10, 16, 6, 22, 3, + 14, -13, -36, -19, 2, -1, 24, 21, + -5, 4, 21, -19, 16, -7, 23, 10, + 22, -5, 21, 8, -7, 6, -28, 13, + 8, 51, 16, -17, -39, -28, 16, -7, + -1, -12, 23, -21, -9, 26, -9, 12, + ], + [ + -40, 1, -27, 19, -22, 11, 9, 13, + -16, 0, -17, 12, -42, 65, 8, 14, + 9, -17, 2, -5, -1, 50, 35, -15, + -19, 7, 1, 6, -3, 14, 14, 6, + -2, -13, -20, -1, 4, -7, 7, 10, + -19, 31, -10, 19, 11, 4, 1, -28, + 6, -11, 5, -14, -25, -12, -11, 18, + 4, -19, 18, -4, 9, 3, -31, 2, ], ]; internal static readonly short[][] MiddleGameRookTable = [ [ - -95, -133, 15, -36, -73, -82, -66, -7, - 77, 102, 61, -34, -19, 43, -27, -25, - -75, 21, 21, -12, 21, -47, -81, -11, - 40, 93, 46, 39, 27, 5, -3, -10, - 0, 97, -3, 37, 9, 24, -50, -15, - -47, 25, 9, 22, 13, -13, -41, -78, - 45, 21, 33, -3, 2, 31, -9, -13, - -25, 27, 29, 36, 32, 2, 23, 5, - ], - [ - -18, 1, -77, 14, -39, -63, -4, -62, - 52, 51, -2, -26, -20, 19, -33, -28, - 50, -30, 9, 6, 25, -16, 24, 16, - -3, 65, -1, 27, 10, 16, 6, -8, - 3, 41, 1, 13, 1, 5, -21, 17, - -37, 23, -7, 7, 29, -5, -41, 7, - -91, 15, 3, 18, 23, 11, 7, 14, - -50, -82, 18, 25, 29, 0, 39, 20, - ], - [ - 38, -43, 30, 0, 33, -14, -16, -67, - -42, 10, 7, -60, -22, 26, -63, -55, - 14, 33, 16, -4, 22, 18, -8, -3, - -0, -3, 20, 10, 29, 3, -4, -0, - 9, 37, 13, 25, -2, -18, -9, -1, - -22, 4, 37, 14, -0, 4, -24, -22, - -37, 7, -0, 18, 23, 7, 10, 9, - -43, 10, -50, 21, 32, 2, 32, 6, - ], - [ - -3, -146, -95, 38, -113, -97, -67, -50, - 5, 0, 15, -28, -4, -47, -58, -55, - 23, -9, -42, 66, -23, -6, -46, -4, - 45, 29, 62, -3, -9, 55, -38, -13, - 36, 32, 19, 52, 13, 14, 4, 38, - 37, 13, -14, 20, 49, 44, -47, 17, - 5, 22, 35, -8, 20, 77, -13, 27, - -16, 9, 38, -26, 40, 12, 49, 14, - ], - [ - -19, -11, -30, -12, 14, -37, 5, -22, - -47, -65, -64, -99, -31, -44, -60, -12, - -16, 7, -57, -17, -6, -18, -35, -17, - -15, 30, -35, -23, 26, 58, 6, 4, - 16, 28, -10, -11, 2, 24, -3, 22, - 20, 47, 5, 10, 60, 15, -12, 20, - 26, 30, 27, 32, 48, 15, 32, 35, - 29, 37, 29, 31, -65, 4, 44, 56, - ], - [ - -31, -45, -85, -2, -63, -157, -85, 2, - -26, -31, -28, -39, -10, 54, 24, 21, - -20, 12, -58, 5, 20, -44, 25, -11, - -22, 24, -25, 25, -12, 59, 17, 17, - -2, -21, 21, 35, 28, 37, 11, -6, - 7, 21, -26, 36, 19, 32, 23, 36, - -2, -22, 30, 12, 39, 51, 33, 31, - -13, 12, 10, 17, 26, -31, 42, 4, - ], - [ - -41, -31, -49, -15, -13, 19, 50, -19, - -25, -26, -22, -45, -32, 20, 39, 45, - -19, 16, -15, -24, 15, 34, 30, 23, - -6, 6, -23, 13, 0, 19, 21, 15, - 3, -18, -4, 12, -8, -19, 13, -6, - -16, -1, -11, 1, 9, 2, -2, 3, - 5, -2, 6, 6, 21, 25, 64, 9, - -10, 19, 18, 21, 28, 2, -95, -32, - ], - [ - -29, 38, -100, -41, 3, -29, -24, -9, - -24, -18, -25, -51, -28, -10, 3, -12, - -11, 9, -41, -29, 16, 0, 39, 75, - -5, -10, -26, 7, -0, 9, 13, 27, - -4, -22, -5, 15, 5, -7, 21, 30, - -32, -1, -19, 8, 21, 8, 2, 36, - -12, -7, 9, 17, 20, 28, 50, 85, - -10, 17, 16, 13, 26, 14, 39, -82, - ], - [ - 14, 107, -27, 5, -12, -37, -62, 37, - -9, 66, 72, -36, 24, -25, -55, -22, - 13, 29, 92, 40, -46, 27, -50, -43, - 3, 13, 41, 26, -26, 5, 12, -13, - 51, -28, -35, 21, -17, -2, -55, -16, - -39, 56, 19, -4, 0, 45, -72, -37, - -7, -44, 5, -5, 5, 1, -17, -23, - -20, -5, 10, 13, 27, -5, 24, -6, - ], - [ - 78, -101, 46, 76, -3, -14, -16, -79, - 39, -2, 33, 19, 61, -2, -55, -8, - 9, 76, 77, 23, 13, 27, -41, -17, - 7, 56, 66, 14, 25, 9, -8, 2, - -15, -43, 15, 53, -19, -61, -67, 16, - 4, -21, -83, -42, -21, 10, -60, -50, - -10, 3, -32, 36, 25, -16, 7, -17, - -36, 2, 2, -2, 14, -13, 18, -8, - ], - [ - 37, -98, -16, -17, -66, 38, 128, -44, - 6, 32, -37, 16, -63, -39, 2, 3, - 71, 23, -8, 13, 30, 45, -2, -11, - 39, 17, -20, 23, 26, 42, 4, 10, - -14, 25, -25, 59, -70, -5, -20, -21, - -28, 2, -27, 40, 6, -13, -36, -36, - -28, -45, 19, -48, -7, 16, 9, -1, - -28, 15, 10, 1, 21, 10, 32, 1, - ], - [ - -43, -64, -35, -56, 71, 69, -15, -33, - 24, -7, -34, 10, 23, -5, 5, 10, - -29, -9, -14, -39, 38, 54, -23, 18, - 8, -17, -17, -29, 36, 54, -7, -18, - -26, 9, -26, 11, 63, 13, -22, 1, - -6, -4, -15, 4, 62, -21, -68, -20, - -3, -7, 14, -8, 19, 35, 14, 1, - -24, 6, 23, 8, 33, -9, 26, -8, - ], - [ - -12, 8, -64, -8, -4, -49, -74, -6, - -19, -26, -8, 17, 19, 67, 31, 48, - -27, -12, 9, -20, 47, 11, -15, 47, - -31, 27, -37, 5, 8, 20, -7, 15, - -35, 1, -5, -4, 20, 10, 18, 0, - -11, -3, -41, -11, 12, 48, -32, 20, - -45, -12, 15, 1, 31, -65, 25, 45, - -23, 13, 9, 17, 19, -15, 28, 6, - ], - [ - -50, -17, -34, 25, 34, 31, 80, 14, - -27, -19, 24, -4, 9, 68, 23, 17, - -21, -6, -12, -9, 19, 68, 24, 38, - -31, -4, -9, 21, 13, 32, 62, 23, - -19, -27, -15, 22, -24, -11, -6, -1, - -51, -19, -28, 6, 14, -9, -14, -13, - -24, -14, -12, -19, 15, 22, -74, 10, - -36, -6, 1, -2, 9, -11, -41, -5, - ], - [ - -46, 7, -30, 32, -9, 79, 44, 38, - -30, -19, -27, -39, 5, 82, 38, 92, - -26, -5, -23, -20, 27, 19, 74, 124, - -36, 10, -40, 3, 12, 21, 20, 8, - -47, -15, -21, -14, -23, -22, 13, 15, - -40, -29, -31, -8, 4, -6, -5, 8, - -24, -17, -21, -13, 4, 16, 23, -63, - -39, -9, -10, -2, 6, -9, 23, -31, - ], - [ - -234, 26, 134, 43, -98, 109, 30, 47, - 8, 139, 129, -26, 28, 213, 31, 65, - -68, 91, 31, 105, 18, 187, 44, -39, - -100, 176, 155, 55, -167, -103, 74, -224, - -124, 29, 81, 31, -21, -68, -34, -161, - 49, -52, -62, -94, 27, -27, 24, -142, - -29, 28, 11, -8, -85, -119, 100, -88, - -96, 77, 21, -22, -39, 10, -43, -53, - ], - [ - 60, -11, 218, 4, 41, 10, 155, 114, - 131, 171, 111, 109, 113, 143, 120, 42, - 95, 244, 189, -103, 69, 58, 62, 37, - -30, -128, -118, 4, -22, 3, -73, 111, - -202, 31, 136, -186, -105, -96, -15, -154, - -252, 114, 60, 12, -12, 47, 191, 435, - -3, 6, 34, -162, -124, -97, -250, -86, - -196, -208, -214, -130, -118, -14, -208, -165, - ], - [ - -28, -66, 183, -11, 107, 172, 120, 171, - 53, -71, 117, 19, 98, 165, 104, -111, - 71, 13, -47, 188, 13, -61, 42, 59, - -3, 91, -38, -120, -83, 147, 51, 105, - 151, -6, 12, -10, -115, 112, 90, -4, - -240, -263, -33, -29, -6, -19, 23, -86, - 65, 126, 81, -42, -73, 7, -114, -59, - -304, -247, -150, -87, -114, -59, 10, -64, - ], - [ - 135, 164, -92, -62, -69, -1, -8, 148, - 34, 48, -35, 75, 158, -232, 51, 4, - -98, -151, 51, 3, 78, 16, 59, -73, - 90, 63, 100, -78, 132, 36, 64, 124, - -70, 45, 124, -18, 128, 49, 187, 26, - 41, 14, 114, 59, -135, -154, 63, -212, - -22, -222, -148, 73, -103, 75, 149, -9, - -278, -111, -59, -89, -138, 59, -56, -112, - ], - [ - 64, 33, -93, 121, 9, -65, 160, 192, - 32, 85, 164, 129, 18, 37, -117, -7, - -68, 22, -98, 49, 88, 186, 150, -84, - -33, -145, 1, -24, -66, 112, -138, 50, - -5, 88, 66, 63, 165, -206, 277, -89, - -39, -140, 47, -121, 42, 119, 115, 119, - -115, -26, 3, -61, -50, -13, -199, -163, - -86, 24, -77, -213, -82, -92, -97, -22, - ], - [ - 75, 64, 9, -122, 23, -36, -207, 145, - -30, 79, -96, 40, 132, -14, 128, 84, - -47, -9, 62, -29, 18, 38, 127, 112, - -77, -87, 53, 9, 137, 94, -87, 198, - -54, -174, -61, 118, 134, -80, 111, -86, - 96, -6, 51, -78, -29, -2, -85, -65, - -16, -31, -37, -90, 71, -36, 17, 24, - -58, -151, -38, -84, -86, -76, 42, -26, - ], - [ - 77, -8, -58, -186, 134, 120, -43, 106, - -38, -14, -20, 212, 33, -38, 182, -135, - -33, 31, 152, 100, 9, 75, 201, 12, - -43, -38, 49, 130, 120, 73, 211, -51, - 16, 5, -73, 71, 57, 26, 29, -30, - -154, -60, -144, 29, 137, 66, 121, -74, - -160, 55, -178, 79, -41, -34, -58, -105, - -203, -191, -96, -13, -73, -136, -87, -101, - ], - [ - 76, 21, -57, 203, 150, -259, 151, 18, - 1, 201, 37, 70, 163, 108, 265, 31, - 43, -32, 346, 46, 33, 166, 225, -28, - 89, -88, 15, -22, -25, 126, 155, -0, - 32, -221, -131, -392, 89, 348, -94, -46, - 32, -25, -118, 30, -248, -120, 181, -172, - -230, -242, 2, -54, -50, -58, -38, 181, - -314, -119, -102, -27, -162, -22, -13, -117, + -82, -115, 19, -36, -66, -82, -63, -4, + 71, 102, 63, -14, -9, 46, -17, -20, + -72, 20, 27, -4, 21, -41, -69, -11, + 35, 82, 47, 36, 27, 2, -4, -11, + -10, 81, -2, 22, 9, 26, -48, -21, + -53, 20, 6, 19, 5, -12, -32, -78, + 41, 11, 24, -5, -2, 27, -15, -23, + -19, 28, 30, 33, 28, 4, 20, 7, + ], + [ + 3, 14, -54, 14, -27, -65, -2, -54, + 49, 49, 5, -9, -11, 21, -22, -18, + 53, -29, 17, 15, 25, -12, 41, 15, + -5, 59, 2, 27, 10, 12, 7, -9, + -8, 30, -2, 2, -1, 5, -20, 8, + -45, 18, -10, 2, 19, -7, -31, 5, + -101, 7, -5, 13, 19, 5, -0, 1, + -47, -99, 19, 23, 25, -0, 36, 19, + ], + [ + 52, -11, 58, 2, 45, -16, -17, -58, + -44, 10, 15, -43, -13, 28, -53, -46, + 16, 36, 26, 3, 23, 22, 8, -6, + -3, -9, 25, 10, 27, -0, -4, -0, + -1, 23, 11, 12, -3, -20, -10, -10, + -30, -3, 33, 8, -9, 0, -15, -24, + -45, -2, -7, 13, 18, 2, 1, -5, + -40, 8, -68, 18, 27, 2, 28, 5, + ], + [ + -2, -122, -57, 19, -103, -109, -59, -31, + -1, 0, 19, -9, 5, -42, -53, -47, + 23, -7, -36, 78, -21, 2, -29, -8, + 40, 21, 60, -2, -9, 51, -35, -13, + 25, 19, 16, 40, 8, 14, 5, 31, + 31, 5, -17, 18, 39, 44, -38, 15, + -1, 15, 25, -10, 16, 70, -21, 13, + -13, 8, 38, -25, 35, 12, 46, 13, + ], + [ + -10, -1, -7, -4, 21, -18, 11, -14, + -49, -68, -61, -81, -24, -41, -49, -4, + -15, 7, -51, -8, -2, -16, -21, -20, + -18, 23, -33, -23, 26, 54, 4, 4, + 3, 17, -14, -25, 0, 24, -1, 13, + 12, 41, 2, 6, 50, 11, -4, 19, + 18, 22, 19, 26, 44, 9, 23, 20, + 32, 36, 29, 28, -71, 3, 39, 55, + ], + [ + -27, -41, -68, -1, -52, -131, -78, 16, + -28, -31, -24, -24, -4, 58, 33, 31, + -18, 13, -49, 12, 18, -40, 42, -11, + -25, 17, -24, 25, -13, 57, 17, 16, + -13, -34, 17, 22, 26, 37, 11, -14, + 0, 16, -27, 32, 8, 29, 32, 32, + -10, -31, 23, 7, 34, 46, 26, 15, + -9, 11, 10, 14, 21, -36, 38, 3, + ], + [ + -31, -22, -32, -14, -2, 14, 49, -8, + -26, -27, -18, -29, -24, 24, 52, 54, + -18, 18, -8, -16, 14, 37, 45, 21, + -9, -1, -20, 13, -1, 16, 24, 15, + -8, -28, -8, -2, -10, -19, 15, -14, + -22, -6, -13, -3, -1, -2, 8, 1, + -4, -10, -2, 2, 16, 20, 57, -4, + -5, 19, 19, 19, 24, 2, -98, -32, + ], + [ + -19, 46, -83, -41, 14, -25, -13, 10, + -26, -19, -20, -34, -20, -6, 14, -3, + -11, 11, -34, -20, 16, 3, 55, 76, + -7, -17, -24, 6, -2, 5, 14, 29, + -15, -32, -9, 1, 2, -6, 22, 23, + -38, -6, -20, 4, 12, 4, 10, 33, + -21, -15, 0, 12, 15, 22, 42, 71, + -6, 17, 17, 11, 21, 14, 35, -95, + ], + [ + 30, 96, -15, 7, -5, -37, -56, 43, + -13, 65, 74, -21, 28, -23, -47, -16, + 12, 30, 96, 49, -49, 26, -34, -42, + 0, 5, 42, 26, -25, 2, 12, -11, + 40, -39, -38, 7, -18, 0, -52, -23, + -44, 42, 20, -7, -8, 43, -63, -35, + -17, -45, -2, -7, 1, -1, -23, -35, + -13, -3, 13, 14, 26, -3, 24, -4, + ], + [ + 85, -98, 51, 71, 4, -15, -11, -71, + 37, -4, 32, 34, 69, -0, -49, 3, + 12, 77, 80, 27, 10, 28, -26, -18, + 7, 48, 64, 12, 25, 7, -8, 0, + -22, -52, 14, 42, -22, -62, -66, 8, + -1, -23, -86, -42, -28, 10, -50, -51, + -14, -4, -44, 33, 22, -19, 2, -27, + -28, 4, 7, -2, 12, -9, 18, -4, + ], + [ + 47, -85, -4, -19, -57, 43, 129, -36, + 4, 31, -32, 33, -54, -35, 9, 14, + 70, 25, -1, 20, 29, 47, 14, -11, + 36, 14, -18, 22, 26, 39, 6, 9, + -25, 11, -28, 47, -71, -5, -19, -30, + -33, -3, -25, 35, -4, -18, -25, -36, + -36, -54, 12, -58, -10, 11, 1, -14, + -23, 15, 11, -1, 17, 11, 29, 1, + ], + [ + -32, -55, -18, -52, 75, 76, -13, -24, + 22, -8, -30, 26, 28, -0, 17, 19, + -27, -7, -6, -31, 36, 58, -8, 19, + 5, -24, -14, -32, 36, 53, -6, -21, + -38, -2, -30, -4, 62, 14, -20, -8, + -11, -9, -15, -0, 49, -24, -60, -20, + -11, -15, 7, -11, 16, 30, 6, -13, + -21, 4, 24, 5, 28, -10, 22, -9, + ], + [ + -4, 16, -45, -7, 5, -49, -71, 2, + -21, -27, -4, 31, 26, 71, 41, 60, + -27, -12, 17, -13, 48, 13, 0, 44, + -33, 20, -35, 4, 7, 18, -7, 15, + -47, -11, -8, -17, 16, 11, 23, -8, + -17, -8, -42, -15, 5, 45, -22, 19, + -52, -20, 7, -3, 28, -69, 17, 31, + -19, 12, 10, 15, 14, -14, 25, 7, + ], + [ + -44, -11, -18, 28, 45, 29, 85, 26, + -29, -21, 26, 11, 15, 75, 33, 29, + -20, -5, -6, -1, 20, 70, 41, 37, + -33, -11, -8, 21, 11, 30, 63, 22, + -30, -37, -20, 8, -27, -12, -4, -11, + -56, -24, -30, 4, 4, -10, -5, -15, + -32, -20, -20, -23, 10, 18, -85, -4, + -31, -6, 2, -4, 6, -10, -43, -5, + ], + [ + -35, 14, -15, 34, 0, 79, 47, 43, + -32, -20, -23, -23, 12, 85, 49, 102, + -25, -3, -15, -13, 26, 21, 89, 122, + -38, 4, -37, 4, 11, 18, 20, 8, + -57, -26, -24, -28, -24, -22, 13, 7, + -46, -33, -33, -10, -6, -9, 6, 4, + -32, -25, -29, -18, -0, 12, 16, -77, + -34, -9, -8, -3, 2, -8, 21, -30, + ], + [ + -168, 33, 109, 31, -54, 81, 22, 39, + -0, 124, 133, -9, 38, 184, 28, 49, + -56, 75, 34, 103, 37, 176, 61, -28, + -101, 147, 132, 56, -148, -94, 71, -175, + -92, 10, 68, 23, -21, -56, -24, -139, + 36, -70, -61, -102, 24, -42, 36, -103, + -36, 24, 13, -16, -91, -115, 90, -81, + -107, 70, 17, -33, -39, -2, -54, -59, + ], + [ + 71, 2, 136, -4, 34, 11, 122, 83, + 115, 126, 101, 88, 86, 100, 78, 25, + 90, 157, 161, -50, 33, 33, 31, 27, + -11, -83, -74, -5, -12, 10, -46, 60, + -87, 7, 69, -116, -69, -30, -9, -91, + -143, 38, 57, -4, -29, 29, 95, 180, + 11, 10, 18, -79, -76, -54, -124, -33, + -194, -136, -181, -120, -80, -4, -171, -183, + ], + [ + -17, -35, 100, 15, 93, 119, 86, 131, + 56, -46, 97, 47, 95, 114, 97, -66, + 64, 19, -42, 171, 4, -26, 40, 37, + -8, 62, -42, -66, -40, 99, 25, 71, + 86, 10, -1, -5, -56, 63, 47, -11, + -148, -173, -16, -26, 3, -6, 32, -54, + 65, 81, 62, -24, -32, -1, -77, -35, + -299, -226, -158, -93, -109, -39, -10, -102, + ], + [ + 146, 113, -31, -29, -56, 8, 0, 95, + 51, 44, -20, 59, 130, -174, 42, 17, + -64, -96, 50, -11, 40, 11, 38, -25, + 60, 44, 60, -41, 102, 38, 36, 98, + -37, 29, 75, -28, 91, 21, 103, 6, + 39, 23, 81, 35, -99, -99, 34, -89, + -11, -114, -101, 43, -56, 58, 77, 14, + -300, -129, -70, -79, -136, 25, -45, -103, + ], + [ + 48, 21, -30, 67, -1, -32, 117, 133, + 44, 88, 149, 99, 32, 18, -74, 14, + -61, 30, -53, 41, 36, 146, 98, -69, + -0, -93, 6, -13, -45, 72, -59, 38, + 12, 59, 53, 27, 114, -140, 167, -23, + -15, -75, 27, -101, 42, 65, 68, 54, + -64, -14, 14, -51, -40, -5, -142, -118, + -126, 4, -94, -198, -82, -79, -81, -26, + ], + [ + 70, 51, 11, -69, 25, -35, -119, 105, + -36, 87, -59, 42, 86, -26, 92, 58, + -33, 5, 38, -37, 12, 9, 109, 83, + -45, -67, 34, 2, 86, 47, -54, 126, + -50, -103, -21, 67, 91, -53, 64, -44, + 43, -2, 29, -64, -11, 7, -31, -23, + -3, -13, -36, -90, 50, -19, -1, 28, + -65, -139, -32, -47, -67, -67, 28, -25, + ], + [ + 66, -4, -29, -101, 63, 80, -23, 62, + -26, 13, 7, 172, 34, -33, 129, -109, + -17, 23, 105, 83, 19, 87, 147, 21, + -24, -21, 17, 77, 98, 82, 119, -22, + 17, 9, -62, 51, 60, 1, -1, -11, + -103, -39, -73, 14, 95, 35, 87, -36, + -109, 4, -112, 66, -62, -11, -27, -72, + -201, -157, -76, -34, -52, -126, -69, -101, + ], + [ + 30, 6, -28, 105, 62, -102, 62, 5, + 10, 153, 37, 62, 115, 78, 170, 25, + 30, -7, 205, 41, 45, 108, 144, -5, + 56, -52, 19, -10, -9, 89, 86, 8, + 23, -95, -54, -202, 42, 207, -12, -25, + 18, -32, -64, 25, -132, -92, 95, -102, + -98, -154, 18, -35, -32, -41, -40, 87, + -284, -134, -118, -22, -137, -7, -18, -123, ], ]; internal static readonly short[][] EndGameRookTable = [ [ - 30, 64, -1, -4, 43, -2, 12, 20, - -38, -38, -1, 21, 20, -28, 17, 15, - 10, -8, 7, 8, -7, 1, 1, 6, - -17, -24, -22, -13, -8, -21, 12, -12, - -10, -25, 32, 7, 18, -15, 9, 14, - -11, -4, -5, -11, -21, 9, 12, 46, - -45, 26, 13, 8, 4, -17, 20, 11, - -33, -2, -8, -20, -28, -31, -1, 17, - ], - [ - 13, 53, 41, 22, 33, 29, 13, 34, - -24, 8, 33, 29, 34, 6, 42, 10, - -26, 36, 16, -8, -21, 9, -13, 9, - 0, -25, 28, -12, -7, -21, -19, -8, - -12, -22, 11, 9, 5, -12, -20, -24, - -18, 15, 16, 12, -27, 1, 1, -21, - -28, 1, 12, 2, -5, -13, 7, -18, - -80, -183, 41, 19, 1, -2, 0, 19, - ], - [ - 8, 33, 48, 32, 22, -17, 22, 42, - 27, 10, 27, 62, 45, 3, 59, 45, - -5, -4, 13, 6, -5, -21, 6, 2, - -9, 3, 23, -1, -4, 6, -7, -16, - 23, -27, -3, -11, 3, -4, -5, -22, - -7, 3, 6, -7, 6, 4, -16, 7, - -6, -55, -7, -15, -16, -1, -5, -12, - -36, -55, -239, 12, -3, -9, 14, 28, - ], - [ - 16, 53, 32, 15, 67, 21, 49, 54, - -2, 26, -8, 15, 39, 21, 20, 33, - -24, 12, 20, -9, 11, 9, 5, 14, - -22, -24, -18, 35, 11, -28, -11, 4, - -12, 3, 8, 7, 0, -7, -4, 2, - -19, 9, 5, 27, -15, -26, 5, -8, - -8, -5, -41, 31, -29, -30, 1, -38, - -33, -23, -39, -122, -21, -15, -40, -0, - ], - [ - 30, 28, 16, 18, 16, 20, 4, 30, - 16, 40, 37, 68, 40, 30, 23, 2, - 19, 5, 22, 1, 17, 4, 15, -2, - 1, -17, 24, 28, 2, -16, -20, 5, - 16, -15, 10, 20, 25, -20, -5, -23, - 4, -2, 10, 9, -0, -6, -20, -7, - -24, -3, -9, -36, -18, -5, -44, -43, - 1, -22, -4, -26, -162, -44, -30, -35, - ], - [ - 33, 19, 25, 5, 28, 42, 38, 28, - 18, 30, 18, 34, 22, -1, 3, -5, - 4, 9, 26, 10, -2, 23, 2, 13, - 9, -13, 11, 1, 10, -9, -1, -4, - 11, 12, -15, -2, -0, -5, 15, 6, - -9, -7, 7, -2, -1, 1, -24, -12, - -13, 8, -10, -21, -22, -9, -49, -30, - -1, 0, 5, 5, -0, -158, -53, -52, - ], - [ - 31, 28, 28, 20, 17, -18, -2, 22, - 19, 31, 34, 43, 34, 9, -1, -5, - 18, 2, 19, 18, 4, -11, -10, -10, - 8, 10, 15, -5, -2, -3, 4, -5, - 5, 11, 2, -7, 6, 8, -6, -8, - 2, -1, 1, 9, -3, 1, -8, 0, - -9, 3, -5, -1, -7, -14, -30, -27, - 17, 8, 12, 7, 2, 13, -260, -63, - ], - [ - 21, -2, 28, 27, -0, -8, 1, -7, - 10, 6, 5, 39, 17, 13, -9, 15, - 1, 4, 18, 11, -2, 2, -12, -48, - 1, 8, 2, -5, -11, -0, -7, -26, - -14, 5, -8, -8, -11, 14, 3, 0, - 22, -11, -0, 12, -10, 8, -19, -23, - 2, -4, 4, -3, 11, -2, -10, -64, - 33, 23, 11, 25, 12, 19, 43, -155, - ], - [ - -4, -23, 18, 5, 27, -16, 14, -9, - -6, -6, -8, 23, 15, 11, 27, 16, - -11, -4, -1, -8, 4, -2, 23, 29, - -3, 9, 6, 4, 15, 7, -13, 11, - -31, 27, 24, 7, -9, -3, 0, -14, - 2, 3, -4, 10, -1, -24, 7, 10, - -18, 16, -2, 14, -9, -4, -10, -4, - -21, -23, -10, -14, -24, -31, -18, 4, - ], - [ - -4, 36, -4, -14, 28, -19, -1, 43, - 2, 15, 3, 24, -4, 22, 28, 7, - 11, -13, -16, 1, 7, 22, 25, 17, - -0, -19, -11, -2, -7, -0, 7, -10, - 2, 24, 4, -17, 3, 16, 17, 1, - -12, 9, 20, 11, -2, -12, -17, 7, - -21, -12, 4, -18, -19, -7, -22, -17, - -7, -17, -27, -9, -21, -27, -21, 12, - ], - [ - 6, 38, 16, 1, 28, -35, -44, 30, - 9, 16, 27, 7, 45, 25, 14, 13, - -5, 3, 16, 7, -3, -8, 10, 17, - -4, -1, 11, 11, -15, -12, 5, 7, - 7, -12, 5, -9, 28, -2, 4, 0, - -3, -4, 3, -13, -1, 4, -13, -3, - -11, -5, -22, 11, -3, -25, -27, -15, - -9, -11, -12, -17, -26, -32, -19, -2, - ], - [ - 28, 31, 15, 17, -10, -33, -3, 29, - 10, 26, 32, 10, 13, 13, 18, 8, - 25, 19, 17, 18, -6, -11, 15, 5, - 5, 15, 15, 7, 3, -26, 8, 3, - 10, -2, 8, -8, -8, -5, 10, -11, - -5, -5, -4, -9, -20, 3, -5, -8, - -22, -12, -17, -5, -10, -13, -23, -16, - -9, -12, -17, -19, -47, -30, -14, 7, - ], - [ - 16, 12, 19, 3, 7, 0, 20, 18, - 20, 29, 23, 14, 12, 0, 2, 1, - 21, 15, 8, 21, 1, 10, 17, 3, - 20, -3, 16, 5, 1, 9, 0, -9, - 12, -1, 1, -3, -10, -0, -19, -9, - -1, -11, -3, 3, -11, -23, -15, -17, - 6, -6, -17, -8, -19, 5, -28, -34, - -9, -22, -16, -17, -27, -19, -17, 1, - ], - [ - 30, 17, 7, -9, -6, -32, -28, 1, - 19, 27, 6, 19, 14, -2, 0, 0, - 18, 9, 7, 17, -2, -11, -1, -9, - 16, 7, 0, -3, -2, 1, -10, -15, - 9, 6, -4, -12, 7, 8, 6, -1, - 12, 4, -2, -4, -7, 9, -3, 5, - 5, -7, -9, -3, -14, -10, 23, -26, - -9, -17, -17, -12, -18, -17, 16, 1, - ], - [ - 20, 7, 10, -15, 9, -45, -12, -9, - 15, 22, 19, 28, 15, -2, -5, -33, - 15, 12, 8, 12, 2, -1, -20, -32, - 16, -2, 12, -4, -9, 1, 2, -9, - 16, -4, -4, 12, 16, 16, -8, -2, - 9, -5, -9, 3, -7, 14, 7, 9, - 6, 3, -7, -9, -8, -0, -1, 15, - -12, -8, -10, -17, -15, -9, -2, -16, - ], - [ - 48, 6, -50, 7, 45, -52, -20, -2, - -31, -40, -32, 23, 2, -78, -5, -19, - 16, -9, 17, -23, -1, -46, -20, 9, - 22, -29, -41, -10, 62, 13, -17, 57, - 37, 41, -7, 6, -1, 17, 21, 43, - -26, 23, 19, 32, 12, -6, -10, 39, - -27, 2, 3, -8, 14, 21, -69, 10, - 17, -37, -5, 12, 7, -26, 20, 23, - ], - [ - -39, -9, -53, 11, -12, -25, -48, -6, - -49, -25, -39, -27, -28, -30, -40, 6, - -21, -31, -61, 37, -8, -17, -13, -3, - 25, 57, 24, 41, -7, 2, 31, -21, - 50, 15, -52, 58, 36, 36, 21, 58, - 42, -51, -23, 19, -14, -18, -27, -128, - 14, -6, -36, 47, 15, 5, 51, -6, - 36, 34, 69, 43, 25, -33, 37, 57, - ], - [ - -7, 11, -45, -9, -8, -84, -45, -24, - -28, 34, -25, -0, -25, -44, -29, 38, - -15, -8, 4, -56, 11, 18, -4, 0, - 18, -19, 3, 32, 39, -52, -24, -5, - -49, -2, -1, -3, 43, -8, -34, 23, - 59, 71, -23, 16, -11, 24, -21, 24, - -18, -46, -22, 25, 3, 5, 34, 30, - 74, 74, 6, 40, 13, -13, -3, 38, - ], - [ - -24, -27, 29, 16, 18, -36, -24, -15, - -6, 1, 24, -0, -43, 60, -17, 13, - 40, 40, -18, -9, -37, 14, -5, 25, - -15, -7, -13, 40, -21, 7, -11, -22, - 6, -23, -30, -0, -38, -4, -30, 4, - 8, -23, -31, -27, 41, 45, -15, 77, - -9, 51, 17, -37, 21, -16, -63, -18, - 59, 31, 3, -2, 55, -46, -8, 29, - ], - [ - 2, 1, 21, -31, -6, -19, -29, -38, - 9, 1, -40, -34, 24, -13, 22, 0, - 41, 8, 28, -19, -6, -36, -19, 34, - 18, 55, 9, -5, 4, -46, 36, -19, - -1, -25, -18, -31, -47, 59, -48, 37, - 4, 19, -14, 40, -4, -29, -25, -25, - 20, -5, -18, 13, -31, -5, 43, 37, - 5, -10, 11, 53, -6, 18, 20, 9, - ], - [ - 2, 10, -11, 29, -11, 11, 69, -53, - 21, 11, 30, -4, -22, 5, -47, -20, - 31, 12, -29, 17, -31, -5, -23, -19, - 13, 17, -18, 3, -50, -3, 33, -38, - 17, 42, 10, -23, -25, 27, -28, 37, - -49, -6, -31, 29, 11, -17, 22, 5, - 2, 3, 5, 23, -15, -0, -3, -1, - -1, 31, -19, 1, 16, 3, -8, 10, - ], - [ - 7, 3, 4, 23, -15, -57, -2, -30, - 19, 9, 18, -31, 6, 27, -62, 32, - 7, 8, -35, -6, 8, -21, -47, -4, - 20, 9, -24, -19, -34, -26, -56, 6, - 4, 20, 22, -12, -12, -6, 3, -1, - 44, 25, 41, 8, -53, 12, -56, 33, - 35, -25, 53, -45, 3, -2, 2, 3, - 37, 43, 17, -8, 8, 30, -14, 52, - ], - [ - -1, -4, 12, -60, -47, 48, -45, -7, - 25, -35, -12, -32, -45, -21, -65, 7, - 18, 12, -81, -7, 15, -23, -63, 35, - -6, 24, 2, -8, 16, -13, -47, -4, - -6, 38, 35, 97, -31, -82, 35, -17, - -25, 13, -2, -9, 81, 44, -27, 24, - 69, 43, -25, 2, 6, 15, -29, -54, - 70, 24, 1, -7, 35, 10, 29, 57, + 31, 58, 3, -3, 38, 8, 13, 15, + -34, -38, -3, 12, 12, -28, 12, 12, + 11, -10, 4, 5, -7, -1, 0, 3, + -15, -19, -22, -10, -7, -20, 12, -10, + -7, -21, 32, 14, 17, -17, 9, 13, + -9, -3, -5, -13, -17, 7, 11, 42, + -44, 30, 15, 8, 5, -16, 21, 13, + -32, -4, -11, -19, -28, -32, 2, 17, + ], + [ + 6, 48, 38, 24, 26, 36, 13, 25, + -23, 5, 27, 20, 24, 4, 37, 5, + -26, 35, 12, -14, -23, 9, -20, 5, + 0, -22, 25, -12, -7, -20, -20, -7, + -8, -17, 11, 11, 7, -11, -20, -23, + -16, 14, 14, 9, -23, -2, -1, -22, + -24, 3, 12, 5, -4, -11, 9, -14, + -77, -126, 38, 18, 1, -3, 1, 20, + ], + [ + 7, 24, 41, 30, 11, -9, 21, 33, + 28, 8, 22, 53, 34, 2, 55, 40, + -7, -8, 7, 4, -8, -21, 1, -0, + -8, 5, 21, -0, -4, 7, -7, -15, + 25, -21, -3, -8, 3, -2, -5, -21, + -4, 2, 6, -11, 6, 3, -18, 7, + -3, -55, -6, -14, -13, 0, -2, -9, + -34, -54, -177, 12, -3, -10, 15, 29, + ], + [ + 18, 44, 24, 23, 59, 33, 45, 37, + 3, 23, -10, 5, 28, 20, 18, 31, + -23, 9, 17, -16, 8, 3, -3, 13, + -17, -22, -17, 34, 11, -26, -11, 4, + -9, 9, 12, 8, 2, -7, -6, 1, + -17, 10, 6, 23, -14, -29, 5, -10, + -5, -5, -39, 29, -28, -27, 2, -31, + -30, -22, -39, -83, -22, -15, -38, 2, + ], + [ + 29, 24, 13, 18, 9, 20, 0, 23, + 18, 38, 35, 60, 34, 29, 21, -3, + 19, 3, 21, -5, 13, 5, 10, -3, + 2, -17, 22, 27, 2, -13, -17, 6, + 20, -13, 10, 22, 24, -20, -6, -24, + 9, -1, 11, 6, 1, -6, -21, -10, + -21, -0, -7, -34, -18, -5, -41, -37, + -0, -22, -5, -26, -129, -42, -26, -32, + ], + [ + 34, 18, 26, 7, 22, 45, 34, 19, + 20, 28, 17, 28, 16, -3, -1, -9, + 5, 8, 23, 7, -3, 21, -2, 11, + 11, -10, 12, 0, 9, -9, -1, -3, + 13, 16, -13, 3, -0, -5, 14, 6, + -6, -6, 9, -4, 0, -0, -27, -13, + -9, 12, -7, -18, -21, -8, -47, -25, + -2, -1, 3, 5, 0, -143, -51, -50, + ], + [ + 30, 26, 29, 23, 11, -7, -3, 14, + 21, 30, 32, 36, 27, 7, -4, -10, + 18, 1, 18, 16, 3, -12, -14, -12, + 9, 12, 15, -4, -1, -3, 3, -5, + 8, 14, 4, -2, 7, 9, -8, -8, + 5, 0, 3, 7, -1, -1, -11, -4, + -6, 5, -2, 0, -4, -12, -28, -24, + 16, 6, 10, 6, 3, 13, -252, -63, + ], + [ + 19, -3, 29, 29, -6, -0, -3, -21, + 12, 4, 3, 31, 9, 10, -10, 12, + 2, 3, 16, 7, -4, 1, -17, -53, + 4, 11, 2, -4, -10, 2, -7, -27, + -9, 8, -6, -2, -9, 14, 2, 1, + 24, -11, 1, 10, -7, 7, -22, -25, + 3, -1, 7, -2, 13, 1, -7, -59, + 31, 22, 9, 24, 12, 19, 43, -135, + ], + [ + -6, -19, 19, 7, 23, -7, 12, -16, + -4, -8, -10, 17, 9, 10, 24, 13, + -11, -7, -2, -10, 6, -1, 19, 26, + -2, 11, 6, 5, 15, 8, -13, 11, + -27, 29, 25, 12, -7, -2, 1, -13, + 4, 7, -3, 8, 1, -26, 6, 7, + -15, 16, -0, 14, -8, -3, -5, -1, + -24, -23, -11, -15, -23, -31, -18, 3, + ], + [ + -4, 36, 1, -9, 24, -8, -2, 36, + 4, 14, 3, 18, -10, 23, 26, 3, + 10, -15, -16, -0, 7, 22, 20, 15, + -0, -16, -9, -1, -5, 2, 8, -9, + 5, 25, 3, -13, 5, 17, 17, 2, + -11, 9, 22, 8, -0, -13, -19, 5, + -19, -11, 8, -17, -17, -6, -20, -14, + -9, -19, -30, -10, -21, -28, -21, 10, + ], + [ + 5, 34, 19, 4, 24, -26, -44, 22, + 11, 14, 25, -0, 38, 25, 12, 9, + -4, 2, 14, 4, -4, -8, 6, 14, + -3, 1, 10, 12, -15, -9, 5, 8, + 9, -8, 6, -6, 29, -2, 4, 1, + -0, -3, 3, -15, 1, 4, -14, -7, + -8, -2, -20, 14, -2, -23, -23, -11, + -11, -12, -14, -16, -25, -32, -17, -2, + ], + [ + 27, 29, 17, 19, -14, -25, -3, 22, + 13, 24, 31, 4, 7, 14, 15, 3, + 25, 17, 14, 15, -7, -12, 10, 3, + 7, 17, 15, 9, 3, -26, 8, 4, + 13, 0, 9, -4, -7, -5, 9, -11, + -3, -3, -3, -11, -17, 2, -5, -11, + -20, -9, -15, -4, -9, -11, -21, -11, + -11, -13, -18, -19, -46, -30, -12, 7, + ], + [ + 16, 11, 20, 6, 3, 10, 19, 11, + 23, 28, 22, 8, 6, -0, -0, -4, + 22, 14, 6, 18, -0, 10, 13, 2, + 22, -1, 16, 5, 1, 10, 1, -8, + 16, 3, 2, 1, -8, -1, -21, -9, + 1, -10, -1, 1, -10, -25, -17, -20, + 8, -3, -15, -7, -18, 6, -26, -30, + -10, -22, -18, -17, -26, -19, -15, 0, + ], + [ + 30, 16, 9, -7, -10, -21, -29, -8, + 21, 26, 5, 14, 8, -4, -2, -5, + 18, 7, 5, 14, -3, -11, -6, -10, + 17, 9, 0, -2, -2, 2, -10, -14, + 14, 9, -2, -7, 8, 8, 4, -0, + 14, 5, -1, -7, -5, 7, -6, 2, + 7, -5, -7, -3, -13, -9, 29, -21, + -11, -18, -19, -12, -18, -17, 17, 0, + ], + [ + 19, 6, 12, -12, 5, -33, -12, -15, + 17, 21, 17, 21, 8, -2, -8, -37, + 16, 11, 5, 10, 1, -2, -24, -34, + 17, 0, 11, -3, -9, 2, 3, -9, + 20, -1, -3, 17, 17, 16, -9, -1, + 12, -5, -8, 1, -5, 11, 6, 7, + 9, 5, -4, -8, -7, 1, 2, 20, + -15, -9, -12, -17, -15, -10, -1, -16, + ], + [ + 33, 5, -36, 14, 30, -34, -17, -5, + -28, -38, -34, 18, -8, -68, -4, -16, + 13, -3, 16, -22, -8, -43, -25, 3, + 22, -19, -33, -10, 57, 10, -15, 43, + 26, 47, -2, 9, -0, 14, 17, 34, + -20, 28, 20, 32, 13, -3, -12, 22, + -24, 4, 2, -4, 16, 19, -67, 5, + 22, -36, -5, 16, 8, -23, 24, 24, + ], + [ + -42, -12, -26, 18, -12, -16, -40, -2, + -43, -14, -36, -20, -25, -18, -29, 6, + -18, -10, -53, 23, 1, -12, -7, -3, + 20, 42, 12, 46, -11, -1, 23, -9, + 22, 21, -32, 38, 26, 20, 21, 42, + 13, -34, -19, 20, -10, -13, 3, -64, + 11, -6, -30, 26, 4, -6, 18, -24, + 34, 17, 59, 41, 13, -37, 28, 64, + ], + [ + -11, 1, -18, -13, -5, -61, -36, -19, + -28, 26, -18, -8, -29, -31, -27, 24, + -13, -12, 1, -50, 12, 8, -4, 2, + 17, -12, 4, 20, 28, -41, -20, 3, + -33, -6, 3, -3, 29, 5, -22, 22, + 35, 48, -26, 14, -14, 20, -20, 13, + -18, -32, -16, 21, -6, 8, 24, 24, + 73, 66, 7, 43, 14, -18, 2, 53, + ], + [ + -27, -15, 17, 12, 11, -28, -23, -8, + -9, 0, 20, 3, -39, 42, -15, 8, + 31, 23, -20, -7, -28, 15, -2, 11, + -6, -2, -2, 31, -11, 6, -4, -15, + -4, -19, -18, 4, -24, 4, -8, 8, + 8, -24, -20, -25, 30, 29, 1, 43, + -12, 23, 5, -29, 9, -11, -46, -26, + 65, 35, 7, -5, 51, -37, -10, 29, + ], + [ + 7, 5, 12, -15, -6, -18, -19, -30, + 8, -1, -36, -31, 16, -8, 11, -6, + 39, 5, 15, -17, 5, -24, -8, 26, + 9, 42, 9, -8, -3, -38, 16, -17, + -6, -20, -13, -21, -33, 43, -17, 20, + -2, 2, -8, 33, -3, -17, -7, -12, + 6, -9, -20, 11, -34, -8, 29, 26, + 18, -3, 14, 49, -5, 16, 18, 12, + ], + [ + 6, 13, -6, 20, -14, 20, 49, -47, + 24, 8, 21, -5, -13, 8, -38, -15, + 29, 6, -24, 18, -30, 2, -18, -14, + 4, 12, -12, 4, -38, 10, 25, -21, + 16, 23, 2, -8, -11, 21, -16, 22, + -38, -7, -25, 23, 5, -22, 13, -8, + -1, -3, 5, 22, -8, -3, 2, -1, + 0, 25, -21, -10, 11, 2, -6, 12, + ], + [ + 12, 3, 2, 3, -0, -35, -7, -27, + 17, 0, 12, -21, 1, 28, -49, 24, + 2, 7, -23, -2, 6, -21, -33, -9, + 16, 4, -14, -4, -28, -27, -30, -4, + 5, 20, 19, -2, -12, 1, 10, -7, + 30, 16, 24, 8, -43, 19, -44, 22, + 22, -15, 33, -40, 8, -8, -7, -8, + 38, 33, 12, -3, -0, 29, -20, 52, + ], + [ + 11, 2, 9, -29, -27, 18, -23, -7, + 24, -24, -11, -32, -38, -14, -42, 7, + 22, 6, -44, -5, 11, -6, -43, 25, + 4, 16, 3, -11, 10, -1, -28, -4, + -3, 8, 16, 47, -18, -42, 10, -22, + -21, 12, -16, -10, 48, 35, 1, 1, + 36, 18, -28, -5, 2, 9, -25, -22, + 61, 26, 3, -8, 26, 5, 30, 53, ], ]; internal static readonly short[][] MiddleGameQueenTable = [ [ - 73, 1, -92, -137, -56, 18, -90, -20, - 9, 122, -10, -25, -51, -20, -18, 27, - 41, 13, -11, -52, -25, 14, 12, 15, - 23, 37, 40, -16, 49, 18, -4, -1, - 38, 52, -6, 14, 23, 9, 26, -63, - 13, 9, 18, -3, 24, 8, 3, -47, - -32, 10, 15, 24, 9, -1, 5, -29, - -61, 26, 9, 1, 12, 12, 13, -16, - ], - [ - 39, 59, 98, -53, 126, -27, -55, -29, - 1, 46, 75, -39, -7, -9, -19, 28, - 5, -34, -46, 23, 20, 12, -14, -15, - -1, -20, -4, -7, 19, 18, -26, 22, - 26, 2, 11, -23, 7, -10, 38, -23, - -7, 13, -6, 4, 17, 9, -4, -14, - -68, 5, 26, 33, 22, -3, 20, 4, - -45, -277, 27, 5, 12, -4, 18, 2, - ], - [ - -68, 91, -97, 6, 1, -83, -129, -19, - 10, 6, 13, -8, -8, 16, 6, 49, - -30, 16, -34, 51, 14, 15, 14, 15, - 6, -10, -18, -2, 16, 25, 8, 19, - 17, -0, 19, -0, 18, -11, 26, 11, - 25, 11, 13, 9, 33, 18, 6, -3, - -12, 33, 38, 37, 27, 2, 23, 4, - -11, 4, -262, 6, 14, -14, 28, 2, - ], - [ - -87, -13, -19, 140, -52, -30, -132, -77, - 24, -21, 59, 32, 47, -47, -39, 39, - 3, -29, -79, 1, 10, -5, 25, -7, - 34, -0, -24, -7, 21, 35, 47, 19, - -26, 29, 23, -5, 48, 21, 74, 13, - 5, -20, 22, 5, 28, 28, -10, -22, - -31, 10, -3, 15, 20, 0, 52, 1, - -22, 15, 20, -145, -5, 4, 15, -27, - ], - [ - -73, -120, -128, 90, -114, -4, -90, -82, - 24, -2, 1, -37, -22, -8, -36, 32, - 6, -32, -21, 24, -26, 3, 3, -10, - 23, 6, 1, -6, 1, 3, -1, 13, - 32, 8, 15, -22, -2, -4, 37, 31, - 33, 31, 29, 11, 29, 39, 9, 17, - 33, 59, 45, 47, 36, 13, 46, 12, - 36, 42, 38, 21, -198, -2, 34, 23, - ], - [ - -84, 20, 36, -9, 50, -27, -74, -99, - 23, 26, 24, 6, -9, -27, 10, 3, - -5, -25, -16, 32, 27, 32, 11, -1, - -18, -31, -31, 14, 22, 34, 13, 29, - 11, -23, 11, -14, 30, 3, 20, 9, - -15, 17, 33, 7, 6, 48, 6, 16, - 7, 12, 5, 7, 17, 26, -2, -14, - -18, 17, 14, 3, 2, -164, -20, -10, - ], - [ - -36, 35, 40, 65, 13, -33, 5, -78, - 13, 20, 46, 18, -9, -27, -7, 56, - 0, -18, -11, 15, -9, 8, -15, -23, - 3, 1, -15, -7, 6, 8, -7, 14, - 11, -1, 10, -29, 4, -15, 25, 6, - 17, 11, 7, 0, 12, 21, 5, -5, - 11, 23, 14, 16, 17, 13, 5, -44, - 1, 15, 23, 9, 12, -11, -206, -44, - ], - [ - -30, -50, -19, 6, -46, -16, -41, 42, - 21, 30, 59, 45, -12, -18, 8, 108, - -14, -15, 11, 4, 0, 20, 43, -19, - -25, -6, -31, -7, 4, 36, 24, 25, - -9, -18, -5, -36, 32, -26, 48, 13, - -12, -8, 12, 3, 2, 24, -2, 2, - -8, 18, 5, -3, 8, -9, 29, 10, - -3, 1, 17, 0, 2, -10, 11, -220, - ], - [ - 41, 68, 47, 115, 19, -22, 134, -192, - 22, -150, -33, -30, 4, -12, 34, 61, - -10, 32, 33, 61, 40, -46, -17, -106, - 18, -50, -20, -30, 27, -41, 13, -10, - 42, 30, 24, 20, -12, -1, -1, 41, - 31, -12, 27, -27, 13, -7, -13, -60, - -56, -132, 32, 32, 7, -27, -4, 61, - 7, -16, 105, -4, -12, -40, -25, -24, - ], - [ - -165, 6, 24, -184, 91, 107, 91, 95, - 20, 15, 43, 33, -25, 21, 41, 27, - 39, 22, 22, 24, -51, -136, 10, -31, - -7, -11, 10, 23, 69, 11, -42, 38, - -19, -7, 4, 9, 14, -25, -37, -85, - 25, -23, -30, 19, 54, 28, -87, -44, - 18, -51, 5, 4, 3, -13, 15, -12, - 48, -26, -10, 6, -36, 20, 21, -16, - ], - [ - -83, -54, 4, -176, -58, 138, -145, -84, - 5, 1, -33, -15, -16, 16, -14, 72, - -14, -60, 23, 36, 53, 19, -39, 42, - -7, 35, 4, -8, 51, -9, -2, 16, - -5, 40, 15, 68, 35, 12, 37, -17, - 33, 16, 33, 11, 53, -7, 21, 6, - -63, 5, -1, -6, -3, -13, -4, 64, - -63, 2, -12, -18, 20, 14, 10, 21, - ], - [ - -31, -51, -41, -80, 0, -142, 112, -16, - 44, 13, 4, 57, -77, -51, 26, 57, - 3, 10, 32, -4, -59, 69, 36, 48, - -31, -24, -27, 12, 20, 18, 13, 31, - 4, -10, 20, -9, 10, 12, 21, -19, - -23, 4, -17, 19, 37, 28, 1, 15, - 1, -27, 7, 1, -90, 27, 8, 26, - -43, 1, -5, -10, 7, -35, 64, 6, - ], - [ - -125, 56, -96, 79, -39, -22, 82, -46, - -13, 9, 5, 16, 42, -15, 1, 48, - -63, -17, 32, 38, 78, 88, 30, 18, - -42, -14, 44, 1, 28, -27, 32, 23, - -17, -19, 2, 12, 32, 7, 55, -31, - -56, -5, 11, 13, 44, 34, 9, -25, - -15, -5, 3, 14, -18, -168, -14, -2, - -37, 15, 9, -1, -0, -68, 23, -34, - ], - [ - -11, 25, 115, 88, 53, -90, -18, -38, - -23, 5, 59, 56, 49, 6, -19, 74, - -31, -34, -2, 11, 25, 69, 9, 10, - -58, -1, 2, 8, 29, 25, 8, 18, - -1, -10, -4, -35, 12, 3, 5, -51, - -16, -12, -7, -6, -6, 39, 8, -35, - -14, -9, -4, -9, 0, -16, -51, -32, - -33, 0, -13, -7, -9, -22, -74, -10, - ], - [ - -23, 58, 10, 60, -21, 57, 139, 9, - -2, -11, 29, 19, 67, 89, 49, 107, - -12, -37, -9, 37, 20, 62, 18, 5, - -36, -43, -37, -28, 44, 6, 16, 12, - -28, -49, -3, -42, -9, -9, 28, 9, - -19, -24, -15, -20, -5, 11, 18, -26, - -47, -5, -18, -13, -10, -8, -19, -185, - -23, -19, -10, -8, -22, -30, 2, -50, - ], - [ - -134, 38, 62, -8, -127, 17, 53, -220, - 9, 59, 7, -188, -31, -73, 22, 65, - -22, 8, 105, 45, 62, -29, -187, -31, - 3, 8, 126, 110, 113, 47, -199, -7, - -27, 196, 4, 140, -2, -156, -51, -181, - -189, 41, 21, 76, -86, 138, -8, -84, - -125, -6, 118, 150, 167, -23, 59, -23, - 74, -264, 126, 39, 66, -29, -3, 138, - ], - [ - 130, -36, 90, -41, -78, -147, -24, -76, - 114, -45, -28, -54, 75, 97, 128, -90, - -22, -10, 117, 29, 145, 282, -133, -28, - -53, -51, 157, 127, -196, -10, -54, -211, - -52, 19, -119, 177, 208, -9, 126, 74, - 8, 90, 2, -97, 59, 1, -79, 29, - 56, -7, -103, -0, -176, 24, -15, -19, - 103, -21, -97, -177, -99, -35, 20, 6, - ], - [ - -47, -265, -81, 20, -100, -349, 126, 115, - 125, 66, 51, -117, 157, 109, 106, -194, - 25, -2, 142, 65, 111, 59, 251, 164, - -126, -26, 46, 90, 193, -60, -0, -67, - 87, -49, 100, 66, -131, 122, -107, 142, - -32, -201, 157, 74, -66, 81, -91, -104, - -3, -8, -142, -144, -36, 62, 77, 69, - 32, 108, -44, -189, -113, -33, -92, -179, - ], - [ - 6, -253, -62, 273, 122, -43, 140, -84, - -108, -37, 47, 18, 104, -33, 165, 16, - -36, 172, 166, 8, 86, -54, 64, 116, - 179, 66, 4, 3, -63, 50, 30, -128, - -6, -16, -148, -128, -82, 83, 73, -89, - -19, -43, -131, 94, -343, -212, 60, 54, - 8, -101, 9, 55, -121, 84, 87, -185, - 44, -15, 166, -221, 50, 98, -99, 60, - ], - [ - -113, -46, 136, 1, -35, 4, -200, 153, - -46, -171, 62, 359, 39, 182, 38, -116, - -51, 123, -15, 56, 2, 75, 7, 125, - -93, 26, 90, 76, 56, 18, -33, 161, - -2, -75, 141, 50, -217, -2, 6, -72, - -154, -173, 3, 58, -49, -75, 78, 159, - -10, -165, -4, -80, -162, -56, -149, 125, - -61, 91, 15, -195, 5, -71, 135, 35, - ], - [ - -439, -221, -114, -25, 152, 151, -81, -15, - -207, 91, -64, 106, 10, 197, 301, -45, - 47, 17, 121, 21, 23, 49, -145, 179, - 157, 66, -51, 36, -8, 147, -53, 55, - -30, 95, -206, -28, -8, 147, -248, 1, - -59, -43, 13, 57, -28, -116, 47, -11, - 130, 74, -142, -130, -14, 17, 12, -27, - 51, -18, -87, 61, -43, -37, 33, 78, - ], - [ - 12, -133, 131, 23, -136, 131, -93, 164, - 37, -191, -138, 89, 108, 228, -57, -43, - 14, 51, 175, -42, 75, 334, -57, -11, - -32, 101, 158, 185, -75, -43, 180, 124, - -120, -75, 165, -112, -86, 174, -294, -27, - -51, -22, -39, -177, -23, -7, 86, 157, - 4, -19, -24, -181, -44, -25, 43, 47, - -128, -71, -116, -175, -68, -14, -3, -44, - ], - [ - 140, -80, -54, 143, 39, -23, 188, -157, - -35, 148, -40, 210, 50, -99, -24, 74, - -99, 83, 113, -29, 67, -50, 244, 317, - -15, -69, 14, -103, 257, -95, -23, 156, - -23, 5, -98, -98, 190, -58, -48, -10, - -99, -196, -126, 51, 80, -178, 75, -78, - 51, -33, -5, -65, 2, 39, -39, -17, - -256, -49, -185, -190, -16, 50, 77, -1, + 74, -7, -61, -111, -58, 14, -78, -6, + -1, 100, -29, -45, -49, -6, -18, 15, + 47, 22, -3, -66, -27, 14, 18, 23, + 23, 35, 48, -10, 40, 14, 0, -11, + 31, 50, -7, 26, 18, 12, 11, -59, + 4, 6, 15, -1, 15, 2, 10, -34, + -31, 6, 8, 17, 3, 6, 4, -29, + -52, 27, 0, -2, 13, 21, 18, -7, + ], + [ + 50, 47, 76, -47, 103, -11, -47, -10, + -7, 24, 58, -60, -10, 2, -19, 17, + 10, -26, -37, 9, 17, 10, -5, 0, + -3, -17, 3, -3, 13, 19, -20, 14, + 20, 3, 9, -10, 4, -5, 27, -18, + -15, 9, -9, 3, 9, 3, 2, -5, + -65, 1, 20, 27, 18, 5, 20, 4, + -39, -245, 18, 2, 15, 5, 23, 12, + ], + [ + -58, 49, -76, 4, -8, -62, -113, -0, + 0, -17, -3, -32, -9, 26, 4, 39, + -24, 23, -25, 38, 7, 13, 22, 30, + 7, -8, -10, 2, 12, 25, 12, 13, + 12, 0, 18, 14, 15, -6, 15, 15, + 16, 7, 10, 9, 25, 11, 11, 6, + -8, 28, 31, 30, 23, 10, 23, 5, + -5, 5, -261, 3, 17, -6, 33, 12, + ], + [ + -77, -19, -10, 84, -34, -22, -99, -55, + 10, -46, 37, 11, 41, -39, -41, 28, + 9, -24, -74, -10, 0, -5, 35, 8, + 33, 0, -18, -3, 14, 35, 49, 13, + -31, 29, 21, 9, 42, 28, 59, 16, + -2, -25, 19, 5, 20, 21, -5, -14, + -25, 5, -9, 9, 15, 7, 49, -1, + -16, 14, 11, -98, -2, 12, 20, -17, + ], + [ + -63, -141, -111, 82, -100, 5, -70, -64, + 13, -24, -14, -64, -24, 4, -35, 24, + 12, -23, -13, 12, -32, -0, 9, 5, + 22, 8, 8, -2, -4, 4, 4, 6, + 28, 8, 14, -9, -6, 2, 24, 36, + 26, 27, 25, 11, 21, 32, 13, 25, + 36, 55, 39, 41, 32, 20, 45, 12, + 43, 42, 30, 17, -200, 6, 40, 33, + ], + [ + -75, 3, 39, -13, 54, -1, -54, -72, + 11, 1, 6, -15, -7, -18, 14, -5, + -1, -19, -7, 18, 21, 29, 17, 13, + -17, -30, -25, 17, 14, 35, 19, 21, + 6, -24, 8, -2, 27, 7, 6, 13, + -22, 13, 29, 7, -4, 41, 10, 27, + 13, 7, -2, -1, 12, 33, -3, -16, + -11, 16, 4, -1, 4, -158, -13, -0, + ], + [ + -24, 19, 49, 64, 18, -1, 32, -55, + 2, -3, 30, -4, -11, -15, -6, 47, + 6, -10, -3, 2, -14, 4, -8, -9, + 3, 2, -8, -5, 0, 8, -3, 7, + 6, -0, 8, -16, 0, -10, 12, 11, + 9, 7, 4, 0, 3, 14, 9, 3, + 15, 19, 8, 10, 12, 20, 3, -44, + 7, 15, 13, 5, 15, -2, -238, -34, + ], + [ + -15, -62, -11, 2, -37, 12, -26, 68, + 10, 9, 45, 23, -15, -5, 8, 98, + -9, -7, 19, -10, -3, 18, 51, -4, + -25, -5, -24, -4, -3, 37, 28, 19, + -13, -18, -8, -24, 27, -22, 36, 18, + -20, -12, 8, 3, -7, 17, 2, 10, + -5, 13, -2, -10, 4, -2, 28, 9, + 2, -1, 6, -3, 4, -3, 17, -235, + ], + [ + 42, 18, 47, 79, 11, -4, 102, -150, + 11, -159, -43, -49, -1, -8, 31, 52, + -5, 38, 40, 45, 36, -45, -9, -90, + 17, -49, -14, -28, 21, -38, 18, -14, + 38, 29, 21, 33, -16, 4, -9, 46, + 29, -13, 25, -26, 6, -12, -6, -48, + -42, -83, 27, 27, 4, -19, -3, 61, + 17, -12, 95, -6, -8, -30, -16, -13, + ], + [ + -145, -19, 22, -117, 73, 71, 77, 87, + 10, -8, 26, 14, -33, 28, 40, 19, + 43, 24, 31, 9, -60, -135, 16, -20, + -0, -8, 17, 25, 62, 10, -37, 31, + -23, -3, 2, 20, 14, -21, -48, -78, + 20, -25, -29, 21, 43, 23, -79, -30, + 27, -48, 11, -3, 1, -5, 16, -7, + 56, -24, -14, 4, -30, 29, 31, -6, + ], + [ + -77, -56, 4, -132, -53, 77, -103, -55, + -9, -22, -51, -40, -26, 25, -15, 59, + -8, -51, 30, 23, 47, 14, -31, 54, + -7, 37, 9, -4, 43, -10, 2, 6, + -12, 39, 14, 84, 31, 17, 24, -14, + 30, 12, 30, 12, 44, -12, 28, 13, + -52, 3, -6, -6, -6, -6, -6, 65, + -57, 0, -20, -22, 22, 23, 17, 32, + ], + [ + -20, -46, -15, -56, -0, -94, 113, 2, + 30, -10, -17, 28, -82, -45, 25, 46, + 9, 15, 40, -17, -70, 64, 46, 61, + -33, -21, -21, 17, 14, 14, 19, 21, + -3, -10, 18, 3, 6, 14, 8, -17, + -33, -1, -21, 19, 27, 22, 4, 24, + 4, -34, -2, -7, -88, 36, 7, 20, + -37, -3, -17, -16, 7, -26, 69, 13, + ], + [ + -113, 41, -73, 76, -22, 9, 91, -12, + -26, -13, -15, -13, 38, -8, 1, 35, + -57, -8, 41, 24, 74, 83, 31, 27, + -44, -14, 49, 2, 22, -28, 33, 16, + -24, -20, -0, 23, 27, 12, 41, -26, + -66, -11, 7, 12, 35, 27, 14, -15, + -12, -11, -5, 8, -23, -134, -14, -5, + -32, 13, -2, -6, 2, -61, 29, -29, + ], + [ + 2, 6, 125, 92, 63, -64, -1, -22, + -32, -17, 44, 36, 46, 16, -15, 65, + -24, -24, 5, -2, 21, 64, 13, 23, + -57, -0, 9, 11, 24, 25, 12, 10, + -6, -10, -6, -23, 7, 6, -8, -49, + -24, -15, -10, -7, -15, 34, 10, -28, + -11, -13, -11, -15, -4, -10, -55, -35, + -27, 1, -23, -11, -7, -15, -68, -5, + ], + [ + -10, 41, 17, 59, -13, 76, 149, 33, + -12, -34, 11, -4, 63, 98, 48, 97, + -10, -28, -2, 21, 12, 56, 22, 19, + -38, -43, -31, -27, 36, 5, 17, 4, + -33, -50, -8, -31, -15, -7, 13, 11, + -26, -28, -19, -21, -15, 5, 22, -21, + -43, -11, -26, -21, -16, -2, -21, -118, + -18, -21, -21, -13, -19, -23, 6, -42, + ], + [ + -86, 2, 25, 1, -67, 1, 13, -115, + -6, 39, -3, -126, -21, -34, -9, -3, + 0, 6, 78, 25, 35, -6, -100, -2, + 19, 2, 92, 91, 74, 12, -124, 1, + -4, 139, 0, 117, -11, -90, -29, -87, + -80, 21, 10, 50, -63, 56, -7, -46, + -57, -7, 91, 116, 124, -33, 33, -28, + -12, -144, 73, 27, 22, -25, -2, 31, + ], + [ + 68, -56, 17, -9, -31, -29, -28, -21, + 32, -11, -11, -24, 18, 28, 29, -28, + -6, 7, 61, 38, 53, 126, -47, -3, + -1, -4, 92, 67, -69, -3, -7, -68, + -20, 51, -54, 76, 105, -19, 69, 43, + -14, 19, -9, -29, 39, -15, -51, 15, + 12, -36, 6, 3, -84, 19, -0, -21, + 34, -37, -42, -125, -58, -44, -5, -6, + ], + [ + -28, -143, -47, 34, -37, -158, 31, 31, + 61, 5, 32, -57, 62, 63, 17, -85, + 17, 20, 51, 46, 24, 27, 94, 64, + -35, 10, 50, 50, 83, -12, -1, -0, + 69, -10, 63, 30, -46, 45, -34, 74, + 6, -63, 46, 19, -19, 14, -34, -55, + 7, -29, -101, -101, -28, 29, 34, 32, + 2, 48, -25, -87, -51, -25, -34, -43, + ], + [ + -21, -104, -81, 84, 45, -44, 39, -40, + -6, -20, 24, 41, 42, -29, 71, 9, + 9, 53, 84, 4, 31, -29, 17, 16, + 97, 24, -1, 21, -11, 36, -3, -29, + -3, 7, -54, -37, -14, 48, 57, -24, + 4, 23, -47, 40, -165, -98, 48, 21, + -2, -74, -19, 24, -42, 39, 41, -88, + 26, 10, 94, -142, 25, 23, -59, 5, + ], + [ + -53, -15, 56, -22, -41, -28, -99, 36, + -9, -58, 5, 147, 33, 74, 2, -46, + -8, 65, -44, 24, 5, 39, 17, 55, + -38, 11, 48, 37, 45, 23, -5, 65, + 7, -24, 58, 27, -57, 3, 38, -41, + -67, -60, 1, 4, -35, -11, 48, 89, + -5, -82, 5, -66, -93, 9, -53, 51, + -27, 30, 9, -77, -34, -23, 21, 35, + ], + [ + -189, -112, -51, -15, 65, 2, -58, -57, + -102, 58, -11, 49, 10, 97, 95, -36, + 16, -10, 60, -8, 23, 32, -63, 71, + 77, 44, -20, 24, 12, 63, -21, 29, + -11, 45, -73, -8, 6, 82, -117, -14, + -8, 8, 5, 47, 17, -65, 20, -6, + 77, 48, -30, -47, -11, -6, 4, 9, + -3, -57, -83, 5, -6, -4, 57, 48, + ], + [ + -15, -43, 46, 32, -51, 38, -56, 69, + -16, -100, -50, 31, 27, 105, -27, -18, + 5, 10, 72, -21, 20, 166, -16, -12, + -7, 47, 71, 94, -19, -11, 82, 34, + -74, -5, 42, -40, -22, 105, -102, -9, + -11, -40, -7, -55, -20, -0, 40, 50, + 11, -7, -21, -60, -6, -3, 19, 1, + -65, -52, -20, -102, -26, 19, -31, 5, + ], + [ + 72, -57, -18, 56, 29, 1, 85, -98, + -38, 67, -35, 74, 6, -22, 11, 17, + -32, 56, 81, 0, 43, -21, 115, 113, + -10, -27, 11, -41, 109, -33, 6, 77, + -23, -6, -24, -37, 113, -43, -6, 11, + -32, -104, 0, 9, 87, -85, 37, -36, + 24, -35, 10, -70, -19, -12, -5, 17, + -115, -34, -78, -161, -1, 26, 35, -41, ], ]; internal static readonly short[][] EndGameQueenTable = [ [ - -25, -12, 60, 84, -21, -56, 12, -27, - 13, -38, 31, 33, 36, 11, -11, -31, - -43, -10, 66, 83, 9, -3, -8, -44, - 30, 37, -9, 38, 40, -16, 15, 3, - -5, -7, 45, -8, 15, -11, -63, 26, - 12, 23, 11, -10, -34, -13, 0, 49, - -105, 7, 10, 7, -40, -1, -21, 26, - -69, 16, 22, -25, -42, -71, -65, 75, - ], - [ - -82, 43, -58, 74, -149, 39, -4, 62, - 23, -52, 13, 38, 21, -21, -15, -13, - -15, 52, 111, 12, 32, -21, 35, 7, - 43, 86, 22, 29, 49, -31, 57, -26, - -40, 32, 13, 56, -21, 5, -15, 33, - 2, -13, 35, -8, -27, -2, 6, 7, - 69, -12, -5, -14, -11, -8, -32, 15, - -100, -357, 13, -9, 7, -19, -9, 47, - ], - [ - 59, -98, 117, 39, -30, 48, 73, -53, - -4, 5, 57, 38, 37, -41, 10, -19, - 77, -33, 58, -42, 24, 62, -27, 0, - 12, 16, 84, 18, 42, -36, 5, 22, - 8, -2, 12, 29, -14, 21, 2, 6, - -82, 20, 30, 35, -10, 46, 3, 42, - -52, -50, -23, 11, -0, 20, 11, -5, - -65, -86, -422, -35, 18, 15, -12, 8, - ], - [ - -8, -2, 3, -76, 45, -34, 98, -3, - -67, 69, -6, -31, 0, 29, -28, -46, - -6, 7, 102, -1, 108, 29, -29, -9, - -22, 35, 39, 44, -39, 13, -27, -9, - 60, 49, 4, 42, -22, -17, -147, -10, - -10, 66, 32, 11, 18, -0, 55, 53, - 44, -32, 6, 12, 8, 1, -88, 6, - 68, -59, -32, -259, 20, -41, -80, 66, - ], - [ - 58, 100, 75, 8, 133, -30, 72, 18, - -47, -4, 23, 37, -3, -21, -10, -14, - -28, 43, 39, 37, 67, 40, 26, 33, - -58, -23, 44, 54, 43, 41, 14, 26, - -38, 5, -15, 92, 50, 48, 1, -45, - -27, -27, 9, 26, 14, -10, 14, 5, - -118, -73, -65, -32, -17, 1, -81, 30, - -37, -47, -22, -56, -346, -2, -23, -7, - ], - [ - 59, -13, -50, -21, -2, 23, 35, 35, - -79, -50, -32, 16, 35, 59, -17, 32, - 15, -36, 15, -11, 2, -20, 5, 49, - -14, 52, 20, -4, 2, 16, 21, 0, - -33, 3, 0, 34, 18, 13, 47, -8, - 4, -23, -15, 21, 27, 9, 10, 17, - -56, -10, 19, 42, 11, -27, 16, 2, - -2, -24, 11, -24, -7, -314, 75, 26, - ], - [ - 17, -17, -50, -68, 6, 25, -1, 74, - -2, -23, -28, -16, 26, 41, 19, -6, - -11, 14, 30, 17, 36, 54, 89, 41, - -3, -2, 27, 13, 30, 14, 52, 19, - 11, -2, -2, 23, -4, 21, 7, 29, - -12, -6, -1, -1, -4, -1, 11, -29, - -23, 2, 5, -0, 5, -17, -26, 45, - 45, 33, 20, 7, 3, 12, -556, -9, - ], - [ - 33, 47, 16, -8, 73, 22, -10, -28, - -43, -52, -53, -38, 20, 22, -16, -92, - 3, -15, -0, 5, 33, 86, -9, 61, - 27, 3, 25, 9, 28, -1, -3, 7, - -5, -9, 22, 14, -29, 59, -22, 32, - 7, -27, -15, -17, -1, 13, 2, -10, - -11, 3, -5, 43, 10, 25, -14, -47, - 47, 19, 32, 0, 24, 21, 15, -328, - ], - [ - -38, -112, -50, -72, -24, 1, -131, 109, - 24, 96, 65, 52, 40, -21, -21, -87, - 30, 26, 47, 26, -32, 79, 1, 76, - -13, 91, 51, 56, 40, 74, -14, 14, - -25, 16, 58, 23, 47, 23, 9, -40, - -73, 22, 2, 93, 5, 45, -19, 71, - -51, 71, -52, -10, -50, 8, 20, -125, - -151, -120, -128, -22, -2, -26, 60, -62, - ], - [ - 107, -31, -15, 134, -31, -116, -90, -90, - -5, 23, 11, 16, 72, -61, -24, 10, - -63, 27, 38, -6, 61, 99, -26, 5, - -10, 41, 30, 66, -23, -16, 42, -50, - -28, 3, 78, 32, 27, 3, 66, 112, - -23, 2, 64, 10, -8, 2, 83, 50, - -59, 6, -33, 23, 1, -23, -51, -29, - -134, -102, -26, -86, -75, -52, 35, 6, - ], - [ - 22, 21, -20, 70, 60, -95, 51, 52, - -23, 17, 65, 43, 67, -20, -58, -20, - 0, 44, 20, 18, 45, 72, 18, 3, - 21, -10, 38, 77, 41, 18, 23, -36, - 4, -25, 18, 7, 15, 51, -39, 21, - -33, -45, 3, 28, -12, 34, -45, -39, - 11, -91, -48, -67, 15, 13, -29, -55, - 2, -40, -70, -75, -63, -82, 42, -29, - ], - [ - 53, 59, 55, 76, -4, 114, -66, 12, - -57, -6, 1, -24, 69, 22, -47, -9, - 8, -11, 14, 46, 67, -3, -44, -45, - 48, 38, 46, 48, 25, 47, -36, -18, - 13, 11, 22, 44, 51, 37, 4, 12, - 0, -30, 17, -8, 6, -4, -27, -61, - -64, 29, -22, -14, 4, -31, -26, -70, - 23, -28, -13, -85, -88, -21, -59, -101, - ], - [ - 58, -22, 32, -41, 42, 14, -86, 29, - 7, -49, 12, 0, 44, -8, -24, -39, - 25, -14, 3, 5, -18, -26, -11, -4, - 4, 12, -42, 9, -1, 61, -13, 1, - -10, 11, 14, 11, -3, 16, -21, 46, - 36, -23, 8, -4, -22, -9, 5, 56, - -35, 6, -11, -8, 18, 27, -26, 35, - -26, -38, -9, -46, -11, 69, -59, 39, - ], - [ - 5, -14, -79, -73, -15, 79, -16, 48, - 12, -18, -59, -27, -28, 15, 24, -29, - 14, -3, 18, 19, 10, -3, 36, -18, - 22, -3, -3, 5, -1, 15, 14, -4, - -9, -15, 10, 19, 4, 19, 43, 67, - -44, 4, -13, 3, 10, 2, 6, 49, - -22, 0, -1, 5, 2, -21, -34, 15, - 25, 4, 10, -30, -21, -30, -6, 5, - ], - [ - -9, -33, -13, -46, 37, -25, -101, -5, - 2, 2, -13, -24, -40, -53, -38, -69, - -13, 22, 4, -8, 9, -7, 12, 23, - 15, 32, 47, 15, -13, 45, 22, 37, - -3, 31, -1, 33, 7, 29, 12, 41, - -13, -5, -14, 2, -1, -3, 10, 38, - 43, 5, -2, 11, 7, -10, -7, 52, - -1, -8, -16, -36, 25, -10, -19, -11, - ], - [ - 4, -65, -45, -7, 56, -16, -92, 110, - -9, -16, 49, 127, 58, 70, -68, -123, - 34, 40, 65, 19, 11, 105, 107, 13, - 68, 49, -34, -27, -52, 2, 85, 15, - 11, -76, 4, 10, 115, 156, 27, 45, - 37, 18, 65, -46, 76, -80, 36, 5, - 41, -6, -117, -129, -109, -54, -67, -25, - -194, 113, -47, -8, -90, -19, 10, -230, - ], - [ - -110, -45, -39, 36, 24, 119, -72, 55, - -70, 37, 63, 53, -69, -92, -70, 123, - 12, 37, 32, 99, -57, -89, 144, -1, - 62, 113, 24, 20, 130, 24, 53, 106, - -9, 63, 37, -38, -65, -16, 38, 27, - -73, -84, -3, 48, 14, -32, -34, -27, - -46, -81, 157, 29, 12, -32, -6, -60, - -93, -64, -36, -25, -33, -61, -71, -90, - ], - [ - -38, 152, -37, 38, 45, 100, -102, -103, - -68, -79, 4, 79, -79, -39, -99, 50, - -40, 49, -42, 11, 2, -39, -86, -65, - 46, 40, 98, 19, -68, 49, -8, 38, - 24, 27, 47, 45, 94, -92, 46, -12, - 12, 149, -124, 8, 26, -60, 69, 3, - -13, -17, -21, -2, -46, -17, -23, -37, - -86, -48, -22, 155, 16, -49, 50, 71, - ], - [ - -53, 140, 5, -226, -66, -12, -78, -9, - 105, 27, -1, 129, -51, -21, -35, -50, - 67, -82, 5, 6, -2, 72, -5, -155, - -8, -77, 21, 16, 85, 18, 4, 86, - -13, 64, 98, 68, 115, -28, 34, 41, - -17, 119, 33, -32, 141, 51, -5, -90, - -25, -2, -25, -52, 89, -35, -48, -25, - -21, 13, -53, 42, -27, -111, -75, -78, - ], - [ - 41, 23, -58, -21, -56, -82, 76, -105, - 29, 92, -74, -138, 58, -66, -53, 25, - 42, 1, -20, 1, 36, 20, 35, -50, - 56, -79, 8, -35, 56, 39, 27, -82, - 66, 3, -44, -1, 131, 62, 91, 11, - 30, 106, -1, -62, -3, 51, 9, 5, - -33, 10, -7, -74, -34, 79, 29, 14, - -19, -20, -10, 108, -148, 4, -160, 60, - ], - [ - 181, 77, 40, 32, -78, -202, 16, -73, - 58, 53, 82, -28, 22, -38, -158, -57, - -50, -83, -8, -37, 45, 56, 2, -103, - -32, -1, 42, 16, 69, -64, 32, -18, - 12, -44, 162, 23, 36, -17, 57, -68, - 80, 89, 12, 66, 119, 65, -53, -40, - 34, 37, 107, 62, 3, -64, -56, 17, - -124, -153, -207, -102, 33, -15, 101, 38, - ], - [ - -24, 60, -75, 51, 65, -69, -21, -97, - -75, 33, 110, -38, -66, -53, -17, -15, - 14, -32, -32, 61, -0, -85, 83, -10, - -6, -61, -57, -81, 98, 55, -23, -77, - 49, 88, -169, 68, 100, -36, 238, 2, - 45, -76, 16, 59, -31, 19, -57, -77, - 7, -17, 16, 54, 115, 8, -1, -124, - -16, -27, 14, 14, 51, 93, -100, 58, - ], - [ - 0, 29, 36, -63, 51, -2, -140, -44, - -14, -49, 8, -146, -93, 74, 81, -97, - 58, 68, 28, 46, 12, 63, -44, -153, - -4, 21, 10, 57, -168, 120, 103, 22, - -23, 35, 35, 41, 4, -11, 61, 111, - 66, 87, 204, -84, 120, 36, -27, -50, - -15, -49, -20, -42, -12, -105, 4, 67, - -29, -1, -21, -101, 18, 39, 8, -213, + -18, -1, 44, 68, -19, -46, 8, -37, + 20, -28, 42, 45, 40, -2, -19, -22, + -47, -16, 45, 79, -4, -22, -19, -51, + 29, 39, -12, 38, 46, -11, 15, 11, + 3, -8, 47, -12, 19, -9, -49, 26, + 16, 25, 11, -10, -21, -9, -2, 38, + -91, 11, 17, 17, -30, -5, -19, 31, + -94, 13, 21, -15, -37, -77, -65, 64, + ], + [ + -87, 47, -32, 70, -130, 23, -8, 49, + 25, -42, 17, 48, 27, -30, -28, -8, + -17, 40, 88, 9, 13, -35, 15, -12, + 43, 81, 18, 26, 53, -30, 54, -21, + -34, 30, 14, 51, -19, 5, -8, 28, + 2, -10, 36, -5, -19, 4, 3, 2, + 68, -4, 0, -6, -6, -14, -32, 15, + -112, -271, 12, -2, 1, -25, -8, 35, + ], + [ + 58, -61, 100, 44, -18, 28, 54, -69, + 3, 16, 62, 51, 39, -48, 2, -17, + 73, -35, 41, -43, 10, 44, -44, -17, + 8, 17, 80, 16, 42, -36, 6, 21, + 13, -3, 13, 20, -11, 19, 7, 1, + -77, 23, 30, 33, -3, 49, -1, 37, + -55, -48, -17, 18, 2, 15, 12, -11, + -71, -90, -299, -33, 12, 7, -14, -5, + ], + [ + -1, 1, 7, -28, 28, -39, 57, -21, + -51, 81, 9, -19, 9, 26, -31, -36, + -7, 5, 80, -5, 95, 5, -48, -26, + -21, 39, 32, 44, -30, 16, -24, -12, + 61, 43, 4, 33, -17, -25, -132, -12, + -10, 68, 37, 12, 23, 6, 48, 49, + 34, -26, 7, 19, 10, -2, -87, 9, + 56, -61, -32, -186, 17, -43, -79, 45, + ], + [ + 59, 114, 76, 22, 123, -41, 61, 5, + -40, 6, 28, 59, 4, -28, -19, -11, + -29, 36, 21, 34, 57, 22, 10, 15, + -56, -25, 41, 52, 48, 42, 15, 32, + -35, 6, -10, 83, 52, 43, 13, -53, + -24, -24, 14, 28, 19, -9, 9, -3, + -121, -69, -61, -28, -13, -3, -79, 25, + -43, -51, -24, -49, -266, -10, -27, -22, + ], + [ + 60, 0, -43, -9, -4, 3, 24, 11, + -72, -36, -23, 30, 38, 55, -31, 36, + 14, -40, -5, -12, -12, -36, -6, 34, + -13, 51, 20, -2, 9, 15, 20, 6, + -29, 5, 4, 30, 21, 12, 57, -11, + 9, -19, -11, 22, 37, 13, 5, 8, + -59, -3, 26, 50, 15, -32, 17, 5, + -6, -25, 11, -17, -11, -282, 66, 10, + ], + [ + 16, -3, -45, -57, 3, 1, -19, 55, + 5, -12, -19, -2, 33, 35, 8, -0, + -13, 9, 10, 15, 23, 41, 74, 26, + -2, -2, 25, 15, 35, 15, 52, 23, + 15, -2, 1, 16, 0, 20, 16, 24, + -6, -2, 3, 2, 3, 2, 6, -35, + -22, 7, 12, 6, 9, -20, -23, 45, + 43, 31, 20, 13, 0, 4, -508, -23, + ], + [ + 29, 55, 21, 4, 67, 1, -15, -50, + -36, -43, -47, -26, 25, 13, -25, -85, + 1, -21, -20, 4, 19, 68, -26, 44, + 28, 5, 21, 11, 34, -0, -3, 9, + -2, -6, 27, 9, -24, 59, -14, 27, + 13, -23, -11, -13, 7, 15, -2, -15, + -11, 7, 2, 49, 14, 21, -12, -42, + 45, 18, 33, 6, 23, 17, 10, -287, + ], + [ + -30, -72, -37, -35, -17, -11, -99, 81, + 31, 96, 74, 64, 50, -19, -25, -81, + 25, 23, 29, 28, -43, 61, -13, 64, + -13, 92, 53, 61, 48, 72, -11, 18, + -22, 16, 62, 18, 55, 22, 12, -40, + -75, 21, 7, 95, 14, 48, -22, 62, + -81, 14, -45, -4, -46, 5, 19, -123, + -161, -128, -124, -18, -6, -30, 57, -69, + ], + [ + 99, -12, -3, 99, -16, -89, -68, -79, + 1, 37, 19, 28, 84, -61, -29, 14, + -66, 22, 17, -1, 54, 85, -36, -3, + -15, 41, 28, 67, -13, -13, 41, -45, + -25, 1, 82, 30, 32, 3, 73, 108, + -25, 2, 60, 9, 3, 6, 75, 39, + -71, 5, -41, 31, 3, -30, -54, -35, + -138, -104, -38, -81, -82, -56, 27, -1, + ], + [ + 27, 25, -7, 52, 56, -56, 26, 30, + -15, 27, 75, 59, 80, -23, -61, -10, + 1, 39, 2, 15, 32, 60, 5, -7, + 24, -8, 40, 78, 50, 21, 26, -30, + 8, -23, 20, -1, 22, 49, -28, 22, + -35, -41, 7, 28, -4, 37, -49, -44, + -2, -92, -43, -69, 15, 11, -24, -53, + -3, -40, -70, -70, -64, -89, 36, -45, + ], + [ + 50, 55, 49, 70, -6, 82, -61, -4, + -47, 5, 14, -6, 78, 18, -54, -3, + 4, -17, -6, 42, 60, -16, -59, -59, + 51, 38, 45, 47, 30, 53, -35, -15, + 17, 13, 25, 39, 55, 37, 13, 11, + 10, -24, 22, -5, 15, -1, -29, -67, + -64, 37, -13, -6, -1, -33, -23, -59, + 18, -23, -10, -77, -88, -28, -61, -106, + ], + [ + 53, -12, 26, -29, 29, -6, -89, 6, + 14, -40, 22, 20, 51, -12, -33, -31, + 22, -19, -19, 4, -32, -40, -21, -13, + 6, 15, -42, 12, 5, 63, -10, 6, + -6, 12, 18, 7, 3, 14, -10, 43, + 44, -17, 13, -1, -13, -4, 3, 48, + -31, 12, -4, -1, 23, 1, -22, 45, + -29, -35, -7, -38, -11, 68, -61, 37, + ], + [ + 2, -1, -77, -66, -22, 62, -26, 34, + 16, -9, -51, -13, -21, 8, 11, -23, + 10, -10, -2, 18, -3, -17, 23, -32, + 21, -1, -5, 7, 5, 16, 16, 1, + -4, -13, 15, 15, 10, 18, 52, 66, + -38, 8, -9, 6, 17, 5, 5, 46, + -22, 5, 5, 10, 5, -24, -28, 20, + 23, 1, 14, -22, -22, -34, -8, 4, + ], + [ + -12, -20, -7, -36, 31, -37, -103, -23, + 8, 13, -3, -8, -33, -59, -49, -63, + -14, 16, -15, -8, -1, -20, 2, 9, + 17, 34, 46, 18, -6, 48, 25, 43, + 1, 35, 5, 31, 14, 30, 22, 40, + -9, 0, -9, 7, 8, 1, 8, 37, + 43, 10, 6, 19, 12, -11, -5, -12, + -4, -7, -14, -27, 25, -13, -19, -19, + ], + [ + -24, -41, -17, 5, 17, -4, -66, 42, + -1, -5, 54, 86, 59, 47, -56, -80, + 18, 40, 70, 23, 17, 76, 43, -13, + 47, 52, -6, -10, -21, 29, 40, 9, + 0, -29, 9, 32, 122, 106, 10, -16, + -24, 30, 74, -27, 60, -22, 33, -18, + -22, -6, -90, -105, -70, -38, -40, -33, + -127, 14, -11, -5, -54, -34, 0, -150, + ], + [ + -80, -48, -0, 21, -5, 62, -68, 15, + -27, 15, 51, 34, -28, -54, -22, 74, + -2, 22, 52, 83, -12, -7, 71, -9, + 32, 89, 68, 58, 51, 21, 26, 24, + -23, 55, 2, 30, 4, -13, 68, 45, + -64, -43, 0, 14, 36, -24, -56, -16, + -12, -75, 97, 32, -29, -9, -2, -50, + -57, -68, -47, -49, -51, -62, -48, -92, + ], + [ + -57, 75, -63, 34, 8, -12, -49, -67, + -27, -43, 15, 48, -14, 2, -70, -28, + -26, 41, -8, 8, 31, -25, -8, -25, + -1, 22, 99, 43, -2, 31, -14, 15, + 60, 6, 78, 69, 45, -42, 3, 27, + -4, 67, -63, 39, 7, -24, 34, -29, + -12, -17, -56, -42, -37, -1, 7, -9, + -57, -2, -31, 102, -31, -37, 16, 6, + ], + [ + -49, 44, 7, -126, -31, -25, -23, -45, + 53, 7, 6, 112, -11, -34, 12, -41, + 36, -23, 39, -8, 18, 37, -1, -110, + 45, -50, 20, 9, 58, 36, 9, 29, + -8, 45, 42, 22, 72, 5, 42, -0, + -8, 95, -7, -3, 26, -18, 20, -33, + -16, -27, -10, -13, 43, 9, -11, -71, + 1, 2, 26, -23, -5, -54, -88, -51, + ], + [ + 3, 2, -4, -13, -64, -72, 13, -40, + 7, 24, -38, -15, 55, -7, -47, -20, + 15, 38, -21, 13, 14, 25, 19, -2, + 25, -57, 31, -14, 57, 39, 13, -25, + 76, -6, 5, 14, 54, 60, 76, -11, + -14, 44, -16, -30, -17, 27, 33, 63, + -28, -27, 4, -86, -69, 45, -11, 33, + -30, 24, -15, 47, -130, -12, -113, 56, + ], + [ + 17, -3, -8, 14, -42, -123, -9, -66, + -15, 68, 51, 9, 19, 13, -47, -71, + -32, -70, 15, -42, 28, 42, -54, -24, + 24, 12, 14, 19, 56, 1, 16, 12, + 6, 3, 76, 12, 30, 26, -29, -52, + 48, 66, 11, 90, 100, 43, -27, -31, + 68, 64, 56, 21, -2, -52, -41, 16, + -76, -127, -181, -79, 12, -14, 97, 38, + ], + [ + -18, 18, -16, 48, 15, -23, -47, -56, + -37, -31, 56, 4, -16, 18, -35, -27, + 27, -16, 13, 43, 14, -9, 42, -15, + -14, -17, -5, -28, 62, 43, 29, -29, + 11, 52, -98, 32, 63, 15, 99, 3, + 25, -64, 2, -12, -35, 4, -25, -25, + 2, -13, 6, 7, 85, 10, 8, -67, + -62, -19, -12, -20, 14, 73, -92, 43, + ], + [ + 43, 13, 35, 5, 55, -18, -85, -95, + -22, -5, 12, -52, -69, 35, 57, -57, + 31, 76, 27, 14, 10, 27, 23, -55, + -6, 1, 1, 14, -65, 88, 83, 52, + -29, 27, 17, 7, 47, -28, 29, 64, + 28, 17, 129, -67, 127, -19, 1, -57, + -0, -41, -14, -43, 16, -57, -2, 50, + -96, -31, -57, -129, 4, 33, 11, -112, ], ]; @@ -2743,8 +2743,8 @@ internal static partial class TunableEvalParameters 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, 0, 0, 0, 0, - 48, 0, 0, 0, 0, 0, 0, 0, + 41, 0, 0, 0, 0, 0, 0, 0, + 31, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, @@ -2754,7 +2754,7 @@ internal static partial class TunableEvalParameters 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 70, 0, 0, 0, 0, 0, 0, + 0, 47, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, @@ -2764,7 +2764,7 @@ internal static partial class TunableEvalParameters 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 49, 0, 0, 0, 0, 0, + 0, 0, 35, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, @@ -2774,7 +2774,7 @@ internal static partial class TunableEvalParameters 0, 0, 0, 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, -14, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, @@ -2784,7 +2784,7 @@ internal static partial class TunableEvalParameters 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 15, 0, 0, 0, + 0, 0, 0, 0, -2, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, @@ -2794,7 +2794,7 @@ internal static partial class TunableEvalParameters 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -6, 0, 0, + 0, 0, 0, 0, 0, -18, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, @@ -2804,7 +2804,7 @@ internal static partial class TunableEvalParameters 0, 0, 0, 0, 0, 0, 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, 0, + 0, 0, 0, 0, 0, 0, 32, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, @@ -2814,16 +2814,16 @@ internal static partial class TunableEvalParameters 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 29, + 0, 0, 0, 0, 0, 0, 0, 15, ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -15, 0, 0, 0, 0, 0, 0, - 0, 13, 0, 0, 0, 0, 0, 0, - 0, 50, 0, 0, 0, 0, 0, 0, + 0, -30, 0, 0, 0, 0, 0, 0, + 0, -4, 0, 0, 0, 0, 0, 0, + 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], [ @@ -2831,9 +2831,9 @@ internal static partial class TunableEvalParameters 0, 0, 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, -45, 0, 0, 0, 0, 0, - 0, 0, 6, 0, 0, 0, 0, 0, + 0, 0, -71, 0, 0, 0, 0, 0, + 0, 0, -50, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], [ @@ -2841,9 +2841,9 @@ internal static partial class TunableEvalParameters 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -121, 0, 0, 0, 0, - 0, 0, 0, -60, 0, 0, 0, 0, - 0, 0, 0, -11, 0, 0, 0, 0, + 0, 0, 0, -126, 0, 0, 0, 0, + 0, 0, 0, -55, 0, 0, 0, 0, + 0, 0, 0, -15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], [ @@ -2851,9 +2851,9 @@ internal static partial class TunableEvalParameters 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -118, 0, 0, 0, - 0, 0, 0, 0, -66, 0, 0, 0, - 0, 0, 0, 0, -19, 0, 0, 0, + 0, 0, 0, 0, -119, 0, 0, 0, + 0, 0, 0, 0, -69, 0, 0, 0, + 0, 0, 0, 0, -23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], [ @@ -2861,9 +2861,9 @@ internal static partial class TunableEvalParameters 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -76, 0, 0, - 0, 0, 0, 0, 0, -46, 0, 0, - 0, 0, 0, 0, 0, -14, 0, 0, + 0, 0, 0, 0, 0, -82, 0, 0, + 0, 0, 0, 0, 0, -58, 0, 0, + 0, 0, 0, 0, 0, -23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], [ @@ -2871,9 +2871,9 @@ internal static partial class TunableEvalParameters 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -41, 0, - 0, 0, 0, 0, 0, 0, 13, 0, - 0, 0, 0, 0, 0, 0, 40, 0, + 0, 0, 0, 0, 0, 0, -52, 0, + 0, 0, 0, 0, 0, 0, -7, 0, + 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], [ @@ -2881,86 +2881,86 @@ internal static partial class TunableEvalParameters 0, 0, 0, 0, 0, 0, 0, 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, 7, - 0, 0, 0, 0, 0, 0, 0, 49, + 0, 0, 0, 0, 0, 0, 0, -50, + 0, 0, 0, 0, 0, 0, 0, -10, + 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, ], [ - 116, 0, 0, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 0, 0, 0, 0, - -3, 0, 0, 0, 0, 0, 0, 0, - -4, 0, 0, 0, 0, 0, 0, 0, - -32, 0, 0, 0, 0, 0, 0, 0, - 11, 0, 0, 0, 0, 0, 0, 0, + 101, 0, 0, 0, 0, 0, 0, 0, + -1, 0, 0, 0, 0, 0, 0, 0, + -12, 0, 0, 0, 0, 0, 0, 0, + -18, 0, 0, 0, 0, 0, 0, 0, + -44, 0, 0, 0, 0, 0, 0, 0, + -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], [ - 0, 41, 0, 0, 0, 0, 0, 0, - 0, 4, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 0, 0, 0, - 0, -82, 0, 0, 0, 0, 0, 0, + 0, 70, 0, 0, 0, 0, 0, 0, + 0, 23, 0, 0, 0, 0, 0, 0, + 0, 15, 0, 0, 0, 0, 0, 0, + 0, -54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], [ - 0, 0, 15, 0, 0, 0, 0, 0, - 0, 0, -65, 0, 0, 0, 0, 0, - 0, 0, -131, 0, 0, 0, 0, 0, - 0, 0, -138, 0, 0, 0, 0, 0, + 0, 0, 50, 0, 0, 0, 0, 0, + 0, 0, -45, 0, 0, 0, 0, 0, + 0, 0, -102, 0, 0, 0, 0, 0, + 0, 0, -117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], [ - 0, 0, 0, -78, 0, 0, 0, 0, - 0, 0, 0, -56, 0, 0, 0, 0, - 0, 0, 0, -169, 0, 0, 0, 0, - 0, 0, 0, -203, 0, 0, 0, 0, + 0, 0, 0, -41, 0, 0, 0, 0, + 0, 0, 0, -7, 0, 0, 0, 0, + 0, 0, 0, -121, 0, 0, 0, 0, + 0, 0, 0, -159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, -64, 0, 0, 0, - 0, 0, 0, 0, -66, 0, 0, 0, - 0, 0, 0, 0, -176, 0, 0, 0, + 0, 0, 0, 0, 41, 0, 0, 0, + 0, 0, 0, 0, -24, 0, 0, 0, + 0, 0, 0, 0, -38, 0, 0, 0, + 0, 0, 0, 0, -144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], [ - 0, 0, 0, 0, 0, -60, 0, 0, - 0, 0, 0, 0, 0, -97, 0, 0, - 0, 0, 0, 0, 0, -101, 0, 0, - 0, 0, 0, 0, 0, -140, 0, 0, + 0, 0, 0, 0, 0, -45, 0, 0, + 0, 0, 0, 0, 0, -66, 0, 0, + 0, 0, 0, 0, 0, -71, 0, 0, + 0, 0, 0, 0, 0, -116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 24, 0, - 0, 0, 0, 0, 0, 0, -17, 0, - 0, 0, 0, 0, 0, 0, -69, 0, + 0, 0, 0, 0, 0, 0, 44, 0, + 0, 0, 0, 0, 0, 0, 38, 0, + 0, 0, 0, 0, 0, 0, -3, 0, + 0, 0, 0, 0, 0, 0, -54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], [ - 0, 0, 0, 0, 0, 0, 0, 110, - 0, 0, 0, 0, 0, 0, 0, 92, - 0, 0, 0, 0, 0, 0, 0, 49, - 0, 0, 0, 0, 0, 0, 0, -26, + 0, 0, 0, 0, 0, 0, 0, 109, + 0, 0, 0, 0, 0, 0, 0, 86, + 0, 0, 0, 0, 0, 0, 0, 57, + 0, 0, 0, 0, 0, 0, 0, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2977,8 +2977,8 @@ internal static partial class TunableEvalParameters 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, - -45, 0, 0, 0, 0, 0, 0, 0, + -12, 0, 0, 0, 0, 0, 0, 0, + -40, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, @@ -2988,7 +2988,7 @@ internal static partial class TunableEvalParameters 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -6, 0, 0, 0, 0, 0, 0, + 0, -2, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, @@ -2998,7 +2998,7 @@ internal static partial class TunableEvalParameters 0, 0, 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, 8, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, @@ -3008,7 +3008,7 @@ internal static partial class TunableEvalParameters 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 4, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, @@ -3018,7 +3018,7 @@ internal static partial class TunableEvalParameters 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 12, 0, 0, 0, + 0, 0, 0, 0, 15, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, @@ -3028,7 +3028,7 @@ internal static partial class TunableEvalParameters 0, 0, 0, 0, 0, 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, 15, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, @@ -3038,7 +3038,7 @@ internal static partial class TunableEvalParameters 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 6, 0, + 0, 0, 0, 0, 0, 0, 9, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, @@ -3048,16 +3048,16 @@ internal static partial class TunableEvalParameters 0, 0, 0, 0, 0, 0, 0, 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, 19, ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -4, 0, 0, 0, 0, 0, 0, - 0, -17, 0, 0, 0, 0, 0, 0, - 0, -37, 0, 0, 0, 0, 0, 0, + 0, -0, 0, 0, 0, 0, 0, 0, + 0, -14, 0, 0, 0, 0, 0, 0, + 0, -33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], [ @@ -3065,9 +3065,9 @@ internal static partial class TunableEvalParameters 0, 0, 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, 3, 0, 0, 0, 0, 0, - 0, 0, -24, 0, 0, 0, 0, 0, + 0, 0, 21, 0, 0, 0, 0, 0, + 0, 0, 5, 0, 0, 0, 0, 0, + 0, 0, -21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], [ @@ -3075,9 +3075,9 @@ internal static partial class TunableEvalParameters 0, 0, 0, 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, 0, 11, 0, 0, 0, 0, - 0, 0, 0, -16, 0, 0, 0, 0, + 0, 0, 0, 41, 0, 0, 0, 0, + 0, 0, 0, 12, 0, 0, 0, 0, + 0, 0, 0, -13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], [ @@ -3085,9 +3085,9 @@ internal static partial class TunableEvalParameters 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 41, 0, 0, 0, - 0, 0, 0, 0, 21, 0, 0, 0, - 0, 0, 0, 0, -6, 0, 0, 0, + 0, 0, 0, 0, 43, 0, 0, 0, + 0, 0, 0, 0, 23, 0, 0, 0, + 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], [ @@ -3095,9 +3095,9 @@ internal static partial class TunableEvalParameters 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 36, 0, 0, - 0, 0, 0, 0, 0, 15, 0, 0, - 0, 0, 0, 0, 0, -3, 0, 0, + 0, 0, 0, 0, 0, 38, 0, 0, + 0, 0, 0, 0, 0, 19, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], [ @@ -3105,9 +3105,9 @@ internal static partial class TunableEvalParameters 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 25, 0, - 0, 0, 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, -11, 0, + 0, 0, 0, 0, 0, 0, 27, 0, + 0, 0, 0, 0, 0, 0, 5, 0, + 0, 0, 0, 0, 0, 0, -7, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], [ @@ -3115,76 +3115,76 @@ internal static partial class TunableEvalParameters 0, 0, 0, 0, 0, 0, 0, 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, -3, - 0, 0, 0, 0, 0, 0, 0, -17, + 0, 0, 0, 0, 0, 0, 0, 23, + 0, 0, 0, 0, 0, 0, 0, 3, + 0, 0, 0, 0, 0, 0, 0, -14, 0, 0, 0, 0, 0, 0, 0, 0, ], [ - -116, 0, 0, 0, 0, 0, 0, 0, - -55, 0, 0, 0, 0, 0, 0, 0, - -35, 0, 0, 0, 0, 0, 0, 0, - -42, 0, 0, 0, 0, 0, 0, 0, - -55, 0, 0, 0, 0, 0, 0, 0, - -69, 0, 0, 0, 0, 0, 0, 0, + -113, 0, 0, 0, 0, 0, 0, 0, + -53, 0, 0, 0, 0, 0, 0, 0, + -33, 0, 0, 0, 0, 0, 0, 0, + -38, 0, 0, 0, 0, 0, 0, 0, + -50, 0, 0, 0, 0, 0, 0, 0, + -65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], [ - 0, -87, 0, 0, 0, 0, 0, 0, - 0, -62, 0, 0, 0, 0, 0, 0, - 0, -50, 0, 0, 0, 0, 0, 0, - 0, -50, 0, 0, 0, 0, 0, 0, + 0, -94, 0, 0, 0, 0, 0, 0, + 0, -66, 0, 0, 0, 0, 0, 0, + 0, -53, 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, 0, 0, 0, 0, 0, 0, ], [ - 0, 0, -47, 0, 0, 0, 0, 0, - 0, 0, -26, 0, 0, 0, 0, 0, - 0, 0, -2, 0, 0, 0, 0, 0, - 0, 0, -6, 0, 0, 0, 0, 0, + 0, 0, -54, 0, 0, 0, 0, 0, + 0, 0, -30, 0, 0, 0, 0, 0, + 0, 0, -7, 0, 0, 0, 0, 0, + 0, 0, -10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], [ - 0, 0, 0, -34, 0, 0, 0, 0, - 0, 0, 0, -24, 0, 0, 0, 0, - 0, 0, 0, 11, 0, 0, 0, 0, - 0, 0, 0, 9, 0, 0, 0, 0, + 0, 0, 0, -41, 0, 0, 0, 0, + 0, 0, 0, -30, 0, 0, 0, 0, + 0, 0, 0, 5, 0, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], [ - 0, 0, 0, 0, -54, 0, 0, 0, - 0, 0, 0, 0, -10, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 10, 0, 0, 0, + 0, 0, 0, 0, -60, 0, 0, 0, + 0, 0, 0, 0, -15, 0, 0, 0, + 0, 0, 0, 0, -1, 0, 0, 0, + 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, -4, 0, 0, - 0, 0, 0, 0, 0, 7, 0, 0, - 0, 0, 0, 0, 0, 6, 0, 0, + 0, 0, 0, 0, 0, -25, 0, 0, + 0, 0, 0, 0, 0, -7, 0, 0, + 0, 0, 0, 0, 0, 4, 0, 0, + 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], [ - 0, 0, 0, 0, 0, 0, -32, 0, - 0, 0, 0, 0, 0, 0, -24, 0, - 0, 0, 0, 0, 0, 0, -12, 0, + 0, 0, 0, 0, 0, 0, -39, 0, + 0, 0, 0, 0, 0, 0, -26, 0, 0, 0, 0, 0, 0, 0, -15, 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, @@ -3192,9 +3192,9 @@ internal static partial class TunableEvalParameters ], [ 0, 0, 0, 0, 0, 0, 0, -134, - 0, 0, 0, 0, 0, 0, 0, -59, - 0, 0, 0, 0, 0, 0, 0, -46, - 0, 0, 0, 0, 0, 0, 0, -35, + 0, 0, 0, 0, 0, 0, 0, -58, + 0, 0, 0, 0, 0, 0, 0, -47, + 0, 0, 0, 0, 0, 0, 0, -41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3206,232 +3206,232 @@ internal static partial class TunableEvalParameters [ [ 0, 0, 0, 0, 0, 0, 0, 0, - -147, 61, 3, -12, -45, -17, 36, 76, - -23, 133, 86, 23, 40, 57, 22, 10, - -30, 35, 38, 20, 11, -7, 16, 6, - -42, -26, -2, -3, -12, -17, 9, -12, - -51, -37, -23, 3, -16, -8, 22, 15, - -47, -41, -17, -38, -40, -7, 5, -6, + -135, 60, -3, -13, -42, -28, 33, 71, + -24, 130, 81, 18, 35, 51, 15, 11, + -26, 34, 38, 22, 11, -8, 14, 9, + -40, -28, -3, -4, -13, -17, 8, -11, + -48, -37, -22, 2, -17, -9, 22, 17, + -42, -39, -15, -28, -33, -4, 9, -1, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 3, -116, -250, 16, 26, 36, 53, 9, - 40, 35, 105, 95, 30, 29, 40, 58, - -17, -15, 22, 46, 16, 15, -3, 25, - -42, -35, 7, 2, 2, -0, -1, 10, - -56, -47, -12, -1, -6, -1, 16, 22, - -49, -51, -15, -48, -41, 3, 23, 21, + -33, -107, -146, 19, 35, 25, 53, 9, + 39, 36, 102, 90, 29, 23, 35, 58, + -21, -18, 19, 46, 14, 12, -6, 24, + -45, -38, 3, -2, -3, -4, -5, 8, + -57, -49, -14, -5, -9, -5, 14, 20, + -50, -51, -16, -40, -37, 3, 24, 21, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 87, -295, 70, -125, -52, -64, -90, 7, - 31, 46, 149, 66, 91, 16, 6, 59, - -6, -4, 23, 50, 28, 19, 13, 20, - -31, -18, -8, 22, 14, 4, -9, 19, - -45, -43, -8, 5, 8, 2, 18, 33, - -35, -44, -16, -38, -26, 0, 21, 27, + 99, -216, 66, -72, -46, -76, -82, 4, + 29, 40, 146, 61, 86, 10, -2, 57, + -10, -8, 19, 49, 25, 14, 7, 18, + -36, -24, -14, 17, 8, -0, -14, 15, + -48, -47, -12, 0, 3, -4, 15, 30, + -37, -45, -17, -31, -23, -0, 21, 25, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -38, -6, 56, 36, 62, 7, 13, 109, - -10, 22, 50, 104, 88, 61, 26, 27, - -6, -21, 10, -4, 8, 12, -1, 10, - -40, -30, -20, -15, -13, -13, -5, -12, - -52, -31, -35, -29, -39, -11, 5, -13, - -44, -32, -36, -68, -64, -9, 1, -7, + -32, 7, -1, 46, 9, -8, 23, 95, + -6, 25, 53, 105, 91, 62, 24, 24, + -1, -15, 11, 1, 10, 12, -1, 10, + -38, -28, -19, -15, -14, -12, -5, -10, + -50, -28, -33, -29, -38, -11, 7, -11, + -40, -26, -32, -56, -55, -6, 5, -3, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -38, -33, -26, -169, 55, -231, -22, 1, - 43, 28, 10, 59, 108, 59, 72, 59, - 1, -3, 9, 27, 24, 28, 12, 24, - -8, -5, 1, 7, 7, 6, 1, 6, - -14, -6, -4, -7, -7, -11, 8, 15, - -6, -4, -7, -31, -37, -12, 4, 8, + -31, -22, -35, -94, 55, -102, -26, -5, + 38, 20, 5, 49, 101, 52, 65, 54, + -0, -7, 5, 23, 21, 19, 4, 19, + -12, -11, -7, -1, -2, -3, -7, 1, + -19, -11, -9, -14, -14, -17, 3, 10, + -9, -7, -10, -25, -36, -14, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -40, -51, -15, 31, -35, 41, -149, 150, - 29, 13, 16, 99, 89, 138, 87, 57, - -22, -26, 2, 11, 25, 1, 12, 30, - -29, -41, -15, -5, -2, -26, 1, -24, - -27, -30, -15, -8, -16, -24, -10, -12, - -19, -31, -20, -55, -40, -22, -12, -14, + -31, -37, -15, 30, -43, 26, -90, 145, + 29, 9, 12, 91, 85, 136, 88, 56, + -20, -28, 1, 12, 23, -2, 8, 29, + -30, -43, -17, -8, -6, -29, -2, -26, + -29, -32, -16, -11, -18, -27, -11, -13, + -19, -30, -20, -46, -35, -22, -10, -14, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -80, -67, -58, 15, -6, -6, -72, -158, - 17, 11, 15, 29, 81, 116, 94, 29, - -2, 3, 14, 17, 36, 48, 3, -5, - -4, -5, 3, 13, 20, 17, -5, -24, - -5, 0, -1, 4, 7, 9, -4, -20, - 1, 1, -1, -34, -27, 3, -4, -20, + -70, -55, -58, 20, -7, -29, -74, -127, + 17, 6, 11, 23, 77, 112, 91, 29, + 1, 3, 14, 18, 37, 45, -0, -7, + -4, -6, 0, 9, 18, 13, -8, -26, + -5, -0, -2, 3, 5, 7, -4, -20, + 3, 3, -0, -24, -22, 5, -2, -19, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -23, -77, -111, 21, -43, 60, 132, -183, - 10, 20, 7, 10, 50, 93, 101, 10, - -12, -9, 2, 19, 23, 47, 32, -18, - -15, -14, -5, 1, 7, 19, 14, -29, - -15, -10, -7, -1, 8, 16, 12, -22, - -14, -17, -5, -49, -20, -1, 5, -17, + -9, -56, -110, 28, -43, 48, 23, -184, + 13, 22, 6, 5, 50, 91, 98, 12, + -7, -6, 3, 22, 26, 47, 29, -16, + -12, -13, -4, 0, 8, 19, 14, -28, + -12, -8, -5, 0, 9, 17, 15, -19, + -9, -13, -1, -37, -12, 3, 10, -14, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 6, 156, 56, 46, -72, 15, -1, 20, - 112, 24, 13, 56, 5, 3, 17, -27, - -4, 29, 48, 19, -9, -26, -6, -12, - -42, -30, 1, -2, -12, -13, -8, -18, - -47, -55, -10, -12, -4, -19, 6, 9, - -44, -59, -21, -45, -22, -14, -2, -5, + 15, 64, 54, 46, -72, 3, -14, 14, + 112, 21, 21, 51, 1, -2, 11, -24, + 0, 36, 50, 24, -5, -25, -7, -8, + -38, -28, 2, -1, -10, -11, -6, -15, + -43, -52, -6, -10, -2, -17, 9, 14, + -39, -53, -16, -32, -13, -9, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 36, 93, 278, 11, -120, -28, -27, -35, - 47, 173, 97, 196, 61, -12, 0, -29, - 4, 4, 33, 15, 20, -1, -21, -43, - -31, -18, -18, -18, -11, -31, -19, -29, - -66, -50, -32, -13, -16, -20, -18, -29, - -58, -53, -26, -83, -43, -14, -21, -35, + 48, 98, 124, 18, -116, -44, -37, -40, + 49, 175, 93, 188, 57, -16, -2, -25, + 9, 9, 39, 21, 23, 2, -20, -39, + -28, -16, -14, -15, -8, -26, -14, -24, + -60, -45, -28, -10, -11, -16, -12, -24, + -52, -44, -20, -67, -31, -8, -14, -27, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -7, 22, 159, 139, 164, 54, -59, 42, - -13, 57, 107, 63, 142, 63, 5, -45, - -27, 6, 2, 23, -9, -1, -8, -27, - -57, -25, -30, -33, -16, -30, -23, -19, - -55, -46, -29, -41, -21, -33, -21, -29, - -53, -44, -45, -73, -50, -28, -26, -24, + 4, 30, 159, 73, 168, 44, -67, 37, + -13, 52, 104, 54, 135, 59, 2, -47, + -20, 11, 5, 26, -6, -3, -8, -24, + -53, -23, -30, -33, -16, -28, -20, -17, + -52, -44, -26, -41, -19, -32, -18, -26, + -48, -39, -41, -60, -41, -23, -21, -20, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 27, 12, 43, 105, 135, -1, -18, 30, - -31, -28, 71, 103, 88, 121, 68, 24, - -44, -20, 17, 14, 36, 7, 25, -6, - -55, -36, -21, -12, -33, -23, -16, -26, - -61, -32, -34, -23, -33, -25, -25, -18, - -54, -41, -32, -65, -35, -29, -23, -27, + 33, 22, 48, 110, 63, -18, -17, 30, + -30, -34, 66, 102, 83, 118, 65, 27, + -40, -17, 19, 18, 37, 6, 25, -2, + -52, -34, -19, -13, -32, -23, -15, -24, + -60, -29, -31, -23, -31, -24, -22, -16, + -51, -36, -29, -52, -27, -25, -18, -23, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -5, 96, -63, 55, 48, 57, 98, 37, - 1, 3, -2, 93, 54, 65, 55, 31, - -36, -30, -3, 5, 24, 45, 0, 29, - -49, -32, -24, -17, -6, -18, -18, -3, - -44, -29, -24, -24, -10, -30, -19, -20, - -44, -27, -22, -59, -57, -30, -23, -29, + 0, 105, -60, 62, 45, 3, 91, 30, + 1, 0, -1, 89, 52, 58, 48, 30, + -32, -29, -1, 8, 25, 44, 0, 30, + -47, -31, -24, -16, -7, -16, -18, -1, + -43, -28, -21, -23, -10, -29, -17, -17, + -41, -23, -19, -47, -49, -26, -18, -26, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 25, 57, -35, -25, 12, 56, -25, 68, - -0, 14, 0, 9, 68, 114, 9, 128, - -33, -18, -4, -4, 21, 43, 26, 26, - -39, -36, -17, -18, -5, -4, -8, -15, - -35, -28, -21, -18, -9, -9, -14, -21, - -26, -34, -17, -49, -40, -23, -14, -32, + 31, 63, -33, -24, 11, 40, -44, 66, + -0, 6, -6, 4, 64, 111, 5, 130, + -28, -18, -4, -1, 21, 42, 27, 26, + -37, -37, -17, -19, -5, -7, -9, -15, + -33, -27, -20, -18, -10, -8, -14, -20, + -22, -31, -14, -37, -32, -19, -10, -29, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -45, -33, -4, -20, -74, 80, -84, 57, - 17, 26, 16, 3, 27, 87, 100, -58, - -8, -2, -1, 7, 33, 34, 16, 1, - -19, -13, -5, 4, -1, 16, 2, -13, - -21, -17, -6, -13, 17, 10, 7, -15, - -13, -18, -12, -36, -22, -3, 9, -13, + -38, -19, -4, -21, -77, 63, -85, -5, + 19, 23, 12, -4, 23, 83, 106, -59, + -2, -1, -1, 11, 35, 34, 17, 3, + -16, -13, -4, 2, -1, 15, 1, -11, + -17, -15, -3, -11, 17, 12, 8, -13, + -8, -14, -8, -24, -14, 2, 13, -9, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 349, 245, -85, 114, -150, -46, -216, -198, - -52, 76, -43, 65, 1, -113, -85, 11, - 60, 5, 99, 9, -3, 7, 7, -112, - 25, 87, 62, 14, 17, -19, -62, -78, - -2, 7, 28, 24, -25, 29, -25, -61, - 20, 3, 48, 23, -36, 38, -7, -54, + 180, 110, -53, 72, -94, -0, -146, -172, + -32, 72, -38, 60, -20, -122, -99, 1, + 64, 21, 103, 16, 4, 8, 7, -108, + 24, 93, 60, 20, 21, -17, -59, -73, + 2, 9, 29, 28, -20, 31, -20, -59, + 23, 7, 58, 34, -18, 43, 1, -51, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -79, 94, -15, -3, 63, 74, 18, -77, - -17, -90, -190, 24, -128, -70, -38, -117, - -9, -52, -145, -91, -57, 22, -39, -101, - 21, 15, 5, 63, -5, 10, 48, -61, - 78, -27, -36, 26, 35, 59, -26, -30, - 49, 191, 158, 335, 114, 38, 35, -71, + -26, 72, 27, 15, 29, 78, -1, -56, + -7, -66, -142, 42, -115, -57, -38, -107, + -24, -61, -151, -92, -46, 24, -21, -100, + 10, 11, 6, 48, -5, 8, 51, -66, + 74, -25, -39, 16, 27, 63, -18, -31, + 50, 178, 174, 195, 91, 33, 37, -64, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 97, 2, 18, 140, 247, -23, 164, -65, - -85, -181, 21, -74, -12, -7, -159, -127, - -69, -28, -50, -188, -47, 79, -25, -75, - -17, 34, 18, -19, 62, 58, 20, -94, - 19, 71, -8, -111, -11, 39, -21, -24, - -20, 46, 49, 108, 187, 64, 55, -58, + 81, 27, 46, 80, 157, 12, 93, -53, + -78, -180, 15, -44, -34, -2, -152, -126, + -70, -25, -54, -180, -48, 90, -21, -66, + -26, 36, 8, -7, 65, 69, 30, -90, + 17, 61, 1, -78, -8, 45, -14, -16, + -20, 45, 51, 107, 171, 74, 64, -51, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -126, 75, 156, 300, -178, 96, 58, -72, - -96, -127, -39, 66, -16, -38, -87, -60, - -66, 15, -12, -20, -79, 8, 5, -24, - -30, -33, 14, -73, -30, 50, 15, -20, - -80, 6, 67, -38, 16, 31, -15, -30, - -33, 12, 36, 116, 146, 89, 25, 22, + -98, 66, 99, 144, -64, 81, 76, -50, + -102, -114, -40, 43, 5, -35, -91, -64, + -66, 3, -1, -43, -86, 28, 23, -23, + -36, -37, 17, -60, -21, 60, 20, -20, + -78, 9, 68, -36, 8, 38, -12, -23, + -30, 17, 40, 106, 113, 97, 32, 38, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -30, 36, 232, -71, 297, 25, -25, 41, - -139, -51, -188, -16, -112, -8, 23, -62, - -114, 65, 9, -89, -36, -50, 39, -33, - -54, -31, 31, 13, -19, 22, 27, 9, - -75, 5, 19, -50, -22, 79, 39, 59, - -99, 14, 36, -20, 49, 116, 79, 28, + -30, 53, 135, -17, 148, 43, -11, 30, + -152, -58, -168, 6, -98, -24, 25, -63, + -123, 69, 16, -79, -49, -40, 37, -31, + -54, -32, 34, 23, -15, 29, 24, 7, + -70, 3, 12, -44, -14, 82, 40, 68, + -96, 17, 34, 12, 74, 125, 84, 38, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 19, 45, 51, 186, 48, 68, -48, -150, - -140, -76, 33, -71, -17, -33, 46, -116, - -64, -4, -44, -37, -109, -119, -68, -40, - -34, -6, -8, -11, -46, -18, 31, 36, - -28, 9, 17, 77, 43, 41, 57, 96, - -76, -35, 29, -79, 201, 189, 132, 25, + 16, 57, 44, 107, 47, 64, -10, -92, + -146, -82, 31, -81, -44, -11, 37, -119, + -63, -1, -47, -46, -113, -114, -67, -46, + -34, -6, -4, -1, -52, -15, 42, 33, + -23, 13, 26, 81, 52, 46, 56, 94, + -80, -32, 31, -54, 134, 199, 143, 27, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -131, -155, 45, 93, -40, -190, -88, -87, - -97, 29, -24, 14, 0, -53, -154, -21, - -36, -29, -15, -47, -30, -17, -29, -25, - -7, -21, 2, 60, 6, 42, 32, 24, - -54, -11, 33, 52, 76, -9, 78, 83, - -90, 44, 32, 51, 194, 155, 255, 57, + -153, -138, 40, 72, -19, -85, -62, -42, + -110, -10, -36, 24, -14, -25, -128, -31, + -47, -32, -25, -59, -35, -24, -31, -15, + -13, -24, -3, 53, 13, 37, 22, 21, + -62, -22, 24, 46, 75, -14, 78, 78, + -94, 48, 38, 56, 159, 154, 258, 60, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -212, -79, -179, 135, 31, -97, 29, -54, - -135, -57, 30, -86, -44, -71, -70, -104, - -92, 122, 33, -19, 21, 36, -114, -3, - -10, 14, 7, 20, 17, 156, -34, 37, - 54, 28, 53, 91, 13, 84, -102, 114, - -23, 12, 20, -42, -10, 187, 178, 114, + -191, -82, -71, 79, 45, -56, 23, -3, + -135, -52, 13, -55, -7, -45, -12, -78, + -104, 118, 2, -36, 8, 29, -105, 3, + -23, -4, -14, 6, -2, 148, -39, 40, + 36, 15, 20, 62, -6, 64, -112, 100, + -41, -1, -4, 4, 6, 172, 173, 112, 0, 0, 0, 0, 0, 0, 0, 0, ], ]; @@ -3440,232 +3440,232 @@ internal static partial class TunableEvalParameters [ [ 0, 0, 0, 0, 0, 0, 0, 0, - -158, -316, 13, 37, 15, 21, 41, -8, - -41, -19, -41, 10, 47, 68, 94, 91, - -16, -15, -17, -13, 8, 34, 27, 28, - -14, -10, 1, -4, 2, 17, 23, 29, - -6, -2, 11, -10, 7, 5, -3, 3, - -17, 8, 11, 11, 19, 15, 8, 5, + -158, -311, 19, 36, 16, 19, 36, -10, + -37, -24, -37, 10, 47, 65, 94, 91, + -17, -19, -20, -16, 7, 33, 26, 28, + -15, -10, 1, -4, 1, 17, 23, 29, + -6, -3, 11, -10, 8, 4, -3, 3, + -16, 10, 13, 11, 20, 17, 10, 7, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 22, -123, -98, -31, 16, 70, 74, 87, - -20, 2, -17, -18, 55, 70, 52, 71, - -10, -11, -22, -31, -12, 5, 32, 23, - -13, -20, -20, -23, -19, 3, 12, 12, - -10, -13, -6, -12, -3, -8, -9, -7, - -15, -8, 6, 12, 2, -8, -13, -23, + -18, -117, -92, -29, 7, 58, 60, 78, + -21, -8, -20, -19, 51, 68, 51, 67, + -8, -11, -23, -30, -9, 6, 33, 26, + -10, -19, -17, -20, -15, 6, 15, 15, + -6, -10, -4, -9, -1, -5, -6, -4, + -9, -4, 10, 15, 6, -2, -9, -17, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -123, -24, -148, -38, -32, 77, 123, 118, - 5, 6, -43, -12, -16, 42, 99, 69, - -6, 6, -28, -21, -28, 9, 32, 37, - -8, -7, -23, -11, -13, 0, 22, 8, - -7, 4, -13, -11, -12, -8, -6, -11, - -7, 7, 2, 9, 6, -2, -10, -8, + -124, -83, -141, -57, -31, 70, 105, 107, + 6, 4, -46, -15, -18, 43, 97, 66, + -5, 6, -25, -20, -25, 12, 35, 39, + -4, -4, -19, -8, -9, 4, 26, 12, + -2, 7, -10, -7, -8, -4, -2, -6, + -2, 13, 7, 12, 9, 4, -4, -2, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 34, -83, 252, -124, -2, -56, 112, 19, - 21, -1, -7, -27, -26, -3, 57, 55, - 2, -7, -8, -15, -9, -19, 1, 5, - -3, -5, -15, -7, -16, -16, -12, -4, - -5, -11, -8, -5, -3, -14, -22, -11, - 1, -11, -12, 43, 13, -17, -19, -13, + 30, -80, 49, -118, -23, -46, 102, 25, + 25, -6, -13, -32, -28, -3, 59, 60, + 7, -5, -2, -10, -2, -13, 8, 14, + 4, 1, -9, 1, -9, -11, -6, 3, + 2, -5, -3, 3, 5, -7, -14, -3, + 10, -2, -3, 48, 20, -7, -10, -4, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 157, 85, -52, -87, -122, -104, -15, 88, - 45, 49, 50, -15, -29, 13, 2, 5, - 26, 29, 14, -0, -11, -0, 2, -7, - 10, 6, -9, -4, -6, -12, -6, -11, - -3, -2, -17, -5, -5, -8, -21, -26, - -3, -3, -12, 10, 26, 0, -7, -17, + 148, 73, -42, -69, -120, -74, -16, 85, + 45, 44, 34, -22, -37, 9, -0, 4, + 25, 27, 14, -3, -12, -3, 2, -7, + 10, 7, -9, -3, -5, -12, -6, -11, + -1, -1, -16, -4, -5, -8, -20, -25, + -1, -1, -11, 9, 26, 2, -5, -15, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 128, 73, 35, -77, -4, -110, -102, -72, - 71, 88, 28, -26, -36, -11, -13, -24, - 52, 42, 14, -17, -4, -10, -5, -22, - 26, 30, 6, -10, -8, -6, -12, -15, - 13, 9, -5, -1, -3, -1, -16, -15, - 11, 12, 6, 9, 3, -1, -14, -15, + 127, 65, 36, -74, -38, -109, -89, -67, + 72, 89, 28, -23, -38, -16, -20, -25, + 52, 42, 14, -18, -4, -12, -5, -22, + 27, 30, 7, -9, -7, -6, -12, -14, + 14, 10, -3, 0, -2, -1, -15, -14, + 14, 15, 9, 10, 5, 2, -11, -13, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 162, 164, 125, 33, -26, -86, -162, -102, - 85, 92, 69, 12, -19, -31, -22, 4, - 31, 24, 12, -14, -28, -30, -13, -13, - 8, 8, -6, -20, -26, -23, -27, -21, - -4, -7, -9, -16, -7, -13, -20, -19, - -7, -8, -10, 2, 3, -5, -16, -24, + 161, 162, 129, 32, -23, -80, -158, -106, + 86, 93, 70, 14, -16, -31, -30, 2, + 31, 23, 11, -15, -29, -34, -14, -14, + 8, 8, -6, -19, -26, -23, -27, -21, + -4, -7, -9, -17, -8, -14, -21, -19, + -6, -6, -9, -0, 3, -3, -14, -23, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 90, 149, 131, 32, 47, -103, -1, -99, - 56, 91, 68, 52, 8, -31, -0, -10, - 35, 24, 13, -13, -20, -47, -27, -31, - 5, 2, -5, -14, -36, -35, -39, -27, - -7, -14, -11, -19, -21, -25, -33, -30, - -11, -17, -15, 21, -12, -4, -22, -40, + 88, 142, 141, 30, 50, -99, -44, -98, + 55, 88, 67, 54, 7, -29, -7, -10, + 36, 24, 13, -13, -21, -46, -27, -29, + 5, 3, -5, -13, -35, -33, -38, -25, + -6, -12, -10, -18, -19, -25, -32, -29, + -8, -13, -12, 21, -11, -2, -19, -37, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -144, -137, -161, -32, 25, 23, 60, 6, - -76, -50, -61, -33, 46, 49, 72, 76, - -11, -15, -26, -9, 4, 38, 42, 44, - 20, 3, 4, -1, 2, 10, 20, 22, - 18, 14, 1, 8, 1, 13, 2, 7, - 21, 21, 15, 32, 3, 12, 9, 11, + -141, -120, -157, -29, 28, 28, 66, 8, + -74, -43, -61, -29, 47, 50, 72, 76, + -14, -16, -28, -11, 2, 35, 41, 42, + 18, 1, 2, -3, -1, 8, 18, 20, + 16, 12, -2, 6, -1, 10, 1, 5, + 20, 21, 14, 29, 1, 12, 9, 11, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -73, -130, -138, -112, -15, 20, 63, 33, - -31, -66, -57, -77, -33, 42, 70, 72, - 6, -2, -10, -11, 0, 13, 36, 53, - 12, 18, 4, 17, 6, 12, 19, 29, - 23, 15, 11, 13, 6, 9, 7, 14, - 20, 24, 10, 34, 7, 8, 14, 18, + -72, -128, -100, -112, -11, 26, 68, 35, + -29, -65, -51, -76, -29, 44, 71, 71, + 4, -7, -11, -13, -2, 9, 33, 51, + 10, 15, 1, 14, 2, 8, 15, 26, + 20, 13, 9, 11, 3, 6, 5, 12, + 20, 24, 8, 31, 4, 7, 14, 18, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -14, -44, -147, -83, -130, -41, 44, 47, - 29, -27, -73, -39, -50, -16, 35, 61, - 20, 3, 4, -4, 4, 6, 21, 37, - 17, 11, 23, 19, 17, 8, 15, 18, - 15, 16, 13, 22, 13, 14, 6, 11, - 17, 15, 16, 30, 15, 8, 9, 12, + -14, -45, -142, -67, -127, -38, 49, 52, + 29, -24, -70, -32, -47, -13, 38, 64, + 16, 0, 1, -5, 1, 4, 19, 36, + 14, 8, 20, 17, 14, 6, 11, 15, + 13, 14, 11, 20, 10, 11, 4, 10, + 17, 14, 16, 27, 13, 7, 9, 13, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -11, 2, -52, -123, -75, -86, -31, 22, - 52, 39, -31, -67, -40, -61, -26, 22, - 42, 17, 4, -8, 2, 4, 5, 16, - 28, 20, 11, 20, 21, 17, 14, 16, - 21, 8, 12, 21, 19, 15, 9, 10, - 23, 16, 13, 24, 10, 14, 10, 14, + -8, 0, -48, -123, -53, -82, -27, 25, + 52, 42, -26, -65, -33, -59, -21, 23, + 41, 14, 2, -11, 1, -0, 3, 13, + 25, 17, 8, 18, 18, 14, 10, 13, + 19, 6, 9, 19, 17, 11, 7, 8, + 23, 16, 13, 22, 8, 14, 10, 14, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -5, -31, 33, -65, -113, -83, -131, -62, - 54, 60, 41, -47, -52, -36, -55, -30, - 46, 35, 21, 3, -7, -4, 5, -1, - 34, 23, 20, 15, 17, 13, 17, 11, - 23, 13, 14, 20, 17, 19, 10, 14, - 23, 14, 14, 23, 23, 18, 12, 16, + -2, -30, 37, -68, -108, -67, -125, -56, + 56, 62, 40, -45, -50, -31, -52, -26, + 45, 32, 18, 2, -8, -4, 2, -1, + 31, 21, 17, 13, 15, 11, 14, 9, + 21, 11, 12, 18, 15, 15, 8, 12, + 23, 14, 14, 21, 21, 17, 12, 16, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -19, 8, 66, 23, -51, -148, -16, -160, - 48, 61, 64, 27, -36, -76, -42, -94, - 44, 37, 28, 1, -1, -19, -4, -19, - 29, 29, 16, 11, 5, 4, 2, 9, - 16, 10, 12, 6, 11, 10, 0, 8, - 10, 13, 7, 10, 24, 17, 4, 14, + -15, 12, 72, 25, -47, -144, -7, -157, + 50, 63, 66, 29, -33, -73, -35, -93, + 43, 36, 26, -1, -2, -22, -5, -21, + 27, 27, 13, 8, 3, 3, -0, 6, + 14, 9, 10, 4, 9, 6, -2, 6, + 9, 13, 6, 8, 21, 17, 3, 14, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 13, 44, 44, 49, 38, -75, -139, -107, - 36, 58, 61, 57, 5, -41, -86, -42, - 30, 22, 27, 5, -17, -17, -3, -12, - 16, 15, 8, -4, -6, -12, -3, -9, - 6, 3, 3, 6, -2, -0, -6, -5, - 0, 1, 9, 13, 15, 13, -2, -10, + 17, 45, 50, 53, 44, -71, -135, -90, + 37, 60, 64, 61, 6, -39, -85, -39, + 28, 21, 25, 1, -20, -19, -7, -14, + 14, 14, 6, -5, -9, -14, -5, -12, + 4, 2, 1, 4, -4, -4, -8, -8, + -0, 1, 8, 10, 12, 12, -2, -12, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -123, -46, -30, -3, 90, 26, 45, 23, - 8, -80, 1, 15, 74, 84, 92, 60, - -70, -15, -33, -18, 16, 11, 26, 47, - -30, -31, -35, -32, -14, -0, 11, 23, - -15, -13, -9, -25, -10, -10, -7, 1, - -12, 14, -2, -1, -6, -6, -3, 10, + -82, -18, -37, 4, 79, 18, 36, 18, + 3, -77, 2, 17, 80, 87, 96, 63, + -71, -16, -33, -21, 14, 10, 24, 45, + -31, -34, -35, -34, -17, -2, 8, 20, + -17, -15, -10, -28, -13, -12, -8, -0, + -12, 14, -5, -3, -9, -5, -3, 11, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -20, -47, -22, -41, -8, -13, -24, 0, - 48, 58, 72, 36, 76, 74, 74, 65, - -9, -1, 20, 22, 18, 17, 26, 27, - -27, -33, -26, -46, -29, -15, -13, 7, - -33, -14, -12, -20, -28, -22, -14, -5, - 6, -33, -2, -33, -39, -13, -10, 10, + -27, -38, -20, -44, 4, -10, -11, 4, + 46, 55, 69, 37, 81, 78, 79, 67, + -10, -1, 17, 20, 14, 15, 20, 26, + -30, -37, -29, -47, -33, -18, -16, 4, + -35, -17, -14, -23, -31, -26, -18, -8, + 3, -33, -6, -7, -35, -13, -12, 8, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -56, -17, 0, -80, -47, 10, -63, -17, - 39, 55, 18, 21, 26, 32, 78, 60, - 11, 3, 10, 51, 7, 4, 16, 37, - -3, -20, -21, 5, -38, -31, -11, 17, - -7, -45, -9, 11, -13, -17, -11, -2, - 17, 17, 8, 2, -22, -14, -19, 9, + -49, -15, 5, -63, -15, 9, -42, -12, + 40, 57, 22, 18, 37, 36, 80, 65, + 8, 2, 7, 47, 4, 0, 13, 34, + -6, -24, -24, -1, -42, -37, -17, 13, + -11, -48, -15, 2, -18, -23, -16, -7, + 15, 15, 5, 2, -20, -18, -23, 6, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -28, -60, -75, -59, 17, -36, -38, -7, - 27, 36, -6, 4, 29, 35, 51, 46, - 21, -5, 5, 9, 25, 2, 5, 15, - 4, -5, -16, -11, -8, -23, -18, 8, - 17, -11, -1, 14, -2, -1, -3, 5, - 13, 16, 18, 0, -10, 1, -1, 1, + -28, -57, -46, -19, -1, -24, -28, 0, + 30, 39, -4, 10, 33, 41, 56, 52, + 18, -6, 1, 10, 22, -3, -1, 13, + 1, -9, -21, -18, -14, -28, -23, 4, + 12, -16, -6, 10, -6, -8, -9, -1, + 10, 14, 16, 0, -8, -1, -5, -4, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -45, -30, -90, -11, -56, -28, -39, -56, - 46, 21, 68, -6, 56, 12, 3, 13, - 34, -5, -6, 27, 18, 22, -18, 11, - 10, -5, -5, -9, -10, -11, -15, -4, - 15, -10, -6, 7, 15, -5, -10, -6, - 22, -3, 4, 31, 32, 14, 7, 1, + -38, -26, -59, -14, -12, -19, -28, -41, + 51, 23, 67, -6, 59, 17, 5, 15, + 33, -9, -9, 22, 17, 18, -21, 8, + 6, -10, -10, -15, -14, -17, -19, -8, + 10, -13, -10, 2, 9, -11, -14, -13, + 19, -5, 3, 23, 26, 9, 4, -3, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -58, -5, -47, -53, -45, -10, -50, -38, - 55, 54, 29, 43, 26, 25, -14, 29, - 30, 18, 17, 1, 34, 20, 7, 1, - 8, -2, -3, 1, -4, -2, -23, -8, - -3, -11, -8, -16, 4, 1, -24, -12, - 15, 3, -3, 28, -27, -4, 5, 14, + -52, -3, -35, -32, -34, 3, -49, -42, + 61, 60, 32, 50, 36, 24, -6, 33, + 28, 15, 14, 1, 33, 17, 4, -1, + 4, -5, -8, -4, -7, -6, -27, -12, + -7, -15, -14, -20, -0, -4, -27, -15, + 13, 1, -5, 18, -19, -8, 2, 11, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - -18, -3, -34, -13, -6, 22, 3, -12, - 44, 29, 55, 59, 44, 17, 48, 19, - 26, 27, 10, 13, 13, 9, -9, 7, - -3, 5, -3, -26, -11, -38, -27, -13, - -3, -18, -22, -13, -14, -3, -21, -26, - 13, -14, -17, -37, -23, -10, -36, 12, + -9, -3, -22, -3, 0, 9, 11, -13, + 51, 38, 62, 60, 53, 18, 45, 23, + 26, 23, 10, 12, 12, 8, -11, 1, + -5, 3, -7, -28, -16, -39, -29, -17, + -4, -20, -24, -17, -17, -6, -24, -29, + 13, -15, -20, -41, -18, -12, -39, 8, 0, 0, 0, 0, 0, 0, 0, 0, ], [ 0, 0, 0, 0, 0, 0, 0, 0, - 24, -14, 36, -39, -16, 34, -25, 6, - 53, 56, 40, 60, 53, 40, 37, 45, - 49, -3, 15, 23, -15, -16, 7, 2, - 4, -4, -3, -11, -24, -51, -31, -14, - -25, -18, -22, -22, -16, -23, -16, -37, - 3, -14, -14, -10, -21, -27, -20, -38, + 17, -13, 21, -24, -16, 26, -16, 5, + 56, 58, 45, 58, 50, 37, 30, 38, + 50, -4, 19, 25, -15, -15, 6, -2, + 4, -4, -2, -11, -23, -51, -30, -16, + -23, -18, -19, -21, -16, -22, -15, -36, + 8, -10, -10, -18, -24, -24, -19, -39, 0, 0, 0, 0, 0, 0, 0, 0, ], ]; @@ -3673,2572 +3673,2583 @@ internal static partial class TunableEvalParameters internal static readonly short[][] MiddleGameEnemyKnightTable = [ [ - -229, 72, 575, -16, -85, -162, -15, -204, - 161, 59, 52, 79, 247, 46, -49, -167, - 1, 68, 131, 79, 69, 24, 48, 64, - -3, 71, 21, 78, 38, -4, 31, -27, - 32, 16, 43, 12, 12, 20, 24, -25, - -2, -15, -21, -10, -45, -18, -67, -41, - -57, -69, -38, -24, -11, -27, -56, -77, - 23, -94, -122, -56, -55, -105, -113, -84, - ], - [ - -145, -43, -224, 13, -40, 84, 14, -116, - -14, -18, 55, 45, 78, 53, -2, -40, - -19, 55, 86, 68, 51, 55, 42, -12, - 36, 34, 36, 27, 29, 30, 25, -14, - -12, 34, 27, 12, 25, 19, 15, -22, - -14, 7, 1, 2, -8, 5, -41, -34, - 24, -0, -16, -8, 1, 6, 16, -25, - 1, -19, -56, -54, -21, -47, -17, -30, - ], - [ - 42, -19, -27, -37, -118, -90, -102, -96, - 41, 8, 9, 52, 183, 89, 8, 13, - 45, 95, 111, -167, 84, 58, 49, 24, - 25, 30, 36, 20, 28, 31, 21, 5, - 6, -6, 24, -1, 31, 1, 2, -16, - -10, -10, -11, -4, -15, -2, -32, -40, - -14, -22, -30, -11, -7, 7, -7, -19, - 6, -22, -56, -72, -20, -45, -41, -18, - ], - [ - -41, -52, -48, -17, -6, 58, -81, 92, - 55, -247, 25, -60, 34, 66, 65, -19, - -27, 80, 131, 107, 168, 58, 95, -27, - 34, 51, 54, 41, 45, 15, 69, -21, - -42, 6, -28, 18, 36, 23, 18, 4, - -11, -24, -20, -12, -32, -13, -54, -35, - -61, 3, -51, -23, 4, -16, 3, 21, - -33, -61, -72, -92, -20, -51, -26, -54, - ], - [ - -2, -11, 69, -17, -39, -81, 75, -79, - 6, 13, -13, 148, 37, 60, 32, 76, - 55, 40, -11, -117, 90, -49, 79, 2, - 13, 29, 11, 46, 3, 33, 25, 26, - -12, -32, 7, -15, 28, 8, 4, -9, - -10, -18, -12, -21, -20, -16, -30, -22, - -19, -8, -28, -6, -7, -4, -12, -9, - -48, -12, -60, -56, -7, -52, -26, -23, - ], - [ - -20, 79, 2, 59, 110, -29, -35, -73, - -19, -37, 69, 166, 41, 83, 30, -38, - -81, 63, 39, 79, -279, 105, -51, 10, - -14, 14, 10, 30, 32, 51, 82, 52, - -34, -28, 8, 10, 41, 45, 34, 8, - -29, -19, -16, -27, -24, 2, -18, -34, - -50, 23, -20, -32, -1, -8, -5, -6, - -67, -39, -38, -62, -3, -74, -43, -24, - ], - [ - -154, -159, -24, -63, -49, -98, -49, 87, - -30, -15, 43, 76, 53, 93, 59, 102, - -0, 17, 11, 45, 92, -97, 67, 115, - -8, 17, 21, 41, 7, 45, 25, 22, - -10, -12, 12, -3, 37, 9, 38, -9, - -2, -12, 1, -9, -9, -1, -19, -18, - -27, -14, -16, -4, 1, 12, -7, 3, - -32, -3, -48, -53, -2, -48, -35, -17, - ], - [ - -128, -116, -77, 65, -4, 64, -150, -38, - -73, -30, 12, 35, 8, 129, 41, 120, - 10, 15, 2, 91, 92, 112, 138, 11, - -35, 9, 17, 26, 70, 46, 63, 7, - -33, -38, 12, -3, 43, 40, 31, 15, - -32, -27, -9, -6, -13, 11, -22, -13, - -45, -15, -23, -12, -5, -3, -6, -1, - -58, -32, -83, -73, -8, -53, -44, -27, - ], - [ - -242, -146, 32, -70, -12, -56, -80, -127, - -48, -29, 108, 111, 82, 78, -43, -22, - 43, 24, 87, 0, 115, 68, 24, -38, - 97, 57, 182, 39, 58, 24, -12, -28, - 41, 68, 23, 36, 74, 30, -12, -1, - 1, 35, -1, 5, -9, -15, -34, -41, - 33, -40, -7, 13, -2, 19, -61, -59, - -159, 7, -82, -62, 39, -56, -93, 35, - ], - [ - 33, 148, 167, 131, 167, -108, -4, -58, - 11, -1, 27, -47, 52, 28, -27, -8, - -39, 27, 101, 110, 25, 81, -11, -74, - 18, 96, 10, 83, 26, 2, 55, -44, - -24, 14, 16, 38, 16, -4, 27, -47, - -62, -1, -7, -25, -35, -37, -54, -81, - -41, 27, -33, -54, -24, -44, -8, -20, - 11, -44, -90, -97, -80, -110, -100, -1, - ], - [ - -111, -126, 8, 47, -28, -53, -43, -8, - 35, 67, -3, 11, 18, 22, 7, 50, - 57, 67, 28, 59, 122, 161, 92, 8, - 7, -4, 99, 53, 116, 34, 70, -25, - 9, -6, 53, 0, 53, -8, 52, -36, - -12, 2, -25, 25, -37, -11, -71, -36, - -80, -73, -34, -31, -24, -53, -32, -22, - -1, -45, -86, -59, -45, -126, -60, -17, - ], - [ - -26, 68, -50, -42, 46, 205, -225, -70, - -22, -28, 80, 92, -3, -53, 34, 48, - -38, 58, 61, 70, -14, 103, 38, 37, - -9, 0, 38, 96, 59, 145, 23, -9, - -9, 65, 31, 27, 49, 50, 24, 19, - -40, -35, -9, -17, -24, -21, -45, -17, - -34, -67, -17, -23, -20, -19, -26, -44, - -53, -43, -100, -75, -55, -90, -49, -44, - ], - [ - -20, -97, -52, 60, -150, 55, -195, 11, - -51, 6, 26, 57, 9, 69, 69, 104, - -118, 17, 47, 25, 70, 48, 98, 149, - 27, 11, 45, 26, 117, 78, 169, 23, - -28, 7, 25, 18, 69, 26, 63, 8, - -20, -24, -26, -7, -9, 5, -30, -31, - -102, -19, -36, -23, -15, -31, -13, -21, - -69, -44, -99, -76, -28, -91, -37, -76, - ], - [ - -117, -163, -21, 56, 86, 139, -75, -16, - -19, -47, 51, 48, 47, 57, -30, 20, - 2, 2, -8, 93, 104, 121, 91, -11, - -36, 15, 25, 35, 19, 168, 47, 77, - -53, -17, 4, 16, 38, 37, 51, -17, - -48, -41, -22, -18, 4, -13, -21, -41, - -48, -41, -36, -26, -12, -14, -23, -17, - -40, -36, -80, -67, -40, -70, -43, -26, - ], - [ - -142, -21, -69, -107, 54, 92, 126, -9, - -134, -59, -16, 87, 49, 32, 61, 238, - -21, -8, -16, 60, 156, 213, 68, 14, - -44, 3, 8, 20, 18, 41, 182, 56, - -40, -26, -4, -15, 55, 13, 22, -13, - -54, -45, -22, -23, -14, -4, -33, -22, - -40, -32, -55, -27, -10, -22, -22, -17, - -91, -43, -92, -60, -32, -73, -22, -64, - ], - [ - -25, -143, -284, -25, 38, -124, -37, -113, - 39, 145, 82, 207, 148, -160, -108, -148, - -1, 65, 83, 93, 125, -178, -129, -17, - 48, 59, 226, 280, 21, -107, 40, -44, - -44, 249, 76, 55, 98, -11, -53, 45, - 31, 208, 123, -28, -31, -63, -21, -53, - 103, -63, 2, -15, -84, 21, -95, -217, - 134, 13, 46, -17, -114, -158, -202, 13, - ], - [ - 0, 225, -170, 50, -65, -59, -93, 73, - -150, 25, -17, 62, -32, -19, -236, -286, - 91, -17, -177, -114, -59, -157, -170, -103, - 44, 24, 46, 23, 129, -48, -49, 113, - -282, 58, -101, 50, -18, 32, 113, -32, - -178, 109, -70, 46, 187, -89, -82, 91, - 2, 103, -18, 109, 137, 215, 63, -14, - -88, 123, 193, 71, 77, 242, 79, -14, - ], - [ - -189, -1, 141, 38, -229, -122, -154, 19, - 10, -63, 10, -169, 84, -308, -67, 72, - 25, -39, 58, -100, 0, -57, 54, 14, - 92, -2, -204, 13, -10, 23, -254, -67, - 54, -91, -29, 29, -16, 74, -45, -13, - 83, 148, -138, 140, 112, 123, 90, -51, - -72, 43, -6, -136, -8, 80, -21, 160, - 180, 305, 46, 166, 102, -65, 104, 35, - ], - [ - -203, -302, -118, -88, -91, -4, 100, 40, - -301, -99, -104, -138, -41, 13, 32, -97, - -96, -62, -171, 34, 156, -1, -63, -84, - 117, -30, 9, 282, 34, -174, 63, 146, - -73, 14, 46, 68, 25, 84, -115, 78, - -12, 86, 170, -13, 6, 161, 115, 53, - 129, 48, -66, 11, 121, -48, -80, -52, - -5, -66, 177, 91, 233, 108, 3, -55, - ], - [ - -4, -41, -100, -176, -48, -91, 30, -15, - -6, -48, -86, -178, 42, -236, -18, -37, - -167, 106, -39, 85, -23, -101, -37, -181, - 92, -8, 204, -52, -110, 4, -174, -10, - 158, -386, 79, 26, 44, 3, 119, 102, - -133, 38, 247, 106, -94, 38, 127, 262, - -124, 6, 131, 153, 73, -77, 89, 54, - 33, -199, 93, 140, -9, 290, -192, 231, - ], - [ - -69, 10, -202, -80, -95, -28, -84, 88, - 30, -78, -224, -60, -107, 9, -38, -30, - -201, -155, -99, -80, -226, -49, 217, 47, - 15, -77, 9, -68, -22, 10, -68, -21, - 186, 40, -59, 120, 9, 18, -139, 143, - -74, -3, 130, 62, 150, 173, 104, 227, - 39, -23, -25, -49, -105, 120, 54, -42, - 72, -52, 114, 214, 285, 98, 20, -76, - ], - [ - 100, -188, 15, -118, -116, 20, -47, -111, - -48, 116, -223, 89, 89, 73, -92, -123, - 17, -124, 82, -83, 112, -263, 93, 49, - -220, -30, -79, -69, 193, 117, 36, 63, - -60, -84, -73, -28, 44, -17, 54, 255, - -120, -52, 18, 267, 115, 34, 185, -101, - -59, -67, 92, -201, -15, 171, 73, -23, - 34, -103, 91, 71, -114, 123, 183, -24, - ], - [ - 206, -114, -82, -6, 63, -108, 65, 59, - 139, 23, 65, -31, -101, -130, -56, -140, - -41, -278, 69, -59, 157, 96, -141, -40, - -209, -88, 108, 68, 319, -95, 95, 79, - 22, -28, -38, 45, 43, 134, 81, 154, - -126, -265, 26, 189, 111, 108, 71, -6, - -78, -131, 3, -109, 9, -64, -18, -20, - 17, -100, -140, 222, 2, -125, 126, -8, + -142, 5, 292, -19, -55, -162, -37, -87, + 93, 45, 47, 61, 224, 37, -58, -165, + 9, 59, 129, 75, 60, 12, 37, 65, + 3, 70, 24, 76, 37, -7, 24, -26, + 43, 21, 45, 16, 11, 23, 22, -15, + -1, -7, -17, -7, -36, -14, -51, -26, + -38, -60, -23, -12, -4, -18, -39, -65, + 25, -93, -93, -21, -42, -71, -100, -78, + ], + [ + -125, -50, -157, 5, -43, 56, -7, -116, + -12, -14, 41, 33, 62, 44, -22, -46, + -25, 47, 86, 58, 39, 40, 27, -16, + 37, 28, 36, 22, 25, 23, 13, -15, + -5, 37, 26, 14, 19, 17, 9, -18, + -18, 9, -0, 0, -4, 5, -31, -24, + 33, 4, -6, -1, 2, 6, 25, -24, + 10, -23, -33, -27, -14, -21, -12, -32, + ], + [ + 27, -25, -35, -43, -84, -89, -94, -103, + 48, 14, -3, 34, 139, 78, -10, 7, + 43, 78, 111, -133, 73, 42, 35, 19, + 27, 25, 36, 16, 25, 24, 9, 4, + 12, -3, 24, 0, 26, -1, -3, -11, + -15, -8, -13, -5, -11, -2, -22, -30, + -3, -19, -20, -3, -6, 8, 1, -17, + 16, -26, -33, -44, -13, -19, -36, -22, + ], + [ + -46, -37, -47, -9, 2, 43, -74, 99, + 59, -186, 17, -79, 21, 43, 52, -22, + -24, 71, 63, 96, 72, 42, 83, -29, + 37, 46, 55, 38, 44, 11, 61, -21, + -36, 13, -27, 22, 34, 23, 13, 10, + -12, -21, -20, -12, -27, -12, -42, -23, + -53, 9, -39, -14, 6, -13, 15, 25, + -22, -63, -48, -60, -11, -24, -19, -52, + ], + [ + -3, -18, 44, -23, -39, -58, 58, -82, + 9, 13, -29, 131, 22, 49, 22, 70, + 52, 30, -12, -84, 78, -54, 65, -4, + 13, 23, 11, 40, 1, 27, 14, 25, + -6, -30, 5, -13, 24, 6, -2, -4, + -15, -18, -14, -23, -16, -17, -19, -10, + -8, -5, -19, 1, -6, -3, -4, -6, + -39, -15, -36, -29, -0, -26, -20, -24, + ], + [ + -33, 44, -25, 49, 93, -30, -21, -68, + -17, -39, 55, 111, 21, 76, 11, -53, + -82, 51, 36, 68, -118, 90, -53, 3, + -12, 6, 10, 24, 28, 43, 71, 49, + -30, -27, 6, 11, 36, 43, 28, 13, + -34, -18, -18, -30, -21, 0, -9, -24, + -40, 28, -9, -25, 0, -9, 1, -4, + -58, -43, -15, -34, 2, -48, -38, -25, + ], + [ + -164, -169, -42, -75, -51, -107, -49, 66, + -27, -14, 31, 59, 38, 84, 43, 95, + -2, 10, 10, 37, 81, -67, 54, 127, + -7, 12, 21, 37, 6, 39, 15, 22, + -4, -9, 11, -1, 33, 8, 34, -3, + -6, -10, 1, -10, -5, -0, -7, -7, + -16, -9, -6, 4, 3, 13, 4, 7, + -23, -6, -24, -24, 5, -21, -28, -18, + ], + [ + -132, -102, -94, 56, -6, 50, -130, -42, + -71, -30, -2, 19, -8, 125, 26, 116, + 7, 7, -1, 82, 81, 98, 130, 8, + -33, 3, 16, 21, 67, 40, 52, 8, + -27, -35, 11, -2, 37, 38, 27, 22, + -36, -26, -10, -7, -9, 11, -12, -2, + -35, -10, -13, -5, -4, -2, 4, 2, + -46, -35, -59, -45, -1, -27, -39, -28, + ], + [ + -175, -93, 4, -56, -15, -74, -64, -103, + -44, -43, 83, 86, 64, 65, -61, -31, + 41, 10, 82, -10, 98, 52, 13, -41, + 93, 48, 176, 33, 52, 15, -25, -29, + 47, 69, 20, 36, 67, 27, -19, 1, + -6, 36, -2, 2, -5, -16, -24, -35, + 43, -38, 1, 19, -1, 20, -49, -57, + -148, 5, -61, -34, 46, -32, -85, 26, + ], + [ + 14, 50, 99, 58, 105, -112, 4, -46, + 23, 3, 16, -64, 42, 24, -36, -11, + -45, 24, 105, 105, 17, 71, -16, -71, + 26, 94, 15, 80, 28, -1, 49, -40, + -11, 22, 21, 44, 18, 2, 28, -36, + -58, 5, -2, -20, -26, -31, -37, -63, + -26, 38, -18, -38, -16, -37, 5, -9, + 27, -39, -60, -64, -68, -76, -88, 7, + ], + [ + -123, -95, -23, 26, -7, -48, -40, -9, + 37, 67, -15, -9, -0, 13, -7, 44, + 57, 58, 24, 50, 112, 145, 84, -1, + 10, -9, 97, 47, 112, 26, 61, -26, + 14, -3, 52, 2, 49, -8, 48, -31, + -16, 2, -26, 23, -32, -11, -60, -26, + -68, -67, -26, -24, -22, -47, -24, -21, + 9, -48, -58, -32, -38, -100, -54, -16, + ], + [ + -40, 30, -65, -35, 27, 118, -119, -74, + -18, -29, 70, 74, -9, -65, 20, 45, + -42, 51, 64, 63, -24, 91, 26, 36, + -6, -4, 40, 91, 59, 140, 13, -6, + -3, 67, 30, 29, 46, 51, 19, 26, + -46, -33, -9, -19, -19, -22, -32, -7, + -21, -60, -6, -15, -17, -16, -16, -41, + -48, -45, -77, -47, -46, -63, -43, -41, + ], + [ + -29, -100, -73, 45, -135, 34, -115, -25, + -46, 6, 16, 42, -2, 53, 52, 99, + -119, 8, 46, 16, 56, 34, 85, 142, + 29, 5, 46, 22, 118, 71, 160, 24, + -23, 8, 24, 20, 65, 25, 60, 15, + -25, -23, -27, -8, -5, 6, -20, -20, + -90, -11, -24, -15, -13, -30, -2, -17, + -73, -47, -77, -45, -21, -64, -30, -78, + ], + [ + -117, -160, -46, 43, 55, 113, -64, -34, + -14, -45, 40, 34, 32, 46, -46, 15, + 2, -5, -9, 85, 94, 108, 79, -14, + -32, 10, 27, 32, 18, 166, 38, 81, + -46, -13, 3, 19, 35, 37, 47, -9, + -50, -37, -21, -17, 9, -11, -8, -28, + -35, -34, -25, -16, -8, -11, -12, -12, + -27, -37, -54, -37, -31, -42, -35, -25, + ], + [ + -136, -28, -82, -115, 50, 51, 76, -37, + -125, -53, -23, 77, 39, 27, 45, 129, + -16, -11, -14, 55, 150, 201, 60, 11, + -39, 1, 13, 20, 19, 38, 174, 62, + -30, -19, -2, -9, 53, 16, 19, -2, + -54, -39, -18, -20, -6, 1, -18, -6, + -25, -22, -41, -15, -3, -17, -7, -9, + -79, -41, -64, -27, -20, -43, -11, -59, + ], + [ + -19, -43, -128, -13, -0, -57, -23, -55, + 14, 65, 39, 154, 99, -151, -75, -125, + 10, 28, 62, 76, 90, -170, -135, -13, + 42, 34, 155, 260, 15, -109, 19, -43, + -27, 118, 65, 47, 76, -16, -57, 25, + 20, 183, 110, -18, -20, -57, -21, -23, + 56, -49, 21, -14, -79, 23, -77, -140, + 39, 19, 57, 10, -55, -95, -128, 4, + ], + [ + -13, 60, -71, 12, -18, -45, -48, 20, + -60, 6, -14, 18, -27, -25, -97, -113, + 27, -6, -81, -73, -38, -127, -86, -59, + 22, 1, 18, 24, 112, -35, -27, 40, + -129, 14, -65, 40, 2, 26, 62, -17, + -81, 49, -1, 25, 140, -35, -48, 33, + -4, 66, -11, 72, 97, 129, 11, -15, + -22, 74, 115, 38, 12, 112, 20, -8, + ], + [ + -76, -6, 50, -1, -83, -40, -57, 6, + 2, -47, -12, -90, 32, -163, -42, 27, + 5, -16, 32, -39, -11, -29, 13, 17, + 31, -14, -119, 10, 4, 5, -175, -31, + 21, -40, -23, 46, -19, 63, -19, -6, + 30, 76, -55, 140, 68, 108, 52, -13, + -31, 5, 2, -80, 9, 53, -5, 53, + 48, 134, 26, 89, 39, -17, 61, 4, + ], + [ + -104, -114, -64, -34, -36, -16, 27, -3, + -112, -55, -57, -76, -19, 1, -5, -61, + -41, -49, -69, 25, 58, -16, -35, -33, + 55, -12, -13, 162, 25, -103, 29, 101, + -39, -4, 35, 26, 31, 47, -46, 33, + -18, 33, 152, -3, 20, 94, 90, 9, + 48, 11, -27, 4, 37, -24, -43, -20, + -12, -25, 76, 48, 99, 33, 4, -24, + ], + [ + -16, -14, -36, -64, -24, -41, 9, -12, + -13, -26, -45, -77, 34, -121, -10, -7, + -64, 48, -38, 46, -18, -67, -23, -72, + 33, -7, 96, -32, -77, -1, -69, -4, + 64, -200, 54, 43, 15, 14, 62, 73, + -63, 27, 105, 83, -64, 40, 44, 117, + -50, -1, 75, 70, 48, -32, 32, 18, + 6, -82, 56, 65, -13, 131, -90, 68, + ], + [ + -21, -2, -67, -39, -55, -13, -38, 15, + 11, -39, -117, -39, -47, -4, -11, -12, + -73, -83, -69, -65, -115, -49, 88, 26, + 12, -54, 15, -38, 20, 19, -19, -7, + 78, 6, -46, 86, 11, 5, -67, 74, + -35, -7, 99, 51, 118, 114, 74, 69, + -0, -18, -5, -64, -53, 67, 16, -28, + 18, -21, 47, 97, 129, 70, 7, -25, + ], + [ + 44, -65, 3, -53, -47, -16, -24, -38, + -26, 45, -131, 31, 29, 45, -51, -63, + -6, -78, 58, -53, 113, -138, 57, 4, + -100, -26, -55, -30, 112, 77, 8, 26, + -28, -53, -57, -17, 55, -17, 14, 112, + -56, -36, 6, 231, 55, 45, 110, -35, + -33, -41, 48, -143, -3, 51, 45, -13, + 3, -55, 46, 40, -61, 57, 92, -16, + ], + [ + 43, -60, -40, 1, 13, -37, 10, 31, + 33, 4, 4, -28, -50, -65, -9, -59, + -22, -152, 45, -35, 80, 52, -57, -20, + -90, -68, 48, 54, 213, -50, 69, 33, + -5, -23, -20, 36, 42, 84, 10, 48, + -46, -121, 36, 107, 85, 53, 70, 2, + -33, -46, -10, -69, 16, -32, -8, -9, + 9, -94, -51, 88, -7, -67, 60, 4, ], ]; internal static readonly short[][] EndGameEnemyKnightTable = [ [ - -199, -41, -108, 51, 86, 49, -138, 131, - -100, -73, 9, -22, -46, 7, 19, 82, - 23, 69, -55, 9, 23, 21, -58, -57, - 10, 62, 41, -6, 9, 1, 2, -18, - 23, 22, 5, 26, 28, -6, -57, -24, - 13, -21, 9, -3, 30, -32, 27, -33, - 91, 18, -15, -18, 3, 2, 36, 11, - -74, -1, 14, -7, 14, 57, 4, 76, - ], - [ - -27, -95, 133, 30, 4, -59, -42, -40, - -44, 24, -3, 52, -15, -7, 5, 23, - -59, 26, 39, 12, 16, 23, -4, 7, - 15, 2, 46, 17, 64, -2, -3, 10, - 30, 4, 18, 33, 17, -0, 16, 8, - -11, -7, 11, 18, -16, -6, 0, -7, - -75, -23, -10, 2, -0, -29, -36, 5, - 24, -36, -9, 9, 17, -14, -35, -46, - ], - [ - -273, -31, -130, -23, 48, 46, -3, 87, - -12, 37, 12, -23, -221, 8, 35, -34, - -18, -60, 8, 94, 0, 16, 1, -41, - 6, 20, 10, 37, 36, 43, 26, -7, - 7, 36, 29, 25, 28, 43, 8, 23, - -10, 3, 7, 7, 19, 8, 16, -9, - -55, 13, -11, 11, 7, -12, -21, 30, - 20, 20, 10, 27, 36, -1, -0, -6, - ], - [ - -69, 35, -67, -57, -8, 53, 17, 12, - 1, 2, 22, -69, 2, -36, -10, 19, - 62, -8, -203, 16, -80, 7, -42, 26, - 27, -5, 24, 34, 19, 23, 45, 0, - 33, 56, 38, 18, 20, 22, 11, 20, - -11, 24, 11, -3, 11, 9, 29, -9, - 42, -45, -11, -7, -13, 35, -83, -40, - 8, 61, -15, 50, -9, -2, -14, -27, - ], - [ - 169, 20, 26, -52, -92, -35, -4, -62, - -24, 33, -99, -89, -7, 3, 21, -7, - -59, -1, 35, -59, 24, -35, -33, -14, - 7, 56, 26, 34, 18, 43, 8, 39, - 20, 5, 41, 22, 45, -9, 16, 27, - 7, -2, 3, 3, 1, -3, 2, -27, - 4, -13, -12, 3, -17, -7, -4, 38, - 53, 8, 7, 6, -47, -13, -18, -29, - ], - [ - 2, 16, 28, -8, -28, -71, -4, 7, - 8, 22, 23, 18, -31, -52, 23, -179, - 44, 1, 11, -9, 98, -1, -70, -21, - 24, 4, 48, 14, 27, 17, 17, -14, - 17, 19, 14, 25, 19, 10, 4, -5, - -9, -1, 3, 17, 6, -16, -14, 22, - -0, 8, 7, 5, -7, -1, -38, -40, - -7, -1, -11, 26, -17, -8, 3, 3, - ], - [ - 30, 24, 37, 1, 34, -37, -145, -233, - 21, 11, -8, 7, -71, -9, -24, -41, - -8, 20, 41, 18, -7, 207, 14, -0, - 14, 8, 16, 46, 23, 38, 9, 20, - 8, 4, 15, 25, 26, 14, 11, 5, - -11, -7, 1, 17, 19, -0, -7, -19, - 1, 3, 1, -3, -6, -25, -10, -5, - -16, -21, -9, 16, 2, -5, -17, -60, - ], - [ - 65, -14, 19, 23, 20, -27, -72, -86, - 25, -6, -2, -8, 50, 184, -21, -18, - -28, -8, 22, -6, -12, -6, 160, 55, - -15, -15, -11, -4, 43, 7, 48, 20, - -23, 2, -1, 5, 11, -6, 12, 17, - -40, -11, -27, -3, -21, -16, -9, -14, - -15, -3, -21, -20, 3, -30, -13, -44, - -4, -60, 0, 2, -14, -11, -18, -9, - ], - [ - -109, -23, 12, -17, -19, 44, 14, -26, - -52, -8, 9, -15, 10, 5, 35, 2, - -35, 13, -8, 33, 6, -4, -13, 11, - -19, -12, -14, 7, 6, 23, 7, 12, - 12, -6, 25, -5, 3, 0, 1, -17, - -2, -10, 21, 12, 26, 7, 2, -21, - -10, 25, 10, -4, 1, 8, 39, 15, - 63, -67, 22, 22, -27, -12, 16, -27, - ], - [ - -160, -77, -73, 6, -28, 8, 38, -20, - -53, -25, -15, 29, -7, -4, 28, -1, - -22, -18, -17, 0, 15, -23, -1, 29, - -5, -20, 17, 10, 13, 11, -14, 19, - 8, 25, 10, 10, 9, 19, -9, 11, - 29, 9, 19, 16, 21, 18, 2, 4, - 17, 4, 14, 24, 6, 5, -15, -12, - -10, -14, 16, 20, 32, 18, 43, 7, - ], - [ - -50, -48, -40, -42, 7, -9, 32, -31, - -37, -28, -11, -29, 4, -5, -3, 0, - -10, -14, 14, -7, -20, -42, -4, -8, - 8, -5, 10, 4, 3, 8, -15, 12, - 18, 5, 13, 17, 15, 9, 3, 5, - -1, 4, 20, 18, 19, 10, 24, -2, - 40, 31, 13, 17, 16, 8, 13, 13, - -16, 16, 27, -1, 14, 15, 17, -39, - ], - [ - -17, -41, -13, 21, -38, -53, 22, -59, - 14, 12, -34, -36, 3, -21, -33, -21, - 17, -12, -7, -8, 10, -8, -24, -6, - 22, 17, 5, 6, 1, -8, -21, 5, - 14, 4, -2, 22, 9, 8, -9, -4, - 14, 20, 12, 19, 14, 4, 9, 6, - -3, 28, 1, 11, 8, 17, 24, 28, - -2, 22, 21, 1, 12, 6, 13, -22, - ], - [ - -21, 47, 40, -30, 67, -27, 1, -120, - 15, 9, 1, -15, -13, -28, -45, -28, - 41, 2, 15, 4, 3, -29, -8, -48, - -4, 10, 6, -4, -1, -9, -26, -25, - 9, -3, 14, 9, 16, 7, 9, -6, - -9, 1, 14, 20, 15, 6, -3, 4, - 25, 16, 8, 10, 13, 9, 10, -10, - -19, 17, 11, 11, 2, 19, -7, 4, - ], - [ - 56, 29, 0, -3, -8, -49, 38, -161, - 4, 9, 4, -1, -8, 5, -19, -46, - 3, -2, 21, 5, -9, -0, -28, -14, - 3, -8, 8, 8, 5, 3, 6, -22, - 18, 0, 10, 19, 6, 18, -14, 26, - -5, 3, 7, 17, 12, 8, 8, 21, - -10, 17, 5, 4, 13, -2, 10, 26, - -57, -8, -0, 13, 19, 18, -14, -15, - ], - [ - -26, 23, 25, 30, 27, -54, 77, -100, - 35, 8, -9, 12, 7, -9, -52, -118, - -19, 1, 9, -1, -2, -16, 19, 4, - -4, -22, -6, 15, 14, 3, -6, 2, - -4, -5, 9, 14, 20, 18, 52, 21, - 4, -11, 1, 4, 26, 6, 6, 4, - -19, -20, 14, 14, 1, 8, -4, 13, - -6, -25, -2, 12, 22, -3, -18, -22, - ], - [ - -36, 28, 15, 72, -65, -46, -16, -39, - -29, -9, -0, -29, -11, 9, 16, -25, - 7, -8, 1, 6, 12, 28, 4, -30, - 3, 61, -28, -29, 7, 34, -21, -4, - 31, -33, -1, 2, -11, 19, 14, -58, - -16, -52, -27, 41, 21, 28, -28, -23, - -69, 43, 36, 17, 8, 7, 4, 97, - -31, -4, -0, -13, 25, 12, 43, 38, - ], - [ - -61, 6, -7, 40, 62, -11, -92, -24, - 82, 9, -14, 14, 4, -4, 52, 9, - 42, 11, 3, -3, 34, -7, 48, 26, - -1, -3, -5, 12, -1, -1, -16, -42, - 40, -42, 54, 25, 15, 7, -47, 2, - 42, -64, 37, 6, 4, 35, 4, 5, - 2, 1, 25, 12, 30, -8, -12, -15, - -40, -20, -35, -18, -43, -73, -93, 2, - ], - [ - 45, 37, -29, -61, -21, 40, 30, 10, - 69, 14, 4, 27, -15, 54, -29, 12, - 7, 38, -19, 4, -3, -0, -61, 14, - -14, 14, 9, 4, -1, -4, 20, -8, - -0, 43, 54, 14, 12, -5, -9, -22, - 11, -6, 22, -0, -4, 14, -21, 22, - 4, -49, -3, 32, -1, -12, -14, -17, - -69, -63, -6, -21, -33, 32, -45, -47, - ], - [ - -57, -46, -33, 32, -12, -33, 24, -73, - 90, -0, 17, 20, 1, -5, 1, 30, - 25, -19, 40, 4, -29, 3, 35, 38, - 7, -6, 29, -34, -10, 28, -24, -22, - 7, -9, 3, -1, 7, -1, 36, -31, - 34, -14, -4, 13, 32, 14, -11, 9, - 31, -44, 26, 10, 21, 23, 26, 5, - -79, -16, 10, -19, -3, -65, 42, -72, - ], - [ - -52, 13, 69, -3, 22, -8, -4, -49, - 28, 37, 18, 35, -30, 36, 6, 17, - -6, -34, 19, -0, -9, 2, -4, 29, - -6, 12, -60, 19, 16, -6, 11, 18, - -2, 68, 16, -13, -43, 6, 11, 12, - 50, -7, -41, 15, -0, 5, 2, -28, - -19, 10, 9, -10, -32, -1, 10, -1, - -29, 33, -54, -29, -6, -58, 26, -38, - ], - [ - 70, -21, 36, -48, 4, 87, -50, -39, - -40, -35, 38, -15, 55, -27, 35, 42, - 38, 11, 7, 29, 29, 4, -4, 34, - -47, 2, 1, 18, -13, -12, 12, 49, - -48, 20, 6, -17, 6, 22, 27, -0, - -76, 6, -35, -2, 1, -14, 16, -1, - -31, 43, 2, 6, -19, -29, -7, -32, - -24, -1, -25, -46, -21, -2, 31, -4, - ], - [ - 112, 91, 33, -25, -3, -36, -5, 67, - -33, -51, 28, -17, -1, -19, -17, 51, - -42, -6, -34, 16, -44, 60, -18, -42, - 38, 5, 11, 29, -21, 12, -6, -5, - -34, 8, 21, 18, 16, 38, -11, -72, - -27, -15, 27, -19, 12, 11, -21, 51, - -57, -34, -32, 58, 10, -42, -8, -25, - -16, -33, -30, 17, 43, 9, -27, 35, - ], - [ - -176, -56, -28, 80, 16, 39, -53, 136, - -134, -17, 31, -21, 26, 21, 42, 2, - 4, 74, -3, 29, 14, -11, 1, -8, - -48, -21, -49, 2, -38, 13, -14, 6, - -17, -71, 8, 8, 40, 4, -1, -30, - -85, 79, 23, -39, 17, 16, 5, 72, - 18, 18, -58, 35, 28, 28, 37, 9, - 41, 11, -10, -41, -56, 43, -61, 74, + -142, -31, -34, 45, 67, 42, -125, 55, + -26, -64, 12, -18, -40, 10, 24, 78, + 17, 68, -58, 9, 24, 23, -55, -60, + 7, 57, 37, -7, 4, -4, 2, -17, + 16, 19, 1, 22, 25, -8, -57, -28, + 9, -24, 6, -6, 24, -37, 22, -38, + 85, 14, -16, -21, -0, -4, 32, 6, + -60, 4, 8, -15, 9, 46, 1, 69, + ], + [ + -37, -59, 82, 22, 6, -44, -21, -38, + -44, 17, 2, 39, -9, -4, 14, 25, + -56, 24, 30, 14, 20, 25, 1, 8, + 15, 2, 43, 17, 61, -2, -2, 8, + 29, 2, 18, 30, 17, -1, 18, 8, + -11, -8, 10, 17, -17, -7, -3, -9, + -75, -23, -11, 2, 1, -27, -36, 9, + 24, -33, -12, 5, 19, -16, -35, -42, + ], + [ + -250, -34, -93, -28, 40, 36, -15, 95, + -33, 32, 11, -17, -155, 14, 41, -31, + -15, -62, 4, 18, 3, 20, 7, -39, + 4, 20, 9, 35, 35, 41, 28, -6, + 7, 35, 27, 23, 28, 42, 9, 21, + -9, 1, 7, 5, 16, 7, 12, -10, + -55, 15, -13, 10, 7, -11, -21, 32, + 11, 26, 6, 22, 36, -6, 2, -1, + ], + [ + -60, 24, -68, -36, -3, 47, 15, 2, + -2, -53, 26, -68, 8, -28, -6, 21, + 59, -8, -119, 16, -26, 9, -38, 26, + 24, -7, 22, 33, 18, 20, 40, -2, + 30, 50, 35, 16, 17, 19, 12, 18, + -13, 19, 9, -6, 6, 6, 22, -15, + 48, -48, -14, -11, -14, 32, -84, -42, + 8, 62, -20, 43, -12, -6, -16, -37, + ], + [ + 162, 20, 32, -52, -72, -61, 13, -55, + -23, 32, -80, -83, -5, 5, -17, -7, + -58, 4, 34, -67, 27, -52, -27, -12, + 10, 58, 25, 35, 19, 42, 10, 39, + 20, 5, 40, 22, 45, -8, 19, 26, + 9, -1, 3, 3, -1, -4, -1, -28, + 5, -11, -13, 2, -15, -4, -5, 41, + 47, 12, 4, 2, -45, -18, -17, -26, + ], + [ + 10, 31, 36, -4, -22, -62, -9, 1, + 9, 25, 26, 27, -24, -53, 27, -142, + 46, 4, 11, -4, -11, 5, -79, -19, + 23, 6, 48, 15, 28, 20, 18, -12, + 17, 18, 14, 24, 21, 10, 7, -4, + -7, -2, 4, 19, 5, -15, -16, 21, + -0, 8, 5, 5, -6, -0, -38, -36, + -19, 3, -13, 20, -17, -13, 4, 4, + ], + [ + 35, 27, 42, 3, 34, -37, -142, -206, + 19, 13, -5, 12, -73, -5, -18, -40, + -8, 22, 41, 22, -2, 163, 21, -31, + 16, 9, 16, 47, 23, 39, 11, 21, + 7, 3, 16, 23, 28, 14, 12, 3, + -10, -8, 1, 18, 18, -1, -10, -20, + 1, 3, -1, -4, -5, -24, -11, -5, + -17, -19, -12, 12, 3, -10, -16, -58, + ], + [ + 61, -23, 25, 27, 23, -19, -97, -72, + 28, -4, 5, -1, 55, 94, -15, -21, + -23, -1, 25, 1, -5, 1, 88, 59, + -13, -13, -8, -1, 46, 10, 52, 22, + -22, 4, 1, 7, 16, -3, 16, 17, + -36, -9, -24, -1, -19, -13, -9, -12, + -14, -0, -20, -17, 6, -26, -12, -40, + -2, -54, 2, 1, -12, -12, -15, -4, + ], + [ + -135, -28, 18, -20, -19, 46, 10, -31, + -52, -3, 14, -9, 14, 10, 39, 3, + -39, 13, -10, 38, 10, 0, -8, 13, + -18, -11, -15, 7, 7, 26, 10, 13, + 10, -7, 24, -6, 4, 0, 3, -18, + -0, -11, 20, 12, 24, 7, -1, -20, + -9, 28, 9, -5, 1, 7, 35, 17, + 61, -64, 17, 19, -29, -15, 13, -26, + ], + [ + -154, -55, -57, 20, -14, 9, 37, -21, + -56, -26, -11, 33, -5, -1, 31, 1, + -20, -17, -21, 1, 17, -19, 2, 29, + -7, -21, 16, 9, 12, 11, -14, 18, + 5, 22, 8, 7, 7, 16, -10, 8, + 27, 6, 17, 14, 19, 17, -2, -1, + 16, 2, 11, 21, 5, 3, -17, -15, + -14, -15, 12, 15, 30, 10, 40, 6, + ], + [ + -49, -51, -36, -39, 0, -8, 33, -26, + -38, -26, -9, -26, 7, -2, -1, -0, + -12, -11, 12, -4, -18, -36, -1, -5, + 7, -4, 9, 4, 1, 8, -14, 11, + 17, 4, 13, 16, 14, 8, 3, 4, + -1, 3, 19, 17, 16, 10, 20, -3, + 39, 30, 12, 16, 16, 7, 12, 13, + -17, 18, 21, -5, 14, 12, 16, -41, + ], + [ + -15, -34, -10, 17, -34, -36, 1, -57, + 11, 13, -34, -31, 5, -17, -29, -22, + 18, -11, -7, -6, 12, -4, -21, -6, + 22, 17, 5, 6, 0, -8, -19, 4, + 13, 2, -2, 20, 9, 6, -8, -7, + 16, 19, 12, 20, 12, 4, 5, 3, + -5, 26, -1, 10, 9, 16, 21, 27, + -3, 23, 18, -3, 12, 1, 12, -20, + ], + [ + -21, 47, 45, -28, 63, -22, -17, -109, + 13, 10, 2, -12, -13, -21, -42, -27, + 42, 4, 14, 8, 6, -26, -4, -46, + -4, 11, 6, -4, -3, -7, -27, -25, + 8, -4, 14, 7, 15, 5, 7, -7, + -9, 1, 13, 20, 14, 5, -6, 1, + 21, 13, 6, 9, 13, 9, 9, -10, + -14, 20, 9, 6, 1, 14, -7, 6, + ], + [ + 53, 26, 8, -1, -2, -42, 35, -155, + 2, 10, 5, 2, -5, 11, -13, -44, + 2, -1, 20, 8, -5, 1, -24, -15, + 3, -8, 8, 8, 5, 2, 7, -25, + 16, -1, 9, 18, 6, 16, -14, 23, + -5, 1, 6, 16, 10, 7, 5, 18, + -13, 16, 2, 3, 13, -3, 7, 26, + -59, -7, -4, 7, 18, 13, -16, -11, + ], + [ + -32, 24, 27, 31, 26, -43, 94, -89, + 31, 5, -8, 13, 7, -6, -47, -72, + -19, 1, 7, 1, 2, -13, 21, 4, + -5, -23, -7, 14, 14, 2, -5, 0, + -7, -8, 7, 11, 21, 16, 52, 18, + 4, -15, -0, 3, 24, 4, 1, 0, + -24, -21, 11, 11, 0, 7, -9, 11, + -9, -26, -8, 6, 20, -10, -21, -24, + ], + [ + -40, 17, -15, 65, -56, -54, -14, -52, + -25, 12, 8, -14, -2, 7, 11, -26, + 10, -4, 5, 12, 19, 26, 6, -31, + 6, 69, -13, -23, 9, 33, -16, -3, + 26, -8, 2, 4, -5, 22, 13, -51, + -12, -44, -22, 40, 19, 25, -28, -33, + -58, 42, 32, 18, 8, 10, -1, 63, + -19, -4, 3, -18, 6, -12, 12, 43, + ], + [ + -56, 25, -21, 47, 55, -11, -101, -3, + 61, 12, -20, 21, 4, -6, 30, -30, + 52, 10, -18, -9, 30, -9, 34, 20, + 3, 2, 1, 13, 3, -6, -20, -35, + 5, -37, 49, 27, 11, 7, -39, -3, + 23, -52, 22, 6, 12, 25, -8, 19, + -1, 6, 20, 20, 37, 10, -1, -11, + -51, -13, -21, -13, -30, -31, -73, 6, + ], + [ + 21, 40, -11, -56, -44, 29, 6, 14, + 68, 12, 8, 17, -5, 31, -34, 17, + 8, 36, -16, -8, 1, -3, -51, 12, + -2, 16, -8, 7, -2, 0, 5, -12, + 7, 35, 55, 10, 13, -2, -15, -29, + 21, 6, 6, 1, 5, 20, -12, 15, + -5, -47, -6, 23, -1, -4, -20, 1, + -57, -39, -1, -6, -23, 26, -29, -44, + ], + [ + -89, -82, -41, 26, -21, -33, 30, -54, + 62, -9, 9, 12, -7, -1, 5, 23, + 15, -22, 18, 7, -6, 8, 28, 33, + 14, -12, 30, -14, -8, 15, -18, -14, + 1, -6, 5, 8, 4, 6, 22, -20, + 35, -2, -1, 13, 27, 30, -8, 19, + 40, -43, 23, 12, 35, 21, 19, -0, + -71, -27, 24, -11, 26, -50, 42, -76, + ], + [ + -54, 12, 57, -25, 15, -16, 6, -32, + 32, 38, 12, 18, -32, 16, 6, 4, + -23, -26, 15, 8, -8, -8, -5, 13, + 2, 10, -40, 15, 9, -7, -6, 16, + 16, 39, 21, -16, -38, 4, 20, 17, + 37, -3, -22, 18, -8, 3, 16, -2, + -35, 9, 18, 9, -30, -10, 20, 4, + -17, 17, -49, -12, -6, -25, 10, -26, + ], + [ + 63, -17, 17, -57, -8, 89, -61, -26, + -37, -39, 15, -19, 41, -22, 34, 39, + 20, -0, -0, 29, 9, 5, 21, 42, + -46, -2, -1, 11, -21, -14, 0, 46, + -31, 25, 3, -12, 4, 22, 10, 12, + -85, 5, -29, 2, 9, -2, 20, 22, + -35, 44, -1, 8, -28, -22, 0, -42, + -17, -6, -11, -25, 10, 3, 37, -5, + ], + [ + 125, 67, 39, -41, -8, -29, 4, 52, + -44, -36, 9, -9, 9, -14, -25, 43, + -43, -18, -33, 12, -43, 39, -13, -34, + 16, 1, 6, 22, -5, 21, -5, 5, + -46, -3, 17, 17, 15, 36, 1, -32, + -42, -19, 29, -11, 25, 9, -6, 33, + -51, -42, -26, 48, 8, -26, 1, -30, + -14, -44, -16, 23, 33, 19, -15, 35, + ], + [ + -137, -72, -32, 85, 24, 37, -41, 112, + -111, -9, 38, -23, 8, 12, 41, -14, + 3, 49, -1, 27, 29, -3, -16, -12, + -72, -27, -39, 3, -18, 9, -5, 13, + -14, -71, 3, 9, 41, 14, 14, -6, + -106, 48, 18, -22, 22, 25, 7, 71, + 4, 5, -54, 23, 25, 21, 33, 8, + 52, 0, -30, -14, -54, 30, -38, 76, ], ]; internal static readonly short[][] MiddleGameEnemyBishopTable = [ [ - -79, -81, -5, 166, -14, -110, -126, -4, - 15, 237, 63, 135, 74, -73, -63, -115, - 28, 52, 64, 70, -33, -32, -39, -37, - 2, 62, 71, 74, 19, 18, 17, -4, - -39, 15, 15, 21, 61, 25, 11, -32, - -32, 12, -13, 7, 20, 53, 14, -30, - -8, -53, -25, -20, -26, -30, -14, 5, - -101, -44, -29, -27, -58, -66, 10, 22, - ], - [ - 7, -84, -78, -34, -209, -110, -138, -30, - 91, 138, -1, -37, -40, -9, -3, -58, - 15, 58, 80, 67, -9, 54, -27, -33, - -5, 23, 59, 56, 67, 17, 26, 12, - -28, -6, 8, 44, 39, 44, 15, -20, - -32, 7, 0, 4, 31, 33, 26, 2, - 16, -28, -23, -4, -1, 3, 2, 48, - 3, -5, -10, -22, -13, -28, 25, 4, - ], - [ - -19, -39, -73, -201, -38, -69, 35, 2, - -8, 2, 81, 98, -66, 18, -2, -46, - 53, 53, 33, 79, 74, 21, 10, -41, - -18, 19, 24, 37, 46, 61, 16, 8, - -12, -22, -2, 14, 45, 26, 34, -33, - -44, -11, -16, -1, 6, 36, 13, 17, - 21, -29, -16, -18, -3, -26, 6, 4, - -18, -19, -30, -11, -27, -45, 12, -3, - ], - [ - 37, 38, -216, -65, -10, -17, -74, 49, - 23, -18, 98, 55, 80, 27, 38, -69, - -36, -2, 83, 155, 32, 177, -14, -29, - -15, 25, 56, 20, 61, -2, 41, 4, - -49, -1, -17, 13, -13, 16, 30, -25, - -14, 3, -26, -8, -10, -4, 13, 7, - -19, -41, -39, -8, -23, -23, -41, -6, - -10, -48, -36, -9, -32, -78, 19, -52, - ], - [ - -15, -89, -75, -115, -75, -50, 55, -50, - 3, 21, -19, -215, 28, -256, 31, -23, - -27, 34, 79, 95, 92, 43, 66, 23, - -9, 26, 67, 54, 34, 56, 15, 25, - 6, 46, 18, 33, 25, 6, 20, -15, - 18, 32, 6, 9, 10, 11, 2, 8, - 41, 11, 11, 1, -6, -19, -18, 11, - -7, -10, 1, -5, -24, -38, 10, -25, - ], - [ - -49, 38, -40, 5, -87, -80, -54, 5, - 13, -62, 29, 4, -50, 20, 75, -50, - -47, 21, -23, 149, 56, 100, 8, 55, - -38, -8, 109, 49, 43, -14, 28, -9, - -26, -2, 9, 72, -14, 16, 11, -7, - 25, 5, 48, -8, 22, 4, -12, -32, - 30, 2, -25, -2, -35, -22, -41, 3, - -2, -37, -11, -44, -8, -80, -8, -24, - ], - [ - -51, -52, -85, -55, -62, -72, -91, 51, - -21, 5, -16, -18, 0, -73, 72, -93, - -25, -0, 27, 36, 63, 57, 66, 20, - -19, 18, 30, 53, 21, 39, 3, 12, - -8, 12, 21, 41, 41, 3, 16, -11, - -6, 32, 14, 20, 12, 19, -13, -3, - 40, 3, 17, -4, 1, -18, -21, -5, - 16, 16, -5, -6, -18, -45, 1, -6, - ], - [ - -101, -74, -29, -32, -58, 22, -18, -73, - 15, -18, -39, -23, 45, 27, -312, 1, - -25, -4, -6, 52, 16, 57, 55, 43, - -39, 27, 42, 29, 74, 62, 22, 21, - -29, 29, 13, 61, 53, 32, 15, -16, - -1, 23, 34, 24, 30, 28, 8, -16, - 19, 18, 8, 7, 2, -14, -22, 8, - 15, 26, 0, -13, -22, -45, -6, -29, - ], - [ - -253, 51, -56, -79, -110, 147, -95, -220, - -143, -133, -118, 61, 28, 22, 39, -58, - 59, 42, 51, 84, 59, 74, 2, 9, - 21, 72, 64, 91, 76, 61, -3, 13, - 11, 1, 32, 24, 43, 36, 42, -12, - -39, 9, 9, 27, 29, 40, 26, -9, - -32, -35, 3, -1, 29, -6, 6, 48, - -45, -51, -32, -50, -16, 4, 50, 5, - ], - [ - -161, -46, 136, -52, -13, 157, -58, -34, - 21, -27, -96, -100, -32, 27, 75, -31, - 9, -15, 128, 47, 33, 15, 1, -6, - 14, 1, 94, 83, 87, 43, 21, -6, - -29, 17, -4, 49, -12, 87, -4, 22, - -8, -23, 1, -21, 12, 9, 31, 10, - -25, -25, -39, -4, -24, -38, -25, -43, - -32, -29, -19, -52, -5, -70, 5, -29, - ], - [ - -61, 14, -140, -191, -15, -102, 2, -30, - -39, 9, 18, -191, -49, 23, 14, -39, - 56, 46, 41, 60, 144, 20, -20, 1, - -13, 89, 59, 48, 59, 95, 36, -5, - 28, 52, 16, 31, 61, 27, 83, -23, - -1, 6, -29, 20, -10, 30, 8, 32, - -15, -22, -36, -20, -2, 7, -9, 21, - -32, 12, -25, -30, -21, -32, -35, -31, - ], - [ - -93, 30, 175, 10, -90, -6, 80, 9, - 41, 1, -19, 11, 32, -39, 43, -59, - -48, 17, 0, 74, 44, 28, 4, 40, - -15, -5, 91, 46, 49, 50, 46, 27, - -58, 44, -20, 68, -2, 24, -13, 21, - 22, -16, 4, -34, 23, -20, 7, -38, - -26, -22, -27, -8, -47, -21, -41, -43, - -31, -70, -25, -60, -37, -87, 34, -78, - ], - [ - -48, -55, 66, -67, -16, 14, 156, -24, - -105, -29, -47, 43, -84, -32, -28, 67, - -18, 5, 4, 23, 34, 6, 4, 2, - -36, 9, 28, 97, 48, 71, 12, 69, - -40, 47, 44, 33, 61, -11, 14, -53, - -20, 41, -8, 18, -13, 16, -34, -15, - 37, -12, 23, -23, -12, -42, -22, -29, - -24, 20, -37, 6, -32, -49, -44, -6, - ], - [ - -47, 86, -42, 78, -16, 7, -6, -70, - -26, -44, 3, -10, 32, -58, 48, -24, - -71, 11, -37, 58, 16, 138, -3, 37, - -11, -24, 58, 23, 133, 61, 74, 6, - -53, 18, -10, 71, 12, 49, -19, -6, - -19, -10, 39, -16, 51, -17, -2, -70, - -19, 18, -28, 10, -39, -25, -62, -20, - -2, -11, 2, -36, -34, -87, -15, -48, - ], - [ - 19, -34, -64, -95, 36, -78, 188, -92, - -52, -9, -46, -17, -26, 47, 20, 170, - -47, 4, 20, 18, 23, 63, 155, 41, - -58, 18, 12, 28, 17, 89, 20, 22, - -64, 3, 11, 31, 60, -5, 6, -34, - -20, 4, 5, 14, 8, 19, -39, 8, - -3, -20, 10, -17, -5, -23, -35, -46, - -22, -10, -22, -22, -50, -58, -33, -43, - ], - [ - 129, 35, -30, -143, 1, -4, 98, -107, - 104, 94, 228, 195, -102, 5, -33, -165, - -9, 25, 237, -41, 51, -85, -95, -49, - -40, 16, -7, 191, -41, -6, 62, 12, - 25, -70, 213, 39, 98, -98, -86, 115, - 25, -22, 9, 52, -20, 50, -31, 54, - -212, -117, 32, -13, -51, -31, 130, -71, - -133, 36, 15, -61, -89, -48, -136, -129, - ], - [ - -22, -37, 61, 121, -95, -179, 251, -45, - -84, 51, 241, -56, 56, -165, 103, -33, - -162, 0, -65, 1, 65, 110, -40, -90, - 32, 32, -153, -0, -21, 0, -168, -14, - -107, -19, 74, -94, 112, 164, 25, 147, - 77, 14, -119, 20, 72, 148, 56, 43, - -162, 114, -20, -60, -14, -110, -60, 61, - -127, -174, -35, -233, 202, 228, 105, -24, - ], - [ - 156, -43, 51, 196, -74, -171, -137, 58, - 5, -212, 9, -34, 99, 181, -66, -21, - 98, -57, -105, -193, 69, -72, -212, 55, - -155, -63, -88, -45, -31, 4, -70, -189, - -30, -157, 63, -57, 145, 109, -2, 144, - 43, -59, 23, 182, 58, -119, 69, 265, - -15, -33, -151, -203, 92, 241, 46, 42, - -35, 106, -171, 72, 84, 118, 60, 125, - ], - [ - -93, -76, 189, 114, 114, 88, -39, 127, - -65, 26, 73, -41, 124, -25, 151, 40, - -160, -162, -43, -185, -105, -45, 90, 48, - 102, -128, -14, -90, -98, -3, 89, -37, - -74, 2, -198, -212, -77, -26, -76, 202, - 140, -26, -3, 45, -137, 99, -18, -1, - -114, 111, -48, 52, -89, -62, 11, 96, - 92, 67, 24, 14, 27, -6, -72, 293, - ], - [ - 5, -54, -165, -47, 187, -51, -17, -56, - -44, 64, -182, -24, 38, 182, -95, 124, - -29, 167, -105, -52, -4, -147, 91, 14, - 59, -106, -84, -295, -55, -31, -78, 96, - 18, -39, 37, -95, -90, -61, 77, -26, - 7, 5, 108, -78, -113, -107, -121, 221, - 140, -25, 181, -69, 147, -37, 219, -4, - 32, 249, -158, 122, -5, 108, -109, 162, - ], - [ - 105, 107, -44, -124, 53, -29, 110, -1, - 211, -4, -246, -23, 23, 50, -10, -79, - -37, 27, -79, -72, -118, -24, -130, -16, - 10, -41, 101, -67, -183, -55, -114, 37, - 12, 83, -8, 18, -32, -180, -115, 23, - 148, 132, 16, 36, -129, 1, -17, -106, - 130, -16, 7, 208, 11, 206, -6, 161, - 113, -168, 54, 127, -73, 171, -125, -24, - ], - [ - 62, 167, 104, -40, 15, -154, -157, -44, - -285, -15, -58, 85, -100, 163, -195, -63, - -59, -87, -49, -81, -64, -156, 108, -148, - 96, -22, -67, 21, -11, -110, -9, 67, - 314, -73, 67, 51, 23, -27, -19, -120, - -45, 238, -47, -5, 61, -47, 70, -8, - -77, -68, 298, -68, 119, -100, 81, -68, - 152, -13, 4, 96, 169, 252, -99, -25, - ], - [ - -33, -30, 28, -74, -48, 143, -66, -57, - -84, -138, 198, -26, 45, 126, -123, 118, - 66, 179, 6, -136, -113, -147, 142, 18, - 145, 69, -2, 102, 271, -45, 107, 1, - -11, -226, 11, -23, -92, 210, -1, -35, - -66, -84, 64, -18, 34, 21, -34, -118, - -120, 115, -36, 185, 103, -101, 107, -142, - -227, 5, -1, -15, -95, -31, 65, -87, + -61, -59, -17, 82, -23, -97, -112, -26, + 9, 202, 62, 112, 73, -75, -72, -104, + 39, 54, 62, 62, -31, -34, -45, -42, + 8, 60, 68, 70, 21, 16, 17, -9, + -28, 13, 18, 21, 59, 27, 10, -27, + -30, 12, -10, 13, 20, 51, 16, -26, + -12, -50, -21, -12, -16, -17, -0, 7, + -97, -36, -23, -18, -43, -51, 13, 28, + ], + [ + 6, -77, -92, -48, -180, -100, -153, -34, + 28, 133, 0, -47, -34, -16, -11, -50, + 19, 59, 80, 76, -9, 52, -34, -36, + 0, 23, 57, 53, 69, 14, 25, 1, + -21, -9, 10, 44, 38, 45, 11, -18, + -31, 6, 2, 8, 30, 29, 27, 1, + 8, -26, -20, 2, 7, 15, 14, 49, + 6, -1, -6, -15, -1, -17, 24, 10, + ], + [ + -12, -47, -66, -208, -35, -83, 21, -7, + -12, 3, 82, 13, -60, 13, -12, -37, + 62, 56, 34, 73, 78, 23, 8, -44, + -15, 21, 24, 35, 47, 62, 16, -1, + -3, -23, 2, 15, 45, 27, 31, -29, + -44, -10, -14, 4, 6, 32, 15, 18, + 14, -26, -12, -11, 7, -14, 20, 6, + -13, -13, -25, -3, -14, -33, 11, 4, + ], + [ + 37, 18, -168, -43, -12, -26, -90, 43, + 21, -21, 10, 43, 9, 24, 33, -57, + -29, 4, 84, 143, 34, 162, -15, -32, + -5, 26, 55, 18, 64, -3, 42, -3, + -40, -2, -12, 15, -12, 18, 29, -19, + -14, 3, -22, -2, -9, -7, 17, 8, + -24, -36, -34, 2, -12, -9, -25, -0, + -4, -41, -28, -1, -17, -64, 20, -44, + ], + [ + -18, -102, -88, -122, -67, -57, 37, -62, + -6, 14, -18, -109, 30, -119, 17, -19, + -27, 31, 77, 84, 89, 36, 59, 15, + -10, 21, 60, 46, 31, 50, 9, 11, + 10, 38, 16, 29, 20, 2, 11, -16, + 13, 26, 2, 8, 4, 1, -2, 2, + 30, 7, 9, 3, -3, -13, -10, 9, + -9, -11, 0, -2, -16, -31, 3, -23, + ], + [ + -44, 23, -47, 4, -90, -66, -63, -1, + 9, -66, 35, -2, -59, 13, -3, -41, + -44, 24, -21, 145, 58, 98, 5, 57, + -32, -8, 108, 47, 46, -16, 28, -18, + -17, -3, 13, 75, -15, 17, 7, -1, + 25, 5, 50, -4, 22, 0, -11, -31, + 23, 4, -21, 5, -26, -11, -29, 7, + 2, -32, -6, -37, 5, -68, -10, -18, + ], + [ + -51, -70, -90, -64, -67, -82, -80, 48, + -26, -1, -12, -27, 3, -28, 62, -74, + -23, 0, 25, 30, 63, 55, 59, 15, + -16, 16, 26, 48, 21, 35, 1, 0, + -2, 7, 22, 40, 39, 2, 11, -8, + -8, 30, 14, 23, 9, 13, -14, -5, + 32, 3, 19, 1, 7, -9, -10, -4, + 18, 19, -2, -1, -7, -35, -3, -1, + ], + [ + -103, -88, -40, -41, -67, 13, -31, -66, + 8, -24, -35, -31, 47, 19, -193, 6, + -24, -3, -9, 44, 15, 61, 50, 37, + -37, 24, 38, 23, 73, 57, 18, 8, + -24, 24, 13, 58, 49, 31, 8, -15, + -4, 20, 34, 25, 27, 21, 7, -19, + 10, 16, 9, 12, 8, -6, -13, 8, + 16, 28, 1, -9, -12, -36, -9, -26, + ], + [ + -170, 27, -50, -79, -106, 112, -89, -201, + -142, -111, -105, 55, 28, 15, 24, -49, + 45, 39, 28, 76, 54, 69, -3, 4, + 20, 67, 56, 84, 74, 57, -6, 1, + 18, -5, 33, 23, 40, 34, 35, -13, + -40, 8, 9, 27, 26, 34, 25, -12, + -39, -35, 3, 4, 36, 3, 17, 46, + -43, -48, -27, -46, -8, 14, 47, 8, + ], + [ + -145, -57, 104, -46, -18, 119, -67, -39, + 20, -33, -84, -107, -32, 23, 67, -20, + 11, -16, 124, 28, 34, 13, -4, -10, + 18, 3, 90, 79, 88, 42, 19, -15, + -24, 18, 0, 49, -10, 89, -5, 27, + -9, -23, 3, -16, 11, 4, 35, 11, + -29, -22, -35, 4, -16, -26, -13, -39, + -27, -25, -12, -45, 7, -54, 4, -23, + ], + [ + -55, 2, -118, -168, -24, -107, -20, -40, + -43, 5, 21, -159, -45, 15, 3, -31, + 58, 46, 34, 54, 126, 19, -24, -3, + -9, 89, 55, 43, 59, 95, 34, -17, + 34, 46, 17, 31, 56, 27, 78, -21, + -3, 2, -28, 22, -11, 25, 8, 30, + -23, -22, -34, -14, 5, 16, 2, 21, + -31, 12, -21, -24, -10, -21, -34, -29, + ], + [ + -84, 20, 162, 8, -99, -27, 68, 1, + 36, -3, -11, -4, 24, -45, 33, -52, + -45, 20, 2, 68, 45, 31, 2, 37, + -15, -5, 92, 44, 53, 47, 47, 17, + -51, 43, -17, 68, -3, 26, -16, 25, + 25, -18, 6, -30, 24, -23, 9, -38, + -31, -20, -22, -1, -39, -11, -29, -41, + -28, -68, -20, -53, -26, -75, 33, -67, + ], + [ + -49, -68, 58, -75, -23, 8, 112, -37, + -110, -32, -40, 38, -75, -35, -37, 77, + -15, 7, 4, 18, 37, 8, 2, -1, + -33, 10, 27, 95, 49, 70, 12, 59, + -33, 44, 48, 33, 59, -10, 10, -49, + -21, 41, -5, 22, -14, 12, -33, -14, + 29, -9, 28, -16, -4, -31, -8, -28, + -19, 25, -33, 12, -20, -37, -43, 1, + ], + [ + -44, 71, -35, 77, -24, -2, -15, -75, + -28, -48, 8, -15, 38, -59, 34, -16, + -67, 10, -37, 53, 15, 133, -8, 30, + -7, -24, 54, 20, 134, 57, 72, -6, + -45, 15, -8, 71, 10, 47, -24, -4, + -19, -11, 42, -12, 50, -21, -3, -69, + -26, 20, -25, 16, -32, -15, -50, -19, + 1, -7, 6, -30, -23, -75, -17, -41, + ], + [ + 23, -46, -69, -98, 36, -86, 149, -97, + -54, -12, -38, -22, -17, 43, 15, 101, + -42, 8, 21, 15, 25, 64, 153, 36, + -52, 19, 10, 27, 19, 88, 20, 13, + -55, 2, 15, 33, 59, -2, 4, -30, + -18, 6, 9, 20, 9, 16, -37, 10, + -7, -17, 15, -8, 5, -11, -21, -42, + -18, -4, -16, -13, -37, -45, -34, -35, + ], + [ + 61, 16, -12, -88, -6, 12, 34, -41, + 55, 60, 185, 133, -86, 4, -35, -83, + -11, 23, 203, -43, 35, -83, -84, -51, + -8, 15, -17, 176, -42, -15, 55, 8, + 16, -78, 159, 53, 94, -102, -65, 86, + 21, -14, 4, 39, -26, 30, -23, 21, + -145, -91, 19, -15, -48, -7, 153, -49, + -93, 39, 17, -54, -85, -43, -113, -73, + ], + [ + 11, -6, 35, 48, -61, -67, 118, 11, + -30, 25, 113, -51, 40, -73, 72, -1, + -43, -7, -67, -2, 34, 76, -9, -47, + 36, 20, -107, -29, -27, -26, -128, -3, + -35, 3, 51, -91, 81, 115, -1, 61, + 47, 15, -38, 10, 55, 87, 16, 5, + -55, 73, -4, -50, -20, -56, -50, 6, + -38, -98, -62, -132, 77, 119, 50, 6, + ], + [ + 72, -5, 31, 103, -29, -97, -47, 60, + 9, -96, 9, -14, 66, 102, -43, 5, + 62, -61, -94, -153, 46, -68, -149, 42, + -75, -13, -84, -25, -58, -19, -56, -84, + -2, -79, 63, -58, 86, 96, -11, 74, + 32, -6, 1, 82, 15, -95, 62, 142, + 15, -17, -67, -179, 73, 157, 48, 21, + -3, 55, -128, 64, 44, 87, 38, 55, + ], + [ + -10, -15, 98, 75, 71, 49, -0, 77, + -12, 16, 67, -31, 81, -12, 77, 38, + -91, -72, -49, -129, -93, -30, 58, 67, + 56, -120, 2, -104, -83, -10, 49, -7, + -13, -13, -150, -132, -70, -29, -69, 105, + 105, -15, 19, 18, -44, 64, -5, 13, + -53, 62, -32, 34, -91, -27, 50, 58, + 54, 29, 4, 6, 12, -19, -9, 124, + ], + [ + 37, -14, -51, -8, 120, -11, 10, -2, + -5, 44, -133, 0, 37, 98, -70, 72, + -15, 108, -56, -64, -22, -146, 62, -5, + 45, -89, -82, -197, -60, -9, -72, 53, + 18, -22, 13, -93, -41, -71, 41, 22, + 25, -25, 79, -4, -107, -31, -81, 151, + 80, -15, 103, -69, 108, -25, 144, 17, + 24, 120, -117, 57, -13, 78, -24, 80, + ], + [ + 63, 84, -20, -31, 41, 18, 59, 25, + 107, -7, -139, -17, 16, 33, 2, -24, + -31, 16, -85, -52, -109, -43, -83, 11, + 15, -62, 66, -83, -109, -51, -45, 27, + 11, 42, -35, 16, -40, -91, -90, 23, + 90, 108, -14, 2, -69, -0, 7, -52, + 75, 12, -5, 109, -8, 130, -12, 80, + 55, -70, 20, 86, -54, 138, -52, -7, + ], + [ + 39, 98, 53, -7, 11, -79, -42, -11, + -133, -13, -48, 36, -61, 86, -114, -41, + -22, -70, -37, -77, -43, -142, 61, -75, + 42, -25, -56, 22, -26, -49, -10, 35, + 122, -49, 51, 37, 17, -37, -4, -31, + -15, 159, -53, -8, 36, -7, 32, 14, + -21, -47, 212, -52, 61, -98, 71, -19, + 74, 10, -6, 34, 101, 186, -67, -5, + ], + [ + 1, 5, 12, -25, -28, 51, -25, -20, + -34, -79, 91, -25, 29, 66, -40, 52, + 25, 77, -8, -86, -106, -78, 59, -4, + 81, 40, -8, 81, 208, -65, 42, -14, + -2, -115, -2, -34, -65, 138, 3, -1, + -30, -76, 29, -46, 17, -8, 2, -46, + -50, 46, -10, 127, 72, -49, 67, -70, + -94, 24, -8, -31, -49, -10, 24, -25, ], ]; internal static readonly short[][] EndGameEnemyBishopTable = [ [ - -57, 1, 11, -37, 20, 0, 52, 11, - 77, -70, -26, -23, -33, 31, 35, 65, - -10, 8, 0, -21, 17, 2, 33, -10, - -14, -5, -31, 19, 15, -8, -4, 18, - 2, -13, -6, -10, 8, -5, -44, 31, - -3, -26, -18, -6, 18, -1, -6, 25, - 3, 8, -50, -5, 5, 6, 21, -28, - 65, 1, -30, -30, 18, 28, -5, -18, - ], - [ - 2, -105, -34, -4, 8, 67, 10, 16, - -43, -59, 46, 12, 17, -31, 57, 32, - -12, 27, 15, 214, -16, -4, -8, 39, - 23, -36, 3, -19, 46, -19, -4, -9, - -16, -0, -9, -4, 16, 29, -7, -7, - 13, -22, 4, -4, 14, -10, 10, -32, - -56, 1, -23, 19, -19, -1, -3, 8, - -28, -36, -6, -30, -5, -32, 3, -0, - ], - [ - 0, -28, -139, 16, 39, 2, -11, -35, - -69, 6, -116, -168, 7, 12, -9, -12, - 74, -24, 33, -28, 159, -20, 34, -5, - 2, 24, -23, 25, -17, 134, -21, 15, - -20, -14, 24, -11, 24, -4, 37, 14, - -1, 28, 1, 30, -4, 16, 0, 44, - -40, 4, 7, -11, 19, 5, 12, 18, - -35, -11, 7, -4, -17, 40, -32, 16, - ], - [ - -62, -4, 58, -54, -9, -7, -15, -50, - -20, -26, 203, -10, -41, -39, 3, 30, - 8, 79, -30, -48, -19, 29, -2, 24, - 54, -15, 9, -12, -2, -6, -31, -12, - 19, 3, -13, 2, -6, 4, -18, 94, - -0, -15, -4, -10, 11, -15, 9, -2, - -8, 22, 7, -7, -11, 42, -9, 21, - -27, -18, 13, -19, -15, -9, -42, 16, - ], - [ - 24, -0, 17, 31, -85, -40, -16, -16, - -17, 14, -4, -121, 23, -7, 0, -5, - 70, -17, 119, -22, -14, -1, 111, -19, - -4, 69, -9, 10, -9, 10, 1, 53, - 28, -14, 10, -9, 11, -8, -0, 12, - 23, -3, -13, -1, -10, 10, -5, -13, - -0, -5, -1, -11, -13, -10, 18, -21, - -25, -35, -1, -7, 1, 11, -33, -33, - ], - [ - 2, 2, -20, -8, -26, -73, -34, -22, - 19, -5, -14, -7, -97, -40, 123, -32, - -1, -4, -15, 62, -41, 6, 1, 188, - 16, -2, 67, -20, 7, 6, 24, -5, - -1, 75, -14, 5, -7, 11, -18, 6, - 23, -5, -5, -16, 2, -26, 6, -29, - -26, 4, -12, 3, -7, 7, -13, 2, - -5, -6, 6, -10, -15, 13, -8, 3, - ], - [ - 29, 12, 41, 22, 15, -50, -148, 14, - 13, 9, -14, 38, -18, 21, -39, -50, - 23, 4, -6, -12, 114, 11, 15, 13, - -5, 4, -3, 38, -2, 4, -7, -2, - -9, -2, 28, 3, -3, -4, -7, -24, - -10, 25, 7, 4, 12, 0, -4, -3, - 8, -13, -7, -4, 2, 1, 6, -26, - -26, -14, -8, 1, 4, 19, -16, -21, - ], - [ - 8, 28, -26, 21, -11, -14, 45, -80, - -17, 11, 6, 8, -42, -7, -48, -11, - 3, -0, 1, -2, -2, 203, 12, 28, - 8, -15, 0, 16, 15, -20, 5, -9, - -5, -9, 18, 8, 1, -7, -28, 26, - -1, 1, 5, -3, 7, -19, 4, -3, - 6, -11, -7, -4, -7, -0, 4, -34, - 3, -13, -23, -1, -6, -9, 10, -17, - ], - [ - -15, -2, -16, 13, 30, -28, 38, 61, - -50, 9, -12, -13, 5, 6, -9, 28, - -38, -16, -63, -31, -11, -27, 3, -12, - -24, -17, -20, -7, -6, -5, 13, 6, - 12, 14, 4, 5, 6, 9, -24, 1, - 24, 20, 6, 13, 4, 1, 1, 15, - 18, 3, 17, 4, -3, 4, 22, 7, - -8, 25, 11, 6, 11, -3, -37, 21, - ], - [ - 21, 1, -33, -6, 12, -11, 24, 3, - -45, 1, -11, 22, 2, 4, -4, 6, - -9, -17, -27, -58, -13, -9, -1, -20, - -2, -8, -20, -23, -17, -15, -1, -9, - 14, 5, 4, -2, 12, -20, -2, -1, - 2, 19, -0, 10, 12, -1, -0, -2, - 17, 16, 13, 12, 12, 18, 6, 41, - 20, 6, 8, 11, -2, 14, 2, 18, - ], - [ - -5, -16, 18, 26, 26, 8, 12, 18, - 2, 5, -13, 21, -1, 4, -2, 17, - 3, -3, -29, -42, -69, -13, 6, 5, - -4, -11, -12, -9, -22, -22, -2, 7, - 1, -18, 6, 0, -3, -7, -1, -4, - -1, 9, 12, 11, 14, -0, -2, -6, - 16, 9, 18, 10, 9, -9, 4, -4, - -14, -12, 9, 12, 5, -6, 22, 15, - ], - [ - 0, -3, -26, -3, 18, 10, -14, -34, - 2, 5, -2, -3, 1, -2, -13, 7, - 15, 2, -2, -58, -30, -25, -7, -3, - 13, 10, -16, -17, -18, -23, 5, -13, - 16, -11, 4, 0, 5, 4, 6, -10, - 1, -4, 6, 14, 10, 12, 12, 5, - 12, 3, 14, 8, 19, 6, 9, 16, - 10, 18, 20, 14, 8, 17, -32, 12, - ], - [ - 32, 20, -2, 21, 5, 3, -29, 20, - 30, 13, 8, -5, 6, -9, -16, -32, - 10, 3, 3, -13, -32, -22, -23, -19, - 2, 6, -5, -17, -8, -10, -1, -18, - 17, -19, -4, 2, -9, 4, -2, 15, - 3, -13, 10, -2, 16, 9, 11, 14, - -5, -4, -1, 3, 13, 2, -2, 3, - -1, -4, 10, 3, 4, 7, 3, -3, - ], - [ - 34, -8, 30, 6, 2, -5, 6, -7, - 10, 8, 1, 10, -2, 7, -22, -69, - 11, 15, 11, -10, -15, -61, -3, -16, - 3, 9, -2, 7, -17, -20, -11, -5, - 0, 8, 6, -3, -6, -2, 8, 2, - 10, 6, -3, 9, 3, 11, -2, 25, - 3, -5, 8, 3, 14, 6, 7, -10, - -19, -10, -6, 5, 9, 25, -3, 6, - ], - [ - -5, 31, 30, 22, -5, 9, -20, 46, - -3, 1, 11, 19, 7, 3, -29, -127, - 9, -14, -0, -5, 11, -2, -62, -64, - -9, 3, -2, 19, 13, 5, -1, 7, - 22, 0, 15, 21, 6, -4, -4, -2, - -21, 11, 7, 10, 7, 7, 14, -22, - -9, 3, 6, 4, 11, -10, 11, -3, - -1, -13, -11, 13, 19, 20, -8, 3, - ], - [ - -25, -24, -8, -4, 10, -10, -11, 35, - -39, -34, -53, -52, -10, 36, 33, 64, - -1, -56, -37, 11, 5, 31, 44, 9, - -12, -4, 0, -10, 10, 26, -48, 19, - -22, -31, -24, 4, 15, 60, 36, 12, - -8, 28, -17, 12, 15, -7, 3, 12, - 84, 25, 19, -4, -34, -5, -65, 5, - -4, 34, -34, 9, -1, -26, 46, -27, - ], - [ - -31, -16, -44, -17, 53, 43, -29, 22, - -17, -12, -51, 32, 17, 60, 26, 7, - 11, 1, 21, 10, 0, 6, 17, -9, - 31, 38, 45, 13, 19, -2, 34, 11, - 42, 65, -12, 52, -24, -11, -20, -79, - 29, 27, 34, 19, 4, -60, -23, -41, - 48, -26, -7, 18, -15, -10, 9, -115, - 20, 3, -9, 9, -36, -95, -24, -63, - ], - [ - -12, -17, -38, -35, 11, 9, 68, 60, - 10, 26, -22, 18, 10, -6, 14, 44, - 1, 23, 19, 14, 32, 2, 53, -16, - 33, 42, 17, 18, 4, 35, -9, 43, - 66, 27, 22, 3, -11, -41, 12, -46, - -58, 33, -9, -4, -38, 34, -6, -62, - -1, -6, -4, 24, -21, -73, -38, -65, - 23, -19, 9, -11, -40, -17, -54, -80, - ], - [ - 30, 43, -35, -18, 2, -11, 12, -38, - 36, -11, 7, 12, -15, 8, -11, 32, - 17, 38, -8, 30, 6, 5, -8, 26, - 5, 27, 31, 10, 40, -9, 17, 16, - 9, 8, 34, 45, 3, 9, 11, -29, - -21, -29, 17, -10, 13, -14, -2, -8, - 5, -62, -2, 4, 6, 18, -23, 22, - -33, -11, -5, -22, -26, -32, -38, -119, - ], - [ - 24, 10, 35, 21, -10, -3, 2, 21, - 11, -1, 18, 22, -18, -17, 4, 29, - -9, -21, 1, -5, 1, -2, -5, 11, - -20, 27, 13, 51, -3, 19, 26, 18, - 7, -4, 6, 7, 27, 22, 3, 5, - -9, 1, -35, 4, 18, 50, 11, -41, - 15, -23, -61, -4, -7, 4, -34, -16, - -55, -29, -10, -5, -30, -29, 26, -65, - ], - [ - -2, 31, 8, 23, -11, 52, -29, 27, - -0, 22, 53, 11, 1, -15, -16, 16, - 9, -9, 5, 34, 15, 10, 6, 26, - -0, 16, -6, 15, 17, 18, 44, -16, - -15, -11, -16, 4, -7, 45, 40, 4, - -66, -35, 22, -19, 17, -13, -5, 6, - -60, -13, -8, -35, -21, -45, 3, -19, - -24, -9, -8, -27, -1, -36, -1, -1, - ], - [ - 27, 6, 20, 17, 4, -3, 35, -8, - 8, 46, 19, 22, 29, -39, -11, 16, - 11, 22, 18, 10, 36, 10, -3, -5, - -57, -3, 4, 21, 1, 25, 24, 21, - -94, -12, 0, -24, -8, 4, 85, 7, - -16, -22, -7, 10, -40, 62, -34, -11, - 8, -28, -44, 3, -3, -4, 12, 6, - -54, 4, -24, 3, -47, -22, -28, -6, - ], - [ - 84, 42, 5, 2, -14, -5, 22, -70, - 33, 21, -14, 40, 12, -42, 3, -2, - -17, -59, 36, 27, 10, 2, -37, 10, - -27, -33, 22, -14, -37, 31, 16, -19, - -42, 73, -19, -28, 40, -18, 18, 67, - 39, -20, -11, -13, -24, 5, 59, 27, - 8, -55, -30, -61, -17, 4, -33, -45, - 49, 13, -45, -14, 16, 16, -2, 15, + -62, -9, 16, -17, 22, -10, 40, 19, + 83, -63, -20, -17, -33, 32, 42, 63, + -16, 6, 1, -19, 16, 2, 35, -9, + -14, -5, -31, 18, 11, -8, -3, 18, + 1, -12, -8, -12, 9, -7, -44, 27, + -1, -26, -19, -9, 15, -4, -9, 24, + 2, 9, -48, -6, 4, 5, 18, -25, + 69, -0, -32, -31, 16, 26, -4, -15, + ], + [ + 5, -70, -32, -1, 1, 58, 17, 18, + -39, -50, 13, 16, 16, -26, 62, 34, + -11, 28, 12, 184, -15, -5, -4, 38, + 23, -34, 2, -19, 42, -19, -5, -6, + -14, -0, -9, -4, 13, 26, -8, -8, + 12, -22, 2, -6, 11, -10, 9, -29, + -50, 1, -23, 18, -19, -3, -6, 8, + -27, -32, -3, -29, -7, -30, 4, 1, + ], + [ + -9, -30, -103, 23, 39, 9, -10, -32, + -65, -34, -103, -116, 6, 14, -3, -8, + 58, -25, 34, -28, 143, -23, 33, -3, + 4, 22, -24, 22, -18, 127, -22, 16, + -20, -15, 21, -12, 21, -6, 36, 13, + 1, 26, -1, 27, -6, 14, -2, 43, + -37, 5, 4, -12, 16, 2, 8, 17, + -34, -10, 9, -4, -18, 38, -31, 15, + ], + [ + -54, 5, 46, -30, -10, -3, -4, -46, + -15, -21, 50, -9, -26, -34, 10, 32, + 7, 66, -26, -41, -16, 42, 0, 29, + 47, -12, 11, -9, -2, -6, -30, -5, + 20, 6, -11, 2, -5, 5, -14, 94, + 4, -14, -4, -11, 10, -12, 8, 2, + -4, 22, 11, -8, -10, 42, -9, 21, + -26, -16, 14, -16, -15, -7, -43, 18, + ], + [ + 31, 1, 17, 29, -68, -43, -14, -10, + -15, 16, 1, -81, 18, -45, 6, -5, + 67, -18, 115, -22, -15, -1, 101, -18, + -4, 68, -8, 10, -11, 8, 0, 54, + 24, -13, 9, -11, 9, -8, -0, 11, + 22, -4, -14, -3, -10, 10, -7, -10, + 4, -5, -3, -12, -14, -11, 16, -20, + -24, -33, 0, -8, -1, 10, -32, -32, + ], + [ + 4, 4, -15, -9, -22, -66, -34, -20, + 20, -0, -9, -7, -80, -36, 12, -29, + 2, -2, -14, 68, -39, 8, 3, 179, + 15, -1, 70, -18, 7, 9, 25, -3, + -2, 76, -14, 3, -6, 12, -15, 5, + 25, -4, -5, -15, 3, -24, 8, -26, + -21, 5, -11, 3, -7, 8, -13, 6, + -4, -4, 9, -8, -15, 13, -6, 5, + ], + [ + 31, 17, 44, 25, 18, -46, -145, 8, + 15, 14, -9, 40, -18, -30, -34, -110, + 25, 5, -4, -9, 111, 12, 19, 15, + -4, 5, -1, 40, -2, 6, -5, 3, + -8, -1, 28, 3, -1, -3, -5, -24, + -8, 26, 7, 5, 13, 2, -3, -0, + 12, -11, -5, -3, 2, 1, 5, -24, + -24, -11, -5, 2, 4, 19, -12, -18, + ], + [ + 11, 31, -24, 20, -5, -13, 47, -70, + -14, 14, 10, 8, -42, -4, -89, -9, + 2, 0, 3, -1, -0, 189, 12, 29, + 9, -15, -0, 15, 14, -19, 5, -4, + -4, -9, 16, 8, -0, -7, -27, 27, + -1, 0, 2, -4, 8, -18, 4, -2, + 9, -10, -8, -5, -8, -1, 2, -30, + 4, -12, -20, -1, -8, -9, 11, -15, + ], + [ + -31, -1, -18, 11, 29, -19, 34, 56, + -50, 2, -11, -13, 5, 9, -2, 28, + -34, -16, -58, -29, -10, -26, 5, -11, + -22, -16, -19, -8, -7, -5, 12, 8, + 9, 15, 3, 5, 6, 9, -23, 1, + 24, 20, 6, 12, 4, 3, -0, 16, + 20, 3, 16, 3, -4, 3, 20, 9, + -8, 26, 11, 6, 10, -5, -35, 22, + ], + [ + 18, 1, -29, -9, 13, -3, 24, 5, + -43, 2, -11, 19, 2, 5, -0, 5, + -7, -16, -28, -55, -13, -9, 0, -19, + -0, -10, -19, -24, -19, -16, -1, -6, + 14, 4, 3, -4, 11, -21, -4, -2, + 3, 18, -1, 9, 12, -0, -1, -2, + 18, 16, 11, 11, 11, 16, 4, 41, + 19, 6, 8, 10, -2, 11, 4, 20, + ], + [ + -7, -16, 14, 21, 28, 9, 17, 19, + 3, 6, -9, 11, -3, 7, 3, 16, + 2, -3, -27, -42, -64, -12, 7, 6, + -4, -12, -12, -9, -23, -23, -3, 10, + 0, -18, 5, -1, -3, -8, -2, -4, + -2, 10, 11, 10, 14, 0, -3, -5, + 18, 9, 17, 9, 7, -10, 2, -3, + -14, -10, 10, 12, 4, -7, 23, 17, + ], + [ + 0, -3, -25, -4, 20, 15, -11, -33, + 3, 6, 2, -3, 1, -1, -8, 7, + 16, 2, -3, -57, -31, -26, -7, -2, + 13, 9, -17, -17, -20, -23, 3, -11, + 16, -12, 3, -1, 4, 2, 6, -10, + 0, -4, 5, 12, 8, 11, 11, 6, + 13, 4, 13, 7, 17, 5, 6, 17, + 11, 20, 20, 14, 6, 15, -32, 11, + ], + [ + 33, 21, -0, 21, 5, 4, -22, 23, + 30, 14, 11, -6, 4, -9, -12, -33, + 10, 3, 3, -12, -33, -23, -25, -18, + 1, 6, -6, -18, -10, -10, -2, -15, + 16, -19, -6, 1, -10, 3, -2, 14, + 4, -13, 8, -3, 15, 9, 11, 15, + -2, -5, -2, 2, 12, 1, -4, 3, + -1, -4, 11, 3, 2, 5, 4, -3, + ], + [ + 35, -7, 28, 4, 4, -3, 7, -7, + 9, 9, 4, 8, -3, 8, -18, -69, + 10, 16, 11, -10, -14, -61, -3, -12, + 2, 9, -1, 7, -18, -19, -11, -3, + -1, 7, 5, -3, -6, -3, 9, 2, + 10, 6, -4, 8, 3, 11, -3, 25, + 6, -5, 8, 1, 13, 4, 4, -10, + -18, -10, -5, 5, 8, 22, -4, 5, + ], + [ + -9, 33, 31, 22, -7, 10, -8, 46, + -3, 4, 14, 18, 4, 6, -28, -101, + 9, -15, -1, -4, 11, -3, -66, -63, + -10, 2, -3, 18, 12, 5, -2, 8, + 21, -1, 14, 19, 6, -5, -4, -1, + -22, 9, 4, 9, 6, 7, 12, -23, + -7, 2, 5, 2, 9, -12, 9, -3, + -2, -13, -12, 11, 18, 18, -6, 2, + ], + [ + -10, -22, -12, -14, 10, -12, -1, 22, + -23, -26, -39, -43, -14, 40, 37, 51, + -1, -57, -30, 12, 9, 30, 39, 7, + -19, -6, 2, -8, 8, 26, -48, 19, + -22, -30, -14, -1, 15, 61, 31, 21, + -7, 25, -15, 13, 17, -2, -1, 24, + 61, 18, 22, -4, -34, -10, -70, -1, + -13, 35, -33, 7, -0, -25, 41, -36, + ], + [ + -33, -18, -40, -9, 46, 25, -10, 13, + -21, -11, -25, 29, 21, 50, 37, 2, + -5, 1, 22, 11, 4, 12, 10, -18, + 34, 37, 36, 17, 21, 2, 25, 9, + 29, 60, -11, 52, -20, -1, -19, -66, + 30, 27, 20, 18, 5, -51, -16, -37, + 31, -19, -10, 14, -16, -22, 0, -105, + 11, -2, -4, -6, -10, -73, -12, -68, + ], + [ + 3, -26, -35, -22, 3, -1, 53, 64, + 10, 6, -17, 13, 16, 9, 11, 43, + 8, 24, 17, 7, 37, 3, 43, -12, + 19, 37, 15, 15, 7, 39, -12, 24, + 63, 15, 21, 1, -2, -39, 14, -35, + -56, 25, -8, 14, -31, 27, -4, -39, + -9, -10, -20, 20, -17, -57, -40, -69, + 16, -10, 3, -9, -32, -12, -47, -72, + ], + [ + 20, 34, -23, -12, 10, -3, 7, -28, + 26, -7, 12, 10, -7, 8, 5, 35, + 8, 26, -6, 20, 5, 5, -3, 25, + 11, 25, 28, 10, 38, -8, 24, 11, + -2, 12, 25, 30, -0, 8, 9, -8, + -15, -34, 13, -4, -5, -10, -6, -14, + -9, -56, -5, 8, 5, 13, -33, 26, + -28, -4, -1, -20, -22, -31, -53, -94, + ], + [ + 25, 2, 17, 17, 4, -8, -3, 15, + 8, 1, 15, 18, -17, -3, 4, 38, + -13, -11, -5, -2, 4, -4, 2, 15, + -18, 23, 13, 38, -6, 19, 25, 29, + 10, -7, 10, 5, 18, 21, 10, -5, + -11, 5, -33, -9, 15, 38, 1, -28, + 24, -28, -48, -6, 1, -1, -18, -25, + -59, -10, -18, 6, -30, -26, 12, -59, + ], + [ + 5, 37, 4, 10, -9, 46, -23, 22, + 17, 25, 42, 9, 2, -12, -17, 7, + 9, -5, 7, 33, 14, 13, -3, 24, + -1, 20, 1, 18, 8, 16, 36, -14, + -15, -5, -13, 4, -8, 33, 32, 5, + -58, -34, 24, -15, 4, -14, -8, -4, + -55, -20, -8, -18, -19, -31, 3, -5, + -18, -24, -3, -19, -4, -31, -15, -5, + ], + [ + 29, 16, 28, 12, 4, -15, 16, -14, + -17, 46, 23, 28, 23, -25, -22, 11, + 8, 20, 16, 10, 33, 7, 4, -15, + -49, -4, 0, 20, 2, 17, 23, 26, + -62, -18, 4, -23, -7, 3, 84, -8, + -22, -4, -9, 11, -37, 57, -27, -14, + -0, -37, -26, 1, 8, -6, 12, -1, + -45, -1, -22, 14, -36, -9, -31, -12, + ], + [ + 76, 39, 6, -1, -21, 9, 18, -75, + 24, 8, 9, 37, 17, -30, -4, 14, + -9, -41, 36, 17, 8, -10, -20, 13, + -12, -29, 22, -9, -26, 31, 24, -20, + -44, 49, -17, -25, 33, -7, 15, 61, + 31, -22, -3, -8, -22, 12, 51, 9, + -10, -42, -35, -47, -9, -7, -20, -62, + 22, 10, -42, -10, 13, 12, 6, 9, ], ]; internal static readonly short[][] MiddleGameEnemyRookTable = [ [ - 25, 17, 81, -5, 83, 93, 55, -106, - -26, 100, 105, 164, 42, 9, 60, 37, - -10, 58, 39, 63, 50, 35, 82, 20, - 55, 14, 31, 17, 20, -29, -33, -49, - -66, -22, -19, -53, -37, -46, 4, -25, - -57, -5, -54, -2, -63, -63, 17, -45, - -71, -5, 10, -24, -51, -59, -61, -59, - -11, -20, -21, -23, -36, -17, -61, -53, - ], - [ - -431, -70, -64, 102, 60, 34, 29, 65, - 194, -191, 74, 108, 70, 34, 20, 17, - 38, 51, 105, 92, 36, 21, 57, -17, - 31, 32, 12, -10, 29, -20, -2, -30, - -32, -3, -2, -24, -12, -23, 6, -43, - -14, -9, -0, -19, -24, -31, 8, -21, - -26, -0, 3, -21, -26, -29, -15, -59, - 8, 4, 5, -10, -15, 8, -35, -24, - ], - [ - 88, -87, -40, -112, 35, -30, 128, 98, - 49, 78, -153, 118, 49, -2, 8, 21, - 23, 59, 66, 73, 12, -0, 39, 2, - 6, 4, 39, 34, -14, -8, -12, -19, - -31, -3, -8, -5, -8, -23, -21, -47, - -44, -25, 16, -12, -34, -18, 16, -32, - -27, 11, -1, -7, -25, -30, -37, -70, - 1, -12, 17, -7, -17, -1, -40, -28, - ], - [ - 87, 212, -365, -30, 253, 32, 136, -77, - 67, 88, 54, 14, 126, 65, 88, 69, - 39, 101, 123, 41, 23, 64, 27, 14, - -81, 3, 1, 20, 7, -19, -47, -7, - -27, -54, -28, -64, 35, -9, -31, -12, - -65, -63, -10, -53, -58, -86, 32, -46, - -77, -82, -23, -23, -27, -50, -39, -55, - -4, -36, -15, -21, -26, -17, -52, -39, - ], - [ - 144, 95, 14, 111, -70, -252, 100, 49, - 71, 52, 78, 124, -158, 75, 48, 41, - 11, -23, 40, 48, 60, 50, 86, 31, - -4, -32, -17, -1, -3, -6, 49, -4, - -42, -72, -6, -16, 7, -24, -10, -22, - -49, -41, -23, -30, -30, -26, 31, -27, - -40, -40, -31, -27, -21, -32, -33, -40, - -21, -33, -25, -12, -7, -2, -35, -26, - ], - [ - 27, 20, 103, 105, 42, -52, -52, 227, - -4, 37, 43, 108, 55, 138, 101, 101, - -9, -27, -8, 28, 59, 174, 97, 41, - -37, -55, 11, -52, -21, 59, 30, 8, - -71, -92, -81, -71, -17, 11, -20, -27, - -48, -86, -21, -47, -30, -9, 39, -23, - -45, -59, -59, -39, -31, -50, -45, -67, - -43, -65, -50, -50, -31, -14, -32, -29, - ], - [ - 19, 53, 36, 40, 102, -624, -88, 182, - -5, -9, 16, 56, 32, 80, -32, 167, - -10, -7, 12, 20, 34, 68, 114, 63, - -18, -26, 9, -8, 5, 6, 40, 21, - -34, -22, -22, -26, -9, 0, 35, -2, - -20, -31, -22, -22, -23, -1, 59, 6, - -36, -25, -19, -12, -14, -14, 11, -25, - -1, -27, -21, -12, -16, 9, -6, -6, - ], - [ - 29, -13, 19, 16, 150, 146, -76, -74, - -13, 17, 22, 64, 50, 79, 132, -269, - -29, -26, -5, 40, 38, 85, 92, 21, - -32, -39, -11, 4, 10, 17, 44, 55, - -42, -26, -39, -45, 9, 18, 35, 3, - -35, -48, -32, -25, -37, 3, 43, 14, - -54, -43, -31, -25, -25, -22, 15, -3, - -17, -45, -34, -22, -23, 3, -2, -11, - ], - [ - 72, -153, 108, 87, 35, -62, 29, 21, - -30, 145, -39, 86, 59, 49, 69, 58, - 104, -35, 76, 86, 25, 58, 14, -19, - 65, 12, 101, -12, 30, -6, -41, -67, - -21, -19, 17, -16, -52, -5, 18, -37, - -28, -8, 24, -69, -76, -30, -10, -41, - -40, -30, -33, -60, -33, -37, -7, -71, - -7, -27, -9, -39, -29, -22, -73, -54, - ], - [ - 68, 46, -158, -19, 35, 69, -20, 15, - -1, 41, -14, -8, 70, 51, 111, 45, - 30, 19, 135, 92, 32, 37, 36, 44, - 2, -10, 32, 32, 29, 28, 37, 40, - -100, -25, 65, -48, -12, -0, -20, -36, - -24, -16, 24, -26, -28, -85, 11, -41, - -112, -12, -4, -8, -44, -36, -67, -57, - -31, -22, 8, -23, -35, -31, -44, -63, - ], - [ - 27, 50, 37, 168, 4, 97, 7, 27, - 11, 15, -8, 37, -6, 33, 42, 58, - 48, 33, 58, 53, 49, 37, 80, 21, - -49, -2, 57, 30, 28, -31, -13, -31, - -84, -84, -5, -19, 39, -17, -32, -31, - -55, -40, 16, -2, -8, -29, -14, -77, - -52, -23, -7, -7, -21, -15, -88, -81, - -19, -36, -5, -5, -8, -19, -67, -69, - ], - [ - 15, 67, 92, 18, -94, 27, 23, 85, - 55, 44, 59, 0, -37, 161, 4, 52, - 34, 49, 85, 35, 123, 103, 62, 2, - -47, -30, -9, 17, 17, 39, 23, -55, - -78, -99, -71, -40, 34, -2, -11, -66, - -74, -33, -3, 15, -12, -13, 2, -45, - -55, -36, -17, 20, -12, -30, -42, -67, - -27, -50, -39, -17, -16, -13, -58, -61, - ], - [ - 6, 18, 35, 0, 0, 4, -4, 46, - -3, 38, 48, 92, 63, 106, 67, -8, - 3, 40, 57, 70, 49, 95, 116, 73, - -22, -18, 5, 11, 19, 74, 24, -16, - -79, -87, -62, -37, 5, -2, 10, -29, - -36, -78, -32, -42, -26, -24, 58, -43, - -67, -48, -47, -27, -38, -10, -13, -54, - -37, -58, -48, -37, -19, -2, -44, -34, - ], - [ - 23, -11, 18, -3, 42, 40, 74, 134, - 22, 38, 45, 80, 32, 44, -19, 173, - -9, 14, 35, 31, 84, 105, -169, 61, - -29, -29, 16, 25, 14, 70, 7, 22, - -71, -73, -43, -37, -26, 15, -22, 6, - -49, -46, -38, -32, -23, -3, 25, 17, - -53, -60, -53, -33, -39, -23, -14, -36, - -29, -56, -45, -38, -34, -9, -33, -26, - ], - [ - -13, -47, 2, -35, 14, 31, 61, 104, - 1, -15, 34, 93, 73, 57, 129, 118, - -18, -32, 12, 31, 60, 111, 144, 88, - -60, -30, -4, -9, 10, 3, 60, 50, - -60, -55, -56, -42, -22, 0, 17, 9, - -49, -53, -40, -49, -34, -11, 25, -14, - -54, -52, -49, -33, -46, -24, -26, -41, - -30, -54, -49, -35, -41, -13, -21, -22, - ], - [ - -10, 30, 116, -16, -56, -121, -131, 113, - 35, 14, 80, 60, 32, -38, -88, 81, - 100, 127, 113, 17, 77, -133, 79, -82, - 17, 94, -13, 102, 27, -24, 305, -42, - 211, 90, 107, 19, -30, -73, -6, -286, - -55, 63, -10, -33, 60, 98, -171, -25, - -20, -66, 14, -35, 14, -45, -99, -42, - -38, 5, -15, -69, -60, -106, -119, -143, - ], - [ - -85, 46, 100, 35, -124, 90, 12, 37, - 20, 233, 74, -120, -79, 16, -127, -313, - -76, 24, 82, -179, -120, -210, -202, -150, - 78, 94, 3, -46, -35, 129, -60, 84, - -33, -98, -3, 91, -75, 27, 59, -170, - 28, 64, 20, 113, 288, 106, -62, 7, - -7, 257, 73, 40, 113, 71, -321, -13, - 50, 56, 69, 149, 64, 79, -111, -160, - ], - [ - -97, -159, -129, -127, -80, 65, -38, 17, - 15, 29, 13, -148, -9, -71, 34, -177, - -51, 146, 25, -17, -107, 28, -64, -121, - 102, 35, 46, -68, -45, -41, -83, -63, - 194, 89, -61, 249, 109, -163, 14, -44, - 10, -69, -16, -30, 141, 17, 25, -16, - -108, -127, 239, -52, 60, 116, -69, -118, - 83, 277, 133, 100, 81, 2, 112, -35, - ], - [ - -197, -118, 52, -94, -114, -77, -8, -35, - -116, -52, -3, -294, -111, -194, -132, 15, - 31, -72, -163, -130, -192, -139, -4, -87, - 102, 118, -43, -6, -128, -68, -131, 131, - 98, 51, 2, 30, 60, 75, -20, 34, - -35, 70, -76, 183, 101, 148, 44, -49, - 16, 72, -92, 60, -27, 106, 137, 193, - -34, 141, 162, 186, 175, 265, 160, 26, - ], - [ - -60, -168, -89, -93, 40, -59, 30, -111, - -122, -138, -59, -23, 103, -160, -53, -231, - -155, -280, -70, -95, 227, -9, 21, -53, - -53, -56, -71, 3, -4, 48, -46, -119, - 65, 163, 26, -106, -17, 220, 39, 183, - -178, 46, 132, 75, -1, -29, 33, 81, - -22, -48, 45, -7, -75, 353, 195, 142, - -23, -25, 12, 21, 313, 177, -8, 120, - ], - [ - 7, -77, -193, -177, 20, 36, -44, -15, - -106, 151, -182, -133, 22, -25, 5, -97, - -73, 132, -107, 126, -39, 204, -51, -38, - -231, -43, -139, 86, 73, 128, -45, 127, - -55, 105, 73, -31, 134, -94, 168, 37, - -41, 54, 37, 8, -75, 9, -136, 60, - 95, -194, 43, 106, 84, -195, 71, 165, - -176, -65, 16, -16, 147, 52, 108, 204, - ], - [ - 126, -135, -165, 85, -224, 4, 23, -86, - -87, -34, 14, -205, -115, -41, -83, -35, - -33, -26, -169, -139, -105, 77, 48, 81, - -68, -8, 19, -38, 98, 170, 38, 130, - -98, -10, 103, 128, 100, 10, 35, -7, - 30, -76, -103, -8, 25, 136, -20, -54, - 122, 34, -97, 84, 18, 82, 260, 180, - -12, -116, -77, 37, -49, 35, 102, 93, - ], - [ - 46, -30, -21, -152, -201, 170, -78, -207, - -19, -125, -70, -248, 132, 37, 133, -84, - -215, -13, 26, -174, 18, -113, 16, 87, - 84, 96, 48, -61, -18, 306, 103, 91, - 86, 147, 134, 112, 46, 81, 60, 48, - 88, 85, -136, 5, 9, -96, 87, 46, - -26, 132, 12, -74, 153, -25, -13, 14, - -152, -81, -124, -109, -120, -83, 53, 78, + -17, -8, 58, -10, 70, 85, 51, -110, + -72, 96, 100, 148, 36, 7, 48, 29, + -14, 56, 34, 54, 50, 34, 67, 21, + 59, 17, 29, 16, 16, -21, -30, -44, + -51, -10, -14, -38, -32, -44, 2, -13, + -46, 2, -50, 5, -50, -56, 11, -41, + -56, 6, 22, -16, -41, -50, -47, -43, + -11, -17, -19, -17, -27, -14, -54, -48, + ], + [ + -168, -91, -93, 89, 49, 30, 19, 54, + 197, -88, 61, 84, 57, 25, 5, 1, + 34, 45, 91, 77, 31, 13, 35, -21, + 28, 33, 2, -16, 23, -22, -10, -35, + -28, 3, -6, -19, -17, -29, -1, -41, + -13, -11, -5, -21, -21, -35, -10, -26, + -23, 2, 4, -22, -27, -30, -13, -51, + -2, -1, -2, -13, -17, 3, -38, -29, + ], + [ + 84, -72, -60, -85, 41, -18, 133, 93, + 49, 83, -98, 91, 37, -7, -4, 10, + 20, 53, 58, 64, 8, -6, 23, 3, + 5, 8, 32, 32, -16, -8, -17, -19, + -24, 6, -9, 4, -9, -27, -26, -41, + -40, -24, 14, -12, -28, -18, 3, -34, + -22, 16, 4, -5, -23, -27, -31, -59, + -6, -15, 14, -8, -15, -3, -39, -30, + ], + [ + 68, 155, -105, -28, 65, 51, 119, -79, + 65, 84, 45, 19, 113, 59, 75, 57, + 37, 100, 108, 22, 20, 60, 13, 18, + -81, 8, -3, 18, 4, -18, -50, -7, + -18, -44, -23, -53, 37, -11, -33, -8, + -61, -57, -9, -46, -49, -85, 18, -46, + -68, -73, -12, -18, -23, -46, -31, -43, + -8, -37, -17, -19, -22, -18, -50, -40, + ], + [ + 140, 89, 5, -14, -77, -119, 95, 41, + 71, 53, 72, 107, -89, 74, 35, 31, + 8, -25, 33, 37, 58, 46, 68, 33, + -3, -29, -22, -3, -6, -5, 47, -6, + -34, -63, -3, -5, 7, -27, -12, -17, + -47, -40, -25, -29, -24, -26, 19, -29, + -34, -34, -24, -24, -18, -27, -27, -29, + -27, -35, -27, -12, -5, -4, -33, -28, + ], + [ + 22, 15, 90, 105, -28, -55, -55, 211, + -3, 41, 41, 96, 52, 77, 91, 95, + -8, -26, -13, 22, 59, 173, 85, 45, + -32, -47, 9, -50, -18, 66, 32, 12, + -60, -81, -75, -56, -13, 13, -18, -17, + -40, -80, -18, -40, -20, -4, 30, -21, + -35, -48, -48, -32, -24, -42, -35, -51, + -45, -62, -48, -45, -25, -12, -25, -26, + ], + [ + 12, 47, 21, 41, 96, -515, -93, -8, + -3, -7, 13, 41, 25, 77, 13, 160, + -11, -9, 5, 12, 34, 66, 98, 64, + -16, -20, 6, -9, 5, 10, 39, 21, + -24, -12, -19, -14, -7, 0, 33, 6, + -15, -27, -21, -18, -15, 2, 49, 7, + -27, -16, -10, -6, -8, -8, 19, -11, + -4, -27, -21, -9, -11, 10, -2, -5, + ], + [ + 22, -18, 4, 18, 146, 145, -91, -88, + -13, 15, 15, 46, 40, 73, 118, -124, + -34, -29, -13, 29, 35, 80, 72, 22, + -32, -37, -18, 2, 7, 18, 40, 54, + -35, -18, -40, -38, 6, 15, 30, 9, + -33, -45, -34, -24, -31, 3, 31, 12, + -48, -38, -25, -23, -22, -18, 20, 9, + -24, -47, -38, -22, -21, 0, -1, -14, + ], + [ + 60, -74, 82, 81, 19, -62, 17, 14, + -33, 60, -41, 67, 51, 46, 58, 51, + 98, -4, 71, 78, 23, 53, -3, -20, + 63, 13, 94, -13, 29, -4, -44, -66, + -12, -7, 21, -3, -50, -6, 17, -32, + -22, -2, 26, -63, -67, -26, -19, -39, + -30, -21, -23, -53, -28, -29, 1, -57, + -9, -24, -7, -35, -23, -20, -68, -52, + ], + [ + 59, 32, -91, -24, 21, 61, -25, 10, + -1, 38, 8, -34, 62, 45, 99, 34, + 21, 16, 73, 84, 31, 33, 19, 42, + 3, -7, 27, 29, 27, 29, 32, 40, + -89, -14, 70, -36, -13, -0, -19, -27, + -19, -13, 24, -24, -19, -81, -1, -38, + -102, -2, 6, -1, -37, -28, -58, -42, + -33, -20, 9, -21, -31, -30, -40, -61, + ], + [ + 20, 38, 18, 120, -5, 95, 7, 20, + 13, 17, -4, 64, -6, 28, 33, 47, + 46, 30, 45, 74, 49, 36, 66, 25, + -48, 0, 51, 28, 27, -30, -14, -31, + -75, -75, -4, -8, 43, -19, -32, -22, + -52, -37, 14, 3, -1, -26, -25, -76, + -43, -19, 0, 0, -17, -10, -80, -68, + -25, -37, -6, -3, -5, -21, -65, -70, + ], + [ + 3, 62, 78, 19, -43, 26, 20, 76, + 57, 45, 55, -15, 14, 161, -6, 43, + 34, 49, 79, 27, 75, 107, 48, 1, + -46, -30, -15, 12, 13, 38, 19, -55, + -69, -90, -70, -32, 36, -4, -15, -62, + -71, -30, -4, 17, -6, -12, -9, -47, + -47, -30, -10, 24, -8, -26, -37, -57, + -34, -52, -41, -15, -13, -15, -56, -63, + ], + [ + -0, 13, 21, 1, -6, 4, 0, 41, + -0, 42, 48, 80, 55, 57, 57, -16, + 4, 39, 51, 65, 49, 53, 106, 76, + -20, -13, 1, 11, 17, 80, 25, -14, + -67, -77, -58, -25, 6, -0, 10, -21, + -30, -72, -31, -36, -16, -20, 49, -41, + -58, -39, -38, -20, -32, -3, -4, -39, + -40, -57, -47, -33, -13, -1, -39, -32, + ], + [ + 13, -19, -0, -6, 29, 41, 58, 126, + 23, 38, 42, 64, 24, 40, -52, 162, + -12, 12, 28, 22, 83, 101, -79, 65, + -29, -26, 10, 24, 11, 69, 3, 21, + -61, -63, -42, -28, -26, 13, -27, 12, + -44, -43, -39, -29, -15, -2, 14, 17, + -45, -52, -46, -29, -35, -18, -7, -23, + -34, -57, -46, -36, -30, -10, -30, -26, + ], + [ + -19, -51, -12, -34, 7, 36, 62, 87, + 5, -10, 33, 80, 69, 57, 124, 21, + -16, -30, 8, 26, 63, 113, 134, 16, + -55, -24, -5, -8, 12, 8, 61, 51, + -47, -42, -52, -29, -19, 1, 18, 22, + -41, -46, -37, -45, -22, -5, 18, -10, + -44, -42, -38, -26, -38, -16, -15, -24, + -30, -50, -46, -29, -33, -10, -14, -17, + ], + [ + -2, 26, 84, -9, -50, -85, -96, 79, + 19, 7, 74, 42, 22, -24, -79, 64, + 44, 87, 92, 6, 64, -126, 68, -80, + 24, 91, -6, 102, 20, -27, 229, -16, + 143, 104, 99, 16, -21, -56, 12, -218, + -38, 79, -6, -34, 65, 85, -131, -19, + -19, -48, 32, -34, 20, -35, -71, -16, + -44, -4, -12, -64, -62, -104, -110, -154, + ], + [ + -74, -3, 50, 18, -58, 29, -14, 10, + 7, 88, 85, -84, -39, 1, -71, -196, + -45, -22, 60, -138, -92, -147, -118, -82, + 59, 22, -11, -38, -24, 85, -64, 62, + -19, -44, 3, 43, -37, 31, 29, -83, + 36, 19, 1, 64, 159, 52, -36, 12, + 19, 73, 65, 31, 114, 57, -147, -2, + 84, 40, 65, 137, 68, 80, -42, -126, + ], + [ + -52, -106, -88, -117, -47, 23, -32, 5, + 18, 29, -10, -133, 4, -43, 25, -124, + -52, 146, -1, -28, -96, -5, -21, -82, + 86, 36, 18, -41, -40, -22, -65, -54, + 132, 27, -26, 136, 75, -89, 13, -24, + -20, -40, -9, -14, 99, 19, 32, -11, + -55, -72, 92, -42, 42, 68, -51, -75, + 102, 272, 46, 100, 69, 39, 61, -29, + ], + [ + -124, -63, 36, -56, -81, -52, -7, -28, + -97, -45, -10, -150, -93, -150, -105, 13, + 25, -46, -131, -60, -159, -104, 11, -56, + 88, 90, -42, -6, -72, -36, -107, 111, + 53, 17, 2, -2, 39, 42, -5, -15, + -30, 65, -43, 83, 88, 101, 48, -31, + 18, 19, -58, -13, -10, 44, 71, 52, + 9, 130, 165, 73, 188, 240, 148, 16, + ], + [ + -37, -105, -44, -59, 16, -52, 15, -29, + -101, -99, -44, -31, 40, -141, -51, -173, + -112, -191, -21, -67, 89, 12, 29, -50, + -54, -19, -21, 26, -21, 68, -38, -101, + 46, 98, 4, -43, -6, 86, 20, 83, + -132, 31, 70, 72, -6, 0, 8, 51, + -12, -2, 29, 23, -42, 262, 129, 83, + -15, 4, 43, 50, 162, 175, -15, 107, + ], + [ + -10, -47, -120, -102, 3, 7, -18, 14, + -98, 127, -124, -85, 11, -24, 22, -103, + -55, 95, -83, 96, -28, 93, -39, -25, + -186, -21, -114, 84, 56, 27, -15, 110, + -54, 75, 37, -27, 73, -49, 59, 6, + -27, 34, 29, 4, -49, 5, -102, 44, + 51, -126, 6, 95, 57, -78, 47, 84, + -122, -44, 20, 14, 171, 34, 101, 183, + ], + [ + 55, -88, -72, 41, -122, -8, 10, -58, + -87, -36, 4, -151, -72, -16, -74, -34, + -37, -27, -114, -84, -74, 81, 20, 63, + -47, 8, 25, -62, 85, 123, 21, 79, + -64, -3, 60, 81, 52, 8, 25, -1, + 28, -39, -84, -7, 45, 94, -3, -24, + 66, 33, -68, 55, 24, 67, 87, 94, + 16, -88, -65, 74, -4, 45, 45, 96, + ], + [ + 28, -27, -18, -63, -80, 103, -44, -109, + -26, -93, -39, -146, 64, 18, 101, -34, + -130, 11, 18, -102, 14, -97, 9, 34, + 37, 56, 40, -35, -12, 207, 80, 28, + 49, 69, 91, 63, 24, 61, 30, 24, + 52, 34, -71, 6, -6, -58, 72, 22, + -0, 83, 2, -58, 116, 1, 7, -6, + -131, -53, -67, -96, -67, -63, 42, 36, ], ]; internal static readonly short[][] EndGameEnemyRookTable = [ [ - 184, -12, -22, 21, -2, 17, 12, 34, - -208, 9, -43, -60, -13, 13, -11, 6, - 24, -7, -2, -11, -13, -5, -18, -11, - -95, 5, -13, -21, 3, 20, 20, 5, - 42, 24, -6, 35, 45, 23, 7, 18, - -26, -22, 17, -25, 22, 27, -10, 19, - -9, 8, -27, 2, 29, 3, -32, -3, - 1, -4, -2, -7, 16, 16, 8, 3, - ], - [ - -340, -212, -101, 41, 42, 102, 59, 84, - -42, 198, 8, -25, -3, 28, 21, 21, - -22, 11, -34, -22, 8, 19, -3, 27, - -27, -5, -0, 25, 2, 23, 26, 39, - 1, -14, -5, 20, 24, 33, 30, 20, - -40, -3, -11, 8, 20, 27, -18, -1, - -29, -3, -12, 15, 16, 16, -7, 29, - -21, -25, -29, -1, 7, 7, 1, -3, - ], - [ - -30, -85, -256, -321, 33, 118, 59, 76, - 30, 23, -97, -11, 43, 53, 50, 35, - 4, -9, -11, 2, 11, 36, 26, 19, - -13, 12, -12, 15, 24, 33, 15, 43, - -11, -19, 15, 6, 29, 34, -3, 45, - 8, -3, -17, -8, 18, 8, 6, 17, - -22, -48, -13, -9, 4, 30, 34, 32, - -14, -9, -28, -12, 5, 14, 0, -7, - ], - [ - -2, 28, -251, -139, -139, 130, 3, 127, - 22, -6, 17, 145, -16, 6, 8, 27, - 14, -12, -35, -9, 7, -26, 27, 2, - 34, -26, -3, 7, -3, 3, 13, -2, - -21, 10, -3, 55, -11, -10, 30, -32, - -1, 12, 7, 10, 11, 42, -2, 49, - -1, 36, -29, 13, -6, -16, -17, -21, - -19, 8, -15, 13, 3, -9, -9, -26, - ], - [ - 19, 39, 65, -121, -181, -229, 32, 153, - 21, 21, 1, -12, 239, 22, 24, 34, - 38, 20, -3, -14, -15, -7, -18, 11, - 4, 30, 23, -12, 14, -0, -8, -8, - 34, 27, -7, -3, -36, 3, 10, -5, - 13, 19, -9, -13, -4, -9, -22, 4, - -8, 8, 2, -7, -31, -2, 1, -16, - -6, 2, -6, -24, -7, -22, -26, -37, - ], - [ - 87, 91, 85, 26, 2, -170, -170, -128, - 37, 19, 19, -12, -10, -51, 18, -1, - 38, 35, 41, -7, -27, -60, -7, 2, - 42, 42, 8, 21, -2, -32, -16, 7, - 21, 40, 41, 28, -5, -17, 13, 14, - 8, 21, 14, 8, -13, -16, -36, -33, - 5, 7, 26, 9, 3, -12, 0, -0, - 1, 6, 7, 9, -14, -4, -18, -42, - ], - [ - 140, 117, 156, 104, 81, -940, -279, 56, - 46, 47, 54, 24, 30, 36, 57, -16, - 26, 31, 31, 29, -1, -16, -12, -14, - 29, 37, 28, 34, 18, 1, -24, -14, - 31, 31, 33, 32, 13, -1, -24, -26, - 21, 16, 28, 15, 12, -19, -38, -50, - 13, 14, 25, 24, 7, 3, -34, -23, - 11, 10, 18, 10, 9, 1, -27, -34, - ], - [ - 102, 149, 148, 106, 53, 110, -167, -204, - 26, 14, 35, 3, 14, -5, 10, 165, - 33, 30, 39, -1, -12, -29, -8, -27, - 3, 2, 23, 4, 10, -3, -36, -71, - -5, 2, 19, 13, -14, -14, -49, -40, - -1, -17, -3, -5, -6, -29, -44, -73, - -8, 13, -6, 1, -5, -1, -44, -45, - -15, -10, -4, -11, -2, -14, -44, -55, - ], - [ - -14, 54, -2, -22, -7, 64, 13, -5, - 11, -32, 16, -32, -16, -10, -19, -28, - -34, 90, -27, -16, 5, 5, 2, 15, - -32, -29, -26, 6, -6, 15, 28, 32, - -5, 0, -15, -19, 26, 16, -10, 14, - -7, -25, -20, -12, 20, -2, 11, 11, - -15, -7, 1, 24, 10, 13, 4, 3, - -9, -8, -11, 7, 6, 10, -1, -9, - ], - [ - -8, -6, 62, 36, 5, 23, 31, -1, - -10, -17, 20, -4, -14, -5, -29, -14, - -5, 0, -3, -33, -0, 2, -7, -18, - 10, 3, -35, 7, -8, -1, 1, -6, - 22, 1, -28, 15, 13, -2, 15, 16, - -5, -10, -28, -1, 3, 29, -6, 2, - 18, -22, -25, -15, 15, -9, 18, 4, - 5, 4, -27, -2, 11, 19, -11, 4, - ], - [ - 4, -0, 12, -29, 14, 5, 35, 10, - -5, -21, 4, 69, 6, -8, -9, -20, - -12, -3, -7, 92, -2, -4, -19, -11, - 18, 0, -10, -28, -0, 16, 3, 15, - 15, 20, 2, -10, -14, 15, 12, 8, - -3, 3, -23, -26, -11, 3, -8, 14, - -12, -17, -10, -23, -13, -15, 22, 14, - -8, -8, -18, -12, -12, 6, -1, -3, - ], - [ - 14, -2, -7, 14, 50, 43, 29, -8, - -9, -15, -11, -14, 13, -37, -18, -23, - 5, -5, -12, -1, 27, -25, -13, 3, - 28, 23, 17, -3, 3, -15, -3, 24, - 23, 37, 33, 11, -24, -2, -2, 22, - 8, 1, -11, -16, -14, -11, -1, 2, - 5, -11, -11, -31, -21, -17, -8, 5, - 1, -3, -1, -12, -10, -4, -8, -2, - ], - [ - -2, 12, 14, 18, 13, 42, 35, 1, - 4, -9, -4, -25, -21, -37, -23, -10, - 15, 2, -7, -19, -3, 65, -33, -21, - 13, 13, 10, 4, -1, -28, -3, 12, - 26, 26, 24, 15, -4, -10, -3, -5, - 0, 17, 5, 8, 1, -18, -30, -11, - 2, -5, 9, 3, 3, -23, -16, -3, - 2, 3, 4, 0, -7, -10, -11, -19, - ], - [ - -16, 8, 15, 14, -4, 41, 9, -31, - -5, -8, -9, -20, -3, -13, -15, -59, - 5, 4, 2, -5, -15, -13, 94, -23, - 19, 20, 12, 1, -1, -12, -35, -3, - 25, 29, 28, 18, 9, -10, -7, -13, - 9, 10, 16, 6, -7, -8, -23, -38, - 10, 16, 23, 11, 5, -2, -23, -12, - 2, 10, 9, 5, -2, -3, -16, -29, - ], - [ - -4, 22, 27, 36, 10, 36, 17, -35, - 4, 2, 1, -26, -12, -27, -19, -46, - 3, 6, 3, -8, -20, -36, -47, 157, - 21, 10, 16, 13, 5, -7, -7, -54, - 9, 19, 26, 18, -2, -2, -1, -29, - 1, 2, 6, 9, 1, -13, -4, -40, - 11, 4, 12, 9, 9, -8, -1, -21, - -7, -5, 10, 1, 6, -1, -12, -48, - ], - [ - 41, 0, -14, 24, 29, 93, 40, -41, - -9, -2, -21, -20, -21, 27, 35, -12, - -45, -14, -31, 0, -24, 35, -13, 20, - 48, -17, -18, -33, -0, 27, -57, 21, - -68, -11, -55, -14, 16, 2, -11, 70, - 24, -16, 13, -10, -52, -36, 27, 8, - -38, 17, 5, 11, -30, 5, -2, 9, - -34, -9, -8, 31, 30, 28, 11, 43, - ], - [ - 21, -6, -2, 14, 64, 9, -5, -25, - -2, -77, -2, 19, 23, 6, 46, 55, - 24, -25, -31, 36, 48, 55, 63, 13, - -14, -49, 10, 6, 18, -20, -6, -32, - 32, 0, 26, -17, 36, 11, -26, 45, - -16, 53, 41, -43, -71, -47, 18, 16, - -18, -88, -23, -21, -41, -13, 106, 8, - -49, -68, -27, -39, -29, -29, 2, 34, - ], - [ - 44, 39, 65, 46, 20, 27, 24, -18, - -4, -19, 38, 41, 1, 7, 7, 46, - 20, -54, 2, -2, 24, -28, -7, 26, - -18, 9, 40, 18, 25, 8, 45, 23, - -35, -26, -23, -57, -10, 48, -24, 2, - 12, -4, -30, 3, -21, -7, 26, -8, - 48, 21, -118, 10, -4, -19, 34, 10, - -31, -103, -98, -37, -19, 20, -34, -21, - ], - [ - 48, 24, -9, 75, 37, 57, 27, 21, - 18, 4, -2, 72, 22, 44, 25, -12, - -18, 17, 35, 14, 53, 33, -13, -6, - -21, -21, 12, 40, 24, 19, 34, -43, - -20, -12, -3, -36, 11, 7, 8, -41, - 27, -9, 10, 285, -32, -30, -2, 20, - 1, -16, 9, -81, -13, -54, -55, -71, - 3, -61, -71, -103, -62, -91, -57, -70, - ], - [ - 9, 36, 32, 29, 16, 53, 7, 22, - 15, 27, -1, -0, -18, 44, 4, 50, - 50, 70, 3, 5, -45, 3, -7, -4, - 24, 15, 28, -5, -22, 11, 18, 31, - -37, -49, -22, 33, 34, -29, -15, -50, - 59, 3, -23, -19, 77, 1, -0, -9, - 16, 30, -0, -16, 3, -106, -68, -38, - 13, -15, -6, -23, -120, -38, -45, -41, - ], - [ - -24, 20, 53, 68, -2, 42, 38, 0, - 3, -57, 57, 37, -13, 8, 9, 33, - 10, -42, 25, -53, 11, -35, 11, 19, - 53, 24, 34, -16, -33, -36, 32, -28, - 16, -30, -18, -18, -40, -47, -35, -31, - 1, 7, -13, -3, 33, 198, 43, 1, - -33, 49, -26, -28, -19, 62, 11, -54, - 34, -9, -25, -19, -44, -61, -53, -95, - ], - [ - -49, 11, 58, -6, 71, 30, 16, 37, - 15, -11, -15, 68, 14, 11, 16, 12, - 4, -7, 34, 41, 39, -27, -23, -24, - 23, -3, 3, 11, -20, -44, -2, -16, - 12, 4, -38, -28, -29, 20, 97, -8, - 3, 63, 45, 2, -12, -59, -80, -10, - -28, 4, 44, -16, -4, -26, -135, -51, - 1, 36, 6, -18, -0, 6, -44, -28, - ], - [ - -20, -3, -4, 46, 38, -28, 55, 49, - -6, 25, 7, 67, -45, -17, -13, 35, - 39, -11, 5, 42, -30, 3, 3, -19, - -27, -33, -39, 13, -13, -106, -6, -33, - -16, -35, -32, -41, -24, -18, -30, 121, - -40, -14, 3, -5, 6, 20, -16, 216, - -9, -23, -4, 34, -68, 18, -1, -81, - 3, 27, 44, 16, 61, 40, -14, -112, + 49, -5, -19, 21, 5, 11, 12, 40, + -135, 12, -40, -53, -5, 15, -6, 10, + 28, -2, 1, -6, -8, -4, -12, -6, + -94, 5, -11, -18, 7, 17, 19, 4, + 39, 21, -7, 32, 44, 23, 9, 17, + -28, -21, 16, -24, 17, 26, -10, 23, + -11, 6, -28, 1, 27, -1, -37, -5, + 4, -2, -0, -6, 15, 16, 6, 4, + ], + [ + -182, -154, -125, 37, 39, 84, 53, 81, + -48, 87, 9, -18, 2, 27, 23, 23, + -23, 8, -31, -19, 7, 18, 1, 27, + -28, -9, 1, 22, 0, 19, 24, 37, + -1, -18, -7, 14, 23, 30, 28, 18, + -42, -4, -13, 8, 16, 27, -16, -0, + -32, -5, -14, 13, 13, 14, -12, 25, + -18, -24, -26, -1, 6, 7, -0, -3, + ], + [ + -40, -141, -194, -217, 23, 93, 45, 74, + 27, 19, -154, -3, 48, 52, 51, 38, + 3, -6, -9, 3, 14, 37, 28, 19, + -12, 9, -9, 14, 21, 32, 16, 41, + -11, -23, 16, 1, 28, 33, -2, 42, + 7, -4, -18, -6, 15, 8, 8, 20, + -22, -48, -14, -9, 3, 27, 31, 29, + -9, -6, -25, -10, 5, 15, -1, -4, + ], + [ + -2, 53, -125, -99, -99, 94, 6, 123, + 18, -6, 18, 31, -12, 5, 9, 29, + 12, -13, -31, -2, 4, -26, 27, 3, + 33, -29, -5, 5, -3, 2, 12, -3, + -22, 6, -5, 50, -16, -12, 26, -32, + -3, 3, 3, 7, 6, 38, -3, 46, + -5, 29, -33, 6, -7, -18, -18, -24, + -17, 9, -14, 11, 0, -9, -11, -24, + ], + [ + 15, 37, 55, -123, -144, -157, 30, 153, + 21, 24, 5, -4, -0, 20, 30, 39, + 40, 25, 1, -8, -12, -4, -11, 14, + 5, 30, 26, -8, 16, 3, -8, -5, + 31, 27, -7, -5, -34, 5, 12, -1, + 16, 19, -8, -9, -3, -6, -18, 10, + -6, 8, 2, -6, -29, -1, 2, -13, + 1, 6, -1, -21, -5, -18, -23, -32, + ], + [ + 85, 90, 81, 23, -106, -155, -155, -113, + 36, 20, 21, -6, -3, -34, 23, 3, + 38, 38, 45, -2, -24, -56, -0, 5, + 41, 40, 9, 22, -2, -31, -15, 7, + 19, 39, 40, 25, -5, -17, 14, 13, + 7, 20, 13, 10, -14, -14, -34, -28, + 3, 6, 24, 9, 2, -13, -2, -4, + 6, 9, 10, 11, -12, -1, -19, -40, + ], + [ + 138, 117, 152, 99, 83, -650, -273, -149, + 43, 47, 54, 29, 35, 34, 22, -15, + 25, 32, 33, 32, 0, -15, -7, -13, + 28, 34, 28, 33, 17, -1, -25, -14, + 27, 27, 30, 27, 10, -3, -24, -27, + 19, 14, 25, 16, 8, -20, -38, -48, + 9, 11, 22, 22, 5, 0, -37, -26, + 12, 11, 19, 10, 8, 2, -29, -35, + ], + [ + 99, 143, 144, 96, 56, 101, -173, -182, + 26, 17, 40, 12, 24, -1, 15, 28, + 36, 32, 42, 5, -8, -24, -1, -22, + 4, 2, 27, 6, 13, -1, -33, -68, + -4, 2, 21, 12, -13, -13, -44, -39, + -2, -17, -1, -1, -5, -26, -40, -66, + -8, 12, -5, 2, -5, -1, -43, -48, + -9, -6, 1, -7, 1, -10, -42, -52, + ], + [ + -12, 29, 1, -23, 0, 55, 18, 3, + 11, -4, 18, -23, -9, -8, -15, -24, + -31, 11, -26, -12, 8, 8, 8, 18, + -31, -26, -23, 7, -5, 16, 30, 32, + -7, 0, -17, -22, 26, 17, -8, 15, + -8, -26, -20, -10, 19, -1, 13, 13, + -16, -8, -1, 23, 9, 11, 1, -0, + -7, -6, -8, 8, 6, 11, -1, -8, + ], + [ + -7, -3, 36, 34, 12, 16, 33, 6, + -10, -14, 14, 6, -7, -2, -25, -8, + -1, 3, -29, -28, 2, 5, -1, -14, + 10, 2, -36, 7, -7, -0, 3, -5, + 19, -2, -31, 11, 13, -3, 15, 15, + -6, -10, -29, 2, 2, 30, -4, 4, + 15, -25, -27, -16, 12, -10, 16, -0, + 8, 6, -25, 0, 12, 20, -11, 4, + ], + [ + 4, 4, 12, -16, 20, -4, 36, 19, + -6, -19, 5, 61, 11, -6, -5, -14, + -11, -0, -3, 32, -1, -2, -15, -9, + 18, -0, -9, -26, -0, 17, 4, 16, + 13, 18, 1, -14, -15, 15, 11, 8, + -3, 2, -23, -25, -12, 5, -8, 16, + -14, -17, -11, -25, -14, -15, 19, 12, + -4, -5, -15, -10, -10, 9, -1, -1, + ], + [ + 16, 1, -8, 14, 36, 35, 32, 1, + -9, -12, -8, -6, -1, -36, -14, -18, + 6, -2, -8, 3, -35, -27, -8, 8, + 29, 24, 20, -1, 5, -14, -1, 24, + 21, 36, 33, 9, -26, -1, -1, 23, + 8, 1, -10, -12, -14, -8, 0, 6, + 4, -12, -11, -31, -21, -18, -9, 4, + 6, 1, 3, -9, -9, -1, -8, 1, + ], + [ + -1, 14, 12, 15, 17, 31, 34, 8, + 2, -8, -3, -20, -15, -22, -20, -6, + 15, 3, -5, -17, -3, 70, -32, -19, + 13, 11, 11, 4, -2, -32, -4, 11, + 22, 24, 21, 11, -5, -11, -4, -6, + -2, 15, 4, 9, -1, -19, -30, -9, + -0, -7, 6, 1, 1, -26, -18, -6, + 4, 5, 6, 1, -7, -10, -12, -19, + ], + [ + -15, 10, 15, 12, 2, 31, 14, -22, + -6, -5, -6, -12, 5, -11, -6, -54, + 6, 6, 5, -1, -12, -14, 31, -22, + 19, 19, 14, 2, 0, -12, -35, -3, + 23, 26, 27, 15, 8, -10, -6, -13, + 9, 10, 16, 9, -9, -6, -22, -35, + 9, 14, 21, 10, 4, -4, -24, -15, + 6, 12, 11, 6, -1, -1, -16, -28, + ], + [ + -2, 24, 27, 35, 15, 27, 19, -19, + 3, 4, 4, -18, -4, -25, -16, -10, + 5, 9, 6, -5, -18, -35, -44, 52, + 21, 10, 18, 14, 6, -7, -7, -52, + 6, 18, 27, 15, -2, -0, 0, -30, + -0, 2, 6, 13, -0, -12, -2, -37, + 9, 3, 11, 8, 9, -9, -2, -23, + -4, -3, 12, 2, 7, -0, -12, -48, + ], + [ + 38, 0, -12, 21, 27, 74, 27, -25, + -4, 1, -17, -13, -13, 22, 32, -5, + -30, -1, -23, 4, -18, 33, -9, 22, + 43, -19, -20, -33, -1, 27, -35, 14, + -41, -14, -53, -13, 13, -3, -18, 50, + 16, -21, 9, -5, -52, -29, 12, 9, + -38, 11, -4, 8, -32, 3, -11, 0, + -33, -4, -9, 28, 31, 27, 8, 47, + ], + [ + 17, 10, 5, 17, 51, 13, 0, -12, + 0, -35, -2, 12, 18, 10, 33, 30, + 19, -11, -25, 25, 42, 37, 42, 0, + -6, -26, 14, 4, 18, -8, -7, -26, + 28, -19, 25, -4, 25, 11, -19, 23, + -17, 45, 46, -29, -38, -32, 7, 24, + -25, -43, -20, -19, -42, -9, 60, 5, + -62, -64, -26, -36, -31, -32, -16, 24, + ], + [ + 31, 26, 51, 41, 11, 27, 25, -10, + -5, -18, 46, 39, 4, 0, 10, 34, + 20, -54, 9, 1, 20, -20, -18, 18, + -14, 8, 50, 9, 22, 2, 39, 19, + -20, -13, -21, -29, -1, 26, -26, -1, + 20, -11, -3, 1, -10, -5, 23, -6, + 35, 4, -81, 6, 1, -3, 26, -6, + -42, -105, -79, -40, -17, 5, -20, -28, + ], + [ + 31, 12, -8, 65, 33, 42, 28, 27, + 14, 5, 3, 38, 24, 32, 20, -8, + -15, 15, 29, -2, 48, 27, -14, -12, + -17, -11, 13, 53, 10, 14, 29, -38, + -8, -2, -1, -6, 17, 19, 7, -28, + 27, -3, 2, 172, -28, -13, -1, 19, + 1, -2, 2, -63, -18, -36, -35, -34, + -9, -57, -72, -67, -65, -83, -52, -69, + ], + [ + -1, 19, 17, 18, 29, 42, 9, 6, + 8, 19, -4, 4, 3, 39, 2, 37, + 40, 49, -10, -0, -2, -2, -8, -3, + 23, 5, 15, -12, -19, 7, 15, 25, + -34, -34, -18, 20, 53, 4, -12, -20, + 48, 7, -10, -17, 51, -5, 6, 4, + 13, 18, 2, -24, -9, -83, -49, -25, + 7, -22, -17, -33, -69, -39, -46, -38, + ], + [ + -21, 12, 30, 46, 7, 43, 34, 2, + 0, -47, 44, 26, -4, 7, 6, 38, + 7, -29, 21, -39, 12, -2, 10, 21, + 42, 19, 27, -14, -28, -9, 26, -21, + 15, -20, -8, -15, -22, -43, -7, -22, + -1, 14, -9, 1, 25, 113, 32, 8, + -23, 33, -17, -26, -10, 23, 20, -32, + 20, -15, -25, -28, -50, -57, -54, -88, + ], + [ + -35, -3, 30, -0, 46, 23, 20, 36, + 11, -11, -13, 56, 6, 4, 14, 12, + 5, -7, 19, 29, 33, -29, -13, -18, + 16, -7, 1, 16, -18, -35, 6, -5, + 1, 0, -29, -16, -21, 18, 92, -11, + 3, 51, 38, 4, -16, -46, -9, -18, + -17, 4, 34, -9, -7, -23, -88, -33, + -9, 25, -0, -31, -18, 1, -30, -31, + ], + [ + -10, -2, -7, 23, 12, -18, 50, 34, + -0, 21, -0, 43, -18, -10, -2, 28, + 20, -12, 15, 25, -23, 2, 8, 0, + -9, -18, -33, 13, -12, -79, 3, -17, + -4, -8, -18, -27, -13, -7, -17, 62, + -29, 1, -12, 2, 13, 14, -10, 82, + -9, -7, -0, 31, -50, 13, -4, -74, + 4, 22, 31, 16, 45, 37, -6, -101, ], ]; internal static readonly short[][] MiddleGameEnemyQueenTable = [ [ - -40, -80, 156, 52, -59, -103, -150, 8, - 158, 41, 46, 15, 36, 2, -36, -62, - 92, 164, 169, -27, -23, 0, -53, -19, - 55, 41, -25, 48, -65, -60, -6, -8, - 3, 16, 2, -4, 36, -11, -46, -55, - 18, -20, 19, 29, -19, -34, 1, -45, - -48, 17, 3, -22, -11, 19, 6, -9, - -12, -79, -50, -9, 10, 32, 27, -30, - ], - [ - -206, -195, -60, 90, -6, 11, 27, -3, - 198, 28, 125, -1, -61, -29, -71, -92, - 61, 82, 102, 10, -32, -70, -18, 4, - 2, 47, 18, 2, -49, -26, -10, -26, - -13, 14, 0, 23, 7, 7, -36, -5, - -9, 10, 3, 3, -3, -5, 13, 3, - 24, 14, 20, -1, 9, 37, 14, -15, - 1, -9, -10, 10, 14, 32, -12, 6, - ], - [ - 187, 150, -190, -146, -166, 51, -41, -137, - 50, 44, 272, 184, -29, -17, -55, -67, - 38, 96, 128, -2, 61, -43, -22, -30, - 5, 2, 32, -22, -45, -45, -44, -13, - 3, 9, -17, 18, -7, 8, -41, -29, - -21, -1, -2, -4, -22, -19, -2, -6, - 32, 0, 1, -18, 2, 18, -6, -34, - -1, -32, -15, -3, 5, 20, -13, -7, - ], - [ - 34, 116, -236, -161, 46, 166, -3, 74, - 23, 10, -99, -179, -210, 50, 57, -72, - 44, 15, 76, 204, 51, 105, -10, 25, - -5, 5, 50, 13, -30, 35, -20, -3, - 4, -46, 13, 14, 22, 11, 12, -31, - 7, 19, -39, -5, -33, -15, -24, 5, - 10, -26, -9, -12, -11, 18, -20, -13, - 15, 5, -43, 2, -5, 16, -11, -4, - ], - [ - -7, -23, 126, -169, -169, -169, 105, 54, - -26, -23, 20, 64, -169, -270, 46, -3, - 11, 32, 39, 23, 82, 26, 110, 32, - 2, 9, 26, 11, 3, 6, 19, 12, - -1, -6, -9, 24, 18, 18, -17, -1, - -10, 2, -15, 10, -4, -8, 14, 17, - -7, -10, 8, 12, 23, 31, -13, 19, - -20, 0, -5, 20, 32, 27, 7, 10, - ], - [ - 90, -78, -13, -4, -105, -156, -34, 128, - -55, -42, 12, -26, 69, 126, -35, 71, - -27, -53, 1, 37, 55, 145, 117, 121, - -14, -4, -26, 25, 7, 2, 61, 22, - -28, 14, -34, 46, -18, -21, -13, 23, - -51, -33, -20, -5, -26, -9, 14, 40, - -45, -23, -14, -11, -12, 13, 10, -54, - -28, -29, -29, -2, -13, -27, -37, 4, - ], - [ - -132, -81, -80, -67, 24, 184, -127, 325, - -85, -88, -103, -97, -64, 330, 205, 36, - -34, -29, -31, -46, 24, 55, 59, 71, - -43, -25, -17, -14, -29, -10, 7, -7, - -33, -14, -22, 17, -15, 7, -14, 9, - -32, -16, -15, -8, -20, -17, 15, 22, - -10, -24, -7, -3, -5, 12, 16, 44, - -6, -13, -16, 6, 5, 16, -15, 25, - ], - [ - -116, -82, -85, -67, 18, 107, -121, -121, - -79, -55, -84, -59, 2, 38, 118, 201, - -31, 3, -15, -24, -6, 41, 92, 75, - -40, -22, 19, 5, -10, 27, 12, 26, - -20, -20, -10, 39, 13, 40, 2, 41, - -17, -13, -5, 9, -1, -6, 33, 52, - -11, -23, -6, 2, 4, 21, 31, 54, - -6, -16, -13, 12, 13, 5, -1, 28, - ], - [ - 125, -28, 231, 167, 107, -0, -29, -110, - 217, 189, 211, -83, -15, 13, -21, -83, - -134, -190, 183, 60, -40, -102, -21, -74, - 45, -4, 63, 11, -19, -29, -90, -57, - -12, 93, 9, -28, -16, -34, -35, -54, - 25, 11, -34, -3, -33, -66, -22, -81, - 53, -94, 8, -29, -18, -7, -6, -59, - -15, 22, -36, -22, 9, 6, -14, -16, - ], - [ - 84, 180, 269, 286, -55, 37, 15, -6, - 48, 664, -26, -46, 33, -5, -20, -116, - 124, 73, 53, 46, -23, -86, -45, -81, - 56, -36, 13, 14, 40, -54, -74, -75, - -24, 117, -54, 66, -28, -7, -102, -52, - -69, -42, -17, -20, -69, -55, -35, -80, - -35, -39, -80, -60, -59, -16, -30, -126, - 7, -68, -68, -44, -32, -26, -59, -80, - ], - [ - -3, 7, 131, 163, 408, 79, 66, 25, - -74, -43, 260, 118, 319, -39, -60, -77, - 7, 91, 148, -7, 86, -16, 1, -29, - -12, -20, 20, 64, -61, 6, 24, -63, - -57, -1, 19, 12, -18, -86, -60, -48, - -36, -56, -47, -20, -71, -55, -69, -59, - -77, -74, -47, -70, -22, -38, -76, -199, - 7, -41, -40, -27, -49, -47, -4, -66, - ], - [ - -69, -35, 205, 169, -112, 266, 140, 52, - -15, -98, -23, 370, 88, 110, 51, -63, - 6, 26, 33, -50, 122, 190, 69, 68, - 10, -42, 15, -4, 95, -46, 37, -36, - -103, 6, -53, 32, -10, -7, -79, -23, - -36, -70, -61, -48, -68, -48, -22, -17, - -20, -100, -59, -43, -25, -9, -58, -61, - -21, -97, -77, -59, -92, -128, -24, -45, - ], - [ - -55, -52, 32, -3, 235, 250, 190, 138, - -75, -37, -73, -26, 411, 285, 256, 19, - -55, -76, 13, 1, -12, 0, 57, 117, - -78, -41, -43, 24, -16, 42, 58, 47, - -86, -76, -47, 15, 1, -11, -14, -46, - -86, -50, -51, -42, -46, -50, -43, -56, - -14, -70, -47, -49, -41, -43, -38, -36, - -82, -78, -87, -26, -67, -61, -66, -45, - ], - [ - -34, -68, -77, -1, -18, 158, 161, 183, - -41, -72, -95, -73, 20, 317, 126, 437, - -46, -39, -47, -28, 35, 49, -23, -205, - -33, -36, -16, 5, 56, 84, 6, 40, - -54, -36, -55, 33, -8, 4, 14, 20, - -49, -50, -19, -20, -25, -22, 23, 12, - -61, -22, -32, -14, -26, -6, -34, -33, - -5, -32, -29, -14, -15, -46, -46, -78, - ], - [ - -83, -129, -79, -60, 21, 31, 93, -87, - -69, -92, -65, -50, -16, 44, 200, 181, - -49, -28, -45, -56, 20, 128, 125, 217, - -63, -0, -6, -6, -2, 113, 77, 17, - -41, -17, -24, 17, 10, 9, -10, 19, - -43, -22, -24, 4, -15, -5, -8, 44, - -23, -44, -15, -8, -2, 5, 26, 13, - -48, -20, -31, 9, -24, 2, -22, 5, - ], - [ - 6, 30, -39, -99, -83, -306, 85, -194, - 26, 5, 102, 43, 68, -128, 29, -58, - -107, 257, 282, 139, 0, -165, -50, -38, - 91, -1, 282, 173, 195, -22, -0, -132, - 115, 18, 537, 34, -118, -101, 110, -111, - -159, 15, 21, -17, 34, 135, 78, -102, - 131, -47, -51, -168, -211, -143, -168, -19, - -131, 341, -39, -95, -153, -130, 30, -23, - ], - [ - -1, 124, 38, 54, -149, -332, -47, -303, - 276, -213, -83, -26, 98, -235, -157, -58, - 173, -53, -73, 25, 127, 18, -347, -11, - 210, -81, -15, 36, 106, 4, -140, 94, - 313, 5, -56, -13, 50, 124, -12, 11, - 97, -47, 54, -112, 61, -25, -36, 23, - 16, 41, 79, 210, 305, 17, -27, 36, - 58, -29, 67, -3, -107, -50, -108, 0, - ], - [ - -365, 58, 20, 140, -129, -267, -338, -279, - 64, 70, -114, 309, -2, -125, -105, -188, - 152, -54, 26, 195, 23, -31, -89, 67, - 2, 87, -137, -60, 111, 61, -24, -101, - 127, 70, -19, -98, 158, 107, 55, 77, - 105, 73, 12, -0, 139, 92, -246, -313, - 80, 150, -44, 77, 26, -49, -71, -90, - 273, 219, 10, 10, 79, -38, 115, -64, - ], - [ - -34, 26, -209, -109, -104, -141, -266, -239, - -289, 108, -18, -138, 42, 21, -60, 128, - 85, 30, -56, 47, 72, -24, 60, -64, - -30, 72, 240, -32, 106, 41, -84, -94, - -52, 141, 70, -88, -45, 123, 11, -193, - -57, 255, -94, -100, -11, 185, 118, 61, - 4, 229, 232, 83, 1, -80, 158, 14, - -177, -72, 175, -55, 113, 2, 42, -80, - ], - [ - -83, -254, -25, 139, -77, -12, 111, -210, - -136, -143, -55, -6, 13, 25, 141, 51, - -139, -259, -99, -11, 24, -55, -327, -16, - -164, -79, -133, 134, 32, -44, 74, 216, - -49, 13, 17, -12, 38, -98, 73, 74, - 82, -70, 212, 32, -47, 84, 286, 190, - 69, 3, 113, -11, -48, -219, 191, 68, - 12, -39, 166, 175, -33, 72, 66, -41, - ], - [ - -189, -287, 16, -100, 68, -222, -161, -159, - -12, -1, -116, 129, 148, -127, 103, 87, - -87, 43, -91, -92, 147, -120, 350, -79, - -43, 71, 134, 248, -136, -82, -80, 223, - -41, 14, -205, 65, -2, -50, 17, -178, - -22, 24, 290, 176, -58, 31, -15, 159, - 30, 59, 40, 105, 111, 65, 97, 109, - -52, -156, -6, -40, 82, -49, -138, -47, - ], - [ - -204, -170, -161, -79, -93, -11, 108, 71, - -197, -132, 62, 84, -142, 24, -124, 263, - -251, -5, -24, 10, -188, 266, -92, 337, - 54, 42, -17, -65, 87, -76, -45, 94, - 17, -58, 53, -131, 81, -38, 59, 87, - -67, -176, -29, 202, 186, -104, 5, -43, - -50, -130, 262, 54, 119, 227, 30, 30, - -55, -7, -30, 153, -15, -94, -72, 110, - ], - [ - -42, -120, -139, 71, 36, -220, -12, -117, - 131, -120, 73, -62, -293, 52, 34, -62, - -59, -4, 5, -80, -45, 165, -49, -85, - -129, 22, -36, -101, 269, 228, 70, 112, - -33, -174, -81, -217, -50, 167, 19, 85, - -136, -175, -121, 217, 55, 158, 12, 4, - -166, 62, -93, 71, 30, 174, 77, 4, - 14, -36, 166, 33, 96, 57, 228, 61, + -66, -76, 126, 50, -48, -103, -135, -10, + 30, -36, 65, 40, 41, -7, -30, -45, + 97, 156, 143, -13, -14, 4, -56, -28, + 58, 38, -32, 46, -54, -54, -6, 2, + 15, 16, 4, -15, 42, -14, -32, -50, + 33, -13, 26, 30, -8, -24, 1, -48, + -37, 26, 15, -10, -2, 18, 12, -2, + -12, -60, -33, 0, 13, 29, 27, -32, + ], + [ + -192, -185, -148, 97, 23, 5, 30, -10, + 77, -124, 83, 27, -50, -33, -64, -76, + 64, 81, 101, 43, -22, -62, -19, -4, + 12, 53, 18, 4, -38, -21, -10, -13, + -1, 21, 8, 16, 15, 7, -19, -4, + 5, 20, 12, 8, 11, 6, 12, 1, + 28, 25, 34, 13, 20, 37, 21, -8, + 2, -0, 6, 20, 18, 30, -10, 3, + ], + [ + 198, -86, -206, -198, -71, 58, -18, -122, + 77, -73, -52, -81, -12, -14, -40, -42, + 54, 105, 151, 26, 90, -25, -13, -30, + 22, 17, 43, -9, -24, -30, -33, 10, + 24, 25, -0, 21, 12, 18, -14, -18, + 3, 17, 17, 10, 2, 2, 8, 0, + 45, 21, 25, 5, 22, 27, 11, -19, + 10, -15, 11, 16, 18, 27, -2, -2, + ], + [ + 28, 120, -172, -137, -75, 146, -2, 54, + 35, 31, -120, -143, -162, 38, 57, -64, + 40, 28, 67, 203, 55, 114, -17, 11, + -5, 4, 40, 10, -24, 33, -23, 4, + 11, -45, 16, -0, 26, 6, 24, -34, + 13, 21, -38, -7, -26, -11, -30, -3, + 6, -22, -4, -4, -7, 11, -18, -11, + 9, 5, -33, 5, -7, 7, -17, -13, + ], + [ + -11, 17, 113, -195, -195, -195, 94, 38, + -12, 3, 41, -114, -196, -235, 49, 9, + 10, 27, 38, 40, 94, 32, 108, 21, + 7, 12, 23, 10, 13, 9, 18, 24, + 8, -3, -3, 15, 26, 17, -1, -1, + 1, 8, -9, 13, 7, 1, 12, 11, + -7, -1, 19, 23, 32, 29, -8, 25, + -21, 5, 9, 27, 33, 23, 6, 5, + ], + [ + 92, -39, 12, 31, -158, -173, -126, 120, + -35, -12, 36, 6, -82, -59, -141, 89, + -26, -51, 1, 64, 67, 160, 120, 117, + -6, 1, -24, 29, 21, 9, 66, 36, + -16, 22, -27, 38, -7, -17, 7, 28, + -35, -22, -10, 1, -11, 4, 16, 39, + -39, -9, 1, 5, 1, 14, 18, -39, + -24, -20, -11, 10, -8, -26, -33, 4, + ], + [ + -129, -50, -68, -42, 38, -82, -177, 12, + -62, -53, -74, -61, -48, 270, -48, 117, + -25, -24, -25, -20, 44, 73, 66, 72, + -28, -13, -12, -5, -11, 2, 17, 14, + -14, -2, -7, 16, 2, 16, 13, 18, + -11, 0, 1, 5, 1, 2, 23, 27, + -0, -6, 13, 18, 14, 19, 31, 59, + 2, 1, 8, 23, 16, 21, -6, 30, + ], + [ + -119, -39, -67, -23, 35, 94, -160, -160, + -67, -30, -64, -34, 7, 31, -97, 136, + -33, -2, -19, -8, 3, 56, 90, 67, + -35, -19, 14, 4, -1, 30, 12, 38, + -12, -17, -6, 28, 18, 40, 19, 42, + -5, -7, 0, 12, 10, 3, 32, 48, + -9, -14, 5, 13, 13, 18, 36, 57, + -7, -12, 2, 19, 14, -0, -2, 26, + ], + [ + 85, 8, 148, 152, 96, -15, -36, -120, + 126, 80, 158, -46, 0, 11, -11, -62, + -126, -144, 51, 77, -32, -88, -20, -80, + 54, 4, 59, 15, -8, -21, -86, -39, + 1, 103, 16, -31, -4, -28, -14, -48, + 40, 21, -23, 4, -18, -51, -20, -77, + 58, -79, 24, -13, -4, -4, 5, -45, + -9, 30, -15, -8, 17, 8, -9, -16, + ], + [ + 88, 113, 147, 195, -40, 27, 15, -12, + 78, 321, -1, 4, 51, 2, -3, -87, + 133, -93, -90, -105, -1, -64, -35, -74, + 87, -20, 30, 28, 61, -37, -58, -45, + 1, 129, -29, 65, -6, 5, -68, -37, + -39, -20, 4, -3, -43, -31, -20, -67, + -14, -12, -53, -33, -35, -3, -10, -84, + 21, -44, -36, -21, -12, -14, -40, -66, + ], + [ + 7, 42, 83, 84, 270, 80, 70, 23, + -42, 3, 126, 6, 132, -26, -37, -43, + 23, 106, -62, -154, -71, 9, 17, -19, + 10, 1, 33, 87, -34, 23, 38, -32, + -30, 19, 44, 21, 5, -69, -25, -30, + -3, -33, -23, 0, -42, -28, -52, -44, + -53, -45, -18, -42, 6, -21, -50, -156, + 25, -19, -7, 0, -30, -31, 19, -41, + ], + [ + -67, -4, 210, 143, -22, 198, 144, 47, + 11, -58, 13, 151, 75, 97, 68, -35, + 18, 33, 43, -148, -123, -107, 79, 74, + 25, -28, 27, 8, 117, -29, 50, -12, + -82, 23, -34, 31, 10, 7, -51, -9, + -15, -50, -42, -33, -44, -28, -11, -9, + -9, -81, -36, -20, -4, 1, -41, -43, + -9, -81, -50, -39, -78, -123, -12, -36, + ], + [ + -49, -19, 35, 15, 217, 192, 176, 138, + -49, 3, -39, 14, 167, 185, 183, 47, + -43, -71, 21, 31, -113, -142, -102, 120, + -61, -29, -35, 34, 4, 56, 71, 73, + -66, -61, -30, 18, 20, 0, 17, -34, + -63, -33, -33, -27, -23, -29, -33, -48, + -2, -49, -24, -26, -21, -33, -19, -22, + -72, -60, -63, -6, -52, -54, -63, -38, + ], + [ + -40, -50, -81, 2, -18, 133, 135, 158, + -24, -44, -71, -47, 29, 215, 104, 346, + -48, -40, -50, -10, 45, 66, -90, -174, + -27, -34, -20, 5, 64, 86, 7, 52, + -44, -31, -49, 24, -0, 4, 32, 21, + -36, -43, -12, -16, -12, -13, 21, 7, + -60, -13, -20, -3, -16, -8, -29, -29, + -7, -27, -14, -6, -13, -50, -51, -84, + ], + [ + -91, -110, -82, -56, 22, 11, 91, 3, + -54, -65, -46, -24, -6, 39, 178, 122, + -50, -33, -48, -40, 30, 137, 78, -26, + -57, 3, -9, -6, 5, 117, 76, 26, + -32, -12, -19, 6, 18, 9, 8, 20, + -32, -15, -16, 8, -3, 5, -9, 39, + -22, -34, -4, 3, 7, 3, 33, 16, + -49, -15, -16, 17, -20, -0, -27, -1, + ], + [ + -16, 8, 23, -42, -51, -168, 23, -131, + 7, -5, 111, 49, 66, -106, 35, -38, + -52, 113, 202, 107, 14, -125, -41, -53, + 29, 1, 199, 119, 165, -24, -11, -111, + 118, 16, 294, 18, -97, -68, 61, -72, + -81, 14, 38, -31, 36, 119, 60, -76, + 87, -22, -40, -124, -153, -124, -105, -31, + -60, 173, -9, -66, -102, -74, 22, -20, + ], + [ + 4, 77, 20, 30, -96, -167, -44, -167, + 144, -98, -48, -2, 48, -93, -51, -50, + 95, 0, -4, 3, 47, -11, -186, -29, + 69, -40, 6, 18, 52, -24, -78, 31, + 131, 33, -14, -12, 17, 40, 5, 10, + 62, -18, 60, -35, 56, 9, 17, -12, + 6, 12, 72, 91, 135, 4, -14, 0, + 16, -2, 22, -8, -33, -63, -60, 17, + ], + [ + -152, -11, 25, 74, -67, -122, -151, -139, + -1, 26, -30, 133, -9, -77, -38, -93, + 80, -40, 17, 97, 13, -20, -41, 5, + 0, 29, -35, -28, 36, 23, -19, -60, + 50, 20, 8, -36, 80, 45, 19, 29, + 22, 21, -4, 25, 85, 42, -74, -120, + 23, 94, 25, 35, 28, -35, -29, -35, + 129, 59, 10, 4, 9, -8, 53, 3, + ], + [ + -26, -10, -91, -45, -61, -64, -119, -120, + -127, 26, 6, -55, 7, 18, -32, 49, + 38, -11, 6, 35, 16, -4, 52, -42, + -23, 39, 92, -26, 32, 5, -54, -46, + -4, 60, 30, -9, -15, 40, -6, -74, + -37, 107, -32, -9, 4, 88, 27, 56, + -14, 69, 149, 58, 30, -21, 44, 5, + -66, -35, 78, -8, 54, -8, 36, -62, + ], + [ + -49, -112, -12, 34, -31, -21, 28, -98, + -57, -73, -20, -2, 12, 31, 96, 3, + -72, -96, -48, 2, 19, -22, -123, -4, + -87, -55, -60, 48, 43, -9, 39, 77, + -25, 8, 23, 15, 37, -39, 59, 38, + 17, -44, 86, 33, -28, 51, 128, 92, + 13, -18, 52, 13, 11, -80, 78, 19, + -26, -50, 43, 69, 12, 29, 16, -18, + ], + [ + -109, -153, 3, -40, 45, -85, -83, -100, + -57, -29, -61, 35, 94, -31, 28, 43, + -53, 6, -43, -43, 68, -74, 158, 1, + -20, 45, 37, 88, -58, -28, -30, 81, + -33, -0, -80, 29, 4, -15, 11, -52, + -23, 13, 138, 50, -28, 6, 6, 108, + 3, 37, -8, 60, 97, 47, 66, 71, + -35, -77, 23, 4, 28, 0, -52, -36, + ], + [ + -122, -117, -96, -45, -55, -7, 46, 18, + -99, -26, -0, 36, -58, 17, -64, 147, + -98, -40, -18, 4, -58, 120, -9, 192, + 8, 14, -9, -38, 35, -37, -32, 47, + -16, -77, 20, -34, 42, -5, 31, 46, + -20, -43, -4, 81, 86, -49, -9, -26, + -4, -44, 104, 12, 44, 102, 14, -3, + -5, 21, -19, 91, 23, -14, -31, 33, + ], + [ + -39, -91, -97, 21, 2, -99, -13, -71, + 8, -26, 33, -65, -132, 15, 9, -1, + -16, -3, -7, -57, -20, 92, -34, -30, + -63, 0, -31, -57, 113, 100, 23, 49, + -11, -53, -38, -98, -3, 66, 40, 21, + -66, -60, -70, 97, 53, 112, 9, -11, + -71, 52, -49, 69, 32, 96, 47, -10, + 9, -7, 69, 28, 84, 33, 88, 27, ], ]; internal static readonly short[][] EndGameEnemyQueenTable = [ [ - -180, -220, -23, 102, 97, 116, 181, 36, - -155, -94, 24, 68, 27, 16, 35, 29, - -4, 46, 1, 94, 31, -32, 3, -23, - 15, 86, 119, 23, 56, 68, -29, -12, - 48, 21, 22, 46, -9, 12, -11, -5, - -41, 42, -32, -31, 38, 28, -22, 20, - 67, -56, -56, -6, -11, -41, -98, -77, - -22, 90, -99, -34, -36, -81, -78, -90, - ], - [ - -403, -398, -260, 63, 92, 29, 40, 84, - -265, -265, -96, 127, 199, 86, 130, 121, - 92, 75, 60, 116, 87, 86, 20, -16, - 137, 22, 94, 81, 56, 36, 20, -7, - 78, -6, 18, 14, 58, 29, 21, 1, - 67, 2, 9, 20, 6, 25, -33, -29, - -39, -46, -48, -32, 2, -45, -41, 6, - 77, -59, -65, -24, -35, -73, -33, -63, - ], - [ - -162, -306, -465, -442, 181, 33, 166, 283, - 115, -447, -327, -430, 141, 99, 72, 42, - 143, 104, 185, 150, 78, 47, 29, 64, - 64, 133, 15, 206, 98, 146, 73, -17, - 17, 38, 76, 30, 69, 26, 57, 13, - 16, -1, -7, 17, 36, 37, -13, -0, - -46, -61, -24, -16, -13, -25, -17, -8, - -49, -9, -48, -28, -57, -31, -10, -37, - ], - [ - 80, -18, -286, -239, -83, 114, 110, 68, - 64, 95, -208, -246, -256, 78, 53, 119, - 25, 200, 48, -28, 117, 122, 39, 24, - 43, 53, 75, 54, 144, -12, 42, 54, - 15, 150, 12, -28, 49, 8, -60, 64, - 35, -21, 47, -20, 63, -54, 84, -64, - -63, -23, -11, 28, -3, -90, -16, -3, - -77, -89, 14, -45, -71, -107, -115, -51, - ], - [ - 153, 236, -60, -373, -373, -373, 125, 79, - 86, 138, 99, -265, -373, -395, 92, 99, - 71, 24, 113, 139, 124, 89, 43, 62, - 4, 54, 50, 110, 133, 118, 76, 66, - 38, 80, 106, -0, 6, 32, 45, 39, - 57, 56, 1, -12, -10, 6, 21, 14, - 25, 8, -54, -36, -48, -44, 17, -61, - -9, -31, -60, -20, -125, -44, -101, -63, - ], - [ - 1, 109, 73, 105, -260, -310, -258, 27, - 54, 51, 83, 144, -188, -117, -224, 64, - 60, 70, 11, 73, 49, 39, 22, -29, - 35, -2, 129, 59, 110, 42, 82, 24, - -13, 14, 43, 27, 49, 41, 35, 38, - 20, 29, 54, 15, 32, -16, -14, -39, - -40, -3, -12, -15, -19, -78, -50, 178, - -37, -40, -17, -19, -80, -69, -31, -112, - ], - [ - 230, 144, 164, 143, 61, -404, -585, -444, - 81, 117, 142, 166, 167, -248, -387, -146, - 51, 55, 65, 79, 92, 67, 72, 55, - 46, 39, 28, 55, 73, 66, 41, 70, - 17, 21, 35, 39, 58, 23, 22, 9, - 11, 26, 28, 29, 41, 20, -5, -4, - 6, -3, -3, -7, -5, -33, -49, -83, - -49, -39, -33, -3, -37, -57, -49, -82, - ], - [ - 155, 105, 140, 178, 65, -29, -380, -380, - 67, 56, 112, 118, 113, 116, -182, -424, - 28, -7, 34, 73, 50, 184, 57, -3, - 35, 48, -6, 26, 50, 32, 135, 19, - -30, 43, 3, 12, 40, 16, 13, -13, - -10, 8, 17, 11, 23, 16, -21, -61, - 28, -18, -24, -16, -8, -22, -55, -132, - -22, -42, -53, -29, -47, -43, -36, -132, - ], - [ - 4, 24, -23, -48, -4, 52, 46, 45, - -76, 68, -57, 135, 35, 1, 3, 26, - -219, -297, 17, 34, 43, -1, -47, -19, - 53, 110, 41, 44, 29, -9, 46, -3, - 81, -63, 20, 25, 40, 27, 34, -34, - 6, -44, 38, -24, 30, 54, -47, 103, - -5, 47, -36, -27, 21, 28, 9, 12, - -54, -148, -38, -34, -78, 0, -43, 50, - ], - [ - 19, -70, -125, -44, 110, 14, -2, -48, - 32, -318, 37, 122, 13, 30, -12, 37, - -31, -130, -22, -79, 9, 18, -18, -20, - 70, 54, 86, 4, 26, 22, 34, -39, - 46, -55, 67, -37, 24, 51, 18, -25, - 71, 54, -32, 15, 41, -2, -33, 45, - -10, 4, 17, 30, 30, -6, -54, 98, - -80, -28, 10, 10, -54, -56, 20, 41, - ], - [ - 53, 88, -3, 4, -159, 23, 22, -16, - 73, 77, -35, -168, -84, 76, 84, 25, - 2, -31, 31, -116, -58, -13, -2, -31, - 16, 53, 10, -0, 39, 42, -12, 33, - 41, 2, -4, 22, -7, 45, 63, 15, - -28, 19, 14, -1, 48, 6, 26, 4, - 5, 31, 10, 48, -11, 7, -10, 128, - -95, -70, -137, 34, -108, -31, -128, 43, - ], - [ - 25, 65, -54, 10, 167, -46, -40, -6, - -4, 89, 51, -121, 69, -0, 20, 52, - -60, 15, -6, -229, 2, 64, 7, -38, - -12, 36, 23, -14, -23, 57, 76, 14, - 43, -5, 7, -10, 14, 21, 82, 50, - -35, 25, 30, 12, 18, 19, -52, -9, - -63, -6, -29, -5, -47, 8, -29, 5, - -71, 9, -19, -7, -44, 40, -83, -58, - ], - [ - 49, 45, 44, 85, -78, -4, -6, -41, - 22, 34, 71, 65, -212, -105, -74, 55, - -5, 59, -2, 28, -149, -83, -111, 22, - 28, 1, 33, 53, 25, -3, 1, 89, - 35, 42, 27, 3, 1, 5, 28, 50, - 13, 2, 28, 15, 30, -8, 56, 100, - -53, -17, -8, -4, -8, -33, 5, -38, - -33, -27, -7, -8, -20, -41, -32, -42, - ], - [ - 4, 41, 74, 46, 51, -7, -12, -5, - -14, 35, 63, 82, 41, -97, -8, -209, - -1, 23, 8, 19, 53, 27, 40, -183, - -9, -5, 8, -0, 32, -34, 48, 30, - -2, 16, 38, 2, 25, 16, -28, 31, - -5, 23, 9, 15, 38, 15, -45, 5, - 10, -15, -8, -8, -1, -18, -2, 24, - -89, -51, -45, -22, -41, -17, -43, 32, - ], - [ - 40, 20, 67, 34, 21, 50, 54, 157, - -0, 30, 27, 45, 51, 14, -57, -10, - -3, -26, 4, 16, 9, 1, 153, -43, - -15, -43, -21, 15, 36, 45, 10, 28, - -40, -15, 4, 5, 26, 28, 35, -50, - -50, -4, 10, 3, 13, 14, 21, -48, - -13, -22, -1, -25, -39, -29, -41, -85, - -51, -66, -33, -45, -30, -62, -31, -89, - ], - [ - -54, 22, 118, 93, 59, 137, -143, 47, - -76, -4, 13, 42, -32, 83, -57, -1, - -9, -164, -98, -94, 6, -7, -27, -70, - 20, 30, -125, -31, -166, -38, -64, -58, - 99, 51, -230, 38, 65, 31, -82, 41, - 128, 24, 60, 31, -22, -96, -20, 36, - -40, -26, 85, 81, 139, 24, 94, -109, - 77, -134, 82, 82, 125, 80, 37, -101, - ], - [ - 5, 66, -12, 37, -16, 123, -49, 36, - -93, 63, 47, 10, -53, 113, 64, -86, - -43, 68, 63, -43, -63, -78, 91, -72, - -120, -41, 37, -43, -49, -42, -7, -23, - -100, 110, 52, 36, -29, -51, 37, -29, - 77, 32, 135, 40, 30, 64, 66, -127, - -2, 72, 23, -74, -101, -17, -23, -80, - -22, 39, -34, -34, 78, -126, -51, 115, - ], - [ - 166, -88, 67, -111, 39, 139, 113, 76, - -86, 4, 84, -150, -10, 10, 21, 43, - -23, 12, -36, -101, -21, -78, -52, -110, - 31, -69, 130, 21, -95, -42, -18, -1, - -58, 7, 52, 40, -24, 2, -28, -70, - -132, -36, 100, 62, -75, -40, 170, 69, - -8, 71, 224, -41, 26, 16, 6, 25, - -103, -115, 8, -1, -68, 9, -32, 79, - ], - [ - -16, 4, 44, 57, 31, 12, 76, 72, - 75, -102, -47, 41, -48, -18, -20, -98, - -6, -54, 19, 22, -40, -98, -27, -23, - 8, 24, -155, -41, -111, -28, 39, -30, - 38, -70, 19, 122, 6, -90, -44, 110, - 34, -96, 14, 249, 16, -120, -81, 34, - -34, -138, 99, 98, 88, 81, -98, -2, - 117, 41, -27, 94, -13, 16, 33, -59, - ], - [ - -40, 107, 40, -154, 3, -24, -92, 62, - 6, 18, 6, 62, -3, 14, -84, -74, - 25, 115, 6, -4, -12, -16, 81, -15, - -5, -10, 48, -66, 65, 55, -60, -159, - 20, 27, 68, 76, 83, 4, 82, -2, - -92, 27, -116, 4, 38, 42, -143, -47, - -85, -45, 34, 23, 175, 71, -53, -32, - -42, -75, -107, -39, 190, 36, -31, 14, - ], - [ - 16, 81, -25, 86, 29, 108, 76, 21, - -135, -67, -0, -32, -35, 107, -68, -53, - -32, -49, -21, 17, -95, 22, -204, 119, - 7, 19, -67, -150, 25, 24, 20, -147, - -83, -38, 75, -21, -13, 84, -1, 127, - -55, -6, -120, -101, -40, 214, 60, -20, - -41, 26, -100, 20, 62, 87, 51, 66, - -52, 1, 50, 89, -76, 118, 69, -29, - ], - [ - 45, 42, 12, 55, 48, -22, -26, -58, - 31, 116, -98, 20, 70, -15, 43, -95, - 82, -98, -38, -3, 126, -183, 31, -126, - -100, -50, 46, 37, -46, -21, -59, 27, - -92, -155, -19, 91, -21, 30, 209, 6, - -3, 169, 3, -81, -49, -46, 42, 67, - 76, 98, -111, -58, -22, -85, -23, -53, - 57, 57, -37, 3, 92, 88, 17, -39, - ], - [ - -30, -26, -6, -22, -48, 70, -12, -65, - -191, 23, -96, -83, 94, -40, -16, 77, - 22, -2, -93, -32, -6, -19, 9, -25, - -36, -63, 2, 69, -134, -81, -32, 81, - -18, 119, 40, 62, 32, -21, 101, 159, - -37, 94, 15, -146, 49, 21, 48, -3, - 7, 42, 51, 55, 23, 40, 2, 7, - 1, 15, -38, -17, 35, -21, -104, 95, + -160, -171, -5, 98, 92, 120, 169, 55, + -138, -128, 17, 53, 19, 25, 44, 22, + -17, 51, 35, 99, 45, -11, 17, -7, + 17, 89, 121, 25, 48, 62, -28, -14, + 39, 24, 23, 52, -14, 15, -18, -9, + -56, 39, -38, -30, 28, 23, -22, 25, + 42, -62, -62, -15, -16, -40, -100, -79, + -26, 60, -103, -41, -38, -77, -80, -87, + ], + [ + -299, -296, -257, 39, 58, 29, 26, 77, + -211, -261, -123, 107, 185, 91, 135, 116, + 84, 73, 71, 86, 98, 97, 32, -5, + 127, 16, 91, 77, 48, 36, 20, -13, + 71, -8, 14, 16, 50, 26, 13, 5, + 58, -5, 2, 16, -6, 19, -32, -26, + -44, -51, -57, -42, -4, -43, -45, -1, + 77, -63, -64, -31, -34, -70, -38, -54, + ], + [ + -178, -275, -330, -329, 56, 16, 128, 245, + 101, -320, -270, -315, 128, 104, 77, 34, + 118, 98, 159, 146, 61, 59, 39, 74, + 58, 122, 6, 196, 87, 136, 68, -23, + 7, 31, 68, 27, 59, 23, 45, 12, + 0, -9, -18, 10, 22, 27, -18, 1, + -59, -71, -37, -27, -21, -27, -24, -12, + -48, -15, -53, -36, -57, -30, -16, -29, + ], + [ + 64, -21, -173, -152, -106, 113, 84, 77, + 51, 81, -143, -154, -160, 76, 56, 108, + 20, 146, 62, -16, 121, 109, 48, 32, + 31, 46, 79, 43, 131, -17, 27, 46, + 3, 140, -1, -27, 37, -2, -73, 54, + 19, -32, 35, -28, 47, -59, 78, -66, + -75, -39, -19, 11, -12, -93, -26, -17, + -78, -91, 8, -52, -77, -108, -118, -46, + ], + [ + 135, 176, -62, -280, -280, -280, 117, 83, + 73, 120, 83, -244, -281, -289, 95, 87, + 63, 24, 109, 132, 119, 96, 37, 70, + -5, 45, 45, 103, 112, 109, 66, 53, + 27, 71, 94, -3, -6, 26, 28, 33, + 46, 45, -9, -19, -25, -3, 17, 10, + 17, -2, -67, -51, -58, -48, 8, -76, + -13, -40, -67, -33, -127, -44, -110, -54, + ], + [ + 1, 82, 45, 70, -246, -260, -240, 34, + 51, 46, 78, 130, -228, -191, -237, 60, + 67, 77, 35, 67, 67, 51, 37, -16, + 40, 2, 129, 63, 108, 44, 85, 26, + -13, 17, 45, 38, 49, 44, 30, 41, + 17, 28, 54, 18, 29, -17, -7, -33, + -38, -6, -14, -18, -19, -70, -47, 163, + -35, -37, -14, -22, -74, -62, -27, -100, + ], + [ + 234, 135, 158, 129, 63, -463, -519, -460, + 82, 116, 142, 159, 168, -289, -445, -339, + 59, 68, 92, 89, 108, 88, 89, 75, + 51, 46, 38, 60, 76, 73, 45, 74, + 20, 27, 36, 51, 60, 29, 18, 19, + 11, 27, 31, 34, 39, 22, 3, 5, + 12, -1, -4, -9, -3, -24, -45, -78, + -40, -32, -29, -3, -28, -44, -42, -66, + ], + [ + 147, 61, 109, 122, 53, -24, -323, -323, + 65, 48, 104, 105, 107, 124, -269, -278, + 32, -1, 53, 77, 64, 184, 69, 11, + 35, 44, -2, 24, 44, 31, 133, 14, + -33, 42, 1, 18, 38, 15, 3, -12, + -17, 5, 14, 9, 15, 11, -19, -59, + 27, -23, -32, -23, -12, -20, -58, -128, + -20, -41, -54, -36, -44, -37, -38, -132, + ], + [ + 32, -14, 23, -41, 10, 67, 52, 57, + -6, 34, -11, 110, 25, 6, 9, 16, + -209, -233, -52, 40, 58, 14, -34, -5, + 47, 100, 44, 42, 26, -12, 44, -14, + 74, -71, 18, 27, 32, 22, 23, -37, + -2, -49, 32, -27, 21, 46, -48, 94, + -9, 36, -45, -38, 13, 29, 0, 1, + -57, -148, -43, -45, -79, 2, -50, 53, + ], + [ + 25, -12, -46, 19, 115, 36, 7, -24, + 27, -73, 6, 98, 9, 39, 0, 32, + -27, -206, -171, -192, 26, 35, -1, -3, + 54, 52, 72, 7, 22, 24, 31, -47, + 43, -50, 53, -24, 20, 51, 6, -22, + 59, 49, -37, 14, 35, -5, -33, 44, + -18, -6, 12, 24, 25, -3, -56, 52, + -80, -36, 10, 3, -56, -54, 8, 41, + ], + [ + 58, 79, 37, 55, -55, 40, 35, 4, + 67, 65, 63, -101, 38, 83, 94, 17, + 6, -22, -162, -232, -190, 3, 12, -19, + 17, 54, 13, -9, 37, 48, -9, 27, + 38, 0, -10, 29, -9, 46, 55, 19, + -36, 16, 12, -0, 42, 3, 25, 7, + -10, 27, 3, 45, -15, 8, -17, 93, + -94, -74, -137, 25, -103, -34, -136, 27, + ], + [ + 35, 58, -50, 34, 112, 18, -32, 15, + -5, 84, 45, 27, 88, 27, 32, 47, + -54, 28, 17, -255, -206, -187, 26, -22, + -8, 40, 29, -8, -28, 59, 77, 15, + 45, -1, 7, 2, 13, 24, 78, 54, + -32, 27, 31, 15, 12, 21, -43, 2, + -55, -4, -29, -7, -46, 15, -24, 5, + -61, 14, -15, -8, -36, 54, -74, -45, + ], + [ + 48, 32, 43, 73, -57, 55, 8, -30, + 15, 22, 61, 49, -60, 0, -1, 44, + -6, 66, 18, 28, -219, -219, -203, 34, + 26, -1, 35, 54, 18, -5, -3, 81, + 32, 39, 21, 6, -4, 3, 16, 54, + 7, -1, 23, 11, 21, -13, 57, 104, + -53, -23, -14, -12, -13, -31, 1, -37, + -30, -27, -8, -16, -21, -38, -26, -33, + ], + [ + 8, 33, 73, 41, 57, 16, 16, 19, + -19, 26, 54, 71, 37, -17, 32, -137, + 4, 29, 30, 24, 69, -73, -144, -248, + -8, -3, 14, 2, 30, -32, 46, 27, + -3, 17, 37, 11, 23, 18, -38, 35, + -8, 22, 9, 16, 33, 14, -38, 13, + 14, -14, -11, -12, -2, -11, 0, 27, + -81, -46, -43, -24, -36, -9, -33, 43, + ], + [ + 48, 14, 68, 32, 29, 71, 59, 83, + -2, 25, 26, 36, 48, 26, -21, 17, + 4, -15, 28, 24, 26, 19, 34, -206, + -12, -39, -14, 20, 36, 50, 13, 33, + -38, -12, 6, 18, 28, 33, 30, -41, + -49, -2, 11, 7, 12, 15, 29, -38, + -7, -23, -1, -26, -38, -20, -37, -74, + -42, -60, -29, -45, -24, -53, -21, -69, + ], + [ + -41, 37, 62, 46, 40, 47, -103, 9, + -55, 5, 15, 42, -30, 67, -48, -11, + -41, -73, -29, -58, 18, -16, -20, -55, + 15, 31, -69, 5, -141, -37, -59, -72, + 91, 52, -84, 47, 48, 10, -39, 3, + 43, 28, 52, 41, -23, -79, -0, 0, + -5, -42, 77, 48, 97, 6, 33, -81, + 10, -22, 74, 66, 86, 38, 25, -77, + ], + [ + -2, 98, -3, 45, -46, 12, -56, -53, + -22, -9, 23, -13, -25, 28, 15, -95, + -3, 47, 38, -15, 2, -41, 4, -59, + -48, -64, 22, -36, -14, -33, -34, 6, + 4, 91, 30, 32, -7, -7, 39, -12, + 95, -1, 120, -3, 36, 49, 45, -78, + 7, 17, 42, 3, -4, -2, -18, -34, + -2, 23, -20, -33, 39, -118, -72, 69, + ], + [ + 44, -60, 67, -73, -2, 58, 2, -5, + -60, 34, 35, -50, -7, -28, -0, -16, + 15, -1, 7, -38, -4, -69, -70, -56, + 25, -36, 73, 1, -60, -22, -22, -18, + -32, 23, 46, 7, 27, 35, -4, -11, + -108, -6, 26, 61, -36, -10, 77, -16, + 7, 98, 111, -14, 32, 17, -12, 7, + -6, -21, 14, -8, -33, 5, -2, 61, + ], + [ + -42, 26, -31, 15, 0, -31, -19, 2, + -22, -70, -62, -2, -32, -12, -28, -69, + 15, -30, 5, 51, -1, -103, -5, -37, + -2, 49, -72, -23, -80, -15, 15, -50, + 3, -17, 47, 77, -7, -30, -28, 48, + 14, -32, 9, 118, 21, -49, -23, 54, + -43, -52, 159, 88, 75, 53, -29, 27, + 48, 9, 33, 59, 26, 16, 53, -71, + ], + [ + -76, 21, 24, -107, -8, -30, -43, -3, + -44, -32, -14, 54, 0, 14, -44, -51, + -25, 22, -12, -5, 18, -18, -8, -7, + -55, -27, 6, -16, 88, 39, -43, -75, + -9, 22, 61, 77, 73, -19, 101, 19, + -49, 9, -46, 47, -2, 69, -32, 18, + -66, -34, 68, 31, 93, 1, 16, 0, + -38, -89, -46, 14, 102, 54, -3, 13, + ], + [ + -43, -5, -27, 36, 46, 24, 24, -26, + -121, -65, -39, 15, 5, 61, -19, -29, + -58, -25, -42, 4, -30, 7, -86, 76, + -3, 38, -14, -58, -17, 11, -10, -77, + -65, -21, 17, 3, -2, 31, 17, 57, + -38, 17, -6, -37, -28, 63, 47, 36, + -17, 65, -70, 50, 87, 61, 81, 89, + -66, -48, 51, 70, -35, 62, 23, -46, + ], + [ + -12, -2, -40, 27, 21, -23, 7, -16, + -25, 63, -55, 54, 17, -17, 25, -31, + 6, -89, -18, 15, 73, -85, 16, -37, + -60, -30, 42, 20, -18, -35, -55, 54, + -70, -132, 8, 41, 6, 24, 86, 42, + -15, 86, -4, -20, 15, -47, -10, 5, + 53, 55, -17, -40, 12, -2, -19, -36, + 26, 50, -24, 40, 74, 43, -21, -2, + ], + [ + -36, -41, -27, -2, -24, 2, -11, -82, + -111, -15, -45, -73, -8, -15, 11, 34, + 1, 3, -59, -33, 0, 49, 13, -26, + -55, -40, -6, 36, -41, -1, 3, 42, + -16, 46, 6, -11, 8, 44, 85, 33, + -56, 20, -27, -55, 56, 66, 28, -30, + -23, 62, 8, 78, 35, 99, 36, -23, + 4, 8, -1, 5, 60, 2, -28, 39, ], ]; internal static readonly short[][] MiddleGameEnemyKingTable = [ [ - 0, 0, 73, 50, 49, -65, -222, 81, - 0, 0, 142, -30, -180, 160, -30, -116, - -23, -1, 9, 46, 63, 66, 30, 158, - -87, 132, -62, -7, -5, -2, 74, -100, - -68, -66, -67, -67, 60, 69, 46, -68, - 57, 27, -1, -9, -49, -58, -30, 0, - -32, 10, 7, -1, -33, -39, -5, 16, - 32, -5, -34, -45, -5, -27, 13, -6, - ], - [ - 0, 0, 0, 3, -174, -8, -9, -15, - 0, 0, 0, 45, 167, 24, -28, -79, - 116, 170, -9, -84, 22, -3, -60, 179, - -62, -87, -41, -87, -38, -30, 50, -31, - -15, 9, -60, -115, -69, -67, 10, -36, - -5, -18, 8, 28, -37, -6, -35, -13, - -17, 3, 26, 32, 44, 25, 14, 25, - 23, 0, -7, -7, 1, -7, 14, 5, - ], - [ - 6, 0, 0, 0, 46, -144, -80, 17, - 85, 0, 0, 0, -70, 120, 53, 144, - -92, 66, -131, -33, 3, -90, 60, -106, - -83, -33, 51, -13, -59, 47, -13, 7, - 20, -30, -38, -8, -50, -48, -58, -116, - -2, -15, -16, -39, -44, -27, -3, 37, - -2, 36, 30, 12, 28, 26, 40, 53, - 39, 7, 0, -6, 9, 2, 21, 9, - ], - [ - -99, -75, 0, 0, 0, -73, 7, 25, - -91, -73, 0, 0, 0, 107, 76, -67, - 92, 41, 94, -24, 23, -99, -51, 74, - 76, 61, -81, 58, -68, 5, 47, 48, - -18, -65, -72, -32, -66, 11, -33, 145, - 19, -5, 10, -34, -16, -9, -4, -83, - 24, 38, 48, 41, 46, 1, 36, -8, - 22, 7, 6, 0, 8, 2, 31, 18, - ], - [ - -23, -7, -78, 0, 0, 0, -24, -52, - -30, -58, -10, 0, 0, 0, 66, 70, - -140, -35, 1, 84, 9, 102, -68, 153, - 13, 94, 85, -52, 15, -90, 95, -141, - 122, -102, -83, -108, -64, -96, -59, -47, - 4, -14, -47, -33, -19, -21, -7, -6, - -32, 62, 50, 32, 17, 31, 39, 38, - 37, -1, -9, -8, 0, -5, 20, 4, - ], - [ - 85, -32, -119, 11, 0, 0, 0, 84, - -4, 108, 65, -42, 0, 0, 0, 23, - 136, -47, -84, -34, -6, 20, 94, 35, - -130, -28, 62, 71, 27, -5, 20, -38, - -42, -30, 12, -14, 19, 5, 26, -24, - -36, -18, -18, -8, -13, -30, 2, -5, - -5, 34, -2, -7, -2, 9, 12, 30, - 33, 7, -2, -2, 5, 0, 25, 10, - ], - [ - -142, 71, 119, 89, -188, 0, 0, 0, - 82, 28, 2, -61, 107, 0, 0, 0, - -113, -34, -153, -0, -90, 8, 29, -21, - -111, -27, -3, 10, 26, -16, 4, 20, - 10, -45, -94, -92, -105, -117, -99, -107, - 115, -26, -30, -49, -48, -59, -17, -33, - -43, 15, 12, 2, 0, 8, 9, 14, - 24, -14, -21, -31, -20, -25, 0, -11, - ], - [ - 84, 122, -98, -30, 6, 329, 0, 0, - -61, 5, 151, 74, -89, -192, 0, 0, - -269, -120, -2, -82, 56, -18, 98, -88, - 108, -10, -41, 10, -10, -57, -24, 49, - 29, -51, -43, -148, -87, -57, -27, -118, - 25, 31, -31, 13, -7, -22, -11, 23, - -13, 13, 23, 36, 23, 15, 21, 42, - 20, -5, -9, -18, -4, -10, 11, 0, - ], - [ - 104, -88, -108, 42, 186, -234, -2, -60, - -22, 128, -10, -51, -44, 55, -46, -60, - 0, 0, 0, 35, -132, 74, 49, 111, - 98, 74, 2, -56, -45, -15, -34, 25, - -89, -35, 34, -12, -25, 52, 19, -86, - -46, 24, -41, 2, 0, -38, 25, -16, - -0, 10, 11, -26, 7, -23, -17, 36, - 29, 2, 2, 30, 44, 12, 31, 9, - ], - [ - 134, -146, -125, -97, -141, -82, 7, 49, - -253, 61, 172, 70, 120, 3, -49, 73, - 79, 0, 0, 0, -60, 24, 12, -57, - 49, 22, 57, -30, -9, -16, -1, -49, - -69, -3, -2, 4, 28, 35, 44, 76, - -26, -8, 17, 32, -9, -17, 3, -44, - 28, 7, -15, -25, -6, -15, -0, 31, - 31, 20, 10, 11, 52, 9, 51, 41, - ], - [ - -34, 110, 21, 37, 130, -171, -41, 90, - -90, -25, -94, -40, -151, -5, 22, -228, - 44, -40, 0, 0, 0, 65, -24, 49, - 12, -11, -19, 43, -5, -8, 19, 44, - 35, -6, 0, -3, -30, 25, 25, 20, - 42, 31, -9, 7, -21, -23, -9, 25, - 25, 11, -1, -4, 8, -11, 11, 19, - 51, 48, 26, 17, 51, 27, 55, 76, - ], - [ - 209, 23, 168, 54, -66, 4, 56, -101, - -16, -18, -161, -49, -89, 14, 43, 73, - -23, 9, -31, 0, 0, 0, -65, -105, - -13, -53, 0, 17, -4, -5, -14, 43, - -31, 9, 6, 27, -8, -24, 51, -5, - -5, 16, 13, 3, 12, 8, -13, -10, - 18, -7, -28, 12, -4, 6, 23, 35, - 3, 47, 40, 28, 25, -1, 53, 53, - ], - [ - -220, 116, 2, -23, 180, 23, -134, -45, - 238, -69, -41, -33, 9, -170, 57, -172, - 25, 3, 9, -25, 0, 0, 0, -58, - 53, 4, -44, 11, 16, 29, 22, 66, - -8, 1, -17, 18, -9, -17, 16, 22, - -79, 16, 16, 4, 8, 10, 19, 4, - -19, -4, 0, -7, 9, 7, 23, 22, - 48, 41, 32, -1, 41, 13, 49, 45, - ], - [ - 33, 49, -59, 70, -25, -60, -14, 35, - -58, 60, 32, 13, 35, 74, -62, 35, - 86, -5, 27, -38, 46, 0, 0, 0, - -60, -37, -53, -3, -79, 13, 0, 10, - 41, 12, -7, 18, -14, -27, -2, -34, - -59, -18, 6, -34, -21, -11, -6, -7, - -20, -15, -37, -7, -22, -21, 7, 21, - 10, 5, 6, -2, 4, -24, 9, -1, - ], - [ - -34, 43, -79, -31, -65, 87, -49, -91, - 15, 42, 29, 35, 67, -78, -91, 107, - 143, -6, 32, -3, -65, -63, 0, 0, - 37, -3, -23, -79, 1, -64, 8, 25, - -80, 46, 17, -33, 3, -36, -38, -22, - -78, -5, -65, -19, -6, -6, -3, -5, - 6, 20, -16, -14, -20, -8, 30, 24, - 44, 21, 16, -51, 5, -7, 9, 18, - ], - [ - 33, -4, -7, -97, 186, -13, 11, -36, - -118, 43, 68, -129, -5, -97, 79, 51, - -69, -2, 19, 9, 44, -40, 3, -49, - 72, -144, -139, -64, 9, 2, -104, -58, - 49, 26, 60, -48, 15, 49, 63, 18, - 33, 6, 86, 29, -89, -18, 1, 45, - 42, -78, -60, 10, -47, -38, -46, -61, - 77, -35, 64, 21, 53, -8, 128, 84, - ], - [ - 70, -8, 154, 222, 81, 13, 117, -133, - 182, 70, -38, 64, -72, 24, 19, -13, - -28, -80, -55, -22, 25, -31, 30, -36, - -87, 18, 84, -114, -11, -1, -56, 147, - -79, -119, 10, 27, 29, 39, 96, -29, - 48, 79, 76, 29, 63, -74, -108, -84, - -73, -74, -22, -88, -53, -19, -53, 36, - -59, -83, -33, 46, 5, -1, -36, 2, - ], - [ - -82, -124, 135, -26, -103, 39, 152, -10, - -7, -86, -224, 69, -115, 13, -48, 57, - 219, 28, 5, 32, 31, -58, 33, 110, - -116, 38, 85, -20, 33, -18, -91, -6, - 49, 103, -61, 200, 54, 69, 38, 49, - -4, 14, 14, -128, 27, 69, 11, 6, - 39, -2, -57, 19, -57, -64, 4, -13, - -199, 50, 80, -13, 1, 76, 32, -10, - ], - [ - 43, 29, 72, -59, 157, -48, 124, 124, - 188, -69, -126, 216, -96, 74, -121, 164, - 42, -79, -94, -133, 19, 50, -38, -121, - 28, -31, 95, -25, 18, 29, -11, -15, - 46, 57, 101, -7, -30, 61, -10, 96, - -66, 20, -74, 9, 25, 4, -7, -28, - 109, -48, 30, -43, -17, 5, -25, 10, - -168, 123, 44, -34, -31, -7, -38, 28, - ], - [ - -228, -11, 119, -164, 97, 80, -14, 19, - -11, -51, 17, -59, 7, -69, 62, 56, - -16, 3, 21, 71, -146, -60, -44, -94, - 17, 35, -4, 54, 43, -28, 12, 59, - -90, 68, 90, 122, 138, -179, -19, 79, - 95, -40, 18, -101, 18, -11, 46, 49, - 15, 7, -18, 5, 4, -16, -1, -65, - 58, 23, 80, 45, -23, -21, 137, 37, - ], - [ - 128, -79, 79, -37, -169, 81, -52, 61, - -69, 40, 23, -99, 196, -124, 29, -130, - -4, -10, -33, 72, -2, -15, 35, -33, - 58, 44, -44, -41, 51, 59, -60, 35, - 91, 142, 33, 41, -49, 82, 23, 77, - -56, 9, 54, 62, 32, 65, -37, 93, - -118, -31, -16, 16, 5, -29, -13, -54, - -39, 17, 67, 60, -11, -14, 9, -63, - ], - [ - 24, -71, -3, -114, -52, 72, 114, 102, - 60, -31, -88, 69, 108, 103, -34, -59, - -90, 19, 22, 95, -100, -12, -38, 69, - 42, -26, 23, -4, 27, -113, -41, -137, - -10, 78, 68, 12, 31, 18, -127, 91, - -15, -77, -3, -14, 2, 59, 202, 49, - 158, 33, -34, 26, -51, -22, -0, -8, - -10, 46, -19, -78, -68, -111, -32, -74, - ], - [ - 33, 126, -249, 20, -126, 110, 72, -32, - -20, -100, 25, -116, 32, -134, 30, 172, - -118, 125, 217, -142, 194, -24, -97, -116, - 85, -117, -144, 86, -141, 114, 20, -24, - 63, -28, 21, 33, 49, 60, -38, -22, - 50, -30, -75, 137, 74, 141, -33, 6, - 10, 42, 38, -122, -32, 6, -10, -25, - -33, -54, -61, -79, -29, -104, 0, 39, + 0, 0, 31, 16, 24, -14, -98, 16, + 0, 0, 73, -14, -119, 117, -49, -30, + -29, -9, 52, 26, 59, 62, -5, 96, + -81, 117, -33, -1, -6, -5, 33, -51, + -57, -65, -52, -54, 62, 67, 39, -51, + 51, 29, -0, -13, -43, -55, -21, 5, + -29, 11, 6, 2, -32, -35, -5, 8, + 29, -8, -32, -38, -4, -22, 9, -11, + ], + [ + 0, 0, 0, 3, -72, 4, 3, -10, + 0, 0, 0, 12, 63, -11, -30, -19, + 53, 103, 5, -48, 5, -0, -45, 91, + -53, -56, -35, -71, -30, -16, 37, -14, + 4, 1, -49, -108, -67, -63, 4, -23, + 15, -13, 7, 26, -33, -2, -26, -9, + -13, 8, 25, 34, 44, 25, 15, 19, + 21, 0, -5, -3, 2, -3, 13, 3, + ], + [ + -2, 0, 0, 0, 0, -61, -42, 2, + 30, 0, 0, 0, -61, 57, 36, 73, + -53, 54, -85, -22, -2, -83, 32, -45, + -58, -14, 24, -15, -24, 39, -7, 7, + 13, -32, -38, 2, -43, -50, -56, -105, + 9, -15, -15, -47, -47, -25, 0, 39, + -0, 37, 32, 14, 28, 27, 37, 46, + 35, 5, 0, -5, 7, 3, 18, 4, + ], + [ + -45, -17, 0, 0, 0, -23, 7, 10, + -30, -35, 0, 0, 0, 51, 34, -30, + 50, 15, 74, -16, 26, -71, -18, 42, + 42, 14, -51, 46, -77, -2, 52, 62, + -38, -58, -71, -29, -61, 7, -33, 123, + 5, -6, 9, -37, -17, -5, 0, -69, + 21, 34, 48, 43, 45, 2, 32, -6, + 18, 3, 5, 0, 6, 2, 27, 12, + ], + [ + -12, -12, -44, 0, 0, 0, -9, -1, + -18, -35, 17, 0, 0, 0, 30, 34, + -76, -28, -13, 76, 15, 100, -44, 112, + -10, 79, 71, -28, 20, -78, 91, -114, + 84, -101, -77, -104, -64, -95, -63, -45, + -7, -12, -47, -37, -18, -18, -1, -1, + -27, 63, 51, 35, 19, 32, 39, 35, + 31, -2, -7, -6, 0, -3, 18, 2, + ], + [ + 33, -10, -62, 7, 0, 0, 0, 31, + 11, 66, 32, -26, 0, 0, 0, 25, + 75, -42, -78, -32, 2, 33, 95, 62, + -77, -18, 51, 67, 35, -12, 21, -31, + -26, -34, 12, -5, 20, 3, 26, -18, + -20, -14, -17, -15, -13, -26, 5, -3, + -4, 35, -1, -6, -0, 9, 10, 24, + 28, 3, -3, -2, 3, 0, 21, 6, + ], + [ + -76, 28, 72, 40, -84, 0, 0, 0, + 48, 40, 6, -53, 76, 0, 0, 0, + -99, -15, -133, 23, -118, 11, 31, -13, + -124, -43, 10, 15, 4, -23, -1, 20, + 2, -46, -95, -86, -104, -119, -102, -104, + 103, -23, -26, -53, -48, -53, -11, -27, + -37, 19, 16, 7, 4, 11, 11, 13, + 22, -13, -18, -27, -18, -21, 0, -12, + ], + [ + 64, 56, -32, -6, 0, 119, 0, 0, + -26, 3, 99, 57, -66, -107, 0, 0, + -176, -85, -8, -92, 49, 32, 81, -53, + 64, 7, -53, 4, -5, -8, -15, 24, + 6, -47, -52, -138, -87, -60, -27, -115, + 6, 35, -25, 8, -4, -14, -5, 30, + -7, 14, 31, 41, 27, 19, 22, 41, + 20, -3, -4, -12, -2, -6, 12, 0, + ], + [ + 25, -23, -44, 28, 109, -145, -9, -14, + -24, 53, -6, -41, -39, 36, -39, -21, + 0, 0, 0, 28, -110, 58, 39, 81, + 90, 74, 12, -53, -25, -29, -29, 9, + -70, -37, 35, -4, -20, 49, 17, -82, + -25, 26, -41, -2, 1, -34, 27, -11, + 0, 11, 12, -25, 6, -22, -18, 34, + 24, -1, 1, 28, 40, 12, 25, 0, + ], + [ + 47, -64, -57, -37, -78, -46, 8, 18, + -141, 20, 71, 18, 103, 5, -31, 77, + 53, 0, 0, 0, -70, 23, -8, -34, + 45, 11, 69, -22, -10, -27, -0, -56, + -70, -4, 1, 8, 27, 35, 40, 80, + -24, -8, 14, 26, -10, -14, 7, -42, + 24, 6, -15, -24, -7, -14, -3, 26, + 21, 10, 7, 10, 46, 6, 45, 34, + ], + [ + -18, 60, -4, 15, 53, -121, -31, 43, + -78, -18, -61, -19, -62, -8, 27, -170, + 25, -24, 0, 0, 0, 61, -27, 40, + 10, -6, -12, 46, 4, -13, 16, 38, + 36, -6, 2, 4, -30, 21, 23, 23, + 38, 30, -9, 1, -21, -18, -6, 29, + 21, 8, -2, -6, 7, -12, 8, 16, + 42, 41, 22, 16, 46, 24, 48, 67, + ], + [ + 117, 13, 103, 27, -28, 10, 24, -56, + -5, -23, -131, -21, -50, 14, 45, 58, + -24, 14, -18, 0, 0, 0, -61, -108, + -2, -56, 16, 27, 4, -1, -6, 29, + -12, 6, 7, 35, -8, -24, 48, -2, + 10, 15, 15, -2, 11, 11, -9, -7, + 18, -7, -28, 12, -3, 5, 21, 31, + -5, 41, 36, 25, 21, -4, 48, 47, + ], + [ + -112, 77, 2, -12, 87, 2, -61, -18, + 175, -47, -22, -25, 46, -86, 20, -144, + 5, 8, 8, -35, 0, 0, 0, -69, + 51, 1, -38, 8, 20, 33, 24, 40, + -21, -1, -21, 23, -9, -20, 10, 23, + -81, 16, 18, -2, 5, 13, 23, 7, + -17, -5, -0, -6, 9, 6, 20, 18, + 40, 32, 29, -3, 35, 10, 42, 37, + ], + [ + 31, 39, -46, 65, -2, -20, -3, 19, + -63, 72, 51, 31, 24, 33, -15, 6, + 76, 0, 16, -47, 64, 0, 0, 0, + -55, -46, -47, 0, -78, 19, -0, 9, + 37, 9, -8, 23, -15, -28, -5, -32, + -52, -15, 8, -38, -21, -6, -2, -2, + -16, -13, -36, -5, -21, -20, 6, 18, + 5, 1, 4, -3, 2, -25, 6, -7, + ], + [ + -5, 33, -62, -15, -29, 66, -31, -24, + -2, 50, 32, 42, 64, -53, -35, 37, + 114, -10, 22, -17, -65, -60, 0, 0, + 36, -4, -19, -86, -5, -63, 3, 27, + -69, 36, 15, -34, 4, -37, -43, -22, + -68, -4, -64, -23, -8, -2, -1, -2, + 2, 22, -15, -12, -22, -9, 27, 20, + 34, 11, 11, -45, 0, -9, 5, 11, + ], + [ + 21, -4, -6, -81, 93, -18, 7, 4, + -49, 14, 32, -82, -12, -63, 67, 22, + -18, 4, 9, 1, 42, -34, 5, -40, + 32, -53, -127, -68, 8, -6, -89, -62, + 12, 38, 61, -39, 20, 42, 65, 8, + 1, 15, 85, 17, -69, -18, 5, 47, + 45, -50, -56, 7, -34, -40, -41, -57, + 70, -19, 60, 15, 37, 3, 114, 62, + ], + [ + 23, 2, 77, 88, 41, 1, 73, -39, + 58, 40, -26, 50, -65, 30, 26, 16, + -7, -48, -44, 8, 44, -36, 30, -3, + -27, 6, 57, -88, -15, -4, -55, 104, + -27, -62, 11, 43, 31, 40, 72, -34, + 20, 33, 33, 28, 66, -62, -96, -89, + -61, -74, -11, -82, -46, -16, -41, 54, + -48, -47, -40, 23, -4, 4, -9, 20, + ], + [ + -23, -53, 63, -17, -53, 47, 89, 10, + 13, -51, -131, 50, -91, 31, -38, 28, + 123, 19, -0, 24, 28, -75, 37, 70, + -65, 20, 69, -5, 25, -14, -84, -28, + 36, 51, -23, 106, 57, 58, 28, 48, + 8, -1, 8, -41, 40, 72, 2, -10, + 38, -12, -69, 12, -65, -79, -4, -10, + -160, 29, 61, -23, -30, 56, 42, -6, + ], + [ + 35, 6, 52, -23, 78, -20, 44, 56, + 116, -22, -81, 142, -79, 41, -89, 97, + 38, -30, -77, -107, 16, 52, -47, -77, + 32, -11, 54, -13, 2, 41, -7, 3, + 54, 64, 34, 0, -8, 64, -10, 92, + -44, 27, -15, 4, 2, -0, -13, -39, + 100, -52, 22, -46, -27, -0, -26, 24, + -127, 104, 36, -30, -48, -16, -23, 36, + ], + [ + -91, 4, 58, -71, 35, 34, -9, 26, + -13, -38, 25, -31, 22, -55, 54, 45, + -22, 4, 13, 57, -103, -77, -54, -75, + -6, 27, -4, 27, 47, -32, 3, 35, + -62, 84, 82, 65, 70, -111, -34, 77, + 63, -31, 2, -56, 8, -21, 45, 27, + 17, 11, -29, -4, -4, -20, -15, -67, + 26, 33, 86, 51, -35, -37, 114, 22, + ], + [ + 62, -54, 55, -33, -64, 62, -2, 31, + -43, 28, 29, -84, 136, -100, 27, -40, + 7, -0, -32, 52, 11, -33, 29, -13, + 49, 35, -39, -49, 47, 71, -63, 7, + 82, 113, 30, 47, -32, 58, -1, 68, + -36, 2, 42, 43, 7, 26, -12, 91, + -122, -35, -27, -9, 1, -33, -19, -49, + -38, 22, 48, 45, -21, -20, 12, -36, + ], + [ + 15, -37, 10, -41, -21, 40, 50, 15, + 50, -26, -58, 62, 80, 67, -14, -32, + -74, 17, 13, 87, -86, -4, -35, 39, + 34, -29, 32, -10, 32, -94, -1, -49, + -15, 76, 69, 21, 38, 12, -45, 45, + 1, -66, -2, -25, 11, 29, 63, 22, + 123, 28, -37, 19, -50, -24, 0, -3, + -5, 36, -19, -74, -68, -114, -29, -66, + ], + [ + 16, 33, -112, 5, -48, 36, 34, -10, + -14, -68, 6, -74, 6, -68, 15, 61, + -55, 70, 169, -94, 155, -31, -37, -40, + 59, -113, -143, 82, -144, 78, 15, -11, + 44, -28, 29, 33, 37, 52, -16, -10, + 26, -33, -77, 129, 80, 135, -9, -4, + 2, 4, 43, -111, -39, 3, -9, -27, + -33, -48, -38, -84, -30, -87, -7, 29, ], ]; internal static readonly short[][] EndGameEnemyKingTable = [ [ - 0, 0, -70, -14, 24, 36, 61, -113, - 0, 0, 21, 23, 2, -32, 17, 78, - -88, 11, 16, -23, -16, -25, -14, -42, - 3, -42, 11, 6, 3, 5, -14, 23, - 34, 3, 0, 9, -18, -9, 15, 18, - 8, -13, 8, 9, 19, 22, 18, 18, - 24, -7, -3, -1, 9, 6, 1, 2, - -24, 18, 21, 10, 13, 37, 13, 7, - ], - [ - 0, 0, 0, 11, 26, 18, 36, -42, - 0, 0, 0, -4, 18, -15, 1, 3, - -0, -2, -2, 23, -26, -3, 5, -39, - -14, -16, 1, -7, -9, 6, -22, 44, - 6, -13, 2, 18, 23, 19, 15, 54, - -36, 2, -2, 2, 10, 5, 7, 14, - 2, -13, -12, -17, -18, -16, -13, -37, - -22, 0, -1, -3, 4, 10, 5, -2, - ], - [ - -67, 0, 0, 0, -44, 43, -8, -83, - -62, 0, 0, 0, 39, -17, -2, -32, - 51, -17, 37, 10, 15, 30, 2, 34, - 16, -6, -23, -1, -6, -25, -2, 19, - 2, 6, 12, 24, 20, 5, 12, 39, - 35, -11, 1, 2, 9, 8, 16, -2, - -5, -14, -19, -15, -11, -10, -23, -24, - -18, 1, 0, -2, -2, 3, 1, 6, - ], - [ - -32, 32, 0, 0, 0, 36, 9, -24, - 39, 10, 0, 0, 0, -19, -12, -37, - -38, 1, -19, 14, -7, 18, 7, 44, - 1, -44, 17, -21, 3, -19, -30, -24, - 8, 5, 3, 15, 7, -7, 21, -58, - -2, -6, -8, 13, 4, -8, 8, 26, - -8, -2, -8, -20, -10, 1, -20, 16, - -2, 3, 2, 0, 13, 5, 9, 12, - ], - [ - 26, -52, -1, 0, 0, 0, -3, 111, - -0, 34, 4, 0, 0, 0, -10, -38, - -3, 8, 7, -14, 16, -17, 14, -60, - 5, -15, -30, -5, -27, 8, -36, -18, - -23, 20, 27, 25, 18, 14, 5, -2, - 5, -8, -1, 3, -1, -3, -5, 15, - 2, -21, -31, -23, -24, -19, -17, -24, - -15, -4, 2, -13, 0, -2, 1, 9, - ], - [ - -12, 27, 12, 9, 0, 0, 0, -7, - 11, -40, -20, 7, 0, 0, 0, -31, - -26, -7, 16, 6, 0, 20, -14, -2, - 15, 12, -6, -31, -16, -20, -29, -12, - 12, 24, -1, 6, -4, -12, -9, 2, - -12, 0, -5, -5, -3, 2, -15, 6, - -3, -27, -8, -5, -11, -12, -11, -15, - -37, -10, -3, -5, 2, 0, 1, 8, - ], - [ - -9, -5, -60, -47, 17, 0, 0, 0, - 22, -5, 32, 25, -29, 0, 0, 0, - 35, 23, 48, -3, 19, -1, 10, -28, - 26, -21, -18, -11, -11, -14, -23, -33, - 2, 18, 19, 23, 21, 14, 15, 4, - -63, -7, 5, 8, 10, 9, -9, 7, - 15, -21, -23, -15, -18, -19, -17, -17, - -32, -5, -1, -9, -1, -1, 0, 3, - ], - [ - 98, -48, 64, -42, 2, -111, 0, 0, - 39, -8, -56, 12, 26, 49, 0, 0, - 39, 34, -12, 43, -33, 14, -23, -8, - -76, 6, -6, -18, -6, 12, -25, -31, - -29, 32, 12, 41, 28, 13, 9, 34, - -46, -25, 3, -6, -2, -5, -11, -15, - 0, -16, -21, -28, -24, -16, -19, -27, - -8, 2, -6, -12, -9, -8, -3, 0, - ], - [ - -129, 6, -44, -7, -20, 69, -22, 33, - -43, -92, 29, 5, -0, 1, 12, 35, - 0, 0, 0, -7, 30, -10, -4, -34, - 5, -18, -10, 10, 10, 3, 8, -7, - 45, 7, 1, 9, 14, 3, 5, 28, - 28, -12, 11, 4, 2, 19, 8, 25, - 11, 4, -7, 16, 7, 7, 6, -5, - 5, 21, 17, 3, 9, 3, 9, 8, - ], - [ - -123, -18, 12, 34, 16, 27, -12, 14, - 3, -8, -43, -49, -19, 3, 13, -16, - -7, 0, 0, 0, 17, -5, -3, 7, - -10, -29, -13, 0, -2, 6, 0, 13, - 23, -4, -1, 4, 5, -0, 3, 4, - 23, -3, -6, -0, 1, 6, 3, 20, - 0, -0, 7, 7, 6, 6, 2, -4, - -7, 9, 7, 11, 8, 13, 4, 6, - ], - [ - -7, -15, 2, -13, -60, 27, -11, -9, - 15, 4, 16, 13, 68, -0, -6, 37, - -21, -4, 0, 0, 0, -13, 8, -22, - -10, -13, -4, -10, -9, 6, -1, -14, - -12, -11, -2, 0, 9, -4, 4, -6, - -15, -11, -4, -0, -0, 4, 3, 3, - -10, -8, -6, 0, 0, 0, -6, -3, - -5, -3, -6, -5, 2, 2, -2, -3, - ], - [ - -46, -15, -27, -23, 22, -28, -13, 10, - 16, 1, 19, 14, -5, 21, -7, -42, - -11, -15, 2, 0, 0, 0, 3, 16, - -12, 0, -6, -13, -4, -9, -8, -15, - 6, -6, -2, -5, 5, 3, -10, -7, - -12, -7, -9, -1, -5, -3, 3, 6, - -21, -9, -1, -4, -1, 0, -7, -7, - 12, -11, -10, -1, 11, 12, 2, 1, - ], - [ - 39, -35, -15, -2, -71, -14, 4, -49, - -33, 11, 20, 6, 30, 8, -14, -11, - -12, -9, -5, -5, 0, 0, 0, 5, - -12, 2, 3, -3, -11, -9, -18, -16, - 1, -2, 3, -4, 3, 1, -8, -15, - -7, -17, -9, -1, -3, -2, -3, 4, - -3, -10, -8, 2, 0, 1, -1, 4, - -16, -6, -2, 10, 8, 12, 6, 8, - ], - [ - -29, -34, -9, -21, -25, -28, 6, 48, - 34, -18, -7, -4, -7, 11, 11, -72, - -15, -11, -1, 1, -17, 0, 0, 0, - 26, 11, 10, -6, 14, -15, -18, -38, - -15, -2, 3, -7, 7, 1, -9, -11, - -9, -3, -7, 11, 4, 4, 2, 8, - -6, -12, -2, -2, 3, 6, 4, 4, - -25, -5, -0, -4, 14, 20, 16, 19, - ], - [ - -0, -57, 3, -16, 27, -20, -3, 59, - -12, 4, 4, -13, -15, 22, 17, 33, - -24, 0, -17, 8, -2, 17, 0, 0, - -14, 0, 5, 9, -9, 0, -20, -38, - 11, -15, -8, 1, 3, 2, 1, -8, - 2, -8, 2, 5, 1, 2, 3, 3, - -13, -21, -10, -0, 5, 2, -5, 4, - -23, -24, -9, 13, 10, 8, 11, 13, - ], - [ - 54, -3, -13, 8, -35, -11, -41, 53, - 15, -5, -22, 43, 11, 2, -6, 21, - 55, 19, 5, -17, 0, 14, -5, -5, - 6, 27, 38, 15, 7, 1, 35, 9, - -61, -11, 18, 19, 11, 2, -9, 9, - -68, 40, 20, 13, 24, 2, -1, -4, - 42, 61, 44, 18, 23, 19, 16, 29, - -0, 45, 20, 23, -9, 10, -13, -26, - ], - [ - -19, 60, 37, -67, -21, -14, -23, 41, - -94, -39, -6, -32, -24, 2, -11, 10, - 21, -22, -17, 12, 6, -4, -13, 29, - 30, 1, -21, 41, 6, 4, 25, -28, - -13, 3, 8, -6, 12, -2, -6, 26, - 37, 83, 17, 16, -1, 27, 32, 34, - 10, 18, 29, 17, 17, 5, 24, -6, - 22, 18, 22, 1, 24, 7, 10, 14, - ], - [ - 49, 12, 27, 21, 36, -9, -6, 38, - 3, 32, -0, -23, -8, -5, 14, 9, - -29, -38, -18, -21, -7, 6, -19, -13, - 3, 1, -8, -6, 6, 4, 18, 10, - -31, 22, 29, -50, -4, -8, -8, -1, - -3, -7, 2, 33, -3, -7, 1, 5, - -12, 10, 13, 4, 19, 11, 10, 0, - 33, 1, -13, 1, 16, -3, -1, 10, - ], - [ - 49, -3, 65, 13, -29, -19, -89, 22, - -46, 10, -16, -56, 17, -21, 20, -22, - -27, 19, -15, 24, 4, -7, 15, 11, - -6, 18, -7, 20, -9, 10, 9, -2, - -12, -15, -32, 0, -4, -5, 9, -9, - -7, -0, 48, -0, 14, 3, 11, 15, - -25, 13, -0, 10, 13, 5, 10, 6, - 35, -22, -9, 7, 16, 8, 30, 6, - ], - [ - 46, 41, -38, 38, -42, -30, -38, -9, - -7, 7, -1, -3, 0, 1, -11, 2, - 22, -7, 0, -33, 22, 17, 10, 8, - -13, -9, 11, 15, 19, 19, 10, 4, - -6, -18, -19, 27, -34, 58, 8, -20, - -24, -3, -6, -34, 17, -16, 3, -4, - -11, 2, 11, 9, 4, 11, 16, 23, - -1, -9, -4, 3, 11, 14, 0, 10, - ], - [ - -20, 25, 3, 43, 60, 39, 71, 3, - 24, 0, -5, 10, -55, -13, -23, 41, - -4, -15, 2, -18, -14, -26, -42, -8, - -5, 2, 3, 0, 2, -0, 27, -16, - -15, -40, -9, -16, 11, -16, 21, -39, - 12, -19, -20, -6, -5, 22, -4, -12, - 15, -3, 0, -0, 9, 9, 15, 29, - 2, -6, -29, -14, 8, 2, 15, 34, - ], - [ - -6, 21, 4, 48, 30, -4, 25, -167, - 18, 7, 5, -11, -16, -19, -21, 6, - 8, -20, -8, -6, 7, -12, -17, -5, - 3, 14, -8, 15, 8, 1, 13, 66, - -8, -10, -7, 3, -3, 11, 21, -4, - 1, 10, 2, 12, 6, -1, -37, -10, - -46, 5, 7, -7, 20, 18, 18, 20, - -3, -20, 9, 25, 32, 38, 13, 46, - ], - [ - -2, -47, -12, -16, 24, -36, 21, -76, - -13, 12, -14, 1, -48, 14, -15, -33, - 22, -41, -45, 12, -23, -18, 43, 57, - -28, 22, 26, -6, 42, 18, 52, 52, - -27, 10, -8, -8, 9, 16, -24, 22, - -31, -11, -2, -16, -0, 10, 48, -113, - 12, -26, -8, 32, 21, 42, 38, 38, - 42, 34, 60, 40, 5, 50, 57, 38, + 0, 0, -58, -3, 34, 23, 24, -87, + 0, 0, 31, 20, -15, -18, 20, 55, + -77, 11, 10, -21, -15, -25, -4, -27, + -0, -40, 5, 5, 3, 5, -2, 10, + 27, 2, -5, 6, -18, -9, 17, 15, + 9, -12, 8, 8, 18, 22, 15, 16, + 22, -8, -2, -2, 9, 5, 1, 4, + -22, 17, 20, 8, 10, 34, 14, 9, + ], + [ + 0, 0, 0, 16, 8, 17, 39, -31, + 0, 0, 0, 1, 34, -11, -0, -14, + 10, 8, -6, 14, -20, -3, 0, -14, + -12, -20, 0, -11, -11, 3, -21, 31, + 3, -12, -1, 17, 22, 17, 14, 48, + -40, 2, -1, 1, 9, 4, 6, 13, + 1, -14, -11, -17, -17, -16, -12, -33, + -20, 0, -2, -4, 3, 9, 6, -1, + ], + [ + -53, 0, 0, 0, -27, 19, -19, -53, + -47, 0, 0, 0, 35, -3, 5, -11, + 40, -16, 30, 8, 13, 30, 2, 11, + 10, -11, -20, -2, -15, -23, -2, 9, + 0, 5, 11, 20, 17, 5, 10, 37, + 28, -11, 1, 4, 10, 8, 15, -4, + -5, -13, -18, -15, -11, -9, -21, -21, + -17, 2, 0, -2, -2, 3, 2, 9, + ], + [ + -33, 18, 0, 0, 0, 29, 13, -17, + 17, 1, 0, 0, 0, -11, -2, -43, + -30, 8, -16, 15, -9, 13, -1, 45, + 7, -34, 14, -18, 6, -18, -33, -26, + 14, 3, 4, 13, 5, -6, 20, -50, + 1, -6, -9, 14, 5, -8, 7, 20, + -6, -1, -8, -20, -10, -0, -19, 15, + -1, 4, 2, 0, 12, 5, 11, 14, + ], + [ + 25, -53, -7, 0, 0, 0, 0, 87, + -8, 29, 2, 0, 0, 0, -3, -25, + -17, 8, 9, -13, 16, -16, 9, -49, + 10, -12, -27, -7, -27, 5, -37, -20, + -13, 19, 23, 25, 18, 13, 6, -1, + 9, -8, 1, 3, -1, -3, -6, 14, + 2, -20, -30, -23, -24, -19, -16, -22, + -12, -3, 2, -12, 0, -2, 3, 10, + ], + [ + 3, 22, -0, 13, 0, 0, 0, -8, + 5, -29, -12, 4, 0, 0, 0, -27, + -9, -7, 15, 6, -2, 19, -15, -4, + 1, 9, -3, -31, -16, -18, -28, -11, + 6, 24, -1, 4, -4, -12, -10, 1, + -13, -1, -5, -4, -3, 1, -16, 6, + -2, -26, -9, -4, -11, -11, -10, -13, + -34, -9, -3, -5, 2, 0, 2, 10, + ], + [ + -37, 9, -43, -29, -4, 0, 0, 0, + 31, -9, 31, 22, -24, 0, 0, 0, + 34, 18, 41, -10, 26, -1, 11, -29, + 30, -18, -21, -14, -6, -13, -22, -32, + 5, 18, 20, 23, 20, 13, 16, 5, + -57, -7, 4, 8, 10, 8, -11, 5, + 13, -22, -24, -15, -19, -19, -17, -17, + -32, -6, -2, -11, -3, -2, 0, 3, + ], + [ + 107, -24, 46, -46, 8, -55, 0, 0, + 21, -8, -39, 19, 23, 27, 0, 0, + 2, 22, -11, 46, -32, 2, -20, -15, + -57, 1, -3, -18, -9, -0, -27, -22, + -15, 30, 15, 38, 28, 15, 7, 34, + -38, -25, 2, -4, -2, -7, -11, -17, + -1, -17, -23, -28, -24, -17, -19, -26, + -9, 1, -9, -14, -10, -10, -3, 0, + ], + [ + -114, -3, -61, -5, -1, 52, -20, 19, + -42, -78, 33, 2, -2, 5, 11, 31, + 0, 0, 0, -7, 25, -8, -2, -27, + 5, -18, -13, 9, 5, 6, 6, -3, + 41, 7, 1, 9, 13, 4, 5, 27, + 23, -12, 11, 4, 2, 19, 8, 22, + 12, 4, -6, 15, 7, 7, 6, -4, + 6, 21, 17, 2, 9, 4, 10, 11, + ], + [ + -113, -28, 1, 22, 6, 20, -8, 18, + -6, -1, -32, -40, -18, 2, 9, -14, + -4, 0, 0, 0, 17, -4, -0, 3, + -10, -29, -15, -1, -2, 7, -2, 15, + 23, -4, -2, 4, 4, -1, 3, 4, + 22, -2, -5, 1, 1, 6, 2, 18, + 2, -0, 7, 7, 6, 6, 2, -4, + -4, 11, 8, 11, 8, 13, 5, 7, + ], + [ + -4, -6, 2, -10, -52, 15, -12, 2, + 15, 3, 11, 9, 56, -1, -7, 27, + -18, -7, 0, 0, 0, -11, 8, -22, + -12, -15, -6, -10, -11, 8, -1, -12, + -14, -11, -3, -1, 9, -4, 3, -6, + -15, -10, -4, 0, -0, 3, 2, 1, + -9, -7, -6, 1, 1, 1, -6, -2, + -3, -1, -4, -4, 2, 2, -1, -1, + ], + [ + -23, -15, -16, -23, 15, -30, -6, -1, + 13, 4, 13, 13, -9, 22, -8, -39, + -10, -16, -0, 0, 0, 0, 2, 16, + -15, -1, -10, -15, -5, -10, -11, -11, + 1, -6, -3, -7, 5, 3, -10, -7, + -16, -7, -9, -0, -5, -4, 2, 3, + -20, -9, -1, -4, -1, 0, -7, -7, + 12, -9, -8, -1, 11, 12, 3, 2, + ], + [ + 16, -27, -16, -6, -55, -11, -8, -54, + -19, 8, 17, 3, 22, -7, -7, -15, + -7, -11, -4, -4, 0, 0, 0, 6, + -12, 1, 1, -2, -12, -10, -19, -11, + 3, -2, 4, -4, 3, 1, -8, -15, + -6, -17, -9, -0, -3, -2, -4, 2, + -4, -10, -7, 1, 1, 1, -1, 4, + -14, -4, -1, 10, 9, 12, 7, 10, + ], + [ + -29, -31, -12, -19, -31, -34, 4, 41, + 37, -20, -11, -8, -6, 17, -2, -61, + -11, -12, 1, 3, -20, 0, 0, 0, + 25, 12, 10, -7, 15, -16, -18, -38, + -14, -2, 4, -7, 7, 1, -9, -10, + -10, -2, -7, 11, 5, 3, 1, 5, + -6, -13, -3, -3, 2, 6, 4, 5, + -23, -4, 1, -3, 13, 20, 16, 21, + ], + [ + -8, -56, -2, -20, 23, -11, -11, 47, + -8, 4, 5, -14, -14, 18, 13, 22, + -16, 2, -15, 12, -3, 17, 0, 0, + -11, 0, 6, 12, -8, -1, -19, -37, + 8, -13, -7, 3, 3, 3, 2, -7, + -1, -7, 3, 6, 2, 2, 3, 1, + -13, -22, -11, -1, 6, 3, -4, 5, + -21, -20, -7, 10, 10, 8, 12, 14, + ], + [ + 55, -9, -11, 7, -11, -8, -43, 43, + 1, -0, -18, 34, 13, -4, -4, 26, + 42, 21, 5, -17, -1, 12, -5, -6, + 7, 19, 34, 14, 7, 3, 34, 12, + -49, -12, 18, 16, 9, 3, -10, 12, + -56, 39, 21, 14, 20, 2, -2, -6, + 38, 56, 43, 17, 20, 19, 15, 27, + 3, 40, 19, 23, -7, 7, -8, -19, + ], + [ + -17, 63, 56, -43, -16, -19, -10, 22, + -72, -36, -6, -31, -27, 4, -13, 10, + 22, -27, -19, 9, 3, -1, -13, 26, + 24, -1, -18, 38, 8, 6, 24, -19, + -23, -2, 9, -7, 11, -1, -2, 28, + 34, 84, 20, 17, -0, 25, 30, 34, + 9, 18, 29, 15, 16, 4, 21, -12, + 21, 12, 25, 6, 26, 5, 3, 9, + ], + [ + 39, -7, 48, 14, 21, -14, 10, 24, + 2, 26, -24, -19, -11, -7, 15, 16, + -16, -35, -16, -20, -5, 10, -20, -5, + -4, 4, -9, -9, 10, 6, 18, 19, + -31, 35, 29, -35, -4, -5, -5, 2, + -3, -7, 3, 23, -3, -6, 4, 6, + -11, 13, 15, 6, 19, 13, 11, -2, + 24, 5, -9, 2, 20, -1, -6, 7, + ], + [ + 52, -2, 79, 3, -15, -31, -79, 20, + -33, 3, -28, -43, 11, -15, 15, -9, + -24, 12, -18, 20, 7, -5, 19, 7, + -8, 15, -0, 20, -6, 12, 11, -1, + -15, -16, -19, -1, -2, -3, 9, -6, + -11, 1, 38, 2, 12, 5, 13, 15, + -24, 14, 1, 10, 15, 5, 9, 1, + 24, -19, -6, 4, 18, 7, 23, -0, + ], + [ + 20, 37, -33, 18, -43, -24, -43, -22, + -7, 6, -0, -6, 4, -2, -10, 7, + 23, -6, 4, -30, 18, 21, 13, 8, + -11, -6, 13, 21, 21, 22, 12, 12, + -12, -22, -17, 36, -22, 44, 12, -19, + -19, -5, -3, -40, 16, -11, 5, -2, + -12, 0, 14, 11, 5, 12, 18, 23, + 5, -11, -6, 2, 12, 16, 5, 10, + ], + [ + -14, 17, 2, 41, 41, 51, 74, -8, + 24, 2, -5, 7, -43, -21, -26, 26, + -2, -14, 2, -13, -16, -26, -42, -11, + -5, 5, 4, 4, 2, -4, 28, -8, + -14, -35, -8, -15, 9, -13, 25, -38, + 8, -16, -18, -2, -1, 31, -7, -15, + 15, -3, 2, 5, 10, 10, 16, 27, + -1, -6, -22, -12, 9, 1, 14, 23, + ], + [ + -7, 12, -3, 33, 21, -1, 37, -132, + 21, 5, -3, -11, -8, -13, -27, -4, + 6, -20, -7, -5, 5, -14, -17, -4, + 5, 13, -9, 17, 9, -6, 8, 51, + -8, -9, -7, 3, -4, 16, 6, 10, + -1, 9, 2, 14, 5, -1, -8, -12, + -36, 5, 7, -7, 20, 19, 18, 19, + -1, -17, 12, 22, 28, 39, 12, 45, + ], + [ + 0, -32, -38, -12, 7, -17, 16, -55, + -16, 5, -9, -7, -41, 6, -14, -16, + 13, -34, -37, 6, -15, -15, 34, 35, + -24, 21, 29, -5, 44, 24, 53, 36, + -24, 10, -10, -8, 11, 18, -15, -0, + -25, -10, -2, -15, 0, 12, 35, -68, + 11, -19, -10, 28, 23, 41, 38, 37, + 38, 29, 44, 39, 6, 47, 58, 37, ], ]; } public static class EvaluationParams { - public static readonly TaperedEvaluationTerm IsolatedPawnPenalty = Pack(-18, -17); + public static readonly TaperedEvaluationTerm IsolatedPawnPenalty = Pack(-16, -13); + + public static readonly TaperedEvaluationTermByRank PawnPhalanxBonus = + [ + Pack(0, 0), + Pack(-0, 2), + Pack(10, 11), + Pack(24, 26), + Pack(56, 79), + Pack(205, 192), + Pack(-135, 425) + ]; public static readonly TaperedEvaluationTerm OpenFileRookBonus = Pack(42, 2); - public static readonly TaperedEvaluationTerm SemiOpenFileRookBonus = Pack(14, 8); + public static readonly TaperedEvaluationTerm SemiOpenFileRookBonus = Pack(15, 7); - public static readonly TaperedEvaluationTerm SemiOpenFileKingPenalty = Pack(-22, 3); + public static readonly TaperedEvaluationTerm SemiOpenFileKingPenalty = Pack(-23, 3); - public static readonly TaperedEvaluationTerm OpenFileKingPenalty = Pack(-68, 2); + public static readonly TaperedEvaluationTerm OpenFileKingPenalty = Pack(-70, 3); - public static readonly TaperedEvaluationTerm KingShieldBonus = Pack(25, -2); + public static readonly TaperedEvaluationTerm KingShieldBonus = Pack(23, -3); public static readonly TaperedEvaluationTerm BishopPairBonus = Pack(29, 77); - public static readonly TaperedEvaluationTerm PieceProtectedByPawnBonus = Pack(9, 12); + public static readonly TaperedEvaluationTerm PieceProtectedByPawnBonus = Pack(12, 16); - public static readonly TaperedEvaluationTerm PieceAttackedByPawnPenalty = Pack(-48, -37); + public static readonly TaperedEvaluationTerm PieceAttackedByPawnPenalty = Pack(-48, -34); public static readonly TaperedEvaluationTermByRank[] PassedPawnBonus = [ [ Pack(0, 0), - Pack(-44, -12), - Pack(-27, -28), - Pack(-27, 1), - Pack(12, 24), - Pack(22, 71), - Pack(136, 189), + Pack(-42, -13), + Pack(-23, -26), + Pack(-22, 2), + Pack(16, 24), + Pack(22, 64), + Pack(139, 182), ], [ Pack(0, 0), - Pack(-51, -27), - Pack(-32, -29), - Pack(-17, -3), - Pack(4, 35), - Pack(-2, 70), - Pack(125, 199), + Pack(-48, -27), + Pack(-28, -28), + Pack(-12, -3), + Pack(8, 32), + Pack(1, 63), + Pack(134, 182), ], [ Pack(0, 0), - Pack(-42, -44), - Pack(-48, -29), - Pack(-14, -11), - Pack(-0, 18), - Pack(11, 55), - Pack(96, 222), + Pack(-40, -44), + Pack(-45, -27), + Pack(-10, -12), + Pack(2, 17), + Pack(10, 50), + Pack(107, 206), ], [ Pack(0, 0), - Pack(-37, -36), - Pack(-49, -10), - Pack(-14, -2), - Pack(11, 35), - Pack(17, 36), - Pack(135, 185), + Pack(-35, -36), + Pack(-46, -7), + Pack(-10, 1), + Pack(14, 33), + Pack(14, 35), + Pack(140, 173), ], [ Pack(0, 0), - Pack(-39, -48), - Pack(-46, -24), - Pack(-12, -6), - Pack(2, 19), - Pack(2, 61), - Pack(58, 213), + Pack(-38, -47), + Pack(-43, -21), + Pack(-8, -6), + Pack(2, 21), + Pack(2, 57), + Pack(64, 203), ], [ Pack(0, 0), - Pack(-38, -42), - Pack(-42, -26), - Pack(-15, 2), - Pack(18, 17), - Pack(21, 64), - Pack(135, 169), + Pack(-37, -42), + Pack(-39, -24), + Pack(-12, 3), + Pack(20, 17), + Pack(21, 62), + Pack(141, 164), ], [ Pack(0, 0), - Pack(-42, -45), - Pack(-36, -34), - Pack(-23, -2), - Pack(12, 27), - Pack(32, 72), - Pack(95, 168), + Pack(-40, -45), + Pack(-32, -33), + Pack(-17, -2), + Pack(14, 28), + Pack(34, 68), + Pack(102, 164), ], [ Pack(0, 0), - Pack(-41, -38), - Pack(-37, -23), - Pack(-21, -2), - Pack(18, 24), - Pack(36, 66), - Pack(122, 186), + Pack(-38, -38), + Pack(-34, -22), + Pack(-16, -1), + Pack(22, 23), + Pack(39, 59), + Pack(131, 179), ], [ Pack(0, 0), - Pack(-85, -14), - Pack(-44, -16), - Pack(-34, 5), - Pack(5, 28), - Pack(57, 60), - Pack(166, 155), + Pack(-82, -15), + Pack(-41, -14), + Pack(-30, 7), + Pack(8, 26), + Pack(58, 54), + Pack(166, 152), ], [ Pack(0, 0), - Pack(-51, -25), - Pack(-49, -16), - Pack(-32, 2), - Pack(6, 26), - Pack(45, 50), - Pack(148, 185), + Pack(-48, -26), + Pack(-46, -14), + Pack(-28, 5), + Pack(9, 25), + Pack(47, 45), + Pack(148, 182), ], [ Pack(0, 0), - Pack(-34, -37), - Pack(-67, -12), - Pack(-32, 0), - Pack(17, 21), - Pack(8, 59), - Pack(132, 179), + Pack(-33, -37), + Pack(-65, -9), + Pack(-30, 3), + Pack(19, 20), + Pack(8, 54), + Pack(136, 178), ], [ Pack(0, 0), - Pack(-53, -33), - Pack(-51, -18), - Pack(-26, -2), - Pack(18, 16), - Pack(22, 64), - Pack(100, 178), + Pack(-51, -34), + Pack(-49, -16), + Pack(-24, 1), + Pack(21, 15), + Pack(26, 58), + Pack(104, 177), ], [ Pack(0, 0), - Pack(-45, -31), - Pack(-51, -18), - Pack(-26, -1), - Pack(4, 26), - Pack(43, 61), - Pack(143, 157), + Pack(-43, -31), + Pack(-48, -16), + Pack(-24, 2), + Pack(8, 25), + Pack(47, 55), + Pack(148, 156), ], [ Pack(0, 0), - Pack(-53, -34), - Pack(-50, -13), - Pack(-36, 6), - Pack(15, 26), - Pack(55, 59), - Pack(149, 147), + Pack(-52, -34), + Pack(-46, -11), + Pack(-32, 8), + Pack(18, 25), + Pack(57, 55), + Pack(154, 146), ], [ Pack(0, 0), - Pack(-30, -35), - Pack(-54, -9), - Pack(-31, 7), - Pack(24, 24), - Pack(30, 62), - Pack(148, 153), + Pack(-28, -34), + Pack(-51, -7), + Pack(-27, 9), + Pack(27, 24), + Pack(33, 59), + Pack(151, 153), ], [ Pack(0, 0), - Pack(-106, -9), - Pack(-30, -20), - Pack(-44, 3), - Pack(-41, 38), - Pack(23, 68), - Pack(120, 173), + Pack(-103, -8), + Pack(-32, -16), + Pack(-39, 5), + Pack(-37, 36), + Pack(19, 63), + Pack(119, 171), ], [ Pack(0, 0), - Pack(-187, 4), - Pack(-98, -9), - Pack(-28, 5), - Pack(-89, 23), - Pack(99, 40), - Pack(270, 155), + Pack(-202, 7), + Pack(-95, -7), + Pack(-18, 6), + Pack(-84, 24), + Pack(114, 31), + Pack(205, 168), ], [ Pack(0, 0), - Pack(-44, -24), - Pack(-38, -15), - Pack(-43, -3), - Pack(31, 11), - Pack(98, 15), - Pack(344, 135), + Pack(-45, -22), + Pack(-59, -10), + Pack(-46, -0), + Pack(30, 12), + Pack(118, 4), + Pack(274, 148), ], [ Pack(0, 0), - Pack(-30, -39), - Pack(-74, -11), - Pack(60, -18), - Pack(58, 2), - Pack(140, 13), - Pack(351, 120), + Pack(-45, -36), + Pack(-90, -7), + Pack(51, -13), + Pack(41, 6), + Pack(192, -3), + Pack(290, 133), ], [ Pack(0, 0), - Pack(-13, -28), - Pack(-27, -23), - Pack(-0, -12), - Pack(86, 1), - Pack(59, 38), - Pack(240, 133), + Pack(-38, -23), + Pack(-41, -19), + Pack(-2, -8), + Pack(77, 3), + Pack(109, 21), + Pack(197, 143), ], [ Pack(0, 0), - Pack(-58, -26), - Pack(19, -34), - Pack(-18, -6), - Pack(-58, 24), - Pack(70, 29), - Pack(208, 129), + Pack(-67, -23), + Pack(19, -32), + Pack(-18, -3), + Pack(-41, 22), + Pack(116, 19), + Pack(186, 136), ], [ Pack(0, 0), - Pack(-96, -13), - Pack(-91, -11), - Pack(-99, 9), - Pack(5, 4), - Pack(156, 15), - Pack(254, 146), + Pack(-105, -11), + Pack(-83, -9), + Pack(-100, 12), + Pack(9, 4), + Pack(158, 8), + Pack(196, 158), ], [ Pack(0, 0), - Pack(-71, -16), - Pack(-29, -14), - Pack(-87, 15), - Pack(-85, 23), - Pack(-10, 59), - Pack(97, 213), + Pack(-90, -11), + Pack(-27, -11), + Pack(-78, 16), + Pack(-71, 22), + Pack(-3, 53), + Pack(69, 220), ], ]; @@ -6246,298 +6257,298 @@ public static class EvaluationParams [ [ Pack(0, 0), - Pack(-11, -7), - Pack(-2, 17), - Pack(-36, 29), - Pack(-36, 39), - Pack(-59, 77), - Pack(-54, 123), + Pack(-10, -6), + Pack(-3, 18), + Pack(-33, 28), + Pack(-37, 38), + Pack(-60, 76), + Pack(-48, 113), ], [ Pack(0, 0), - Pack(5, -9), - Pack(-6, 10), - Pack(-25, 20), - Pack(-18, 31), - Pack(7, 71), - Pack(-16, 122), + Pack(4, -6), + Pack(-7, 12), + Pack(-26, 21), + Pack(-19, 33), + Pack(7, 67), + Pack(-17, 118), ], [ Pack(0, 0), - Pack(10, -5), - Pack(-5, 0), + Pack(10, -3), + Pack(-6, 2), Pack(-30, 25), Pack(-23, 43), - Pack(-13, 106), - Pack(21, 79), + Pack(-10, 99), + Pack(27, 66), ], [ Pack(0, 0), - Pack(11, -7), - Pack(-31, 7), - Pack(-57, 27), - Pack(-72, 45), - Pack(-74, 117), - Pack(-44, 100), + Pack(11, -6), + Pack(-30, 8), + Pack(-57, 26), + Pack(-74, 46), + Pack(-67, 108), + Pack(-50, 96), ], [ Pack(0, 0), Pack(14, 6), Pack(6, 3), - Pack(-55, 28), - Pack(-42, 53), - Pack(-17, 88), - Pack(5, 74), + Pack(-55, 29), + Pack(-41, 51), + Pack(-16, 83), + Pack(11, 65), ], [ Pack(0, 0), - Pack(-8, 9), - Pack(-22, 2), - Pack(-45, 22), - Pack(-68, 44), - Pack(2, 61), - Pack(-48, 95), + Pack(-8, 10), + Pack(-25, 4), + Pack(-44, 22), + Pack(-68, 43), + Pack(-1, 60), + Pack(-43, 88), ], [ Pack(0, 0), - Pack(-6, 8), + Pack(-6, 9), Pack(-15, -1), Pack(-27, 16), - Pack(-28, 38), - Pack(-5, 73), - Pack(21, 93), + Pack(-27, 38), + Pack(-6, 72), + Pack(22, 90), ], [ Pack(0, 0), - Pack(-14, 21), - Pack(-15, 0), - Pack(-23, 12), - Pack(-28, 37), - Pack(-22, 92), - Pack(-12, 93), + Pack(-14, 22), + Pack(-15, 1), + Pack(-22, 12), + Pack(-29, 37), + Pack(-25, 92), + Pack(-10, 89), ], [ Pack(0, 0), - Pack(-7, 1), - Pack(-31, 17), - Pack(-42, 36), - Pack(-49, 53), - Pack(-73, 103), - Pack(52, 112), + Pack(-8, 2), + Pack(-30, 16), + Pack(-43, 37), + Pack(-52, 55), + Pack(-77, 105), + Pack(44, 110), ], [ Pack(0, 0), - Pack(-8, -2), - Pack(-52, 12), - Pack(-57, 35), - Pack(-88, 59), - Pack(-95, 117), - Pack(-5, 89), + Pack(-9, -1), + Pack(-50, 12), + Pack(-56, 34), + Pack(-91, 60), + Pack(-100, 117), + Pack(1, 83), ], [ Pack(0, 0), - Pack(-18, 5), + Pack(-17, 5), Pack(-32, 12), Pack(-84, 40), - Pack(-79, 56), - Pack(-62, 100), - Pack(25, 77), + Pack(-81, 57), + Pack(-68, 100), + Pack(24, 73), ], [ Pack(0, 0), - Pack(-26, 7), - Pack(-44, 12), - Pack(-76, 37), - Pack(-77, 51), - Pack(-58, 88), - Pack(66, 62), + Pack(-27, 8), + Pack(-46, 13), + Pack(-78, 37), + Pack(-79, 53), + Pack(-67, 90), + Pack(70, 58), ], [ Pack(0, 0), - Pack(-35, 13), + Pack(-36, 14), Pack(-25, 9), - Pack(-66, 33), - Pack(-54, 41), - Pack(-59, 73), - Pack(12, 69), + Pack(-66, 32), + Pack(-57, 42), + Pack(-65, 76), + Pack(11, 65), ], [ Pack(0, 0), - Pack(-26, 13), + Pack(-24, 13), Pack(-27, 4), Pack(-36, 24), - Pack(-52, 43), - Pack(-22, 74), - Pack(27, 69), + Pack(-54, 45), + Pack(-26, 76), + Pack(28, 66), ], [ Pack(0, 0), - Pack(-56, 12), - Pack(-23, 1), - Pack(-30, 19), - Pack(-50, 41), - Pack(-24, 69), - Pack(28, 74), + Pack(-55, 11), + Pack(-22, -0), + Pack(-31, 19), + Pack(-51, 42), + Pack(-28, 70), + Pack(36, 69), ], [ Pack(0, 0), - Pack(-27, 5), - Pack(-35, 21), - Pack(-25, 41), - Pack(-47, 62), - Pack(-84, 112), - Pack(-61, 132), + Pack(-28, 5), + Pack(-30, 20), + Pack(-28, 41), + Pack(-53, 64), + Pack(-89, 115), + Pack(-51, 127), ], [ Pack(0, 0), - Pack(113, -23), - Pack(114, -7), - Pack(-29, 42), - Pack(-32, 77), - Pack(-225, 138), - Pack(-240, 153), + Pack(110, -23), + Pack(120, -8), + Pack(-35, 44), + Pack(-28, 79), + Pack(-223, 146), + Pack(-149, 139), ], [ Pack(0, 0), - Pack(-70, 10), - Pack(50, -15), - Pack(17, 37), - Pack(-52, 70), - Pack(-175, 143), - Pack(-228, 149), + Pack(-58, 9), + Pack(68, -18), + Pack(26, 37), + Pack(-54, 74), + Pack(-184, 153), + Pack(-146, 140), ], [ Pack(0, 0), - Pack(-35, 17), - Pack(5, 4), - Pack(-61, 46), - Pack(-60, 65), - Pack(-324, 150), - Pack(-214, 137), + Pack(-16, 14), + Pack(12, 3), + Pack(-49, 45), + Pack(-51, 69), + Pack(-325, 160), + Pack(-129, 127), ], [ Pack(0, 0), - Pack(-101, 28), - Pack(31, 7), - Pack(-45, 34), - Pack(-142, 76), - Pack(-204, 118), - Pack(-158, 121), + Pack(-80, 25), + Pack(45, 4), + Pack(-38, 33), + Pack(-148, 80), + Pack(-206, 128), + Pack(-91, 113), ], [ Pack(0, 0), - Pack(-12, 12), - Pack(30, 14), - Pack(-50, 37), - Pack(-71, 62), - Pack(-225, 128), - Pack(-117, 124), + Pack(-2, 10), + Pack(36, 13), + Pack(-45, 37), + Pack(-81, 67), + Pack(-230, 136), + Pack(-71, 119), ], [ Pack(0, 0), - Pack(-28, 0), - Pack(80, -9), - Pack(39, 18), - Pack(-98, 72), - Pack(-247, 124), - Pack(-194, 122), + Pack(-25, 0), + Pack(76, -9), + Pack(44, 17), + Pack(-99, 74), + Pack(-251, 133), + Pack(-114, 112), ], [ Pack(0, 0), - Pack(13, -10), - Pack(-50, 1), - Pack(-34, 17), - Pack(-2, 57), - Pack(-213, 107), - Pack(-20, 61), + Pack(26, -12), + Pack(-50, 0), + Pack(-51, 20), + Pack(-19, 62), + Pack(-228, 110), + Pack(-16, 59), ], ]; public static readonly TaperedEvaluationTermByRank FriendlyKingDistanceToPassedPawnBonus = [ Pack(0, 0), - Pack(31, 36), - Pack(13, 31), - Pack(4, 19), - Pack(5, 13), - Pack(14, 11), - Pack(20, 11), - Pack(27, 2) + Pack(30, 37), + Pack(12, 31), + Pack(3, 19), + Pack(4, 13), + Pack(13, 11), + Pack(17, 10), + Pack(25, 1) ]; public static readonly TaperedEvaluationTermByRank EnemyKingDistanceToPassedPawnPenalty = [ Pack(0, 0), - Pack(-43, -24), - Pack(-9, 8), - Pack(8, 17), - Pack(16, 26), - Pack(28, 34), - Pack(28, 46), - Pack(36, 50) + Pack(-44, -22), + Pack(-9, 6), + Pack(6, 17), + Pack(15, 26), + Pack(26, 34), + Pack(26, 46), + Pack(33, 50) ]; public static readonly TaperedEvaluationTermByCount27 VirtualKingMobilityBonus = [ - Pack(23, -24), - Pack(23, -9), - Pack(19, -9), - Pack(18, -14), - Pack(15, -13), - Pack(13, -12), - Pack(11, -10), - Pack(8, -10), + Pack(24, -22), + Pack(25, -9), + Pack(21, -8), + Pack(20, -13), + Pack(16, -12), + Pack(15, -11), + Pack(12, -9), + Pack(9, -9), Pack(10, -6), - Pack(1, 0), - Pack(-8, 4), - Pack(-18, 8), - Pack(-27, 10), - Pack(-39, 14), - Pack(-45, 16), - Pack(-57, 17), - Pack(-57, 16), - Pack(-63, 16), - Pack(-49, 11), - Pack(-41, 8), - Pack(-51, 8), - Pack(-36, 3), - Pack(-38, 2), - Pack(-36, -1), - Pack(-23, -7), - Pack(13, -13), - Pack(14, -24), - Pack(43, -18) + Pack(1, 1), + Pack(-7, 5), + Pack(-16, 8), + Pack(-26, 10), + Pack(-38, 13), + Pack(-43, 15), + Pack(-54, 16), + Pack(-55, 15), + Pack(-61, 15), + Pack(-47, 9), + Pack(-40, 7), + Pack(-50, 7), + Pack(-36, 2), + Pack(-40, 1), + Pack(-39, -2), + Pack(-28, -7), + Pack(7, -14), + Pack(5, -24), + Pack(28, -17) ]; public static readonly TaperedEvaluationTermByCount8 KnightMobilityBonus = [ Pack(0, 0), Pack(19, 60), - Pack(30, 94), - Pack(37, 110), - Pack(45, 122), - Pack(51, 135), - Pack(60, 136), - Pack(68, 134), - Pack(77, 121) + Pack(30, 93), + Pack(38, 108), + Pack(45, 121), + Pack(51, 133), + Pack(60, 134), + Pack(67, 132), + Pack(76, 120) ]; public static readonly TaperedEvaluationTermByCount14 BishopMobilityBonus = [ Pack(0, 0), - Pack(11, 34), - Pack(22, 62), - Pack(29, 83), - Pack(37, 97), - Pack(43, 110), - Pack(49, 117), - Pack(52, 120), - Pack(55, 126), - Pack(61, 126), - Pack(68, 125), - Pack(77, 126), - Pack(83, 133), - Pack(75, 119), + Pack(11, 35), + Pack(22, 61), + Pack(30, 82), + Pack(38, 96), + Pack(44, 110), + Pack(50, 116), + Pack(54, 120), + Pack(57, 126), + Pack(64, 126), + Pack(71, 126), + Pack(80, 127), + Pack(85, 137), + Pack(78, 121), Pack(0, 0) ]; @@ -6546,50 +6557,50 @@ public static class EvaluationParams Pack(0, 0), Pack(11, 23), Pack(15, 31), - Pack(20, 37), - Pack(20, 46), - Pack(27, 53), - Pack(29, 61), - Pack(33, 64), - Pack(37, 70), - Pack(39, 76), - Pack(42, 80), - Pack(45, 83), - Pack(54, 85), - Pack(65, 77), - Pack(85, 69) + Pack(20, 36), + Pack(20, 45), + Pack(26, 52), + Pack(29, 60), + Pack(32, 63), + Pack(36, 69), + Pack(39, 74), + Pack(42, 79), + Pack(45, 82), + Pack(54, 84), + Pack(64, 76), + Pack(85, 68) ]; public static readonly TaperedEvaluationTermByCount27 QueenMobilityBonus = [ Pack(0, 0), Pack(0, 169), - Pack(-4, 272), - Pack(-0, 306), - Pack(3, 326), - Pack(7, 341), - Pack(10, 362), - Pack(12, 377), - Pack(16, 387), - Pack(18, 394), - Pack(21, 404), - Pack(25, 411), - Pack(28, 417), - Pack(29, 427), - Pack(30, 434), - Pack(32, 441), - Pack(32, 453), - Pack(38, 451), - Pack(43, 454), - Pack(58, 448), - Pack(60, 450), - Pack(99, 431), - Pack(102, 431), - Pack(111, 423), - Pack(196, 387), - Pack(247, 346), - Pack(308, 328), - Pack(131, 400) + Pack(-4, 271), + Pack(0, 307), + Pack(3, 327), + Pack(7, 343), + Pack(10, 364), + Pack(12, 379), + Pack(16, 388), + Pack(19, 395), + Pack(21, 405), + Pack(25, 412), + Pack(28, 418), + Pack(29, 428), + Pack(32, 434), + Pack(33, 441), + Pack(34, 452), + Pack(40, 449), + Pack(47, 451), + Pack(63, 444), + Pack(65, 444), + Pack(110, 422), + Pack(113, 422), + Pack(124, 411), + Pack(213, 374), + Pack(286, 318), + Pack(225, 368), + Pack(77, 421) ]; }