1 /* 2 * Copyright (c) 2022 Samsung Electronics Co., Ltd. 3 * All Rights Reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are met: 7 * 8 * - Redistributions of source code must retain the above copyright notice, 9 * this list of conditions and the following disclaimer. 10 * 11 * - Redistributions in binary form must reproduce the above copyright notice, 12 * this list of conditions and the following disclaimer in the documentation 13 * and/or other materials provided with the distribution. 14 * 15 * - Neither the name of the copyright owner, nor the names of its contributors 16 * may be used to endorse or promote products derived from this software 17 * without specific prior written permission. 18 * 19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 * ARE DISCLAIMED.IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 23 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24 * CONSEQUENTIAL DAMAGES(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29 * POSSIBILITY OF SUCH DAMAGE. 30 */ 31 32 #include "oapv_def.h" 33 34 #define NA 255 //never split 35 #define NB 14 //not reach in current setting of max AR 1:4 36 #define NC 15 //not reach in current setting of max AR 1:4 37 38 // clang-format off 39 const u8 oapv_tbl_log2[257] = { 40 /* 0, 1 */ 41 0, 0, 42 /* 2, 3 */ 43 1, 1, 44 /* 4 ~ 7 */ 45 2, 2, 2, 2, 46 /* 8 ~ 15 */ 47 3, 3, 3, 3, 3, 3, 3, 3, 48 /* 16 ~ 31 */ 49 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 50 /* 31 ~ 63 */ 51 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 52 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 53 /* 64 ~ 127 */ 54 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 55 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 56 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 57 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 58 /* 128 ~ 255 */ 59 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 60 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 61 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 62 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 63 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 64 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 65 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 66 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 67 /* 256 */ 68 8 69 }; 70 71 const s8 oapv_tbl_tm8[8][8] = { 72 { 64, 64, 64, 64, 64, 64, 64, 64}, 73 { 89, 75, 50, 18,-18,-50,-75,-89}, 74 { 84, 35,-35,-84,-84,-35, 35, 84}, 75 { 75,-18,-89,-50, 50, 89, 18,-75}, 76 { 64,-64,-64, 64, 64,-64,-64, 64}, 77 { 50,-89, 18, 75,-75,-18, 89,-50}, 78 { 35,-84, 84,-35,-35, 84,-84, 35}, 79 { 18,-50, 75,-89, 89,-75, 50,-18} 80 }; 81 82 const int oapv_tbl_dq_scale[6] = {40, 45, 51, 57, 64, 71}; 83 84 const u16 oapv_tbl_scan[OAPV_BLK_D] = { 85 0, 1, 8, 16, 9, 2, 3, 10, 86 17, 24, 32, 25, 18, 11, 4, 5, 87 12, 19, 26, 33, 40, 48, 41, 34, 88 27, 20, 13, 6, 7, 14, 21, 28, 89 35, 42, 49, 56, 57, 50, 43, 36, 90 29, 22, 15, 23, 30, 37, 44, 51, 91 58, 59, 52, 45, 38, 31, 39, 46, 92 53, 60, 61, 54, 47, 55, 62, 63 93 }; 94 95 const u32 CODE_LUT_100[100][5][2] = { 96 {{ 2147483648, 1}, { 2147483648, 2}, { 2147483648, 3}, { 2147483648, 4}, { 2147483648, 5}}, 97 {{ 0, 2}, { 3221225472, 2}, { 2684354560, 3}, { 2415919104, 4}, { 2281701376, 5}}, 98 {{ 1610612736, 3}, { 0, 3}, { 3221225472, 3}, { 2684354560, 4}, { 2415919104, 5}}, 99 {{ 1342177280, 5}, { 536870912, 3}, { 3758096384, 3}, { 2952790016, 4}, { 2550136832, 5}}, 100 {{ 1476395008, 5}, { 1610612736, 4}, { 0, 4}, { 3221225472, 4}, { 2684354560, 5}}, 101 {{ 1207959552, 7}, { 1879048192, 4}, { 268435456, 4}, { 3489660928, 4}, { 2818572288, 5}}, 102 {{ 1241513984, 7}, { 1342177280, 6}, { 536870912, 4}, { 3758096384, 4}, { 2952790016, 5}}, 103 {{ 1275068416, 7}, { 1409286144, 6}, { 805306368, 4}, { 4026531840, 4}, { 3087007744, 5}}, 104 {{ 1308622848, 7}, { 1476395008, 6}, { 1610612736, 5}, { 0, 5}, { 3221225472, 5}}, 105 {{ 1140850688, 9}, { 1543503872, 6}, { 1744830464, 5}, { 134217728, 5}, { 3355443200, 5}}, 106 {{ 1149239296, 9}, { 1207959552, 8}, { 1879048192, 5}, { 268435456, 5}, { 3489660928, 5}}, 107 {{ 1157627904, 9}, { 1224736768, 8}, { 2013265920, 5}, { 402653184, 5}, { 3623878656, 5}}, 108 {{ 1166016512, 9}, { 1241513984, 8}, { 1342177280, 7}, { 536870912, 5}, { 3758096384, 5}}, 109 {{ 1174405120, 9}, { 1258291200, 8}, { 1375731712, 7}, { 671088640, 5}, { 3892314112, 5}}, 110 {{ 1182793728, 9}, { 1275068416, 8}, { 1409286144, 7}, { 805306368, 5}, { 4026531840, 5}}, 111 {{ 1191182336, 9}, { 1291845632, 8}, { 1442840576, 7}, { 939524096, 5}, { 4160749568, 5}}, 112 {{ 1199570944, 9}, { 1308622848, 8}, { 1476395008, 7}, { 1610612736, 6}, { 0, 6}}, 113 {{ 1107296256, 11}, { 1325400064, 8}, { 1509949440, 7}, { 1677721600, 6}, { 67108864, 6}}, 114 {{ 1109393408, 11}, { 1140850688, 10}, { 1543503872, 7}, { 1744830464, 6}, { 134217728, 6}}, 115 {{ 1111490560, 11}, { 1145044992, 10}, { 1577058304, 7}, { 1811939328, 6}, { 201326592, 6}}, 116 {{ 1113587712, 11}, { 1149239296, 10}, { 1207959552, 9}, { 1879048192, 6}, { 268435456, 6}}, 117 {{ 1115684864, 11}, { 1153433600, 10}, { 1216348160, 9}, { 1946157056, 6}, { 335544320, 6}}, 118 {{ 1117782016, 11}, { 1157627904, 10}, { 1224736768, 9}, { 2013265920, 6}, { 402653184, 6}}, 119 {{ 1119879168, 11}, { 1161822208, 10}, { 1233125376, 9}, { 2080374784, 6}, { 469762048, 6}}, 120 {{ 1121976320, 11}, { 1166016512, 10}, { 1241513984, 9}, { 1342177280, 8}, { 536870912, 6}}, 121 {{ 1124073472, 11}, { 1170210816, 10}, { 1249902592, 9}, { 1358954496, 8}, { 603979776, 6}}, 122 {{ 1126170624, 11}, { 1174405120, 10}, { 1258291200, 9}, { 1375731712, 8}, { 671088640, 6}}, 123 {{ 1128267776, 11}, { 1178599424, 10}, { 1266679808, 9}, { 1392508928, 8}, { 738197504, 6}}, 124 {{ 1130364928, 11}, { 1182793728, 10}, { 1275068416, 9}, { 1409286144, 8}, { 805306368, 6}}, 125 {{ 1132462080, 11}, { 1186988032, 10}, { 1283457024, 9}, { 1426063360, 8}, { 872415232, 6}}, 126 {{ 1134559232, 11}, { 1191182336, 10}, { 1291845632, 9}, { 1442840576, 8}, { 939524096, 6}}, 127 {{ 1136656384, 11}, { 1195376640, 10}, { 1300234240, 9}, { 1459617792, 8}, { 1006632960, 6}}, 128 {{ 1138753536, 11}, { 1199570944, 10}, { 1308622848, 9}, { 1476395008, 8}, { 1610612736, 7}}, 129 {{ 1090519040, 13}, { 1203765248, 10}, { 1317011456, 9}, { 1493172224, 8}, { 1644167168, 7}}, 130 {{ 1091043328, 13}, { 1107296256, 12}, { 1325400064, 9}, { 1509949440, 8}, { 1677721600, 7}}, 131 {{ 1091567616, 13}, { 1108344832, 12}, { 1333788672, 9}, { 1526726656, 8}, { 1711276032, 7}}, 132 {{ 1092091904, 13}, { 1109393408, 12}, { 1140850688, 11}, { 1543503872, 8}, { 1744830464, 7}}, 133 {{ 1092616192, 13}, { 1110441984, 12}, { 1142947840, 11}, { 1560281088, 8}, { 1778384896, 7}}, 134 {{ 1093140480, 13}, { 1111490560, 12}, { 1145044992, 11}, { 1577058304, 8}, { 1811939328, 7}}, 135 {{ 1093664768, 13}, { 1112539136, 12}, { 1147142144, 11}, { 1593835520, 8}, { 1845493760, 7}}, 136 {{ 1094189056, 13}, { 1113587712, 12}, { 1149239296, 11}, { 1207959552, 10}, { 1879048192, 7}}, 137 {{ 1094713344, 13}, { 1114636288, 12}, { 1151336448, 11}, { 1212153856, 10}, { 1912602624, 7}}, 138 {{ 1095237632, 13}, { 1115684864, 12}, { 1153433600, 11}, { 1216348160, 10}, { 1946157056, 7}}, 139 {{ 1095761920, 13}, { 1116733440, 12}, { 1155530752, 11}, { 1220542464, 10}, { 1979711488, 7}}, 140 {{ 1096286208, 13}, { 1117782016, 12}, { 1157627904, 11}, { 1224736768, 10}, { 2013265920, 7}}, 141 {{ 1096810496, 13}, { 1118830592, 12}, { 1159725056, 11}, { 1228931072, 10}, { 2046820352, 7}}, 142 {{ 1097334784, 13}, { 1119879168, 12}, { 1161822208, 11}, { 1233125376, 10}, { 2080374784, 7}}, 143 {{ 1097859072, 13}, { 1120927744, 12}, { 1163919360, 11}, { 1237319680, 10}, { 2113929216, 7}}, 144 {{ 1098383360, 13}, { 1121976320, 12}, { 1166016512, 11}, { 1241513984, 10}, { 1342177280, 9}}, 145 {{ 1098907648, 13}, { 1123024896, 12}, { 1168113664, 11}, { 1245708288, 10}, { 1350565888, 9}}, 146 {{ 1099431936, 13}, { 1124073472, 12}, { 1170210816, 11}, { 1249902592, 10}, { 1358954496, 9}}, 147 {{ 1099956224, 13}, { 1125122048, 12}, { 1172307968, 11}, { 1254096896, 10}, { 1367343104, 9}}, 148 {{ 1100480512, 13}, { 1126170624, 12}, { 1174405120, 11}, { 1258291200, 10}, { 1375731712, 9}}, 149 {{ 1101004800, 13}, { 1127219200, 12}, { 1176502272, 11}, { 1262485504, 10}, { 1384120320, 9}}, 150 {{ 1101529088, 13}, { 1128267776, 12}, { 1178599424, 11}, { 1266679808, 10}, { 1392508928, 9}}, 151 {{ 1102053376, 13}, { 1129316352, 12}, { 1180696576, 11}, { 1270874112, 10}, { 1400897536, 9}}, 152 {{ 1102577664, 13}, { 1130364928, 12}, { 1182793728, 11}, { 1275068416, 10}, { 1409286144, 9}}, 153 {{ 1103101952, 13}, { 1131413504, 12}, { 1184890880, 11}, { 1279262720, 10}, { 1417674752, 9}}, 154 {{ 1103626240, 13}, { 1132462080, 12}, { 1186988032, 11}, { 1283457024, 10}, { 1426063360, 9}}, 155 {{ 1104150528, 13}, { 1133510656, 12}, { 1189085184, 11}, { 1287651328, 10}, { 1434451968, 9}}, 156 {{ 1104674816, 13}, { 1134559232, 12}, { 1191182336, 11}, { 1291845632, 10}, { 1442840576, 9}}, 157 {{ 1105199104, 13}, { 1135607808, 12}, { 1193279488, 11}, { 1296039936, 10}, { 1451229184, 9}}, 158 {{ 1105723392, 13}, { 1136656384, 12}, { 1195376640, 11}, { 1300234240, 10}, { 1459617792, 9}}, 159 {{ 1106247680, 13}, { 1137704960, 12}, { 1197473792, 11}, { 1304428544, 10}, { 1468006400, 9}}, 160 {{ 1106771968, 13}, { 1138753536, 12}, { 1199570944, 11}, { 1308622848, 10}, { 1476395008, 9}}, 161 {{ 1082130432, 15}, { 1139802112, 12}, { 1201668096, 11}, { 1312817152, 10}, { 1484783616, 9}}, 162 {{ 1082261504, 15}, { 1090519040, 14}, { 1203765248, 11}, { 1317011456, 10}, { 1493172224, 9}}, 163 {{ 1082392576, 15}, { 1090781184, 14}, { 1205862400, 11}, { 1321205760, 10}, { 1501560832, 9}}, 164 {{ 1082523648, 15}, { 1091043328, 14}, { 1107296256, 13}, { 1325400064, 10}, { 1509949440, 9}}, 165 {{ 1082654720, 15}, { 1091305472, 14}, { 1107820544, 13}, { 1329594368, 10}, { 1518338048, 9}}, 166 {{ 1082785792, 15}, { 1091567616, 14}, { 1108344832, 13}, { 1333788672, 10}, { 1526726656, 9}}, 167 {{ 1082916864, 15}, { 1091829760, 14}, { 1108869120, 13}, { 1337982976, 10}, { 1535115264, 9}}, 168 {{ 1083047936, 15}, { 1092091904, 14}, { 1109393408, 13}, { 1140850688, 12}, { 1543503872, 9}}, 169 {{ 1083179008, 15}, { 1092354048, 14}, { 1109917696, 13}, { 1141899264, 12}, { 1551892480, 9}}, 170 {{ 1083310080, 15}, { 1092616192, 14}, { 1110441984, 13}, { 1142947840, 12}, { 1560281088, 9}}, 171 {{ 1083441152, 15}, { 1092878336, 14}, { 1110966272, 13}, { 1143996416, 12}, { 1568669696, 9}}, 172 {{ 1083572224, 15}, { 1093140480, 14}, { 1111490560, 13}, { 1145044992, 12}, { 1577058304, 9}}, 173 {{ 1083703296, 15}, { 1093402624, 14}, { 1112014848, 13}, { 1146093568, 12}, { 1585446912, 9}}, 174 {{ 1083834368, 15}, { 1093664768, 14}, { 1112539136, 13}, { 1147142144, 12}, { 1593835520, 9}}, 175 {{ 1083965440, 15}, { 1093926912, 14}, { 1113063424, 13}, { 1148190720, 12}, { 1602224128, 9}}, 176 {{ 1084096512, 15}, { 1094189056, 14}, { 1113587712, 13}, { 1149239296, 12}, { 1207959552, 11}}, 177 {{ 1084227584, 15}, { 1094451200, 14}, { 1114112000, 13}, { 1150287872, 12}, { 1210056704, 11}}, 178 {{ 1084358656, 15}, { 1094713344, 14}, { 1114636288, 13}, { 1151336448, 12}, { 1212153856, 11}}, 179 {{ 1084489728, 15}, { 1094975488, 14}, { 1115160576, 13}, { 1152385024, 12}, { 1214251008, 11}}, 180 {{ 1084620800, 15}, { 1095237632, 14}, { 1115684864, 13}, { 1153433600, 12}, { 1216348160, 11}}, 181 {{ 1084751872, 15}, { 1095499776, 14}, { 1116209152, 13}, { 1154482176, 12}, { 1218445312, 11}}, 182 {{ 1084882944, 15}, { 1095761920, 14}, { 1116733440, 13}, { 1155530752, 12}, { 1220542464, 11}}, 183 {{ 1085014016, 15}, { 1096024064, 14}, { 1117257728, 13}, { 1156579328, 12}, { 1222639616, 11}}, 184 {{ 1085145088, 15}, { 1096286208, 14}, { 1117782016, 13}, { 1157627904, 12}, { 1224736768, 11}}, 185 {{ 1085276160, 15}, { 1096548352, 14}, { 1118306304, 13}, { 1158676480, 12}, { 1226833920, 11}}, 186 {{ 1085407232, 15}, { 1096810496, 14}, { 1118830592, 13}, { 1159725056, 12}, { 1228931072, 11}}, 187 {{ 1085538304, 15}, { 1097072640, 14}, { 1119354880, 13}, { 1160773632, 12}, { 1231028224, 11}}, 188 {{ 1085669376, 15}, { 1097334784, 14}, { 1119879168, 13}, { 1161822208, 12}, { 1233125376, 11}}, 189 {{ 1085800448, 15}, { 1097596928, 14}, { 1120403456, 13}, { 1162870784, 12}, { 1235222528, 11}}, 190 {{ 1085931520, 15}, { 1097859072, 14}, { 1120927744, 13}, { 1163919360, 12}, { 1237319680, 11}}, 191 {{ 1086062592, 15}, { 1098121216, 14}, { 1121452032, 13}, { 1164967936, 12}, { 1239416832, 11}}, 192 {{ 1086193664, 15}, { 1098383360, 14}, { 1121976320, 13}, { 1166016512, 12}, { 1241513984, 11}}, 193 {{ 1086324736, 15}, { 1098645504, 14}, { 1122500608, 13}, { 1167065088, 12}, { 1243611136, 11}}, 194 {{ 1086455808, 15}, { 1098907648, 14}, { 1123024896, 13}, { 1168113664, 12}, { 1245708288, 11}}, 195 {{ 1086586880, 15}, { 1099169792, 14}, { 1123549184, 13}, { 1169162240, 12}, { 1247805440, 11}} 196 }; 197 198 int oapv_itrans_diff[64][64] = { 199 { 200 16019, 16019, 16019, 16019, 16019, 16019, 16019, 16019, 201 16748, 16748, 16748, 16748, 16748, 16748, 16748, 16748, 202 16748, 16748, 16748, 16748, 16748, 16748, 16748, 16748, 203 16748, 16748, 16748, 16748, 16748, 16748, 16748, 16748, 204 16019, 16019, 16019, 16019, 16019, 16019, 16019, 16019, 205 16019, 16019, 16019, 16019, 16019, 16019, 16019, 16019, 206 16019, 16019, 16019, 16019, 16019, 16019, 16019, 16019, 207 16748, 16748, 16748, 16748, 16748, 16748, 16748, 16748 208 }, 209 { 210 23290, 19626, 13084, 4710, -4710, -13084, -19626, -23290, 211 22277, 18773, 12515, 4505, -4505, -12515, -18773, -22277, 212 23290, 19626, 13084, 4710, -4710, -13084, -19626, -23290, 213 23290, 19626, 13084, 4710, -4710, -13084, -19626, -23290, 214 22277, 18773, 12515, 4505, -4505, -12515, -18773, -22277, 215 22277, 18773, 12515, 4505, -4505, -12515, -18773, -22277, 216 22277, 18773, 12515, 4505, -4505, -12515, -18773, -22277, 217 22277, 18773, 12515, 4505, -4505, -12515, -18773, -22277 218 }, 219 { 220 22573, 22573, 22573, 22573, 22573, 22573, 22573, 22573, 221 19660, 19660, 19660, 19660, 19660, 19660, 19660, 19660, 222 13107, 13107, 13107, 13107, 13107, 13107, 13107, 13107, 223 5097, 5097, 5097, 5097, 5097, 5097, 5097, 5097, 224 -5097, -5097, -5097, -5097, -5097, -5097, -5097, -5097, 225 -13107, -13107, -13107, -13107, -13107, -13107, -13107, -13107, 226 -19660, -19660, -19660, -19660, -19660, -19660, -19660, -19660, 227 -22573, -22573, -22573, -22573, -22573, -22573, -22573, -22573 228 }, 229 { 230 21117, 21117, 21117, 21117, 21117, 21117, 21117, 21117, 231 9466, 9466, 9466, 9466, 9466, 9466, 9466, 9466, 232 -8738, -8738, -8738, -8738, -8738, -8738, -8738, -8738, 233 -21117, -21117, -21117, -21117, -21117, -21117, -21117, -21117, 234 -21845, -21845, -21845, -21845, -21845, -21845, -21845, -21845, 235 -9466, -9466, -9466, -9466, -9466, -9466, -9466, -9466, 236 8738, 8738, 8738, 8738, 8738, 8738, 8738, 8738, 237 21845, 21845, 21845, 21845, 21845, 21845, 21845, 21845 238 }, 239 { 240 32403, 27306, 18204, 6553, -6553, -18204, -27306, -32403, 241 26328, 22186, 14791, 5324, -5324, -14791, -22186, -26328, 242 18227, 15360, 10240, 3686, -3686, -10240, -15360, -18227, 243 6075, 5120, 3413, 1228, -1228, -3413, -5120, -6075, 244 -6075, -5120, -3413, -1228, 1228, 3413, 5120, 6075, 245 -18227, -15360, -10240, -3686, 3686, 10240, 15360, 18227, 246 -26328, -22186, -14791, -5324, 5324, 14791, 22186, 26328, 247 -32403, -27306, -18204, -6553, 6553, 18204, 27306, 32403 248 }, 249 { 250 21981, 9159, -9159, -21981, -21981, -9159, 9159, 21981, 251 21026, 8760, -8760, -21026, -21026, -8760, 8760, 21026, 252 21026, 8760, -8760, -21026, -21026, -8760, 8760, 21026, 253 21026, 8760, -8760, -21026, -21026, -8760, 8760, 21026, 254 21026, 8760, -8760, -21026, -21026, -8760, 8760, 21026, 255 21981, 9159, -9159, -21981, -21981, -9159, 9159, 21981, 256 21981, 9159, -9159, -21981, -21981, -9159, 9159, 21981, 257 21981, 9159, -9159, -21981, -21981, -9159, 9159, 21981 258 }, 259 { 260 18773, -4505, -22277, -12515, 12515, 22277, 4505, -18773, 261 18773, -4505, -22277, -12515, 12515, 22277, 4505, -18773, 262 19626, -4710, -23290, -13084, 13084, 23290, 4710, -19626, 263 18773, -4505, -22277, -12515, 12515, 22277, 4505, -18773, 264 18773, -4505, -22277, -12515, 12515, 22277, 4505, -18773, 265 19626, -4710, -23290, -13084, 13084, 23290, 4710, -19626, 266 18773, -4505, -22277, -12515, 12515, 22277, 4505, -18773, 267 19626, -4710, -23290, -13084, 13084, 23290, 4710, -19626 268 }, 269 { 270 30583, 12743, -12743, -30583, -30583, -12743, 12743, 30583, 271 24849, 10353, -10353, -24849, -24849, -10353, 10353, 24849, 272 16247, 6769, -6769, -16247, -16247, -6769, 6769, 16247, 273 5734, 2389, -2389, -5734, -5734, -2389, 2389, 5734, 274 -6690, -2787, 2787, 6690, 6690, 2787, -2787, -6690, 275 -16247, -6769, 6769, 16247, 16247, 6769, -6769, -16247, 276 -24849, -10353, 10353, 24849, 24849, 10353, -10353, -24849, 277 -29627, -12344, 12344, 29627, 29627, 12344, -12344, -29627 278 }, 279 { 280 30378, 25600, 17066, 6144, -6144, -17066, -25600, -30378, 281 12151, 10240, 6826, 2457, -2457, -6826, -10240, -12151, 282 -12151, -10240, -6826, -2457, 2457, 6826, 10240, 12151, 283 -29366, -24746, -16497, -5939, 5939, 16497, 24746, 29366, 284 -30378, -25600, -17066, -6144, 6144, 17066, 25600, 30378, 285 -13164, -11093, -7395, -2662, 2662, 7395, 11093, 13164, 286 12151, 10240, 6826, 2457, -2457, -6826, -10240, -12151, 287 29366, 24746, 16497, 5939, -5939, -16497, -24746, -29366 288 }, 289 { 290 18932, 18932, 18932, 18932, 18932, 18932, 18932, 18932, 291 -4369, -4369, -4369, -4369, -4369, -4369, -4369, -4369, 292 -22573, -22573, -22573, -22573, -22573, -22573, -22573, -22573, 293 -12379, -12379, -12379, -12379, -12379, -12379, -12379, -12379, 294 12379, 12379, 12379, 12379, 12379, 12379, 12379, 12379, 295 22573, 22573, 22573, 22573, 22573, 22573, 22573, 22573, 296 4369, 4369, 4369, 4369, 4369, 4369, 4369, 4369, 297 -18932, -18932, -18932, -18932, -18932, -18932, -18932, -18932 298 }, 299 { 300 16019, 16019, 16019, 16019, 16019, 16019, 16019, 16019, 301 -16019, -16019, -16019, -16019, -16019, -16019, -16019, -16019, 302 -16019, -16019, -16019, -16019, -16019, -16019, -16019, -16019, 303 16748, 16748, 16748, 16748, 16748, 16748, 16748, 16748, 304 16019, 16019, 16019, 16019, 16019, 16019, 16019, 16019, 305 -16748, -16748, -16748, -16748, -16748, -16748, -16748, -16748, 306 -16748, -16748, -16748, -16748, -16748, -16748, -16748, -16748, 307 16748, 16748, 16748, 16748, 16748, 16748, 16748, 16748 308 }, 309 { 310 27340, 23040, 15360, 5529, -5529, -15360, -23040, -27340, 311 -6075, -5120, -3413, -1228, 1228, 3413, 5120, 6075, 312 -31391, -26453, -17635, -6348, 6348, 17635, 26453, 31391, 313 -17214, -14506, -9671, -3481, 3481, 9671, 14506, 17214, 314 17214, 14506, 9671, 3481, -3481, -9671, -14506, -17214, 315 31391, 26453, 17635, 6348, -6348, -17635, -26453, -31391, 316 6075, 5120, 3413, 1228, -1228, -3413, -5120, -6075, 317 -27340, -23040, -15360, -5529, 5529, 15360, 23040, 27340 318 }, 319 { 320 28672, 11946, -11946, -28672, -28672, -11946, 11946, 28672, 321 11468, 4778, -4778, -11468, -11468, -4778, 4778, 11468, 322 -12424, -5176, 5176, 12424, 12424, 5176, -5176, -12424, 323 -28672, -11946, 11946, 28672, 28672, 11946, -11946, -28672, 324 -28672, -11946, 11946, 28672, 28672, 11946, -11946, -28672, 325 -11468, -4778, 4778, 11468, 11468, 4778, -4778, -11468, 326 12424, 5176, -5176, -12424, -12424, -5176, 5176, 12424, 327 28672, 11946, -11946, -28672, -28672, -11946, 11946, 28672 328 }, 329 { 330 26453, -6348, -31391, -17635, 17635, 31391, 6348, -26453, 331 22186, -5324, -26328, -14791, 14791, 26328, 5324, -22186, 332 15360, -3686, -18227, -10240, 10240, 18227, 3686, -15360, 333 5120, -1228, -6075, -3413, 3413, 6075, 1228, -5120, 334 -5973, 1433, 7088, 3982, -3982, -7088, -1433, 5973, 335 -14506, 3481, 17214, 9671, -9671, -17214, -3481, 14506, 336 -23040, 5529, 27340, 15360, -15360, -27340, -5529, 23040, 337 -26453, 6348, 31391, 17635, -17635, -31391, -6348, 26453 338 }, 339 { 340 16748, -16748, -16748, 16748, 16748, -16748, -16748, 16748, 341 16019, -16019, -16019, 16019, 16019, -16019, -16019, 16019, 342 16019, -16019, -16019, 16019, 16019, -16019, -16019, 16019, 343 16748, -16748, -16748, 16748, 16748, -16748, -16748, 16748, 344 16748, -16748, -16748, 16748, 16748, -16748, -16748, 16748, 345 16748, -16748, -16748, 16748, 16748, -16748, -16748, 16748, 346 16748, -16748, -16748, 16748, 16748, -16748, -16748, 16748, 347 16748, -16748, -16748, 16748, 16748, -16748, -16748, 16748 348 }, 349 { 350 12515, -22277, 4505, 18773, -18773, -4505, 22277, -12515, 351 13084, -23290, 4710, 19626, -19626, -4710, 23290, -13084, 352 13084, -23290, 4710, 19626, -19626, -4710, 23290, -13084, 353 12515, -22277, 4505, 18773, -18773, -4505, 22277, -12515, 354 13084, -23290, 4710, 19626, -19626, -4710, 23290, -13084, 355 12515, -22277, 4505, 18773, -18773, -4505, 22277, -12515, 356 12515, -22277, 4505, 18773, -18773, -4505, 22277, -12515, 357 13084, -23290, 4710, 19626, -19626, -4710, 23290, -13084 358 }, 359 { 360 23301, -23301, -23301, 23301, 23301, -23301, -23301, 23301, 361 18932, -18932, -18932, 18932, 18932, -18932, -18932, 18932, 362 12379, -12379, -12379, 12379, 12379, -12379, -12379, 12379, 363 4369, -4369, -4369, 4369, 4369, -4369, -4369, 4369, 364 -4369, 4369, 4369, -4369, -4369, 4369, 4369, -4369, 365 -12379, 12379, 12379, -12379, -12379, 12379, 12379, -12379, 366 -18932, 18932, 18932, -18932, -18932, 18932, 18932, -18932, 367 -22573, 22573, 22573, -22573, -22573, 22573, 22573, -22573 368 }, 369 { 370 24746, -5939, -29366, -16497, 16497, 29366, 5939, -24746, 371 10240, -2457, -12151, -6826, 6826, 12151, 2457, -10240, 372 -10240, 2457, 12151, 6826, -6826, -12151, -2457, 10240, 373 -25600, 6144, 30378, 17066, -17066, -30378, -6144, 25600, 374 -25600, 6144, 30378, 17066, -17066, -30378, -6144, 25600, 375 -10240, 2457, 12151, 6826, -6826, -12151, -2457, 10240, 376 10240, -2457, -12151, -6826, 6826, 12151, 2457, -10240, 377 25600, -6144, -30378, -17066, 17066, 30378, 6144, -25600 378 }, 379 { 380 25804, 10752, -10752, -25804, -25804, -10752, 10752, 25804, 381 -5734, -2389, 2389, 5734, 5734, 2389, -2389, -5734, 382 -30583, -12743, 12743, 30583, 30583, 12743, -12743, -30583, 383 -17203, -7168, 7168, 17203, 17203, 7168, -7168, -17203, 384 16247, 6769, -6769, -16247, -16247, -6769, 6769, 16247, 385 29627, 12344, -12344, -29627, -29627, -12344, 12344, 29627, 386 6690, 2787, -2787, -6690, -6690, -2787, 2787, 6690, 387 -24849, -10353, 10353, 24849, 24849, 10353, -10353, -24849 388 }, 389 { 390 23290, 19626, 13084, 4710, -4710, -13084, -19626, -23290, 391 -23290, -19626, -13084, -4710, 4710, 13084, 19626, 23290, 392 -22277, -18773, -12515, -4505, 4505, 12515, 18773, 22277, 393 23290, 19626, 13084, 4710, -4710, -13084, -19626, -23290, 394 22277, 18773, 12515, 4505, -4505, -12515, -18773, -22277, 395 -23290, -19626, -13084, -4710, 4710, 13084, 19626, 23290, 396 -23290, -19626, -13084, -4710, 4710, 13084, 19626, 23290, 397 22277, 18773, 12515, 4505, -4505, -12515, -18773, -22277 398 }, 399 { 400 12379, 12379, 12379, 12379, 12379, 12379, 12379, 12379, 401 -22573, -22573, -22573, -22573, -22573, -22573, -22573, -22573, 402 5097, 5097, 5097, 5097, 5097, 5097, 5097, 5097, 403 19660, 19660, 19660, 19660, 19660, 19660, 19660, 19660, 404 -19660, -19660, -19660, -19660, -19660, -19660, -19660, -19660, 405 -5097, -5097, -5097, -5097, -5097, -5097, -5097, -5097, 406 22573, 22573, 22573, 22573, 22573, 22573, 22573, 22573, 407 -12379, -12379, -12379, -12379, -12379, -12379, -12379, -12379 408 }, 409 { 410 8738, 8738, 8738, 8738, 8738, 8738, 8738, 8738, 411 -21117, -21117, -21117, -21117, -21117, -21117, -21117, -21117, 412 21845, 21845, 21845, 21845, 21845, 21845, 21845, 21845, 413 -8738, -8738, -8738, -8738, -8738, -8738, -8738, -8738, 414 -9466, -9466, -9466, -9466, -9466, -9466, -9466, -9466, 415 21117, 21117, 21117, 21117, 21117, 21117, 21117, 21117, 416 -21845, -21845, -21845, -21845, -21845, -21845, -21845, -21845, 417 9466, 9466, 9466, 9466, 9466, 9466, 9466, 9466 418 }, 419 { 420 18227, 15360, 10240, 3686, -3686, -10240, -15360, -18227, 421 -31391, -26453, -17635, -6348, 6348, 17635, 26453, 31391, 422 7088, 5973, 3982, 1433, -1433, -3982, -5973, -7088, 423 26328, 22186, 14791, 5324, -5324, -14791, -22186, -26328, 424 -26328, -22186, -14791, -5324, 5324, 14791, 22186, 26328, 425 -7088, -5973, -3982, -1433, 1433, 3982, 5973, 7088, 426 31391, 26453, 17635, 6348, -6348, -17635, -26453, -31391, 427 -18227, -15360, -10240, -3686, 3686, 10240, 15360, 18227 428 }, 429 { 430 21981, 9159, -9159, -21981, -21981, -9159, 9159, 21981, 431 -21981, -9159, 9159, 21981, 21981, 9159, -9159, -21981, 432 -21981, -9159, 9159, 21981, 21981, 9159, -9159, -21981, 433 21026, 8760, -8760, -21026, -21026, -8760, 8760, 21026, 434 21026, 8760, -8760, -21026, -21026, -8760, 8760, 21026, 435 -21026, -8760, 8760, 21026, 21026, 8760, -8760, -21026, 436 -21026, -8760, 8760, 21026, 21026, 8760, -8760, -21026, 437 21981, 9159, -9159, -21981, -21981, -9159, 9159, 21981 438 }, 439 { 440 22186, -5324, -26328, -14791, 14791, 26328, 5324, -22186, 441 -5120, 1228, 6075, 3413, -3413, -6075, -1228, 5120, 442 -26453, 6348, 31391, 17635, -17635, -31391, -6348, 26453, 443 -15360, 3686, 18227, 10240, -10240, -18227, -3686, 15360, 444 14506, -3481, -17214, -9671, 9671, 17214, 3481, -14506, 445 27306, -6553, -32403, -18204, 18204, 32403, 6553, -27306, 446 5120, -1228, -6075, -3413, 3413, 6075, 1228, -5120, 447 -22186, 5324, 26328, 14791, -14791, -26328, -5324, 22186 448 }, 449 { 450 21845, -21845, -21845, 21845, 21845, -21845, -21845, 21845, 451 8738, -8738, -8738, 8738, 8738, -8738, -8738, 8738, 452 -9466, 9466, 9466, -9466, -9466, 9466, 9466, -9466, 453 -21117, 21117, 21117, -21117, -21117, 21117, 21117, -21117, 454 -21117, 21117, 21117, -21117, -21117, 21117, 21117, -21117, 455 -8738, 8738, 8738, -8738, -8738, 8738, 8738, -8738, 456 9466, -9466, -9466, 9466, 9466, -9466, -9466, 9466, 457 21845, -21845, -21845, 21845, 21845, -21845, -21845, 21845 458 }, 459 { 460 17635, -31391, 6348, 26453, -26453, -6348, 31391, -17635, 461 15360, -27340, 5529, 23040, -23040, -5529, 27340, -15360, 462 10240, -18227, 3686, 15360, -15360, -3686, 18227, -10240, 463 3413, -6075, 1228, 5120, -5120, -1228, 6075, -3413, 464 -3413, 6075, -1228, -5120, 5120, 1228, -6075, 3413, 465 -10240, 18227, -3686, -15360, 15360, 3686, -18227, 10240, 466 -15360, 27340, -5529, -23040, 23040, 5529, -27340, 15360, 467 -17635, 31391, -6348, -26453, 26453, 6348, -31391, 17635 468 }, 469 { 470 8760, -21026, 21026, -8760, -8760, 21026, -21026, 8760, 471 9159, -21981, 21981, -9159, -9159, 21981, -21981, 9159, 472 8760, -21026, 21026, -8760, -8760, 21026, -21026, 8760, 473 8760, -21026, 21026, -8760, -8760, 21026, -21026, 8760, 474 8760, -21026, 21026, -8760, -8760, 21026, -21026, 8760, 475 8760, -21026, 21026, -8760, -8760, 21026, -21026, 8760, 476 9159, -21981, 21981, -9159, -9159, 21981, -21981, 9159, 477 9159, -21981, 21981, -9159, -9159, 21981, -21981, 9159 478 }, 479 { 480 4505, -12515, 18773, -22277, 22277, -18773, 12515, -4505, 481 4710, -13084, 19626, -23290, 23290, -19626, 13084, -4710, 482 4505, -12515, 18773, -22277, 22277, -18773, 12515, -4505, 483 4505, -12515, 18773, -22277, 22277, -18773, 12515, -4505, 484 4710, -13084, 19626, -23290, 23290, -19626, 13084, -4710, 485 4710, -13084, 19626, -23290, 23290, -19626, 13084, -4710, 486 4505, -12515, 18773, -22277, 22277, -18773, 12515, -4505, 487 4710, -13084, 19626, -23290, 23290, -19626, 13084, -4710 488 }, 489 { 490 12344, -29627, 29627, -12344, -12344, 29627, -29627, 12344, 491 10752, -25804, 25804, -10752, -10752, 25804, -25804, 10752, 492 6769, -16247, 16247, -6769, -6769, 16247, -16247, 6769, 493 2389, -5734, 5734, -2389, -2389, 5734, -5734, 2389, 494 -2389, 5734, -5734, 2389, 2389, -5734, 5734, -2389, 495 -7168, 17203, -17203, 7168, 7168, -17203, 17203, -7168, 496 -10353, 24849, -24849, 10353, 10353, -24849, 24849, -10353, 497 -12344, 29627, -29627, 12344, 12344, -29627, 29627, -12344 498 }, 499 { 500 16497, -29366, 5939, 24746, -24746, -5939, 29366, -16497, 501 7395, -13164, 2662, 11093, -11093, -2662, 13164, -7395, 502 -6826, 12151, -2457, -10240, 10240, 2457, -12151, 6826, 503 -17066, 30378, -6144, -25600, 25600, 6144, -30378, 17066, 504 -16497, 29366, -5939, -24746, 24746, 5939, -29366, 16497, 505 -7395, 13164, -2662, -11093, 11093, 2662, -13164, 7395, 506 6826, -12151, 2457, 10240, -10240, -2457, 12151, -6826, 507 17066, -30378, 6144, 25600, -25600, -6144, 30378, -17066 508 }, 509 { 510 19660, -19660, -19660, 19660, 19660, -19660, -19660, 19660, 511 -5097, 5097, 5097, -5097, -5097, 5097, 5097, -5097, 512 -23301, 23301, 23301, -23301, -23301, 23301, 23301, -23301, 513 -12379, 12379, 12379, -12379, -12379, 12379, 12379, -12379, 514 13107, -13107, -13107, 13107, 13107, -13107, -13107, 13107, 515 23301, -23301, -23301, 23301, 23301, -23301, -23301, 23301, 516 5097, -5097, -5097, 5097, 5097, -5097, -5097, 5097, 517 -18932, 18932, 18932, -18932, -18932, 18932, 18932, -18932 518 }, 519 { 520 18773, -4505, -22277, -12515, 12515, 22277, 4505, -18773, 521 -19626, 4710, 23290, 13084, -13084, -23290, -4710, 19626, 522 -18773, 4505, 22277, 12515, -12515, -22277, -4505, 18773, 523 18773, -4505, -22277, -12515, 12515, 22277, 4505, -18773, 524 18773, -4505, -22277, -12515, 12515, 22277, 4505, -18773, 525 -18773, 4505, 22277, 12515, -12515, -22277, -4505, 18773, 526 -19626, 4710, 23290, 13084, -13084, -23290, -4710, 19626, 527 19626, -4710, -23290, -13084, 13084, 23290, 4710, -19626 528 }, 529 { 530 17203, 7168, -7168, -17203, -17203, -7168, 7168, 17203, 531 -29627, -12344, 12344, 29627, 29627, 12344, -12344, -29627, 532 5734, 2389, -2389, -5734, -5734, -2389, 2389, 5734, 533 24849, 10353, -10353, -24849, -24849, -10353, 10353, 24849, 534 -25804, -10752, 10752, 25804, 25804, 10752, -10752, -25804, 535 -5734, -2389, 2389, 5734, 5734, 2389, -2389, -5734, 536 29627, 12344, -12344, -29627, -29627, -12344, 12344, 29627, 537 -17203, -7168, 7168, 17203, 17203, 7168, -7168, -17203 538 }, 539 { 540 13164, 11093, 7395, 2662, -2662, -7395, -11093, -13164, 541 -30378, -25600, -17066, -6144, 6144, 17066, 25600, 30378, 542 30378, 25600, 17066, 6144, -6144, -17066, -25600, -30378, 543 -12151, -10240, -6826, -2457, 2457, 6826, 10240, 12151, 544 -12151, -10240, -6826, -2457, 2457, 6826, 10240, 12151, 545 29366, 24746, 16497, 5939, -5939, -16497, -24746, -29366, 546 -30378, -25600, -17066, -6144, 6144, 17066, 25600, 30378, 547 12151, 10240, 6826, 2457, -2457, -6826, -10240, -12151 548 }, 549 { 550 4369, 4369, 4369, 4369, 4369, 4369, 4369, 4369, 551 -12379, -12379, -12379, -12379, -12379, -12379, -12379, -12379, 552 19660, 19660, 19660, 19660, 19660, 19660, 19660, 19660, 553 -22573, -22573, -22573, -22573, -22573, -22573, -22573, -22573, 554 22573, 22573, 22573, 22573, 22573, 22573, 22573, 22573, 555 -19660, -19660, -19660, -19660, -19660, -19660, -19660, -19660, 556 12379, 12379, 12379, 12379, 12379, 12379, 12379, 12379, 557 -4369, -4369, -4369, -4369, -4369, -4369, -4369, -4369 558 }, 559 { 560 7088, 5973, 3982, 1433, -1433, -3982, -5973, -7088, 561 -18227, -15360, -10240, -3686, 3686, 10240, 15360, 18227, 562 27340, 23040, 15360, 5529, -5529, -15360, -23040, -27340, 563 -31391, -26453, -17635, -6348, 6348, 17635, 26453, 31391, 564 31391, 26453, 17635, 6348, -6348, -17635, -26453, -31391, 565 -27340, -23040, -15360, -5529, 5529, 15360, 23040, 27340, 566 18227, 15360, 10240, 3686, -3686, -10240, -15360, -18227, 567 -7088, -5973, -3982, -1433, 1433, 3982, 5973, 7088 568 }, 569 { 570 12424, 5176, -5176, -12424, -12424, -5176, 5176, 12424, 571 -28672, -11946, 11946, 28672, 28672, 11946, -11946, -28672, 572 27716, 11548, -11548, -27716, -27716, -11548, 11548, 27716, 573 -11468, -4778, 4778, 11468, 11468, 4778, -4778, -11468, 574 -12424, -5176, 5176, 12424, 12424, 5176, -5176, -12424, 575 28672, 11946, -11946, -28672, -28672, -11946, 11946, 28672, 576 -27716, -11548, 11548, 27716, 27716, 11548, -11548, -27716, 577 11468, 4778, -4778, -11468, -11468, -4778, 4778, 11468 578 }, 579 { 580 14506, -3481, -17214, -9671, 9671, 17214, 3481, -14506, 581 -26453, 6348, 31391, 17635, -17635, -31391, -6348, 26453, 582 5973, -1433, -7088, -3982, 3982, 7088, 1433, -5973, 583 22186, -5324, -26328, -14791, 14791, 26328, 5324, -22186, 584 -23040, 5529, 27340, 15360, -15360, -27340, -5529, 23040, 585 -5120, 1228, 6075, 3413, -3413, -6075, -1228, 5120, 586 26453, -6348, -31391, -17635, 17635, 31391, 6348, -26453, 587 -14506, 3481, 17214, 9671, -9671, -17214, -3481, 14506 588 }, 589 { 590 16748, -16748, -16748, 16748, 16748, -16748, -16748, 16748, 591 -16748, 16748, 16748, -16748, -16748, 16748, 16748, -16748, 592 -16748, 16748, 16748, -16748, -16748, 16748, 16748, -16748, 593 16748, -16748, -16748, 16748, 16748, -16748, -16748, 16748, 594 16748, -16748, -16748, 16748, 16748, -16748, -16748, 16748, 595 -16019, 16019, 16019, -16019, -16019, 16019, 16019, -16019, 596 -16019, 16019, 16019, -16019, -16019, 16019, 16019, -16019, 597 16748, -16748, -16748, 16748, 16748, -16748, -16748, 16748 598 }, 599 { 600 14791, -26328, 5324, 22186, -22186, -5324, 26328, -14791, 601 -3413, 6075, -1228, -5120, 5120, 1228, -6075, 3413, 602 -17635, 31391, -6348, -26453, 26453, 6348, -31391, 17635, 603 -10240, 18227, -3686, -15360, 15360, 3686, -18227, 10240, 604 10240, -18227, 3686, 15360, -15360, -3686, 18227, -10240, 605 17635, -31391, 6348, 26453, -26453, -6348, 31391, -17635, 606 3413, -6075, 1228, 5120, -5120, -1228, 6075, -3413, 607 -14791, 26328, -5324, -22186, 22186, 5324, -26328, 14791 608 }, 609 { 610 11548, -27716, 27716, -11548, -11548, 27716, -27716, 11548, 611 5176, -12424, 12424, -5176, -5176, 12424, -12424, 5176, 612 -5176, 12424, -12424, 5176, 5176, -12424, 12424, -5176, 613 -11946, 28672, -28672, 11946, 11946, -28672, 28672, -11946, 614 -11946, 28672, -28672, 11946, 11946, -28672, 28672, -11946, 615 -5176, 12424, -12424, 5176, 5176, -12424, 12424, -5176, 616 4778, -11468, 11468, -4778, -4778, 11468, -11468, 4778, 617 11946, -28672, 28672, -11946, -11946, 28672, -28672, 11946 618 }, 619 { 620 6348, -17635, 26453, -31391, 31391, -26453, 17635, -6348, 621 5529, -15360, 23040, -27340, 27340, -23040, 15360, -5529, 622 3481, -9671, 14506, -17214, 17214, -14506, 9671, -3481, 623 1228, -3413, 5120, -6075, 6075, -5120, 3413, -1228, 624 -1228, 3413, -5120, 6075, -6075, 5120, -3413, 1228, 625 -3481, 9671, -14506, 17214, -17214, 14506, -9671, 3481, 626 -5324, 14791, -22186, 26328, -26328, 22186, -14791, 5324, 627 -6348, 17635, -26453, 31391, -31391, 26453, -17635, 6348 628 }, 629 { 630 5939, -16497, 24746, -29366, 29366, -24746, 16497, -5939, 631 2662, -7395, 11093, -13164, 13164, -11093, 7395, -2662, 632 -2662, 7395, -11093, 13164, -13164, 11093, -7395, 2662, 633 -6144, 17066, -25600, 30378, -30378, 25600, -17066, 6144, 634 -5939, 16497, -24746, 29366, -29366, 24746, -16497, 5939, 635 -2457, 6826, -10240, 12151, -12151, 10240, -6826, 2457, 636 2457, -6826, 10240, -12151, 12151, -10240, 6826, -2457, 637 6144, -17066, 25600, -30378, 30378, -25600, 17066, -6144 638 }, 639 { 640 10353, -24849, 24849, -10353, -10353, 24849, -24849, 10353, 641 -2389, 5734, -5734, 2389, 2389, -5734, 5734, -2389, 642 -12743, 30583, -30583, 12743, 12743, -30583, 30583, -12743, 643 -7168, 17203, -17203, 7168, 7168, -17203, 17203, -7168, 644 7168, -17203, 17203, -7168, -7168, 17203, -17203, 7168, 645 12344, -29627, 29627, -12344, -12344, 29627, -29627, 12344, 646 2389, -5734, 5734, -2389, -2389, 5734, -5734, 2389, 647 -10353, 24849, -24849, 10353, 10353, -24849, 24849, -10353 648 }, 649 { 650 12515, -22277, 4505, 18773, -18773, -4505, 22277, -12515, 651 -12515, 22277, -4505, -18773, 18773, 4505, -22277, 12515, 652 -12515, 22277, -4505, -18773, 18773, 4505, -22277, 12515, 653 12515, -22277, 4505, 18773, -18773, -4505, 22277, -12515, 654 13084, -23290, 4710, 19626, -19626, -4710, 23290, -13084, 655 -13084, 23290, -4710, -19626, 19626, 4710, -23290, 13084, 656 -13084, 23290, -4710, -19626, 19626, 4710, -23290, 13084, 657 13084, -23290, 4710, 19626, -19626, -4710, 23290, -13084 658 }, 659 { 660 13107, -13107, -13107, 13107, 13107, -13107, -13107, 13107, 661 -23301, 23301, 23301, -23301, -23301, 23301, 23301, -23301, 662 4369, -4369, -4369, 4369, 4369, -4369, -4369, 4369, 663 19660, -19660, -19660, 19660, 19660, -19660, -19660, 19660, 664 -18932, 18932, 18932, -18932, -18932, 18932, 18932, -18932, 665 -4369, 4369, 4369, -4369, -4369, 4369, 4369, -4369, 666 23301, -23301, -23301, 23301, 23301, -23301, -23301, 23301, 667 -12379, 12379, 12379, -12379, -12379, 12379, 12379, -12379 668 }, 669 { 670 10240, -2457, -12151, -6826, 6826, 12151, 2457, -10240, 671 -25600, 6144, 30378, 17066, -17066, -30378, -6144, 25600, 672 25600, -6144, -30378, -17066, 17066, 30378, 6144, -25600, 673 -11093, 2662, 13164, 7395, -7395, -13164, -2662, 11093, 674 -11093, 2662, 13164, 7395, -7395, -13164, -2662, 11093, 675 25600, -6144, -30378, -17066, 17066, 30378, 6144, -25600, 676 -25600, 6144, 30378, 17066, -17066, -30378, -6144, 25600, 677 10240, -2457, -12151, -6826, 6826, 12151, 2457, -10240 678 }, 679 { 680 6690, 2787, -2787, -6690, -6690, -2787, 2787, 6690, 681 -17203, -7168, 7168, 17203, 17203, 7168, -7168, -17203, 682 24849, 10353, -10353, -24849, -24849, -10353, 10353, 24849, 683 -29627, -12344, 12344, 29627, 29627, 12344, -12344, -29627, 684 29627, 12344, -12344, -29627, -29627, -12344, 12344, 29627, 685 -24849, -10353, 10353, 24849, 24849, 10353, -10353, -24849, 686 17203, 7168, -7168, -17203, -17203, -7168, 7168, 17203, 687 -5734, -2389, 2389, 5734, 5734, 2389, -2389, -5734 688 }, 689 { 690 5120, -1228, -6075, -3413, 3413, 6075, 1228, -5120, 691 -15360, 3686, 18227, 10240, -10240, -18227, -3686, 15360, 692 23040, -5529, -27340, -15360, 15360, 27340, 5529, -23040, 693 -27306, 6553, 32403, 18204, -18204, -32403, -6553, 27306, 694 26453, -6348, -31391, -17635, 17635, 31391, 6348, -26453, 695 -22186, 5324, 26328, 14791, -14791, -26328, -5324, 22186, 696 14506, -3481, -17214, -9671, 9671, 17214, 3481, -14506, 697 -5120, 1228, 6075, 3413, -3413, -6075, -1228, 5120 698 }, 699 { 700 9466, -9466, -9466, 9466, 9466, -9466, -9466, 9466, 701 -21845, 21845, 21845, -21845, -21845, 21845, 21845, -21845, 702 21117, -21117, -21117, 21117, 21117, -21117, -21117, 21117, 703 -8738, 8738, 8738, -8738, -8738, 8738, 8738, -8738, 704 -8738, 8738, 8738, -8738, -8738, 8738, 8738, -8738, 705 21845, -21845, -21845, 21845, 21845, -21845, -21845, 21845, 706 -21117, 21117, 21117, -21117, -21117, 21117, 21117, -21117, 707 9466, -9466, -9466, 9466, 9466, -9466, -9466, 9466 708 }, 709 { 710 9671, -17214, 3481, 14506, -14506, -3481, 17214, -9671, 711 -17635, 31391, -6348, -26453, 26453, 6348, -31391, 17635, 712 3982, -7088, 1433, 5973, -5973, -1433, 7088, -3982, 713 14791, -26328, 5324, 22186, -22186, -5324, 26328, -14791, 714 -14791, 26328, -5324, -22186, 22186, 5324, -26328, 14791, 715 -3982, 7088, -1433, -5973, 5973, 1433, -7088, 3982, 716 17635, -31391, 6348, 26453, -26453, -6348, 31391, -17635, 717 -9671, 17214, -3481, -14506, 14506, 3481, -17214, 9671 718 }, 719 { 720 8760, -21026, 21026, -8760, -8760, 21026, -21026, 8760, 721 -8760, 21026, -21026, 8760, 8760, -21026, 21026, -8760, 722 -9159, 21981, -21981, 9159, 9159, -21981, 21981, -9159, 723 8760, -21026, 21026, -8760, -8760, 21026, -21026, 8760, 724 8760, -21026, 21026, -8760, -8760, 21026, -21026, 8760, 725 -9159, 21981, -21981, 9159, 9159, -21981, 21981, -9159, 726 -8760, 21026, -21026, 8760, 8760, -21026, 21026, -8760, 727 9159, -21981, 21981, -9159, -9159, 21981, -21981, 9159 728 }, 729 { 730 5324, -14791, 22186, -26328, 26328, -22186, 14791, -5324, 731 -1228, 3413, -5120, 6075, -6075, 5120, -3413, 1228, 732 -6553, 18204, -27306, 32403, -32403, 27306, -18204, 6553, 733 -3686, 10240, -15360, 18227, -18227, 15360, -10240, 3686, 734 3686, -10240, 15360, -18227, 18227, -15360, 10240, -3686, 735 6348, -17635, 26453, -31391, 31391, -26453, 17635, -6348, 736 1228, -3413, 5120, -6075, 6075, -5120, 3413, -1228, 737 -5324, 14791, -22186, 26328, -26328, 22186, -14791, 5324 738 }, 739 { 740 4505, -12515, 18773, -22277, 22277, -18773, 12515, -4505, 741 -4505, 12515, -18773, 22277, -22277, 18773, -12515, 4505, 742 -4710, 13084, -19626, 23290, -23290, 19626, -13084, 4710, 743 4505, -12515, 18773, -22277, 22277, -18773, 12515, -4505, 744 4710, -13084, 19626, -23290, 23290, -19626, 13084, -4710, 745 -4505, 12515, -18773, 22277, -22277, 18773, -12515, 4505, 746 -4710, 13084, -19626, 23290, -23290, 19626, -13084, 4710, 747 4710, -13084, 19626, -23290, 23290, -19626, 13084, -4710 748 }, 749 { 750 6769, -16247, 16247, -6769, -6769, 16247, -16247, 6769, 751 -12344, 29627, -29627, 12344, 12344, -29627, 29627, -12344, 752 2389, -5734, 5734, -2389, -2389, 5734, -5734, 2389, 753 10353, -24849, 24849, -10353, -10353, 24849, -24849, 10353, 754 -10353, 24849, -24849, 10353, 10353, -24849, 24849, -10353, 755 -2787, 6690, -6690, 2787, 2787, -6690, 6690, -2787, 756 12344, -29627, 29627, -12344, -12344, 29627, -29627, 12344, 757 -6769, 16247, -16247, 6769, 6769, -16247, 16247, -6769 758 }, 759 { 760 6826, -12151, 2457, 10240, -10240, -2457, 12151, -6826, 761 -16497, 29366, -5939, -24746, 24746, 5939, -29366, 16497, 762 17066, -30378, 6144, 25600, -25600, -6144, 30378, -17066, 763 -7395, 13164, -2662, -11093, 11093, 2662, -13164, 7395, 764 -6826, 12151, -2457, -10240, 10240, 2457, -12151, 6826, 765 16497, -29366, 5939, 24746, -24746, -5939, 29366, -16497, 766 -17066, 30378, -6144, -25600, 25600, 6144, -30378, 17066, 767 6826, -12151, 2457, 10240, -10240, -2457, 12151, -6826 768 }, 769 { 770 5097, -5097, -5097, 5097, 5097, -5097, -5097, 5097, 771 -13107, 13107, 13107, -13107, -13107, 13107, 13107, -13107, 772 18932, -18932, -18932, 18932, 18932, -18932, -18932, 18932, 773 -22573, 22573, 22573, -22573, -22573, 22573, 22573, -22573, 774 23301, -23301, -23301, 23301, 23301, -23301, -23301, 23301, 775 -18932, 18932, 18932, -18932, -18932, 18932, 18932, -18932, 776 13107, -13107, -13107, 13107, 13107, -13107, -13107, 13107, 777 -4369, 4369, 4369, -4369, -4369, 4369, 4369, -4369 778 }, 779 { 780 3413, -6075, 1228, 5120, -5120, -1228, 6075, -3413, 781 -9671, 17214, -3481, -14506, 14506, 3481, -17214, 9671, 782 15360, -27340, 5529, 23040, -23040, -5529, 27340, -15360, 783 -18204, 32403, -6553, -27306, 27306, 6553, -32403, 18204, 784 18204, -32403, 6553, 27306, -27306, -6553, 32403, -18204, 785 -15360, 27340, -5529, -23040, 23040, 5529, -27340, 15360, 786 9671, -17214, 3481, 14506, -14506, -3481, 17214, -9671, 787 -3413, 6075, -1228, -5120, 5120, 1228, -6075, 3413 788 }, 789 { 790 4778, -11468, 11468, -4778, -4778, 11468, -11468, 4778, 791 -11548, 27716, -27716, 11548, 11548, -27716, 27716, -11548, 792 11548, -27716, 27716, -11548, -11548, 27716, -27716, 11548, 793 -4778, 11468, -11468, 4778, 4778, -11468, 11468, -4778, 794 -4778, 11468, -11468, 4778, 4778, -11468, 11468, -4778, 795 11548, -27716, 27716, -11548, -11548, 27716, -27716, 11548, 796 -11548, 27716, -27716, 11548, 11548, -27716, 27716, -11548, 797 5176, -12424, 12424, -5176, -5176, 12424, -12424, 5176 798 }, 799 { 800 3481, -9671, 14506, -17214, 17214, -14506, 9671, -3481, 801 -6348, 17635, -26453, 31391, -31391, 26453, -17635, 6348, 802 1228, -3413, 5120, -6075, 6075, -5120, 3413, -1228, 803 5324, -14791, 22186, -26328, 26328, -22186, 14791, -5324, 804 -5324, 14791, -22186, 26328, -26328, 22186, -14791, 5324, 805 -1228, 3413, -5120, 6075, -6075, 5120, -3413, 1228, 806 6348, -17635, 26453, -31391, 31391, -26453, 17635, -6348, 807 -3481, 9671, -14506, 17214, -17214, 14506, -9671, 3481 808 }, 809 { 810 2457, -6826, 10240, -12151, 12151, -10240, 6826, -2457, 811 -5939, 16497, -24746, 29366, -29366, 24746, -16497, 5939, 812 5939, -16497, 24746, -29366, 29366, -24746, 16497, -5939, 813 -2662, 7395, -11093, 13164, -13164, 11093, -7395, 2662, 814 -2457, 6826, -10240, 12151, -12151, 10240, -6826, 2457, 815 6144, -17066, 25600, -30378, 30378, -25600, 17066, -6144, 816 -6144, 17066, -25600, 30378, -30378, 25600, -17066, 6144, 817 2662, -7395, 11093, -13164, 13164, -11093, 7395, -2662 818 }, 819 { 820 2389, -5734, 5734, -2389, -2389, 5734, -5734, 2389, 821 -6769, 16247, -16247, 6769, 6769, -16247, 16247, -6769, 822 10353, -24849, 24849, -10353, -10353, 24849, -24849, 10353, 823 -12344, 29627, -29627, 12344, 12344, -29627, 29627, -12344, 824 12344, -29627, 29627, -12344, -12344, 29627, -29627, 12344, 825 -10752, 25804, -25804, 10752, 10752, -25804, 25804, -10752, 826 7168, -17203, 17203, -7168, -7168, 17203, -17203, 7168, 827 -2389, 5734, -5734, 2389, 2389, -5734, 5734, -2389 828 }, 829 { 830 1228, -3413, 5120, -6075, 6075, -5120, 3413, -1228, 831 -3481, 9671, -14506, 17214, -17214, 14506, -9671, 3481, 832 5324, -14791, 22186, -26328, 26328, -22186, 14791, -5324, 833 -6553, 18204, -27306, 32403, -32403, 27306, -18204, 6553, 834 6553, -18204, 27306, -32403, 32403, -27306, 18204, -6553, 835 -5324, 14791, -22186, 26328, -26328, 22186, -14791, 5324, 836 3481, -9671, 14506, -17214, 17214, -14506, 9671, -3481, 837 -1228, 3413, -5120, 6075, -6075, 5120, -3413, 1228 838 } 839 }; 840 // clang-format on