diff options
| -rw-r--r-- | include/actions.h | 6 | ||||
| -rw-r--r-- | include/nn.c | 27 | ||||
| -rw-r--r-- | include/nn.h | 10 | ||||
| -rw-r--r-- | include/pv.c | 2 | ||||
| -rw-r--r-- | include/pv.h | 4 | ||||
| -rw-r--r-- | include/tak.h | 2 | ||||
| -rw-r--r-- | include/weights_5.c | 550 | ||||
| -rw-r--r-- | include/weights_5.h | 2 | ||||
| -rw-r--r-- | include/weights_6.c | 678 | ||||
| -rw-r--r-- | include/weights_6.h | 2 | ||||
| -rw-r--r-- | src/match.c | 4 | ||||
| -rwxr-xr-x | src/nn_train.py | 37 | ||||
| -rw-r--r-- | src/selfplay.c | 13 |
13 files changed, 674 insertions, 663 deletions
diff --git a/include/actions.h b/include/actions.h index d96033c..748ea38 100644 --- a/include/actions.h +++ b/include/actions.h @@ -58,10 +58,8 @@ extern int8_t move_deltas[4]; void actions_init(const uint8_t board_size); // Generate the legal actions. The move list is drawn from a static -// per-search-level scratch buffer: one buffer per recursion level, so nested -// generate calls at different levels do not clobber each other. `level' is the -// recursion depth within the current search (0 at the root). The returned -// pointer is valid until the next generate call at the same level. +// per-search-level scratch buffer, per recursion level. The returned pointer is +// valid until the next generate call at the same level. action_t *actions_generate_at(tak_state_p state, uint32_t *num_actions, const uint32_t level); diff --git a/include/nn.c b/include/nn.c index 8c85299..909b870 100644 --- a/include/nn.c +++ b/include/nn.c @@ -62,7 +62,8 @@ inline uint8_t cell_idx_at(const tak_state_p state, const uint8_t loc) { default: { // |{flat, standing, cap} * {black, white}| = 6 // index 1 .. 6 - return (uint8_t)(1u + 3u * TOP_COLOUR_AT(state, loc) + (d & STONE_MASK)); + const uint8_t top_colour = TOP_COLOUR_AT(state, loc); + return (uint8_t)(1u + 3u * ((state->ply & 1) ? 1-top_colour : top_colour) + (d & STONE_MASK)); } } } @@ -73,12 +74,12 @@ inline void nn_cell_idxs(uint8_t *out, tak_state_p state) { out[loc] = cell_idx_at(state, loc); } -inline void nn_prepare_head(float out_head[3], tak_state_p state) { +inline void nn_prepare_head(float out_head[2], tak_state_p state) { const float inv_max_flats = (state->board_size == 6) ? (1.0f / 30.0f) : (1.0f / 21.0f); - out_head[0] = (state->ply & 1) ? 1 : -1; - out_head[1] = (float)(state->white_count & 127) * inv_max_flats; - out_head[2] = (float)(state->black_count & 127) * inv_max_flats; + const uint8_t idx = state->ply & 1; + out_head[idx] = (float)(state->white_count & 127) * inv_max_flats; + out_head[1-idx] = (float)(state->black_count & 127) * inv_max_flats; } // The cell indices computed by the most recent nn_prepare_input, and the hash @@ -93,7 +94,7 @@ void nn_prepare_input(float *cur_board, tak_state_p state, nn_cell_idxs(prepared_idxs, state); prepared_hash = state->hash; for (unsigned int loc = 0; loc < n_cells; loc++) - cur_board[3 + loc] = embedding[prepared_idxs[loc]]; + cur_board[2 + loc] = embedding[prepared_idxs[loc]]; } // Copy the cell indices produced by the most recent nn_prepare_input into out @@ -111,10 +112,10 @@ int nn_last_cell_idxs(uint8_t *out, tak_state_p state) { // Implementation of small neural networks // =================================================================== -float eval_net(const float *board, const unsigned int n_inp, - const float *w, const float *biases, - const float *logit_w, const float logit_b, - const unsigned int n_dense) { +float eval_net(const float *board, const unsigned int n_inp, const float *w, + const float *biases, const float *logit_w, const float logit_b, + const unsigned int n_dense, + const float parity) { float dense1[FIVE_DENSE_NUM]; // FIVE_DENSE_NUM == SIX_DENSE_NUM float z = logit_b; @@ -128,7 +129,7 @@ float eval_net(const float *board, const unsigned int n_inp, for (unsigned int d1 = 0; d1 < n_dense; d1++) z += dense1[d1] * logit_w[d1]; - return fast_tanh(z); + return parity * fast_tanh(z); } // =================================================================== @@ -141,7 +142,7 @@ float five_nn_fn(tak_state_p state) { nn_prepare_input(cur_board, state, five_embedding); return eval_net(cur_board, FIVE_INP_NUM, &five_dense_weights[0][0], five_dense_biases, five_logit_weights, five_logit_bias, - FIVE_DENSE_NUM); + FIVE_DENSE_NUM, state->ply & 1 ? 1.0f : -1.0f); } float six_nn_fn(tak_state_p state) { @@ -150,5 +151,5 @@ float six_nn_fn(tak_state_p state) { nn_prepare_input(cur_board, state, six_embedding); return eval_net(cur_board, SIX_INP_NUM, &six_dense_weights[0][0], six_dense_biases, six_logit_weights, six_logit_bias, - SIX_DENSE_NUM); + SIX_DENSE_NUM, state->ply & 1 ? 1.0f : -1.0f); } diff --git a/include/nn.h b/include/nn.h index 871bd0f..3a2277a 100644 --- a/include/nn.h +++ b/include/nn.h @@ -31,7 +31,7 @@ // somewhat internal, important for generating training data void nn_cell_idxs(uint8_t *out, tak_state_p state); -void nn_prepare_head(float out_head[3], tak_state_p state); +void nn_prepare_head(float out_head[2], tak_state_p state); void nn_prepare_input(float *cur_board, tak_state_p state, const float embedding[NN_N_EMB]); @@ -41,10 +41,10 @@ int nn_last_cell_idxs(uint8_t *out, tak_state_p state); // Network // =================================================================== -float eval_net(const float *board, const unsigned int n_inp, - const float *w, const float *biases, - const float *logit_w, const float logit_b, - const unsigned int n_dense); +float eval_net(const float *board, const unsigned int n_inp, const float *w, + const float *biases, const float *logit_w, const float logit_b, + const unsigned int n_dense, + const float parity); // Evaluators for the two built-in networks. float five_nn_fn(tak_state_p state); diff --git a/include/pv.c b/include/pv.c index 94c00d1..fb5f181 100644 --- a/include/pv.c +++ b/include/pv.c @@ -44,7 +44,7 @@ void pv_capture_leaf(pv_leaf_t *leaf, tak_state_p state, nn_cell_idxs(leaf->cells, state); for (uint8_t loc = n_cells; loc < PV_MAX_CELLS; loc++) leaf->cells[loc] = 0; - leaf->current_colour = (uint8_t)state->current_colour; + leaf->parity_sign = (state->ply & 1) ? 1.0f : -1.0f; leaf->terminal = (uint8_t)(winner < 0xFF); leaf->terminal_value = leaf->terminal ? terminal_value(winner) : 0.0f; } diff --git a/include/pv.h b/include/pv.h index 06455fe..1754829 100644 --- a/include/pv.h +++ b/include/pv.h @@ -27,11 +27,11 @@ #define PV_MAX_CELLS (6 * 6) typedef struct pv_leaf_s { - float head[3]; + float head[2]; uint8_t cells[PV_MAX_CELLS]; - uint8_t current_colour; uint8_t terminal; float terminal_value; + float parity_sign; } pv_leaf_t; // Capture a horizon leaf (winner == 0xFF) or an exact terminal leaf. diff --git a/include/tak.h b/include/tak.h index 324c41f..43dd1bd 100644 --- a/include/tak.h +++ b/include/tak.h @@ -55,8 +55,6 @@ typedef struct tak_state_s { enum WIN_TYPE won; enum COLOUR current_colour; uint8_t white_count, black_count, ply, board_size; - // incremental zobrist hash; maintained by action_take/action_undo and - // re-anchored at the search root (see zobrist.h) uint64_t hash; } *tak_state_p; diff --git a/include/weights_5.c b/include/weights_5.c index 687e81e..528b4b2 100644 --- a/include/weights_5.c +++ b/include/weights_5.c @@ -1,294 +1,294 @@ /* generated by nn_train.py, do not edit by hand */ -/* v018, val_corr=0.9435, rate=0.7880 */ +/* v021, val_corr=0.9431, rate=0.8128 */ #include "weights_5.h" const float five_embedding[7] = { - 0.0271974243, -0.585511148, -0.195969999, -1.67773426, 0.654105425, 0.252295405, 0.991936803 + -0.111816011, -0.66451335, -0.323273391, -0.98435086, 0.463595748, 0.122227475, 1.10759342 }; const float five_dense_weights[FIVE_DENSE_NUM][FIVE_INP_NUM] NN_ALIGNED = { - {0.124223985, -0.0398298204, 0.442104936, -0.0755114704, 0.0112784756, -0.154642373, -0.095966056, 0.0479841046, - 0.122625157, -0.147026554, -0.0798666477, -0.231773823, 0.0526055656, -0.0517086647, 0.0182236452, 0.000143513549, - 0.057050854, 0.151226595, 0.0512125269, -0.263018429, 0.0338710696, -0.0653838739, -0.0450588651, 0.0342408828, - -0.129446298, -0.151560262, -0.114411578, -0.130198792}, - {0.183917969, 0.270581603, -0.286218137, 0.200253069, 0.138144121, 0.164384082, 0.0184991471, 0.0741592273, - -0.00477701332, 0.0852540582, 0.0204615425, -0.00764832133, 0.220107257, -0.102382302, 0.0841847062, -0.0282375943, - 0.0790290907, 0.0902308524, 0.0881390199, 0.0841720104, 0.167469054, 0.073158659, 0.0895482078, 0.0388522781, - 0.015290767, 0.185586229, -0.0323093198, 0.126043826}, - {-0.0903893262, -0.374020278, 0.233034179, -0.157876059, 0.0949935913, -0.224158883, -0.12354736, -0.0661603063, - -0.133901939, -0.140902162, -0.270809799, -0.147912577, -0.064557299, -0.221630201, -0.208277494, -0.280185074, - 0.125906304, -0.153770238, -0.0713656694, 0.0053616548, -0.0313395485, -0.170316398, -0.0605885126, -0.235900387, - -0.157116771, 0.00241961423, -0.0820510462, -0.081060186}, - {-0.14454715, -0.982014358, 0.235154107, -0.0797742009, 0.0215494037, -0.11536704, -0.129991964, -0.201552749, - -0.173719257, -0.0625208914, 0.0587469488, -0.286277175, -0.219805181, -0.0408651829, -0.159050345, 0.0828470215, - 0.00416021654, -0.0875479653, 0.0531577021, 0.0478147119, -0.224265546, -0.183513686, -0.192842126, 0.0580152087, - 0.0161686223, -0.203335121, -0.0414060727, -0.038819544}, - {0.0480308086, -0.212108284, 0.365251422, 0.0129341949, -0.125312969, -0.107484236, -0.00437643286, -0.132904723, - 0.0672981665, 0.0425384268, -0.0641572848, -0.221844912, -0.0285976157, -0.0383862779, -0.0324791931, 0.056241136, - -0.118307576, -0.0505812913, -0.272025377, -0.0530301444, -0.118473411, 0.0342970304, -0.00507636229, -0.105834618, - -0.0868522897, 0.0509563573, -0.136580959, 0.0439617038}, - {-0.109857008, -0.569389105, 0.365163207, -0.0437580124, -0.138673335, -0.0440861769, -0.0190834999, -0.167106792, - -0.191086158, -0.113774486, -0.19339712, -0.222587109, -0.144994572, -0.0544047803, 0.0116045177, -0.24889186, - -0.0318637826, -0.0763775632, -0.080920428, -0.289673775, -0.227832466, -0.0515492633, -0.088042587, -0.14912042, - -0.203516752, -0.211594328, -0.136905372, -0.205074474}, - {0.0444115736, -0.0910449699, 0.514601529, -0.0243934039, -0.139382422, 0.082255505, -0.197201833, -0.104645215, - 0.0156376027, 0.00461203977, -0.198983505, -0.152663365, -0.043717999, -0.0873160139, -0.110288493, -0.022582246, - 0.00954708364, -0.115393661, 0.0186134987, -0.100035235, -0.0963965803, -0.172805145, -0.00274219154, -0.0161741413, - -0.0776032358, -0.0917994678, -0.194066316, 0.103619404}, - {0.00649354188, 0.37663278, -0.386316955, 0.0834508762, 0.196375802, 0.0203620605, 0.0812203735, 0.0374289118, - 0.0512966402, 0.111390628, 0.100328431, 0.0812845081, 0.12390513, 0.13985087, 0.191595301, 0.253740668, - 0.0613994002, -0.0308810472, 0.0485394485, 0.176652342, 0.0745857954, 0.206164628, 0.0740946531, 0.11191041, - 0.207364276, -0.155406088, -0.0576755069, 0.0669720322}, - {-0.00444121612, 0.0793555602, 0.390720248, -0.0370217934, -0.060420014, -0.17472823, -0.128687784, -0.0562848896, - -0.200554535, -0.117584094, -0.229736671, -0.0492684208, -0.09022028, -0.202754006, -0.145906717, -0.0469560921, - -0.108592667, -0.15590696, 0.104072399, -0.233957559, -0.241865575, -0.162876457, -0.134896994, 0.0168750416, - -0.106359892, -0.206103921, -0.114564195, 0.0406271257}, - {-0.0579300262, -0.983953953, 0.27863729, -0.0652026981, -0.0805736631, -0.141590416, 0.0417990312, -0.369090438, - -0.189297214, -0.040947821, -0.291509479, -0.220988795, -0.118952155, -0.0173201263, -0.143645421, -0.0342713632, - -0.00537217828, -0.0788097605, -0.0838199332, -0.129369318, -0.0307453983, -0.145783737, -0.2524966, 0.062318705, - -0.0391301997, -0.104023471, -0.10497918, -0.0632607266}, - {-0.152529836, 0.51327163, -0.711286724, 0.266755104, 0.257947773, 0.18635492, 0.151017815, -0.0183920749, - 0.125404969, 0.329953462, 0.324240685, 0.177773073, 0.0860135183, -0.0581600331, 0.164070696, 0.200355977, - 0.234334707, 0.0961033925, 0.0281405039, 0.154808745, 0.16040729, 0.153179064, 0.0775105283, 0.195915878, - 0.0699409023, 0.157391369, -0.0650845245, 0.126059905}, - {-0.155075312, -0.349529713, 0.338783115, -0.00588238658, -0.096362479, -0.0810029134, -0.119058512, -0.173272088, - -0.275055319, -0.144315422, 0.0350244567, -0.1520987, -0.0903588459, -0.0725689381, -0.0654214397, -0.0249244235, - -0.224396199, -0.170598716, -0.107215658, -0.0130644925, -0.166149363, -0.124860071, 0.0409183726, -0.0829451829, - -0.13249056, -0.106824338, -0.0681729987, -0.0746641532}, - {-0.0877338126, -0.518667877, 0.35693121, -0.129674315, -0.12567547, -0.10828688, -0.173491657, -0.287570655, - -0.241928592, -0.0961062461, -0.0477689467, 0.0126916887, -0.200543597, -0.23854585, -0.316866159, -0.19169943, - -0.122926608, -0.0588275418, -0.153226241, -0.145912975, -0.0325847939, 0.0243837386, -0.108105414, -0.157988042, - -0.0208685212, -0.0808694735, -0.0474817455, -0.0994654968}, - {0.0111736888, 0.405573875, -0.320458531, 0.216697127, 0.178403109, 0.196642205, 0.0332784243, 0.0167255234, - 0.17611821, 0.0855869651, 0.0903988406, 0.09081655, 0.0375520959, 0.130508184, 0.100315847, 0.00371122593, - 0.000214853455, 0.109945215, 0.054071933, 0.0915734172, 0.0951421186, 0.0594639704, 0.0784481838, -0.0240127835, - -0.0530941524, -0.0149255022, -0.0109167285, 0.153801948}, - {-0.0334801115, 0.375140548, -0.262623519, 0.0683505014, 0.0227235667, 0.132804379, 0.066467084, 0.00631325413, - 0.0797184408, 0.0388317183, 0.0304597858, 0.0812837631, 0.106026545, 0.141254976, 0.143277273, 0.0724338368, - 0.0658938065, 0.0628257766, 0.156903684, 0.171515569, 0.10232801, -0.00829768926, -0.0208377969, -0.141262203, - 0.104675859, 0.0361110233, 0.105273694, 0.0852346197}, - {-0.0221086517, -0.175828159, 0.292970002, 0.0216172487, -0.0294659175, -0.172518209, 0.00117052638, -0.0171109084, - -0.0824435726, -0.0623124912, -0.0941901803, -0.0950797647, -0.0924489871, 0.0419508629, -0.0978367478, -0.177920222, - 0.164424568, 0.0265841056, -0.10323336, 0.0508967005, -0.232040226, -0.111805141, -0.0326483771, -0.00402997341, - -0.046355404, -0.0795721635, -0.251987636, -0.176787153}, - {-0.0681016743, -0.709930599, 0.294077218, -0.152691856, -0.0605734549, -0.0260352865, -0.210110039, -0.306856066, - -0.0541928895, -0.117356077, -0.0197649375, -0.075984627, -0.018186681, -0.0766129345, 0.0710072219, 0.0146783004, - -0.065950118, -0.0481621921, -0.0840052217, -0.181383744, -0.0250065327, -0.123542674, -0.0960827693, -0.0553806238, - 0.00733878836, -0.0660301372, 0.0797863826, 0.00690877391}, - {0.00919015612, -0.655910552, 0.362791955, -0.202046648, -0.102489494, -0.0711513087, -0.0569700859, -0.114943765, - -0.102574244, -0.104833186, -0.0624228381, -0.224827752, -0.132786751, -0.0877800435, -0.0197172463, -0.162691444, - -0.226539969, -0.00677046645, 0.135594651, -0.0362663604, -0.0780884922, -0.090798378, -0.109237589, -0.104803152, - -0.0361430645, -0.0537159853, -0.186215147, 0.00428524893}, - {0.0302476306, 0.0604504123, 0.342717975, -0.137609944, -0.0346556902, -0.185827568, -0.107022658, -0.158501908, - -0.145183876, -0.104043953, -0.153413668, -0.157458276, -0.141557768, -0.226236045, -0.200905174, -0.220961779, - -0.133601278, -0.0118303392, -0.0817856714, 0.0920279175, -0.165123224, -0.0327404439, -0.128449261, -0.123802722, - -0.145280197, -0.130440697, -0.0681175292, -0.108019441}, - {0.10650222, 0.290440261, -0.537952006, -0.00880758837, 0.137503117, 0.186554804, 0.13703388, 0.0727897361, - -0.0504473038, 0.169302762, 0.169176146, 0.186401665, 0.0257190857, -0.0997446254, 0.00924486388, 0.0371505097, - 0.148548082, 0.183681205, 0.076500684, 0.0274001975, -0.0353530161, 0.122478828, 0.272741377, 0.309026986, - 0.0540189594, 0.222155005, 0.143203735, 0.235792965}, - {0.0931999683, 0.343627006, -0.378675938, 0.273699343, 0.284025759, 0.200707674, 0.159127578, -0.10677743, - 0.166611403, 0.0280674584, 0.0265400726, 0.103091046, 0.00294392509, 0.113793507, 0.00739109516, 0.079651922, - 0.0941281468, 0.0502928011, 0.0591660775, -0.0310309809, 0.0803769156, 0.00981041323, 0.112384371, 0.00868606288, - -0.00647499505, -0.0323496684, -0.0960769355, 0.226919383}, - {0.0111456234, 0.416915089, -0.214710951, 0.0673409104, 0.0167781748, 0.0090082828, 0.096073322, -0.0567945577, - 0.0578191988, 0.102223523, 0.0786926597, -0.0294003729, 0.131871477, 0.162027612, 0.111536041, 0.155495211, - 0.0300401226, 0.156155497, 0.106989421, 0.152802259, 0.184359148, 0.049999468, -0.0257097073, 0.0515192449, - 0.229525864, 0.192779303, -0.0138109513, -0.113562599}, - {0.0646354035, 0.343653351, -0.418946087, -0.0161730647, 0.0979819372, 0.180492088, 0.0867155343, 0.0389667079, - 0.109662831, -0.00650822418, 0.124050058, 0.071534954, 0.0624878183, 0.238964364, 0.174321204, 0.0106266811, - 0.0912097842, -0.0308342632, 0.0871574134, 0.121744573, 0.0529495515, 0.220085248, 0.102998391, 0.110126324, - -0.0514986813, 0.0250200778, 0.112856671, 0.0374724865}, - {0.068700403, 0.432672292, -0.145423457, -0.0289763696, 0.203883037, 0.205584034, 0.115224667, -0.162209854, - -0.0444884785, -0.0454849191, 0.0603532158, 0.0231182761, -0.123903096, 0.263790339, 0.0672683716, 0.207317233, - 0.0848390236, 0.0991123319, 0.0530061238, 0.0876406357, 0.179006055, 0.0029607024, -0.0414853357, -0.0202377737, - 0.0670455173, 0.23390618, -0.00999640953, -0.059778776}, - {0.0787593946, 0.0616561286, 0.448033243, 0.0545945801, -0.112508111, -0.0988976061, -0.130733728, 0.0682647973, - -0.02175395, -0.271935254, -0.139234379, 0.037358515, -0.0438849814, -0.0705152377, 0.0231649615, -0.178017661, - 0.0962962806, -0.0861371309, -0.362380862, -0.196604371, -0.239836231, 0.00628356077, -0.114175528, -0.0133054424, - 0.0411692485, -0.0365652069, -0.0442506224, -0.163650706}, - {0.0113842292, -0.236629978, 0.36976254, -0.0426190607, -0.0098639857, -0.11464186, -0.165882364, -0.17859523, - -0.202113315, -0.235831201, -0.103334732, 0.0471155606, -0.090783909, -0.120930552, -0.14945136, -0.086833857, - -0.0295056645, -0.0457487777, -0.0104756607, 0.0131174885, -0.317533284, -0.0998166725, -0.239650279, -0.0531421639, - -0.112553738, -0.0461383872, -0.252444476, 0.10052707}, - {-0.0108660515, 0.374638736, -0.282701433, 0.011277535, 0.0636694729, 0.174909741, 0.242261484, 0.09650895, - 0.0845392346, 0.00817937497, -0.0322346576, 0.139585361, 0.0670185611, 0.191919371, 0.0732040554, 0.0362409204, - 0.0733940825, 0.154753208, 0.0840288401, 0.153007373, 0.139124542, 0.0511232875, 0.125025943, -0.000652897113, - 0.0688999966, 0.11137484, 0.207044348, 0.179407358}, - {-0.0487012528, -0.0661746934, -0.375959635, 0.164913505, 0.318709671, -0.219060451, -0.359610289, -0.232608661, - 0.0258345064, 0.276696026, -0.1931113, -0.269206017, -0.278146327, 0.278260887, 0.117492855, 0.0206653979, - -0.106391437, -0.14937672, 0.210822746, 0.192367017, 0.253760517, 0.287213027, 0.164912879, 0.0906400234, - 0.0909256786, 0.147145718, 0.213409364, 0.328485101}, - {0.0952407569, 0.00503902743, 0.534233272, 0.0469722562, -0.070842959, 0.0289760157, -0.0566560589, 0.071558319, - -0.161762834, 0.00998965092, -0.117919073, -0.217306316, -0.0850306228, -0.0381664783, -0.201376215, -0.0406447873, - -0.137007087, -0.0933181792, -0.115510136, -0.0397844426, -0.21157749, -0.134664416, 0.016704252, 0.0123221437, - -0.172849521, -0.149741426, -0.0669189617, -0.157655969}, - {0.0826847479, -3.61898518, -0.886949956, -0.264022917, -0.130849928, -0.164769411, -0.224584013, -0.185239613, - -0.199779063, -0.0155780306, 0.0703004673, 0.122094028, -0.132630602, -0.297120035, 0.0341962911, 0.0413084812, - 0.0888680965, -0.233864695, -0.165270522, -0.0275585093, -0.0813845098, -0.00122918398, -0.129908949, -0.271276385, - -0.111134723, -0.215944588, -0.231705248, -0.292189956}, - {0.033692088, -0.0115995221, 0.392100006, 0.0164141376, -0.0790671036, -0.0732533261, -0.0843055099, 0.00889809616, - -0.0459872186, -0.167990744, -0.00741991214, -0.0113811055, 0.0203141477, 0.0477045998, 0.0597628504, -0.172063485, - 0.0442440063, -0.115865208, 0.0521338694, -0.0112703713, 0.116252191, -0.239909664, 0.147478789, 0.14233546, - -0.144148707, -0.205554664, -0.150693074, -0.128415868}, - {0.0902147964, 0.374180287, -0.227661088, -0.0423717313, 0.0721279681, 0.11592862, 0.0313367099, 0.0766145587, - 0.0884169638, -0.0619537681, 0.0536151975, 0.0991790518, -0.06195198, 0.209501728, 0.0948890746, 0.0217865873, - -0.00932063162, 0.0200312156, 0.103808612, 0.0624406673, 0.0638349578, 0.0367858335, -0.0579507165, 0.0948898941, - -0.0657811388, 0.25417611, 0.0753740221, 0.0882026479}, - {-0.0229048431, -0.823455513, 0.369468421, 0.0159350671, -0.0364018381, -0.0102854595, 0.0843761042, -0.169397324, - 0.0509314053, -0.306642622, 0.0428903736, -0.0702243969, -0.108211197, -0.107384279, -0.0283519812, -0.0602496676, - -0.125681624, 0.0830424577, -0.0796524286, 0.0239950642, 0.0458415113, 0.106386289, -0.268951803, -0.104570135, - -0.12868695, -0.113098592, -0.135709152, -0.151092708}, - {-0.147546872, -0.476494253, 0.379781961, -0.00845382549, -0.13602367, -0.0397103876, -0.0524099171, -0.028462816, - -0.10599041, -0.128537506, -0.0675565973, -0.0885997787, -0.114978075, 0.0172117632, -0.0500135385, -0.119850621, - -0.173411772, -0.149966389, -0.277642071, -0.0743450746, -0.0933928341, -0.14751637, -0.100278281, 0.00160866743, - -0.0606877729, -0.0811779499, -0.158312291, -0.0983418673}, - {0.0886578932, 0.407455027, -0.286259264, 0.140712813, 0.170984536, 0.0852182731, 0.0880127624, -0.0426299646, - 0.0471196398, 0.0286543258, 0.0461710095, -0.0222941283, 0.00535296556, 0.154814333, 0.0374069251, -0.00051122054, - -0.0153102251, 0.157524496, 0.168699056, 0.0562382117, 0.108641736, 0.0527802296, 0.0848514959, 0.142023206, - 0.236369088, 0.212776214, 0.0469056293, 0.0636911765}, - {-0.00536777731, 0.387708604, -0.441769212, -0.0562604554, -0.0115540959, 0.018464867, -0.0750579387, 0.146541327, - -0.105312765, 0.0556312166, -0.00295639713, 0.0705725774, 0.261199892, 0.16459167, 0.0642999485, 0.12175338, - 0.173205435, 0.12367785, 0.113178894, 0.154755697, 0.122674815, 0.217776448, 0.218216136, 0.0464264676, - -0.00286352308, 0.136454821, 0.167071357, 0.0746893957}, - {0.00900194049, -0.188777819, 0.330225855, -0.0857725814, -0.0283193029, 0.0575850196, -0.167403579, -0.280102521, - 0.0301086921, 0.0345178023, -0.186792076, 0.121037371, 0.00612459518, -0.04487326, -0.132581607, -0.0840037391, - -0.321337402, -0.166064292, 0.0947436169, 0.122523345, 0.0177600551, 0.00207847985, -0.0100936275, 0.137925386, - 0.0268759169, -0.132827237, 0.0425597951, -0.0196706224}, - {-0.0139901387, -0.829750538, 0.360107303, -0.0780381486, -0.0754738152, -0.0128238266, -0.0343623124, -0.125610337, - -0.0676878765, -0.326923221, -0.211139634, 0.0393774696, -0.10564106, -0.0529510789, -0.122519255, 0.0808041021, - -0.1914635, 0.0560227819, -0.058806859, -0.153941527, 0.0186207984, -0.296514422, -0.0550461449, -0.0904163942, - -0.0935793519, -0.0590898618, -0.122700617, -0.0352655873}, - {0.00859814137, 0.16292432, -0.316396624, 0.225585356, -0.027565321, 0.0699985772, -0.174989685, 0.107243858, - 0.107092433, 0.157722041, 0.159067914, 0.123605996, 0.0233509187, -0.031469252, 0.102770515, 0.0330401696, - 0.113539338, 0.174376875, 0.0929281041, 0.0516646914, -0.0535628572, 0.169483602, 0.18760635, 0.0914250612, - 0.0879512653, 0.00737953233, 0.169926897, -0.0333723798}, - {0.0675589666, -0.184712052, 0.302112252, -0.0476183891, -0.0970964655, -0.0176983904, 0.0543388985, -0.13760002, - 0.0449956506, -0.0806547627, -0.108074747, -0.198983803, 0.0642275512, -0.103232235, -0.212509856, -0.0456178933, - -0.170926154, -0.122418791, -0.24390012, -0.135934964, 0.089064531, -0.0631429926, -0.128816932, -0.16033566, - -0.19773376, -0.0101762814, -0.0537892915, -0.179705143}, - {0.011570517, -0.643742621, 0.438297927, -0.126283154, -0.0121233212, -0.0520999134, -0.0446975715, 0.101845562, - 0.0146324905, -0.138466224, -0.117586538, -0.232140735, -0.103183866, 0.0138082271, -0.264222115, -0.164128155, - -0.219495937, -0.127381429, -0.0847942829, -0.252141744, -0.0479142517, -0.114990808, -0.0983201191, -0.026787689, - -0.0650754124, -0.0536898822, -0.102776542, -0.154237345}, - {-0.0223589391, -0.189060926, 0.355397254, 0.0340730697, -0.0335912891, -0.137182623, -0.0486598536, -0.0527128056, - -0.11895825, -0.0144572435, -0.123178661, 0.0999677107, -0.0364840813, 0.0332986861, -0.207274601, -0.227998242, - -0.106250592, -0.263532132, -0.0948950127, -0.12448141, 0.173425779, -0.171991482, -0.105806693, 0.000706521212, - 0.0367827825, -0.112454414, -0.0320220031, -0.106893055}, - {0.157821089, 0.242520407, -0.426347852, 0.147719443, 0.144794211, 0.145302713, 0.0978750959, -0.021342108, - 0.0669948459, 0.14608416, -0.0397813469, -0.00856934953, 0.051726371, 0.0976666659, 0.156731635, -0.00353635731, - 0.108899906, 0.016838545, 0.143608242, 0.0561843403, 0.0567853265, 0.157887876, 0.0494459383, 0.0401505455, - 0.119092248, 0.0309428535, -0.00934117567, 0.0820971429}, - {0.0206203796, -0.365171522, 0.395314991, -0.00406951783, 0.0432386845, -0.0919270068, -0.0474101231, -0.0683477372, - -0.0150692826, -0.0368271098, -0.0757751614, -0.0239714198, -0.187183008, -0.144962043, -0.122960001, -0.018027598, - -0.102368355, -0.141432032, -0.18920064, 0.0304349717, -0.0151983732, -0.135020331, -0.0183942243, -0.0566953123, - -0.0164827202, -0.0694342852, -0.0460225344, -0.168647572}, - {-0.100472547, -0.621631742, 0.254494011, -0.078528285, -0.0569001287, -0.164044842, -0.0741441399, -0.0263737962, - -0.0532547385, 0.0216853078, -0.330813259, -0.0778291896, -0.0514169633, 0.0237470381, 0.0522408299, -0.163086668, - -0.367979646, -0.14734678, 0.0399505831, -0.0193369072, -0.227335766, -0.0651514679, -0.120339252, -0.164403245, - -0.158331499, -0.0548144691, -0.0802343935, -0.116770722}, - {-0.0363411829, -0.18923375, 0.282595247, -0.131566346, -0.284629852, 0.0160411261, -0.00398985669, -0.0165282134, - -0.180690378, -0.387994349, -0.106754757, 0.00666487264, -0.0199500825, -0.159209058, -0.117612705, -0.191556931, - 0.065626882, -0.105833873, -0.0381543674, -0.265583307, -0.237144887, -0.262212187, -0.179881066, -0.184742823, - -0.12001498, -0.10320735, -0.154949874, -0.115276165}, - {-0.0110797817, 0.362837881, -0.270428777, 0.151942119, 0.0715569109, 0.208595023, 0.0899424478, -0.0626451075, - 0.0792481005, -0.007677407, 0.0302358065, 0.0453491844, 0.114485763, 0.162792474, 0.117569268, 0.00320670032, - 0.152213141, 0.123697273, 0.197864458, 0.00885822345, 0.146383047, 0.182136074, 0.0950441509, 0.0591083355, - 0.0940996334, 0.181082323, 0.127232403, 0.0212195497}, - {-0.0171337742, -0.303803712, 0.268003583, -0.233597994, 0.0556120574, -0.0301047973, -0.278069794, -0.176547527, - 0.116706036, -0.140431046, -0.15681003, -0.174060658, 0.0568872951, -0.0956336409, 0.0468483716, -0.171541199, - -0.167458221, -0.0899500921, -0.124589622, -0.0453554727, 0.0699961632, -0.00714040222, -0.119983651, -0.104375057, - -0.0306909736, -0.00567731867, -0.00878039841, -0.0306686237}, - {0.0653850138, -0.537534893, 0.418504208, -0.151912242, -0.0507753193, 0.0741758272, -0.152511165, -0.110857859, - -0.107836932, 0.116414696, 0.0888923407, -0.149886429, -0.185928732, -0.051867336, -0.0623316765, -0.11349158, - -0.041779425, -0.0354770012, -0.122135714, -0.0881208554, 0.127758235, -0.156003535, -0.162532777, -0.134072661, - -0.049634289, -0.0415782072, 0.124296755, 0.0829639733}, - {0.133724675, 0.214877293, -0.310270727, 0.0808180571, -0.0138786733, 0.0521762334, 0.0222238284, 0.184985444, - 5.06447977e-05, -0.0132601727, 0.0445512906, 0.13096422, 0.126762986, -0.0232271682, 0.0325563289, 0.0838452801, - 0.132459968, 0.113269225, 0.0851326287, 0.0880838707, 0.0678768978, 0.173630357, 0.197274268, 0.101782851, - 0.134308442, 0.12281768, 0.187910557, 0.197503641}, - {0.0343093462, 0.355890036, -0.343247145, 0.145604268, 0.133842796, 0.0661985129, 0.114086956, 0.0465118401, - 0.0970608592, 0.0351937041, 0.105215527, 0.0871198401, 0.112717494, 0.0800875649, 0.0354256555, 0.0590264425, - 0.100870311, 0.0458530448, 0.109174907, 0.134820983, -0.00758414436, 0.0531461537, 0.109682992, 0.111518212, - 0.116113909, 0.047887411, 0.155433476, 0.160931036}, - {0.180103004, 0.225539103, -1.05887783, 0.0831284299, 0.0128268525, 0.17172116, 0.183677003, 0.220256135, - 0.0169506799, 0.0289914627, -0.0214763992, 0.245211631, 0.0446342081, -0.0122187659, -0.00567138428, 0.0434907638, - 0.356940329, 0.00398444664, 0.128908142, 0.146212727, 0.0959063321, 0.217410862, -0.00612821989, 0.270499617, - 0.184919477, 0.0464202315, 0.0229926314, 0.233553991}, - {0.106143571, -0.164256513, 0.253030658, -0.195234895, -0.0548131317, -0.00535679609, -0.0302653406, -0.30038926, - -0.194136307, -0.359743178, -0.0733930841, -0.113436781, -0.037875846, -0.0512446165, -0.147130892, -0.238195196, - -0.0413932204, -0.248187125, 0.0123915551, 0.0478160456, -0.345773339, -0.0357223824, -0.0475115553, -0.030881457, - 0.1376753, -0.116784073, -0.0991777033, 0.0429757126}, - {-0.0465961583, 0.483804971, -0.0228315778, -0.0506619513, 0.228391558, 0.06917613, 0.333296299, -0.00148582901, - 0.0369454809, -0.000354325981, 0.0884286687, 0.0568616018, -0.0484414846, 0.112499535, 0.0463447794, 0.198785022, - 0.126553595, 0.0855222419, 0.04631662, 0.145895079, 0.0608588271, 0.0178530142, -0.0758013502, 0.247839555, - 0.148109913, 0.0949237272, 0.174619749, 0.0374694169}, - {0.122011974, 0.0370772257, 0.391691208, 0.0063999244, -0.122873046, 0.0244756155, -0.144107074, -0.0620764494, - -0.128949881, -0.0207871422, -0.273331732, 0.0641204715, -0.174314514, -0.0580527484, -0.0703147352, -0.199279428, - -0.139127806, -0.275554508, -0.0756605789, -0.0519586205, -0.112239487, 0.0200306494, -0.0510842316, -0.0958439708, - -0.00186791166, -0.0566356555, -0.17764613, -0.0596765429}, - {0.114499323, 0.405397892, -0.31667617, 0.187084883, 0.116574928, 0.10635031, -0.033303678, 0.0378345326, - 0.0982072279, 0.0476877056, 0.0942603275, 0.0603644252, 0.0255254749, 0.124966636, 0.0184689276, 0.0659752488, - 0.0613606572, 0.15548189, 0.107315205, 0.0778290555, 0.0503144674, -0.0343093127, -0.023663763, 0.0947155356, - 0.161051393, 0.101006553, 0.0680466592, 0.0211073887}, - {0.150076181, 0.256656706, -0.192881629, 0.103807323, 0.13402836, 0.103034995, 0.0666111857, 0.0215254854, - 0.0934222788, 0.127805814, 0.0469778851, 0.106958359, 0.162148327, 0.0459762812, 0.117030315, 0.0534578599, - 0.0920748413, 0.0361339971, 0.0657739118, 0.0442397408, 0.139613464, 0.0505167767, -0.0301580988, -0.0500084795, - 0.126080841, -0.0493101962, -0.0860681981, 0.0151490895}, - {0.214842066, -0.214032784, 0.479474545, 0.103459463, -0.0580997989, -0.194760114, 0.0479441434, -0.0212056879, - -0.321111232, -0.112298779, -0.0441878065, 0.0019188826, -0.251604825, -0.0118833417, 0.140793994, -0.123364218, - -0.0450059958, -0.131927758, -0.0448937565, -0.0718149319, -0.0811653137, -0.0556802563, 0.00104597025, -0.0733592957, - -0.0909108073, -0.0269260928, 0.00465522334, -0.0127244359}, - {-0.0819999576, -0.525065362, 0.335211307, -0.206128404, -0.0512591116, -0.0966746658, -0.0255597737, -0.0376746953, - -0.122689277, 0.0467013493, 0.0546465553, -0.186018646, -0.0465570278, -0.120962866, -0.0567229055, 0.0113819251, - -0.238434523, -0.0281038359, -0.0638500899, -0.15523006, -0.172130808, -0.030898124, -0.031624645, -0.222067028, - -0.0569182038, 0.0152348904, -0.0468213558, -0.182410836}, - {-0.0482529551, -0.522007167, 0.276635617, -0.0148992315, -0.101080164, 0.0709259808, -0.145316735, -0.188498482, - 0.0220307913, -0.041281268, -0.283109039, -0.0876885131, -0.180240721, 0.0152616166, -0.241818443, -0.163179383, - -0.0240181237, 0.00353968679, -0.171047434, -0.0963189304, -0.165991947, 0.042181313, -0.190360993, -0.128166065, - 0.077820383, 0.0454171374, -0.0669817477, 0.0579451583}, - {0.162483603, 0.242871776, -0.368798584, 0.00239649019, 0.0328088626, 0.0968608409, 0.0555411801, 0.0871072486, - 0.00286882068, 0.114706405, 0.0428481214, 0.091292344, 0.0797184184, 0.0283223949, 0.191450983, 0.211649731, - 0.126576751, 0.0481306463, 0.06244798, 0.171044499, 0.0553914979, -0.0951455086, -0.189074978, 0.13067618, - 0.140983671, 0.0710604787, 0.0441039577, -0.130191147}, - {-0.00520297699, 0.374251395, -0.381711632, 0.0927489251, 0.0238964334, 0.0631350651, 0.200121552, 0.0484938025, - 0.0524025746, 0.00929001253, 0.0385874249, 0.0292978548, 0.168184265, 0.109522983, 0.100928374, 0.108778886, - 0.115419894, 0.0902778506, 0.192098513, 0.0639346689, 0.085071601, 0.0876080021, 0.156298891, 0.069896996, - 0.239671171, 0.0285774246, 0.0744408518, 0.149581239}, - {-0.0514755733, -0.358688831, 0.359383911, 0.00437634066, -0.128775805, 0.0682161376, -0.154706925, -0.00920877233, - 0.0572361685, -0.194796309, -0.0198871773, -0.113199852, -0.0990116671, 0.0534732416, -0.177191287, -0.0868317559, - -0.033822272, -0.0346709155, 0.135941803, 0.00840008631, 0.0861718506, -0.100902192, 0.092369467, 0.00199005846, - -0.112661451, 0.015940208, -0.199290812, -0.00990301277}, - {-0.116220325, -0.636873603, -3.24077392, 0.301996708, 0.173914865, 0.2317186, 0.098890081, 0.391456276, - 0.137991503, -0.0377864763, -0.0614043549, 0.023031557, 0.286225587, 0.130348057, -0.0584962554, -0.0494973026, - -0.0833101496, 0.306133986, 0.253035575, 0.0294886399, 0.0463630632, -0.0218323171, 0.110777676, 0.338182688, - 0.234739184, 0.277391106, 0.194674939, 0.248723418}, + {-0.336461723, 0.154304922, -0.10887333, 0.0346023738, 0.0663131773, -0.263053775, -0.152429491, -0.156706274, + -0.0261838995, 0.0615116283, -0.00867442507, -0.0330895744, -0.200019136, -0.152155533, -0.228213087, -0.0947766751, + -0.168420106, -0.105302423, -0.0634559542, -0.10144452, -0.00757334288, -0.098755151, -0.0393106975, -0.130494073, + -0.137479991, -0.147044897, 0.0444718711}, + {-0.476948798, 0.283080339, -0.112627052, -0.0566330925, -0.117319182, 0.067356348, -0.214415103, -0.0908493698, + -0.130251959, -0.0832009315, -0.132550076, -0.0409394987, -0.14343515, -0.165731624, -0.0995086357, -0.0931895301, + 0.0399273336, -0.109562084, -0.0865440071, -0.187932745, -0.116726696, -0.0622647591, -0.161190167, -0.0746859461, + -0.0869885162, -0.0633410662, -0.183728024}, + {0.501687288, -0.246853873, -0.111631788, -0.0950183868, 0.0433660597, 0.0353987776, -0.0815068632, 0.0190158598, + 0.0472823232, 0.141847193, 0.150354445, 0.109667607, 0.173449546, 0.0974388719, 0.117253646, 0.0443467014, + 0.155469015, 0.0015354075, -0.0226863306, 0.107729092, 0.0867730677, 0.0539038517, 0.0109655559, -0.0001881551, + 0.0539281517, 0.0739952698, 0.024234768}, + {-0.241468534, 0.245634317, -0.177097514, -0.0966913477, -0.0908557996, -0.222765237, 0.0428062752, 0.0662450641, + -0.14830184, -0.27613914, -0.00439124089, 0.0616023652, -0.0352403969, -0.0714174062, -0.0927751288, -0.198465347, + -0.10787531, -0.129295409, -0.0771139264, 0.0929553285, -0.0864783376, -0.101502113, -0.0561841838, -0.0308110006, + -0.0971863419, 0.0321811512, -0.136937499}, + {-0.293241292, 0.176214963, -0.0997679755, -0.137113556, -0.102217041, -0.0628509074, -0.0408717208, -0.145298526, + -0.157438934, -0.141293526, -0.051789429, -0.138779029, 0.0460731909, -0.0666170716, -0.068696849, -0.0526388474, + -0.0870416909, -0.164847091, -0.0075546396, -0.179455563, -0.0679638982, -0.148295894, 0.0217483994, 0.00110340223, + -0.109468557, -0.0612522177, -0.144700974}, + {0.555234432, -0.29328832, -0.0530367084, -0.0197362695, 0.135281458, 0.0643368214, -0.0479854904, -0.0320929959, + 0.00952057075, 0.0762432516, 0.0431200638, 0.00373447174, 0.00648360141, 0.0249679051, 0.0982084647, 0.0742597654, + 0.176258922, -0.0588847473, 0.067157805, 0.0840090215, 0.096922338, 0.107480116, -0.13343218, 0.0502937026, + 0.00758570526, 0.143558204, -0.0295699202}, + {-0.0196725614, 0.521027982, 0.117322937, -0.136202931, -0.0885757059, -0.157541454, 0.027417697, -0.196738541, + -0.185150325, -0.0608076118, -0.242262214, 0.129811585, 0.00927441008, 0.0253326576, -0.173773453, -0.0929993242, + -0.112551235, 0.0229004882, -0.0823968425, -0.144142121, -0.134864509, -0.0435563624, -0.0138254175, -0.017871825, + -0.118300691, -0.222301945, 0.0654260442}, + {0.515057206, -0.501810074, 0.0906459242, 0.0663279667, 0.0672804043, 0.136731073, 0.197158888, 0.0887991562, + 0.103316456, 0.0668849945, 0.0824639574, 0.105142467, 0.111418657, 0.168580294, 0.217910707, 0.12751174, + 0.163602412, 0.0649882257, -0.0231945887, 0.157283291, 0.0133193424, 0.0967117697, 0.0735855326, 0.0733335912, + -0.0301157199, 0.105765827, 0.118556902}, + {0.437964976, -0.0891112685, -0.0817612186, 0.0337016955, -0.0144375162, -0.0190179851, -0.0760151967, 0.0206933953, + 0.0126884431, 0.152803347, 0.217285782, -0.0638305172, 0.154621854, 0.184730306, 0.0730771124, 0.142845079, + 0.118791498, 0.0935750753, -0.00985962339, 0.14858295, 0.0264425948, 0.0211795457, -0.0477743596, 0.0518504567, + 0.044468943, -0.0322440341, -0.113994136}, + {0.275304943, -0.440430224, 0.205142319, 0.296866268, 0.206504375, 0.213049769, 0.236116648, 0.165672138, + 0.156796411, 0.121099472, 0.136662409, 0.0533005744, 0.124345988, 0.178031459, 0.0942888856, 0.0820470378, + -0.0188032296, 0.158560991, 0.114671834, 0.206088871, 0.104401477, -0.0764776617, 0.336370409, 0.193061247, + 0.0689836368, -0.0371297821, -0.0176717378}, + {-0.503815114, 0.117647812, -0.0947853103, -0.0888879895, -0.150847107, -0.173219636, -0.171667159, -0.0869263411, + -0.182824627, -0.103248619, -0.103223078, -0.182025731, -0.0597172603, -0.130951121, 0.0579778478, -0.187960774, + -0.0464051925, -0.0732548311, -0.170095325, -0.0454986207, -0.131479591, -0.121194012, -0.128192231, -0.139532492, + -0.170335412, -0.0389355049, -0.0885092244}, + {0.545259476, -0.743000686, 0.123060927, 0.0750294402, 0.0920063928, 0.0688846558, 0.0780040771, 0.147260338, + 0.160915926, 0.082233265, 0.0307610985, 0.14154236, 0.137007028, 0.0628393888, 0.0126191974, -0.0901432484, + 0.0655800924, 0.12276125, 0.0915826783, -0.0397638828, -0.0567843281, 0.13035585, 0.0849244669, 0.125134706, + 0.0200874638, 0.0811543018, 0.119952776}, + {-0.863882303, -0.286586463, -0.0436602645, -0.206180006, -0.0361143351, -0.063956216, -0.19108972, -0.066635862, + -0.115632087, -0.116745904, -0.00574644096, -0.24195531, -0.172636062, -0.0113078328, -0.00190027303, -0.00475866022, + -0.103091143, -0.236703053, -0.0936092809, 0.0481541157, -0.157557085, 0.0174609497, -0.300570279, -0.142101526, + -0.0440290384, -0.146465167, -0.146330267}, + {-0.614430249, -0.00133095577, -0.15687111, -0.074202925, -0.0625234395, -0.219945475, -0.0697372034, -0.0709214211, + -0.183709145, -0.0647780672, -0.0191991851, -0.152953938, -0.0573028922, -0.0626742244, -0.0275068618, 5.11718099e-06, + -0.1329671, -0.13576977, -0.012498335, -0.160364896, -0.156126291, -0.0500632636, -0.244752139, -0.123227298, + -0.0709499642, -0.0277239047, -0.131129205}, + {-1.05760479, -0.475387812, -0.356799334, -0.0877590925, 0.00557458494, -0.21499151, -0.318871707, -0.0426627472, + 0.0690349564, 0.0718996152, -0.128308564, -0.246176571, 0.000836514868, 0.0878805667, 0.125116646, -0.0364632495, + 0.0307956766, -0.128316909, -0.0271618664, -0.0471602865, -0.0675882772, -0.176609352, -0.0962155461, -0.0914392024, + -0.152685434, -0.141950727, -0.13847293}, + {-0.33753708, 0.123861521, -0.00318000116, -0.0203293599, 0.0125157302, -0.0303300638, -0.112960629, -0.12710841, + 0.0188797917, -0.217398718, 0.0356179141, -0.153275773, -0.116520122, -0.0602441058, -0.180811509, -0.112214409, + 0.0408374779, -0.109781645, -0.194045067, -0.0450648777, -0.120420091, -0.0403718576, -0.170846909, -0.203327894, + 0.00645394111, -0.0464387722, -0.0821784958}, + {-0.404387981, 0.146623626, -0.0111723561, -0.0987150297, -0.0885990188, -0.331271529, -0.215831667, -0.196489066, + -0.176219434, -0.0052387123, -0.06742993, 0.0303974841, -0.0736306384, -0.111799695, -0.0621598549, -0.107533887, + -0.0286721326, -0.0296850968, -0.0365842767, -0.162165895, -0.129865497, -0.0257233065, -0.111031547, -0.0841779485, + -0.0103744781, -0.0235559568, -0.12829037}, + {-0.389871418, 0.325205147, -0.202666372, -0.0631261542, -0.0449823327, 0.000680716534, -0.113931477, 0.0472895913, + -0.133598924, -0.178089157, -0.140900657, -0.157841027, -0.0704756677, -0.13923645, -0.198325247, -0.0897430107, + -0.076825358, -0.14972426, -0.115272976, -0.0940996855, -0.0544049405, -0.190078169, -0.0608553402, -0.116017424, + -0.0132451365, -0.19820337, -0.101439781}, + {-0.549823403, 0.0365903452, -0.234441727, -0.0218347758, -0.0285061579, -0.138356805, -0.180055663, -0.164054498, + -0.220073089, 0.0438569076, 0.00251096766, -0.112317808, -0.0555928908, -0.0422757193, -0.154647186, -0.0748772621, + 0.0356666371, -0.0671267658, -0.0803513601, -0.0868180394, -0.114429407, -0.107504837, -0.08839304, -0.0374800451, + -0.237587512, -0.0794109255, -0.159469888}, + {0.454538584, -0.143599376, 0.0919798836, 0.0573271923, 0.0245270487, 0.0275781266, -0.0860885754, 0.075321041, + 0.0687650144, -0.00777275767, 0.0629966557, -0.048610311, 0.0414154902, 0.0734824389, 0.11830087, 0.020603558, + -0.019885242, 0.140498042, 0.107861951, 0.071308732, 0.163864553, -0.0433851779, -0.120720699, 0.0494855195, + 0.0714977607, -0.0448294804, -0.0750102326}, + {0.413284004, 0.755857527, 0.0574384183, -0.0467611961, -0.111452386, 0.0402155779, 0.09134157, -0.00712207844, + -0.104574747, -0.102326035, -0.175752327, 0.103249893, -0.0728359744, -0.041756954, -0.169721693, -0.103443913, + -0.0145068029, 0.0181282964, 0.00295278965, -0.116780683, -0.128228545, -0.123205528, 0.17964761, -0.00627433835, + -0.163882926, 0.065338932, 0.0409481078}, + {0.0162304696, -0.170559391, 0.182137489, 0.103262864, 0.129591316, 0.156651959, 0.149003908, 0.0987137407, + 0.246585235, 0.244195923, 0.161659524, 0.205141798, 0.142251134, 0.250169814, 0.149455249, 0.342220753, + -0.00048297763, 0.107712485, 0.176751122, 0.0944397971, 0.146613136, 0.0139483726, 0.119831756, 0.102763854, + 0.0162141211, -0.0125095658, 0.06998723}, + {-0.0814091489, 0.361089975, -0.0212528147, -0.0370061733, -0.151159585, -0.0056566298, 0.0128130922, 0.0590757839, + 0.0577854291, 0.010439585, -0.129232436, -0.230118752, -0.0717097148, 0.00882031489, -0.184435904, -0.240539581, + -0.114007063, 0.0461738892, -0.162503824, -0.137727529, 0.0520763434, -0.0868957341, -0.093090415, -0.203062072, + 0.0368140079, 0.110035688, -0.0946049988}, + {0.601561844, -0.234425396, -0.0874742791, -0.109474912, 0.107772671, -0.0156976264, 0.020523807, -0.00522266142, + -0.0417326316, 0.0158955064, 0.123555519, 0.00557566108, 0.0309953969, 0.0327091739, 0.148837447, 0.0482964963, + -0.0111426702, -0.125640169, 0.14572002, 0.0218056999, 0.125552535, -0.0169510283, -0.105879158, -0.00411166437, + 0.0315352641, 0.0745560452, -0.101139069}, + {-0.219457254, 0.337195486, -0.114419617, -0.218652502, -0.0148616051, -0.108561747, 0.0710270181, -0.119952336, + -0.141045973, -0.153070375, -0.179692447, -0.113438055, -0.0389011167, -0.125133142, -0.0542742312, -0.144636005, + -0.0917542279, 0.0156771597, -0.0407614484, 0.0295330901, -0.21274659, -0.12757723, -0.0479505919, -0.0762341321, + -0.0713210404, -0.143949836, -0.0904876515}, + {0.140505642, -0.264103413, 0.202562928, 0.144187748, 0.0558891892, 0.0134075759, 0.0689714625, 0.117720678, + -0.0351380594, 0.0996671915, -0.0452203788, -0.0287328009, 0.188050762, -0.0153089538, -0.00311093242, 0.101031013, + 0.0853718519, 0.200995699, 0.119653031, 0.00534844724, 0.0835268423, 0.0391816422, 0.286809564, -0.0128748715, + 0.0284799505, 0.114542693, 0.107680388}, + {-0.273518384, 0.211155817, -0.169016764, -0.0235058516, -0.0130031612, -0.0363758728, -0.170976534, 0.00985067803, + -0.156653851, -0.103289649, -0.100549802, -0.0207712539, -0.00204128353, -0.134797335, -0.110223539, -0.0954364091, + -0.184586838, -0.227154851, -0.0428540483, -0.0500823632, 0.033524435, -0.0981419683, 0.000901479507, -0.129588395, + -0.106828153, -0.0152690345, -0.127257407}, + {0.240826175, 0.524622917, 0.166068822, -0.124361165, -0.00826285966, -0.128780857, 0.07311064, 0.0173093174, + -0.177200377, -0.130131528, -0.105714977, -0.0450495519, -0.0963956192, -0.0075211958, -0.0836626068, -0.130345538, + -0.102114394, -0.0343048684, -0.0724285617, -0.020758098, -0.15061368, -0.131341293, 0.035345152, -0.202655107, + 0.00194212468, -0.024443673, 0.137504488}, + {0.324617684, -0.23776032, 0.0997180492, 0.159622923, 0.117742524, 0.0529744886, 0.051685784, 0.190560326, + 0.189527601, 0.0501139872, 0.183927968, 0.0522141531, 0.159441307, 0.0571975783, 0.256864548, 0.0844347551, + 0.0260899868, 0.100037076, 0.209921867, 0.0661545619, 0.102322966, 0.0393468738, 0.199664697, 0.0249059796, + 0.0943753645, -0.0150666591, -0.0711701587}, + {-0.215813324, 0.180122569, 0.0371143855, -0.125089735, -0.213025764, 0.0364030339, -0.0460196659, -0.0935595036, + -0.123207875, -0.106051706, -0.104017086, -0.212639987, -0.103539668, -0.0184155293, -0.0967653692, -0.0143776694, + -0.0286937896, -0.0239762962, -0.215971351, -0.21347703, -0.0409797654, 0.0136134103, -0.146095082, -0.0394411497, + -0.109160267, 0.00394452084, -0.0890475437}, + {0.224823639, -0.142148271, 0.156778499, -0.00250017759, 0.142526641, 0.177045777, 0.162021145, 0.0779762268, + 0.0653973818, -0.0155820604, -0.00307240104, 0.0796438679, -0.0115369912, 0.00760591216, 0.0839074329, 0.011734535, + 0.173044235, 0.137959257, 0.0355584361, 0.0910959616, 0.0584707819, 0.0847086683, 0.069622837, 0.0704588667, + 0.0422701836, 0.0343328789, 0.130176514}, + {0.248121575, -0.718198836, 0.280786127, 0.166958034, 0.0853961557, 0.0905619413, 0.197417736, 0.161803842, + 0.139548704, 0.0436924845, 0.0616719499, 0.144604117, 0.159158483, 0.0420498364, 0.0324096233, -0.000715754228, + 0.0851745233, 0.226061374, 0.133464649, 0.063581191, 0.0425675251, 0.140226841, 0.493301868, 0.261711568, + 0.33839944, 0.241718829, 0.211702913}, + {0.680942357, -0.921306312, 0.143372208, 0.00767845288, 0.124762543, 0.0487947352, 0.00219840859, 0.0856792331, + 0.153107554, 0.145460173, 0.178919986, 0.0356529206, 0.178734273, 0.20903568, 0.239826441, 0.11746756, + 0.036412131, 0.137592047, 0.21512334, 0.399956256, 0.162690476, 0.135854736, 0.017693026, 0.13674739, + 0.265127927, 0.189316303, 0.147545919}, + {0.208872452, -0.56664288, 0.158555776, -0.0628495365, 0.00224737707, 0.12775071, 0.223413497, 0.0944168717, + -0.0752880499, 0.0484407097, 0.00523728272, 0.179766402, 0.0901073143, 0.0839064717, -0.00416981103, 0.169999242, + 0.140722185, 0.136145249, 0.200115979, 0.124631949, 0.192199409, 0.197580442, 0.245611683, 0.171915039, + 0.124507569, 0.171031937, 0.272799194}, + {0.417655796, -0.476884097, 0.125178307, 0.138402343, 0.122928627, 0.0407426171, -0.0386365689, -0.0399021991, + -0.0538207963, -0.00483809039, -0.103123933, -0.0660489798, -0.00264962274, 0.0245594848, -0.1476904, -0.0151537172, + -0.05937244, -0.0264183395, 0.169120625, -0.0389649346, 0.0546859689, 0.157597214, -0.0442446768, 0.0855880827, + -0.0361807272, 0.160296679, 0.126738638}, + {-0.378693879, 0.234500527, -0.190678969, -0.0408783667, -0.0962519348, -0.0968703181, -0.0695852414, -0.052617386, + -0.0566320494, -0.030750433, 0.00375046162, -0.161522672, -0.102120131, -0.22629337, -0.106760956, -0.146758765, + -0.141566396, -0.0715286285, -0.163557917, 0.0111427922, -0.148292646, -0.125399783, -0.14243643, -0.0905193985, + -0.0655139461, -0.151807159, -0.0969011113}, + {0.319175929, -0.390873164, 0.162176296, 0.124978416, 0.0850441828, 0.170238972, 0.0939667448, 0.012011149, + -0.0808500201, 0.034518946, -0.0188699961, 0.0581693016, 0.0706431717, -0.0250454322, 0.0160313696, 0.010380323, + 0.0462402031, 0.122048303, -0.0181347933, 0.0618357733, -0.0417718962, 0.0354376771, 0.21614033, -0.00287851505, + 0.0546622947, 0.106041074, 0.0957214385}, + {-0.0670246482, -1.40860128, 0.385309309, 0.349619895, 0.254730135, 0.381623566, 0.372816622, 0.143932596, + 0.231021345, 0.183745623, 0.487929821, 0.261497676, 0.0391980596, 0.00960394647, 0.0209474098, 0.323108107, + 0.295323312, -0.0106031494, -0.019115122, 0.107793093, 0.215048447, 0.287489712, -0.0252881944, -0.0110332165, + 0.158037543, 0.215606093, 0.297919482}, + {0.518265128, -0.554099798, 0.155733109, 0.217394069, -0.00727637438, 0.0509682149, 0.0364470147, 0.0760326535, + -0.0653701127, -0.0100978864, -0.00425550062, -0.0749389157, 0.16120562, 0.094311446, -0.0194558278, 0.00408704067, + -0.0575511828, 0.162599027, 0.0255256798, -0.0737488493, -0.0144423246, -0.065677762, 0.0394451693, -0.0141895954, + -0.0202025231, 0.093421936, -0.0464882702}, + {0.312840044, -0.380728394, -0.0199242439, -0.0637602359, 0.0460897982, 0.141509652, 0.15347515, 0.0186699014, + -0.013868222, 0.0199913848, 0.11250025, 0.16548267, 0.0405571349, 0.0821778774, 0.0206979979, 0.146862358, + 0.149970472, 0.0421114415, 0.075723201, 0.0326593183, 0.0781190991, 0.229785904, 0.131655306, 0.13332288, + 0.0875106752, 0.151138783, 0.27515617}, + {0.557796419, -0.271105945, -0.135938123, -0.151212856, 0.0132599631, -0.0137977209, -0.0509882905, -0.0312622562, + -0.019643601, 0.103897847, 0.131554917, -0.0328879319, 0.0658909753, 0.0384253003, -0.027326636, 0.0832217187, + 0.232588783, 0.0897849947, -0.0285363011, 0.0138111468, 0.157057226, 0.13869454, 0.138953358, 0.0367785133, + 0.108918607, -0.00833133049, 0.0772368535}, + {-0.37025696, 0.34698841, -0.164301068, -0.11555206, -0.0598055869, -0.0667800233, -0.192380622, -0.133737028, + -0.148593411, -0.121925727, -0.182414263, 0.0567184947, -0.163480595, -0.0992843583, -0.098942548, -0.0350599326, + -0.141002417, -0.0181282423, -0.102291852, -0.12211825, -0.050163269, -0.169281945, 0.0569266453, -0.165352061, + -0.137477815, -0.140887201, -0.151714861}, + {0.341095716, 0.120465197, -0.0823300853, 0.0446427129, 0.116162814, -0.0311227329, -0.0962972417, 0.121854618, + 0.178456798, 0.17567645, 0.211310029, -0.0196751002, 0.0548262298, 0.155282319, 0.233292669, 0.251868308, + -0.000533286599, 0.119322225, 0.0134889092, 0.185203642, 0.0429295786, -0.014763101, -0.00590737863, 0.11673785, + 0.170903519, 0.10979344, -0.103873558}, + {-0.897909045, -4.69421911, 0.205406263, 0.221727297, 0.287078679, 0.236628547, 0.273687661, 0.127462909, + 0.109897971, 0.073557958, 0.127785787, 0.27025798, 0.343787134, 0.0976620317, 0.0679073483, 0.149988249, + 0.310341835, 0.272185922, 0.145391867, 0.0645254478, 0.116608068, 0.205105051, 0.239113867, 0.26975742, + 0.239295334, 0.251002461, 0.368724138}, + {0.46915853, -0.406623274, -0.0563587062, 0.0319628939, 0.00552898366, 0.0744318292, -0.0347990282, -0.0205581076, + 0.143796533, -0.0096650701, 0.0877068862, 0.03160749, -0.0150092496, 0.135088384, 0.0219495893, 0.204218864, + 0.141957134, 0.123692684, 0.0519869141, 0.0334522016, 0.0812455863, 0.164413199, -0.00818906166, 0.142093509, + -0.0542448945, 0.0896779522, 0.166852266}, + {0.383818626, 0.5958004, 0.179428756, -0.199397787, -0.0665481761, 0.0298313871, 0.0531812124, -0.099887006, + -0.0909599662, 0.0614290833, -0.137692958, -0.0850088, 0.0179387033, -0.215907767, -0.149531767, -0.120972522, + -0.0475872681, -0.0269163623, -0.0605346672, -0.0730663911, -0.171813294, -0.0476032384, 0.0958294868, 0.119042337, + -0.00923403725, -0.0993423238, 0.0409177542}, + {0.3616153, -0.314780414, 0.00147321285, 0.152476445, 0.107074946, 0.0903646946, 0.104922041, 0.0444336571, + 0.159591213, 0.185087025, 0.0905429274, 0.10870064, 0.0832449198, 0.168035105, 0.182690784, 0.167314902, + 0.22124286, 0.0716655925, 0.222487181, 0.170204401, 0.219096646, 0.123106085, 0.103201479, 0.159390971, + 0.221044376, 0.168632194, 0.0915424451}, + {0.421613634, -0.399082035, 0.188590765, 0.0627617463, 0.0969695821, 0.0426679999, 0.166313916, 0.170439288, + 0.0876998007, 0.174340814, 0.0343694836, 0.165511653, 0.0109075084, 0.0775722191, 0.0283280853, 0.0268163495, + 0.0482661054, 0.14014411, 0.0834662691, 0.108136475, 0.165458322, 0.00956256408, -0.0849840567, -0.0127592999, + -0.0575121529, 0.0770347789, 0.0570578277}, + {0.477435529, -0.437617123, 0.051619228, 0.0460120589, 0.133850917, 0.0485309288, 0.0280636847, 0.150195047, + 0.0609800033, 0.154566348, 0.0803388208, 0.0859349668, 0.0108320387, 0.108330056, 0.102925889, -0.010396854, + 0.0443971418, -0.0418371633, 0.0945528969, 0.0176850855, 0.00766494684, 0.0170383062, -0.0763792694, -0.0465995222, + -0.035655763, -0.00451016938, 0.0673447475}, + {0.422291368, -0.205917373, 0.0924348161, 0.193689808, 0.0701295808, 0.0885713845, 0.0376715511, 0.203721657, + 0.0885817409, 0.171860799, 0.077528879, 0.0877082869, 0.198015884, 0.0744842067, 0.20866628, 0.135688141, + 0.126205251, 0.156737089, 0.150870427, 0.0138880163, 0.0737325549, 0.0229568612, -0.0833026916, 0.0664714128, + -0.040268179, 0.0152530838, -0.00160295411}, + {-0.385712832, 0.214391112, 0.070799306, -0.096141614, -0.16453445, -0.155173481, -0.108835906, -0.115385033, + -0.090645358, -0.1448268, -0.101075649, -0.107898541, -0.0970059186, -0.168248281, -0.147197112, -0.012966631, + -0.0107423384, -0.145579457, -0.148254678, -0.01620299, -0.106271997, -0.192775249, -0.183934942, -0.085250333, + -0.138067365, -0.00160986977, -0.0595375448}, + {0.383369058, -0.0776197985, 0.0314927883, 0.0393924117, 0.168874964, 0.139704168, 0.106199935, 0.0242452268, + 0.0995552838, 0.153926596, 0.175399214, 0.0885702148, 0.107615627, 0.0630444065, 0.136611223, 0.120922558, + 0.112005487, -0.00127684651, 0.081233032, 0.0298437476, 0.0945131332, 0.0783420503, 0.064549543, 0.06753584, + 0.110518299, 0.136796266, -0.0654531941}, + {-0.398568809, 0.199587286, -0.0846925229, -0.216599524, -0.0957491249, 0.0205594394, -0.155364677, -0.142765552, + -0.0461665243, 0.0110024186, -0.121991016, -0.0460250005, -0.0774515718, -0.0125134084, -0.0688956976, -0.164693028, + -0.211418837, -0.103768639, -0.122238405, -0.112455241, -0.0825687349, -0.118332535, -0.0648693442, -0.0670684129, + -0.242567211, -0.0624209307, -0.0826468915}, + {-0.26545167, 0.355324924, -0.269972384, -0.0857584178, -0.0465858616, 0.0337751359, 0.00990587194, 0.0115580428, + -0.133223355, -0.13316004, -0.019466199, -0.0940565914, -0.093563959, -0.100755326, -0.0905914381, -0.147906974, + -0.0748415738, -0.0370743126, -0.0230461154, -0.198925689, -0.20902808, -0.109874807, 0.0244780127, -0.0670853034, + -0.0519143417, -0.163116768, -0.105297022}, + {0.31931302, 0.547459543, 0.0880753249, -0.062735498, -0.0503338724, -0.0764781907, 0.126512289, -0.140330151, + 0.0138528449, -0.106777489, -0.0472263433, -0.0315330811, 0.0223370809, -0.129384652, -0.144970268, -0.122217946, + -0.0666366145, 0.0539318547, -0.0438860506, -0.157488108, -0.204093114, -0.0276077315, 0.117251448, -0.110314354, + 0.0731730983, 0.0449753292, -0.0369386263}, + {-0.266658574, 0.216644511, 0.0144204367, -0.0806930289, -0.22242038, -0.12643759, -0.0142633347, -0.151167005, + 0.0276681464, -0.116149977, -0.0712868497, 0.00156799273, 0.0262473337, -0.160810307, -0.105704002, -0.125064746, + -0.157742158, -0.173769936, -0.111742049, -0.0202498939, -0.0036939471, -0.0889281705, -0.106493376, -0.0859038234, + 0.0296278801, -0.163682491, -0.0782464445}, + {0.00354540255, 0.420924097, 0.169512987, -0.0258780308, -0.0895950943, -0.106438994, -0.0408810042, -0.0940106884, + -0.0642131791, 0.0186908916, -0.0822453871, -0.160974473, -0.13742575, -0.173319608, -0.195523262, -0.0196603332, + -0.0350941867, -0.160319299, -0.119695529, -0.174402416, -0.0781966373, -0.0856283084, 0.0131161194, -0.109612837, + -0.120244138, 0.0165597238, 0.0675070062}, + {-0.278506458, 0.3738904, -0.125549883, -0.0415136851, -0.225196004, 0.0471161343, -0.112398431, -0.00679458445, + -0.141953319, -0.192300454, -0.0989379138, -0.0562743135, -0.126593485, -0.235259488, -0.0563514717, 0.000541815767, + -0.0657910556, -0.109945782, -0.0276576448, -0.142048702, -0.161862046, -0.0975759551, -0.0627105087, -0.0598262586, + -0.0786498636, -0.155082062, -0.0157313831}, + {-0.55413568, 0.0202759523, -0.235556498, -0.143557742, -0.132204145, -0.130727574, -0.0438120514, -0.170451298, + 0.0131008318, -0.176760748, -0.150862694, -0.12528348, -0.0954406857, 0.0310935993, -0.0661759451, 0.00816991646, + -0.152494282, -0.0621983558, -0.121914424, -0.193032652, -0.0904289559, -0.0863325149, -0.104844026, -0.0741641968, + -0.0228042435, -0.187413111, -0.162609577}, + {0.485976547, -0.189988092, -0.0003588986, 0.17151244, 0.0998663455, 0.103645243, -0.05487106, 0.0725467801, + 0.0682763979, 0.0675051957, 0.0852867514, -0.0596668385, -0.00893313531, 0.109018549, 0.166358188, 0.223492667, + 0.111480385, 0.0559710898, 0.0776525959, 0.140913159, 0.143883765, -0.0095132608, 0.110375226, 0.019682508, + 0.0774076283, -0.0158048347, 0.0246655736}, + {-0.140471548, 0.402499974, -0.0232743174, -0.136925817, -0.0865993947, 0.00443352247, 0.055207476, -0.0350629054, + -0.0854582861, -0.17693159, -0.0253951941, -0.155755132, -0.184742153, -0.0597181469, -0.133559436, -0.0292834379, + -0.126847684, -0.0917475522, -0.0886207744, -0.236236289, -0.163285226, 0.000951068825, 0.0517877229, 0.0205014329, + -0.140833616, -0.112022206, -0.0224563554}, + {-0.469557047, 0.0208313558, -0.145046726, -0.0819347948, -0.0256711114, 0.100511104, -0.199989334, -0.125898451, + -0.0655753985, -0.0448276848, -0.00316228555, -0.0757711679, -0.0135262152, -0.0920219123, -0.042041257, -0.0200816002, + 0.0232402068, -0.108371332, -0.152907148, -0.184440449, -0.136486232, -0.154705539, -0.211260378, -0.0912795365, + -0.126199439, -0.0802948773, -0.140814647}, + {-0.249324769, 0.368552059, -0.032402385, 0.0652965158, -0.0383552313, -0.243027195, -0.012590345, -0.0551861823, + -0.0390262082, -0.183737651, -0.0706432536, -0.159616888, -0.156150624, -0.190365016, -0.0898740962, -0.0677146986, + -0.0370336026, -0.149673626, -0.191402137, -0.246475443, 0.0203555189, 0.0176247768, -0.0742982924, -0.021756392, + -0.0343282968, -0.00448664837, -0.0423567258}, + {-0.146918356, 0.447307825, -0.143606752, -0.0969513431, -0.0310435724, -0.0160554368, -0.0268079266, -0.0412539244, + -0.102859691, -0.100135177, -0.193884194, -0.0130110625, -0.0967244878, -0.0163912624, -0.0904889107, -0.19804363, + -0.149922729, -0.0109635526, -0.0905889943, -0.114994846, -0.0114435479, 0.0449921228, -0.0197346658, -0.0197591614, + -0.101547442, -0.0553377345, -0.104216985}, }; const float five_dense_biases[FIVE_DENSE_NUM] = { - -0.10617651, 0.0154197877, 0.117111742, 0.0102650877, -0.0448654294, 0.126132563, -0.0500919819, 0.0159013756, - 0.0496373884, 0.084379822, -0.00225325767, 0.0812280104, 0.0491173491, 0.0674164817, 0.0837717131, 0.0212170333, - 0.0402449444, 0.0646258593, 0.0199432168, 0.165128812, -0.0247633122, 0.174038321, 0.138526052, 0.0143451681, - -0.0253094565, 0.0728244409, 0.111286744, -0.448067099, 0.0112198424, -0.0453164801, 0.0155658703, 0.0870072767, - -0.0218650661, 0.125383839, 0.133538574, 0.0686686113, -0.103338301, 0.0217641667, -0.0431467518, 0.150365531, - 0.116416521, -0.0184898619, 0.0454672761, 0.0856234804, -0.00140490883, -0.0644598156, 0.0778391585, -0.0264345333, - 0.0395229757, 0.174890205, 0.163560331, 0.106107652, -0.0916002616, 0.0171617456, 0.0535748713, 0.134761348, - 0.037883196, -0.0293981228, -0.015096793, 0.0806951076, 0.0568698086, 0.217878923, 0.00285294349, -0.130014911 + -0.145204157, -0.0277402811, 0.211434156, -0.117382497, -0.132206768, 0.21691145, -0.0433791168, 0.27201575, + 0.129949957, 0.304839015, -0.0968279541, 0.277042836, -0.115271628, -0.079115212, -0.16494669, -0.0510745384, + -0.144819096, 0.0475319512, -0.0802276954, 0.188885778, -0.182127863, 0.329600185, -0.150753573, 0.0957632288, + 0.0111581245, 0.157950222, -0.141521424, -0.190296218, 0.248286828, -0.0684776604, 0.137061238, 0.415693849, + 0.395839244, 0.360719889, 0.205312118, -0.0245424975, 0.112486944, 0.361877054, 0.0785427466, 0.267031074, + 0.240074143, 0.0293443501, 0.227391914, 0.594486654, 0.314840108, -0.141555116, 0.440181881, 0.315535516, + 0.293939352, 0.255981237, -0.0057315263, 0.236052379, -0.140156507, 0.0054772296, -0.150556788, -0.0183430873, + -0.0312510394, -0.00800710451, -0.0939261094, 0.164174587, -0.0876725167, -0.129597217, -0.0221878439, -0.0834591836 }; const float five_logit_weights[FIVE_DENSE_NUM] NN_ALIGNED = { - -0.152189046, 0.31145522, -0.501055002, -0.430743396, -0.188517824, -0.644860923, -0.305823237, 0.34793064, - -0.355522096, -0.604841352, 0.429184705, -0.433712095, -0.556476772, 0.400933564, 0.253976047, -0.234569505, - -0.447005302, -0.503887117, -0.42374301, 0.404452264, 0.363007545, 0.28902337, 0.452245891, 0.248775348, - -0.242137939, -0.410595566, 0.439538449, 0.265520841, -0.30932796, -0.992903769, -0.165342614, 0.125757992, - -0.483581424, -0.543122172, 0.357163519, 0.418349832, -0.152612984, -0.494201779, 0.198039696, -0.249059439, - -0.665596426, -0.246806905, 0.261523813, -0.303902447, -0.494532794, -0.474734098, 0.359146118, -0.245298445, - -0.306960076, 0.334577858, 0.594795048, 0.481912762, -0.306986272, 0.314059317, -0.20452112, 0.369527459, - 0.188040748, -0.312300235, -0.393799305, -0.394559473, 0.270650476, 0.466186255, -0.212885186, 0.822468579 + 0.37051487, 0.508214772, -0.32005766, 0.27220732, 0.374211431, -0.264154106, 0.270360202, -0.629945159, + -0.199804112, -0.563038468, 0.516418219, -0.688697159, 0.48299551, 0.404973507, 0.551129878, 0.321002781, + 0.335608274, 0.337184101, 0.424715966, -0.131399259, 0.319061458, -0.486196607, 0.233341113, -0.142906249, + 0.330237418, -0.189801574, 0.355688512, 0.267817706, -0.514791608, 0.227719396, -0.158957332, -0.924359977, + -0.623777807, -0.700493455, -0.171029702, 0.379386812, -0.238112986, -0.526128888, -0.205522895, -0.512478709, + -0.175714538, 0.367500365, -0.275081784, -1.24400628, -0.298168987, 0.275398135, -0.823152721, -0.455135852, + -0.339576572, -0.454856992, 0.44089666, -0.403158367, 0.365665168, 0.305184871, 0.178278625, 0.3014597, + 0.215111017, 0.386294872, 0.421103477, -0.326511413, 0.342057288, 0.267303318, 0.311787248, 0.310548276 }; -const float five_logit_bias = -0.0201850198; +const float five_logit_bias = -0.10439048; diff --git a/include/weights_5.h b/include/weights_5.h index 16a9465..8ad9d1b 100644 --- a/include/weights_5.h +++ b/include/weights_5.h @@ -18,7 +18,7 @@ #ifndef WEIGHTS_5_H #define WEIGHTS_5_H -#define FIVE_INP_NUM 3 + 5 * 5 +#define FIVE_INP_NUM (2 + 5 * 5) #define FIVE_DENSE_NUM 64 // this does some kind of magic vectorisation diff --git a/include/weights_6.c b/include/weights_6.c index d6f1720..77ea409 100644 --- a/include/weights_6.c +++ b/include/weights_6.c @@ -1,358 +1,358 @@ /* generated by nn_train.py, do not edit by hand */ -/* v039, val_corr=0.9984, rate=0.5600 */ +/* v000, random init */ #include "weights_6.h" const float six_embedding[7] = { - -0.491239011, -0.164351299, 0.315244704, -0.408277124, -1.12078834, -0.247899964, -0.432551205 + 0.724845707, -0.209938288, -0.347967505, 0.821479738, -1.34644675, 0.0270497333, 0.450257659 }; const float six_dense_weights[SIX_DENSE_NUM][SIX_INP_NUM] NN_ALIGNED = { - {0.000515430293, -0.298784435, 0.62231493, 0.0323850475, 0.0385943204, 0.0285285804, -0.016271675, -0.0102855777, - 0.033854086, -0.0137079237, -0.00766045321, -0.0456512161, 0.0368293896, -0.0340741239, 0.00556757394, 0.0188402627, - 0.011593909, 0.00945147779, 0.010083776, 0.0180580597, 0.0113453642, -0.000227583107, 0.0108447392, -0.00744308531, - -0.0363589488, 0.0303659756, 0.0157463327, 0.0657714084, 0.056025967, -0.0448410586, 0.00165178603, -0.0220403988, - -0.0209411625, -0.0368541107, -0.00368512096, 0.0481802635, 0.026718542, 0.0638203025, 0.012227702}, - {0.0210265629, 0.527348399, 0.0204438455, -0.0902165696, -0.159904867, -0.0364844389, 0.170804992, -0.0380741917, - -0.0687031448, -0.0762568936, 0.147749931, -0.0238340627, -0.0333135873, 0.173204139, 0.0163496751, -0.1363561, - 0.0698596463, -0.0110030584, -0.120799668, -0.00102014968, 0.0262002237, 0.153164923, -0.346185416, 0.0119888447, - 0.0160433464, 0.0645738915, 0.178656578, 0.17158182, -0.0665100738, -0.0170366727, 0.115964942, 0.136816874, - 0.128347576, -0.104385257, -0.192399427, 0.0228087585, -0.11225424, 0.0531408899, -0.230817065}, - {-0.0111455098, -0.0311942883, -0.722582996, 0.0854720697, 0.029796375, -0.121352077, -0.02702819, -0.0443954282, - -0.0341324881, -0.0473326072, -0.0651621521, 0.00395203242, 0.0329355784, 0.0303115901, 0.0402303673, 0.304905385, - -0.0120472237, -0.0572359934, -0.034557566, -0.0483472347, 0.0155713912, 0.290411711, 0.0248964559, 0.00708099222, - 0.0928736925, -0.0307320468, -0.00614209892, 0.00442513684, 0.0593936294, 0.0320092067, 0.0380841196, -0.00877786335, - -0.142653719, -0.152617678, 0.326618522, 0.0496250652, -0.0673352852, 0.019693438, -0.0749565139}, - {-0.0203997865, -0.0776734725, -0.49216345, 0.00152883504, -0.111685529, 0.106751569, 0.148505718, -0.0244257003, - -0.124522112, -0.0793261901, -0.06239843, 0.0178808756, -0.020149475, -0.122562669, -0.00836800877, 0.123083413, - 0.0501387045, -0.0522458851, 0.00971839763, 0.00931108557, -0.0376552269, 0.0195045341, -0.062387418, -0.0182645041, - -0.045171503, -0.0757033527, -0.056151554, 0.00982440449, -0.0286515914, -0.0500706658, -0.178912789, 0.0360568948, - 0.329417378, 0.0738657787, 0.232877642, 0.0824860632, 0.0640945211, 0.067990765, -0.28431803}, - {0.0183837861, 0.515438676, -0.491336375, -0.312429279, 0.0106451334, -0.00150087406, 0.047098197, 0.00544585288, - -0.0360101461, 0.0459187999, -0.108130634, -0.0500531867, 0.074305892, -0.125561178, -0.094122462, 0.175291985, - 0.0119885188, 0.0493808649, 0.0236062594, -0.0150836483, -0.0566055551, -0.024137022, 0.0637028515, -0.0989008546, - -0.0587726012, 0.0451450087, -0.00487829279, -0.18765381, -0.116099507, 0.0470896922, -0.0444938652, -0.239010051, - -0.11746794, -0.0592107065, 0.159408361, -0.0248183478, -0.0252188593, 0.0779711381, 0.126867637}, - {-0.022406701, -1.8515408, 1.19752073, 0.051173266, -0.0769252032, 0.00527154515, -0.0158692878, 0.0218846463, - -0.0468643792, 0.0444277488, 0.0690413713, 0.0397471637, -0.0220384356, -0.0291984621, -0.0362321846, -0.0315559693, - 0.00386379892, -0.073595807, 0.00650994573, 0.0623035766, 0.11847882, 0.0220129862, 0.0254727677, -0.0180584695, - -0.0410494506, 0.00662252074, 0.0429109819, 0.0582324117, 0.0183085594, 0.0580652244, -0.0108405082, 0.0306066182, - 0.0790425763, 0.0411671028, -0.0438192934, -0.0234463438, -0.0713966042, 0.07518778, 0.13800028}, - {0.0215327796, 0.203414977, -0.348643363, 0.104428224, -0.0250779018, 0.0430746488, -0.0652607456, 0.0836304799, - -0.0148068313, -0.0231121369, -0.253950626, -0.27574119, -0.134845749, -0.0783734769, 0.197460249, 0.0867555141, - -0.446333319, -0.173812121, -0.0326885059, -0.0558216944, 0.139414281, -0.110169791, 0.0276528038, -0.0609619878, - 0.0782978982, -0.144564688, -0.0722558424, 0.142926544, 0.0132102259, -0.0700187534, -0.133962601, -0.152395263, - -0.0607144162, -0.122603208, 0.00125558174, -0.107026517, 0.210350484, -0.15040797, 0.0103561021}, - {0.0046962644, -0.701673627, 0.101855278, 0.0238310974, 0.0176863316, -0.0196711943, 0.0116997762, 0.00752953999, - 0.0177178197, -0.0342670195, -0.0589375012, 0.0443790704, -0.0511056408, 0.0408444665, -0.027144691, 0.0166893937, - -0.00972990878, -0.0399409011, -0.0111636417, 0.0234646946, -0.0617382526, -0.02755275, -0.0770106912, 0.0363901854, - -0.0153707517, 0.0039392761, -0.030124383, -0.00338749308, 0.0294016805, 0.0457305349, -0.0249644574, -0.0712176487, - 0.024855325, -0.0116968555, -0.00495077809, 0.0550573207, -0.0130456071, -0.000466924801, 0.0211469084}, - {-0.0140651837, -0.47210151, -1.16673601, 0.0646250322, -0.108423464, -0.00616196916, -0.102787748, -0.130745515, - -0.18499352, 0.0152442958, 0.0108082257, -0.117657058, 0.0135511504, -0.0540828556, -0.0693387389, 0.0180388689, - 0.0374678522, -0.00934058148, -0.0349941961, -0.12363261, -0.066048488, -0.0552934185, 0.0556034893, -0.0477472916, - -0.0399395861, -0.0380369984, 0.00151728035, -0.0183514319, 0.00216195942, -0.00230315328, -0.00691869855, -0.0291660279, - -0.00243238895, 0.00652827276, -0.0153532652, -0.109382592, -0.0691974387, -0.0370263755, -0.0463435762}, - {0.00780838588, -0.416522354, 0.735910535, 0.0246622637, 0.00306017767, 0.0107882787, 0.0363311246, -0.00030878809, - 0.0366173312, -0.0407722443, -0.0182531606, -0.0522346646, -0.00242038304, -0.0130401608, 0.0527641587, 0.0175190382, - -0.0202828832, -0.0319212675, 1.14149252e-05, 0.0464571193, -0.00344156288, 0.00429719454, -0.0349765718, -0.0177266262, - -0.0546469688, 0.0247087795, -0.00968514103, 0.0136369122, -0.0109840054, -0.0024506133, 0.0118062142, 0.0164425578, - 0.0290870406, 0.0328523591, -0.00929149706, -0.0379902199, 0.058232218, 0.0130026322, 0.0530603305}, - {-0.0112001421, -0.667560816, 0.621856689, -0.0510394275, -0.0283678435, -0.0199936945, -0.034421131, 0.00821966212, - 0.0319210254, -0.0391649231, -0.02685651, 0.00598383555, -0.0583808944, 0.0195580777, 0.0281003043, 0.0412431769, - 0.0302855764, 0.0699800029, 0.0288314056, 0.0150381457, 0.0375687368, 0.0200408977, 0.00927479286, 0.0470453314, - 0.049982354, 0.0457168669, -0.0453735702, 0.102044225, 0.0573507994, 0.0222815927, 0.0691943988, -0.0239612944, - -0.0335365199, -0.00402912265, -0.0140459705, -0.00472485367, 0.000277878251, 0.0592397973, -0.0266618542}, - {-0.00793947373, 0.458843797, -1.10990465, 0.0596818216, 0.137771055, 0.0073451628, 0.101913206, 0.0301390365, - -0.200754136, -0.0541613251, 0.0676935315, 0.0139355669, -0.0311595872, -0.0547302216, -0.0582696125, -0.0907157362, - -0.00674120244, 0.159997061, 0.0266054906, -0.00339328265, 0.0340176709, -0.0225407016, 0.0923211947, -0.0368102118, - -0.0302112401, 0.0328989401, -0.0268227458, -0.055212874, -0.0643030629, -0.0171568412, 0.0630252361, -0.0226308964, - 0.00493162172, -0.117545031, -0.0261731874, 0.0227153189, -0.00772400713, -0.0464286245, 0.0545080565}, - {-0.00117014197, -0.930477142, -0.00830586627, -0.0627162233, 0.000265143201, -0.00898462534, 0.0143059082, 0.0279537383, - -0.0278343912, 0.00252711284, -0.0491813235, -0.0087069599, -0.00622193422, 0.0180948563, 0.0120221963, -0.0384260044, - -0.0118745938, -0.0519802086, 0.00980561972, -0.00629175268, -0.0101893581, -0.00764597626, -0.00470837113, 0.0137128988, - -0.0504154339, -0.0121507812, -0.0156670213, -0.0194378607, 0.0434860997, 0.00770600839, 0.0181797128, -0.0370764211, - 0.0147308866, 0.0348699987, 0.00415419415, 0.0175121836, -0.0173850749, -0.0287082288, -0.0226698909}, - {-0.0094090905, -0.428160727, 0.0697672069, -0.0791164264, 0.0507349484, 0.0127565637, 0.0681599826, 0.0458464511, - -0.0544127524, -0.0424964391, 0.0364027061, 0.0510409176, -0.0112645514, 0.115642048, -0.0115270736, -0.0141758351, - -0.0751062483, 0.102270313, 0.0676256642, 0.00209342409, 0.0129256109, 0.0263991039, 0.0446314588, 0.0365661494, - 0.063345097, 0.0436342619, 0.0493914373, -0.0325215906, 0.0159222521, 0.0938699991, 0.0208906252, 0.108049683, - 0.109786369, 0.0750993416, -0.0273827799, 0.00148510432, 0.135106444, 0.0173288956, -0.0112205083}, - {-0.0139317801, 0.227180436, -0.404407948, -0.0418660566, -0.0187193025, 0.193963125, -0.122096457, -0.0860499516, - -0.00836612098, -0.155951738, -0.036868237, 0.0417216159, 0.0640057623, 0.20753485, 0.0974762961, 0.106464297, - -0.118873209, 0.119861431, 0.0965417996, 0.205864877, 0.115268797, 0.0630797148, -0.0742385685, -0.0833550841, - -0.132306442, -0.0900236815, 0.0328928567, 0.0339581892, -0.069514215, 0.0574102551, 0.0557171479, 0.143081516, - 0.0540916659, 0.125553951, 0.0426946506, -0.0185146332, -0.00297326501, 0.192926303, 0.0224414729}, - {-0.0218674317, 0.159496814, -0.60035038, 0.0543779023, -0.0241881032, 0.0533699393, -0.0364592895, 0.0269613676, - 0.0276057683, 0.0391895361, -0.0569878481, -0.0964982659, -0.0795290023, 0.0322267152, -0.000109513996, -0.0215753056, - 0.0655881613, -0.142443448, 0.0461984053, 0.0410717912, 0.0126721114, -0.0492512174, 0.323774725, 0.0182631966, - -0.00054868951, 0.0212314706, 0.0993990973, 0.127508044, 0.0517479479, -0.0167098138, -0.119035453, -0.0520526394, - -0.100616075, -0.106658317, -0.11621543, 0.289432019, -0.0543707386, 0.0822149143, -0.123912551}, - {-0.000989211607, -0.709903538, 0.37149182, -0.0909373313, -0.037998978, 0.0198158789, 0.00903437659, 0.0849099755, - 0.0327719338, 0.070933044, -0.0292004514, -0.0542036481, 0.0360710062, -0.0109692607, -0.00518571399, -0.0641901046, - 0.0126454318, -0.0358200558, -0.117927425, -0.0353106745, 0.110694788, 0.111871652, 0.0155939749, 0.0265476089, - 0.0203381851, -0.0776525661, 0.0113046886, -0.000468786544, 0.0242805742, 0.0266677774, 0.0408828259, -0.10218551, - 0.012831782, 0.0440568775, 0.0116595356, 0.0626022667, -0.0514003746, 0.0140310721, -0.065185301}, - {-0.00623449916, 0.219368055, -1.06808925, -0.0427524187, 0.0306106322, -0.0353905484, 0.0506071523, 0.0584583022, - 0.0250218082, 0.0441981666, -0.281936914, 0.0182740409, 0.0625585169, 0.0964937881, -0.00854112022, -0.0973323062, - -0.096263878, -0.0387287997, -0.0174322929, -0.0442129225, 0.0147142839, -0.0723083913, -0.0877401903, -0.0963780582, - 0.0489082001, 0.0516969748, 0.0381704867, -0.0866447911, 0.0428613834, -0.0150236273, -0.0438821949, 0.113983721, - 0.0379472822, -0.0755354241, -0.0272512678, -0.0728112757, -0.0516017787, 0.0549347363, -0.137530193}, - {-0.0165789053, -0.0176809691, -0.583721399, -0.116408639, 0.0861298591, -0.0166475996, 0.143127427, -0.213978291, - -0.144702226, -0.00968549587, -0.130910218, -0.0443522334, -0.0883579999, 0.0294515546, -0.0791936666, 0.0241730176, - -0.0184481367, 0.091893293, -0.0406294651, -0.0193100367, -0.05470521, 0.0153730977, -0.0442103781, 0.0441130847, - -0.00520540634, -0.0766363591, -0.103786379, 0.343775153, 0.109110497, -0.061702013, -0.0577796474, -0.108430959, - -0.0972641855, 0.242045462, -0.106202178, -0.0606107451, -0.0380872525, 0.0351280682, 0.125195846}, - {0.0110406373, -0.324823856, 0.597194493, -0.0147612225, -0.0185518861, -0.00126314966, 0.0321953408, 0.0181207862, - 0.0192156956, -0.0189139489, -0.0537314266, -0.031529434, 0.0260469709, 0.0138806207, 0.0153375929, 0.0118838623, - -0.0282750241, 0.0200632513, 0.0234908424, -0.000126554849, 0.00131632539, 0.0373425186, 0.0118429372, -0.00782554876, - 0.0310025569, 0.0290212389, 0.00156587851, 0.0155985262, 0.0712495223, -0.0207353719, 0.0184272509, 0.0169756357, - 0.0378302112, 0.0063718115, -0.00742608728, 0.0725825801, 0.0476264097, -0.00656683603, -0.0167687777}, - {-0.0204232931, 0.151650578, -0.715103567, -0.0214345437, -0.0561732762, -0.0349136032, -0.0849863365, 0.126297414, - -0.20758085, -0.0113630425, -0.0353466421, 0.0597065315, 0.0725762025, -0.0111759789, 0.0507468358, 0.0293463189, - 0.00880836602, -0.220651895, 0.0540508628, 0.0306186955, 0.115706168, 0.015344087, -0.0778737515, 0.156922922, - 0.0556053706, 0.121539004, 0.00863413233, -0.00436831033, -0.0124422032, 0.011989437, -0.0404531769, 0.0545137525, - 0.00166875229, 0.0855755061, -0.171901911, -0.0239619985, -0.0890113339, 0.0199022721, 0.0385033078}, - {0.0049507916, 0.119893692, -1.10068679, -0.0841242075, -0.0115327537, -0.000518924615, -0.0454144105, -0.0344429798, - -0.0244324766, -0.080759801, 0.162284419, 0.062691696, 0.0812084824, -0.0338427015, -0.0873645842, -0.0831419677, - -0.0294042751, 0.0717345327, -0.0466150828, -0.0111919511, -0.0164100789, -0.0367029198, -0.0851199105, -0.0901447907, - -0.00312636676, -0.0869507343, -0.0444815122, 0.00800216012, 0.0444453433, 0.0484097041, -0.0646630898, -0.225617781, - -0.0992556512, -0.0293748714, -0.0847522914, 0.0148564344, -0.191617087, -0.063108243, -0.236434147}, - {-0.013990364, 0.293670565, -0.518882096, -0.0754929036, 0.02479022, -0.0383556113, -0.0425968729, -0.100282304, - 0.0913763121, 0.151942447, 0.126932427, -0.00909234863, -0.0411766507, 0.0411659218, 0.025948666, 0.114785306, - 0.0172100496, -0.058990337, -0.0698410496, 0.0290243756, 0.0699921399, -0.0275507402, -0.0424461849, -0.1403137, - 0.0169924311, 0.00438680127, -0.0348622501, -0.043134775, -0.0632498339, 0.00950849988, -0.122009531, 0.0644979775, - 0.117046647, -0.161717981, -0.123412862, 0.111730196, 0.186033547, 0.165555924, 0.193361759}, - {-0.0131810196, 0.174292848, -1.10100555, -0.0467269197, -0.0112098521, -0.00636721216, -0.0144613786, -0.0175797492, - -0.0544058159, -0.0108655849, 0.0201172251, 0.0192527603, 0.0224764608, -0.040108528, 0.0396784097, 0.0298160054, - -0.052815292, -0.0344530791, 0.0786835253, -0.0576124303, -0.119389072, -0.117814608, -0.0859730989, -0.0627231151, - -0.038103167, -0.0347601883, 0.0133343162, -0.011986766, -0.0901006311, -0.199035212, 0.0378593281, 0.0678401366, - -0.13256301, -0.011933404, 0.0278470498, 0.164526984, 0.020315947, -0.0833534673, 0.0125702852}, - {0.0186551642, -0.432987303, 0.721324801, -0.00529016042, 0.0553429946, 0.0320539251, 0.0135143353, 0.0143757043, - 0.0288114548, -0.0249648988, 0.0371033922, -0.00507977558, 0.0549705476, 0.00179210783, 0.0278930552, -0.063361913, - -0.0115029179, -0.0251679905, -0.0268538594, 0.0509991907, 0.0165407453, 0.00309631764, -0.0748590901, -0.00911477115, - 0.00935480092, 0.0490843877, 0.01297238, 0.028125152, 0.010552315, 0.00217064912, 0.0154645378, -0.0074588866, - -0.0222084485, -0.00545177795, -0.00529673602, -0.0775598735, 0.0236283317, 0.0623097718, 0.00175937545}, - {0.0112954602, -0.453076363, 0.565922201, 0.0197333433, -0.000362831255, 0.00997130107, 0.00809890218, -0.0288496204, - -0.00021254085, -0.0167767908, 0.0244326238, -0.00744830538, -0.00190118642, 0.0236879755, 0.0409444571, -0.00963943079, - -4.47095008e-05, 0.00462765619, -0.0332109481, 0.0196998697, -0.00395555608, 0.00518306531, -0.0438160375, -0.0109243635, - -0.0123857185, 0.0188901816, 0.0142225139, 0.0172637235, -0.0237491354, -0.0195901245, -0.013949302, 0.0316869281, - 0.023668984, -0.0479320474, -0.0240375623, 0.0465868004, 0.0240585767, 0.049543798, 0.0278156437}, - {0.182318762, -0.478048027, -1.53112376, -0.0875453204, -0.01983881, 0.00502386829, 0.304810286, -0.0866449326, - -0.0523066819, 0.00118219887, 0.0627138689, -0.131632775, -0.11570847, 0.0388183147, 0.151336059, 0.0659334213, - 0.0524145216, 0.0882746205, 0.150207758, -0.0310680717, 0.0607965887, 0.0546576567, -0.0166274626, 0.0132849887, - 0.358181238, 0.124513805, 0.04712772, 0.075664416, 0.0768424422, 0.269107252, -0.00301887211, 0.0913903341, - 0.0928177759, -0.00794902537, 0.0122159747, 0.0940552726, 0.168790728, 0.236253113, 0.0192300789}, - {0.0101632643, 0.484686643, -0.339466423, 0.216934264, 0.12147785, -0.141840935, -0.185925871, -0.0773761421, - 0.0272871181, -0.0264583305, 0.043325562, 0.156558931, -0.124230839, 0.0183455814, -0.117560439, -0.0395603105, - 0.114969157, -0.108726129, -0.0640510321, 0.0656603724, -0.0579534099, -0.100083001, 0.0565499552, -0.0667266399, - -0.0560918078, -0.066624321, -0.133369267, -0.0795473829, 0.069253169, -0.105454125, -0.0241380278, 0.14336051, - 0.0639061406, 0.120990962, -0.0190433133, -0.0525995791, -0.152922332, -0.00699200621, 0.0241949931}, - {-0.0170254484, 0.283194482, -0.780975461, -0.156915054, -0.0829465091, -0.0537862703, -0.0779813156, -0.0432733037, - -0.000105027182, -0.0138965202, 0.106942192, -0.064604409, -0.00815478899, -0.12103688, -0.0322838128, -0.0740578175, - 0.0259897672, 0.204952911, 0.03651198, -0.00612975564, -0.00582449976, -0.0167547055, -0.0286165159, 0.0900302157, - -0.0354595929, -0.123135261, 0.000353313371, -0.100610703, 0.35998714, -0.0230751224, -0.025350783, 0.232414857, - -0.0403540507, -0.0211899392, 0.0833096877, 0.0138754593, -0.0365905128, 0.0274482835, 0.0827128738}, - {0.00545252068, -0.540798903, 0.0818469077, -0.00239267619, -0.0549731664, -0.00787664577, -0.0418403372, -0.0082004955, - 0.0285412297, 0.0783851892, 0.0067824251, 0.0589341149, -0.0166717917, 0.00806407351, 0.0359001718, -0.034290798, - -0.0333051942, 0.0118580945, 0.0640686378, -0.0436788797, -0.000988178304, 0.0365106165, -0.0136827473, 0.00300355442, - -0.00936794467, 0.0506481603, 0.0226730555, -0.00960237719, 0.00919337012, -0.0179428365, -0.0360571221, -0.0480158441, - 0.112256773, 0.0849932283, -0.0087755397, -0.0636892617, 0.00930052344, -0.00495879119, -0.0763153136}, - {-0.0079524871, -0.486197054, 0.674207628, 0.0170937218, -0.00489635719, 0.0102047911, 0.00958020706, 0.0217498094, - 0.023365004, -0.00639369246, 0.000755237706, -0.000624119712, 0.00941604283, -0.00255739456, 0.0122108888, -0.0272084139, - 0.00189059437, 0.0113186203, 0.137352422, 0.0018644057, 0.0129228337, -0.00391661655, 0.0211948007, -0.00309333787, - 0.0133766392, 0.0172811095, -0.0163074788, 0.0183739159, 0.0242915265, 0.0195689816, 0.0164837632, 0.0118032089, - 0.0106202094, 0.00535548478, 0.00738856522, -0.000155428803, -0.0248087011, 0.0182882249, -0.0126930661}, - {-0.0071732318, -0.0182899106, -0.92884624, -0.0666914508, -0.183810964, -0.0888388753, 0.0139385322, -0.0263896212, - -0.025748428, -0.00133213273, -0.00097353867, -0.0711178482, -0.147281989, 0.116589017, 0.0124814892, -0.0362540223, - -0.0391174257, 0.107724689, -0.0641301051, 0.000357240729, -0.0892740041, -0.0589234494, 0.123405516, 0.0368332155, - -0.0076840776, -0.0680061206, -0.103504084, -0.136528373, -0.185105786, 0.0736071244, -0.0409617089, 0.0796042308, - 0.033657033, 0.0563328564, -0.002212452, 0.0165003203, -0.0830538571, -0.199291363, -0.073003374}, - {0.0293734651, -0.671914518, -0.234426305, -0.165391043, -0.0833776966, -0.137693778, -0.0250240434, 0.062293686, - 0.114673913, -0.317120254, -0.117685229, 0.285969019, -0.0842098221, 0.0438349321, 0.215281785, 0.00181768823, - 0.0482185781, 0.162981346, -0.03143261, -0.026652094, 0.0345570855, 0.0294147301, 0.00628151698, 0.0296336729, - 0.0741500631, -0.0243159197, -0.0652553663, 0.0955852419, 0.0746518597, 0.00550010242, 0.017809527, -0.0389908478, - -0.015799595, 0.0451083705, 0.139383599, 0.0639377832, -0.128070533, 0.22489962, 0.0390754938}, - {-0.0102656921, 0.162164032, -0.991592109, -0.0808602422, -0.104743391, 0.140487522, 0.0573608577, -0.0124667911, - -0.0777003989, 0.0369113125, -0.0113817155, 0.363167793, -0.125898018, 0.0102513237, -0.0991793498, -0.0727907941, - 0.0560442694, -0.0720444769, 0.096090354, -0.0371553749, -0.0467300266, -0.0190246161, 0.0178110264, -0.0365424715, - -0.0927672833, -0.0271044597, 0.0562348738, -0.0305869393, -0.044149518, 0.0349541642, -0.0418992154, 0.0651362166, - -0.125041828, -0.0723370761, -0.049341891, -0.0902981162, 0.0699269548, 0.0112430239, 0.05268066}, - {-0.00983509887, 0.216009572, -0.787628829, -0.131061152, 0.0311721284, 0.00328935124, -0.185557917, -0.0652675331, - 0.0303043593, 0.0651688874, -0.0683756322, 0.0421456397, 0.00372163393, 0.0412274972, -0.0825101584, 0.0311350245, - -0.026939217, 0.0114718769, 0.0813258067, -0.0246883836, -0.043346297, 0.0774238035, 0.0763049498, 0.113333449, - -0.0113433581, 0.0337549523, 0.0158364456, 0.0693329722, 0.0425253436, -0.0134085361, 0.0503799208, -0.0734605491, - 0.213656053, -0.112633258, -0.035831444, -0.015700914, 0.0385669284, -0.0997749716, -0.131603628}, - {-0.0112273842, 0.0667858198, -0.757116795, 0.0438186675, 0.0952658579, 0.137174621, -0.00304724555, 0.0591811091, - 0.059780892, 0.167476237, 0.0485450067, -0.0999332517, -0.108539186, -0.0303449444, -0.0733893812, 0.0915504694, - 0.0267956201, -0.0620585606, -0.0680659339, -0.0495393835, -0.0102209188, 0.0839866027, -0.164761707, 0.0408224612, - -0.185373738, -0.0878106058, -0.113982454, 0.0624736957, -0.0474154428, 0.0667502806, -0.0602503717, 0.0712035373, - -0.046223931, -0.194044918, -0.0194286257, -0.0629273653, -0.0902721658, -0.1426965, 0.0243219156}, - {-0.0108271139, 0.212214872, -0.800997913, 0.00387302833, -0.156351939, -0.0442310125, -0.0645568818, 0.0364391394, - 0.04729978, -0.0408738106, -0.173039377, 0.0662515536, -0.0580431707, 0.0208985116, 0.236769006, -0.0749834999, - 0.145151004, 0.0420190394, -0.0895123705, 0.0867932439, -0.0490237884, -0.125351816, -0.00748136453, -0.0306681748, - -0.0219735503, -0.0123609882, -0.116825201, -0.0354439542, 0.0191277079, -0.0703490451, 0.0815395042, -0.160434872, - 0.0356321335, -0.137142301, 0.0437053852, -0.078639701, -0.095113337, 0.109127849, 0.0663454831}, - {-0.00695897965, -0.890583813, 0.425746292, -0.024383666, 0.000590134063, -0.0153844077, 0.0211083479, 0.0298094954, - 0.00720086694, 0.0220481884, 0.00626791129, -0.000363139727, -0.00693098176, 0.0043850895, 0.00554092648, -0.0128411343, - -0.00280455966, -0.0012211533, 0.00195360859, -0.00964014605, 0.025100641, -0.0159548093, 0.0141683351, -0.0048432094, - -0.030678425, -0.00398246897, 0.0211865157, 0.00930505712, 0.0145387165, -0.0143713234, 0.00442895293, -0.016900938, - 0.00759121962, -0.0273657423, 0.0179004334, -0.0101882843, -0.0301286709, -0.00394388381, -0.0117574399}, - {0.0139704114, -0.47338894, 0.223727539, -0.0084107453, 0.0201257039, 0.11223118, -0.0698506013, -0.0218332671, - -0.00306457607, -0.0156193571, -0.0333812386, -0.0295982156, -0.0402556211, 0.0425604507, 0.0303813834, -0.0254644845, - -0.00580819137, -0.0379036888, -0.0349082388, 0.0361621454, -0.0284469258, -0.0302433334, -0.0702224076, -0.0268694442, - 0.0355480462, 0.0160751808, 0.0137178553, 0.00444536284, 0.0473321229, 0.0151328947, -0.00897964556, -0.000677265285, - 0.0183219071, 0.0269586947, -0.0100527667, 0.0968735516, -0.0679072216, -0.00744263967, 0.0813129619}, - {-0.00815756805, 0.144682512, -0.489438742, 0.0926615074, 0.00475230068, -0.0615825467, 0.0382537767, 0.0385640413, - -0.0226727705, -0.104766548, -0.0891085938, 0.00740539283, 0.0776189789, -0.00738499733, -0.0419426262, 0.0365964584, - 0.00745223137, 0.0286239218, -0.0248048455, 0.0322595164, -0.0736162513, -0.0712151751, -0.109355621, 0.110973172, - -0.0893254727, -0.0113053545, 0.131617308, 0.00539311115, -0.113220595, 0.0366332866, -0.0921974033, -0.062504746, - 0.0124211498, 0.00265125651, -0.0474008024, 0.00400945637, -0.0295134895, -0.170436516, 0.56678921}, - {-0.00947833061, -0.709162354, 0.334130287, -0.066161029, -0.0862633884, -0.0554923341, -0.0451234616, -0.0537526459, - -0.00703492854, -0.0061368295, -0.0756211653, -0.0251383502, -0.00403614901, 0.0357473344, 0.0215769708, -0.0230118353, - -0.0172274467, -0.0303070862, -0.0255652312, 0.00386215281, 0.0904537439, -0.0390987881, 0.0359895825, -0.00265446864, - -0.0362484902, -0.0246010814, 0.0492943376, 0.00766387163, 0.0410311781, 0.0472636707, -0.00607548002, 0.0918411314, - 0.10643702, -0.00672620721, -0.0314733572, 0.0338993557, 0.0103793908, -0.0274963453, 0.0183880907}, - {0.00519276503, -0.336963147, 0.500060797, 0.0275301114, 0.0286178421, 0.0174689814, -0.0110978605, 0.00982689485, - 0.0524263494, -0.0362688564, -0.0162518993, 0.0197835509, -0.0318713225, 0.0218543392, 0.0179092959, -0.0447047763, - 0.0409541726, 0.0118896309, -0.0694319829, 0.0509459861, -0.00795811415, -0.0322888233, -0.0177760068, -0.00484884949, - 0.00275509851, 0.00905156974, -0.000580998079, -0.000638680824, 0.0182848331, -0.00611254387, 0.00217206776, -0.0219358001, - 0.00143149681, 0.010490844, -0.00813680422, -0.0218963046, -0.00805280823, 0.0190625452, 0.00348201441}, - {-0.00992229674, -0.1496301, -1.46171021, -0.0143067539, -0.0179126728, -0.0110815326, 0.0155422688, -0.121769153, - 0.274964869, -0.103443034, -0.0295172688, -0.0528436676, -0.0540716983, -0.0625795573, -0.0663515553, -0.0576769002, - -0.0174258053, -0.0421359837, 0.00452239299, -0.0262667313, 0.0268351641, -0.0478673354, -0.0105465436, 0.00802787114, - -0.0159331188, 0.0155501124, -0.0320183672, -0.0544039272, -0.0476849452, -0.0196928196, 2.24221185e-06, -0.00719984807, - -0.077709578, -0.0355360843, -0.0260543711, -0.0499354191, -0.0570306331, -0.0617102273, -0.0781085193}, - {-0.0271195304, -0.10617736, -0.881106436, -0.0176965259, 0.289524645, -0.0167550147, -0.0718903393, -0.0129701057, - -0.0171761308, -0.00650196802, -0.0313094743, -0.0506106429, -0.0828940421, -0.0916212797, 0.0706901178, -0.0429491438, - -0.0142928353, -0.0194807611, -0.059820693, -0.0134733124, -0.0621154457, -0.0241694618, -0.0458472706, 0.00996203814, - -0.0401786566, -0.0940237343, 0.0697389469, -0.0943873748, -0.144719958, -0.0125172939, 0.0281787366, -0.00261423481, - -0.0570423678, 0.146755412, -0.0537073575, -0.206131324, 0.0282310601, 0.102907866, -0.123051807}, - {0.0290818792, -0.379341692, 0.700048864, -0.0451373644, 0.00740639027, 0.0542258359, -0.0219324566, 0.0169748422, - 0.0428629257, -0.0157311652, -0.0371861011, 0.0143726096, -0.029859053, -0.00017246342, -0.0109562604, 0.00276760897, - -0.050885506, -0.0310247559, 0.00668358896, 0.0319253579, 0.00434696442, 0.0103212018, -0.0112834889, 0.0215528682, - 0.0207521487, -0.030194696, -0.00144547119, 0.0608966127, 0.0130708674, -0.000505839766, -0.00361208827, 0.00482565723, - 0.000457786082, 0.0346194655, 0.00443302421, 0.0355887935, 0.0307512097, 0.0446886867, -0.0179432034}, - {-0.0307106655, -0.673495293, 0.536731839, 0.0588046648, 0.0329906866, -0.00271563791, 0.0238386784, 0.104216941, - 0.0978723243, -0.167638049, -0.0792617351, 0.165233865, 0.0556423776, 0.0920674875, 0.0858352184, -0.017797105, - -0.0530380867, -0.00307235401, 0.11452619, 0.0178772993, 0.0797273144, 0.0388016775, 0.0131331896, -0.0449799784, - 0.0640763193, 0.110519595, 0.0857989565, -0.0908658579, 0.0513247512, -0.0427644029, 0.0247713346, -0.0148398448, - -0.00156602112, 0.11764995, -0.0291986112, 0.00775121944, -0.0454484671, -0.0094710011, -0.0795211941}, - {-0.0221159495, 0.227983996, -0.475405902, 0.134934217, -0.014845876, -0.10471306, 0.124373011, -0.172069624, - -0.0751284808, 0.0337875374, 0.0658596084, -0.0481718406, 0.0720428303, -0.00364463194, 0.192441508, 0.0118397959, - -0.0127273155, -0.158906177, 0.0158717036, 0.00275676558, 0.0957649648, 0.0965016037, -0.00275752041, -0.0648094043, - -0.142437056, 0.0779643357, 0.0556280389, -0.0882770643, 0.0540712737, 0.0156451482, -0.0558790937, -0.078892611, - -0.0263621751, -0.0172301847, 0.0022051339, -0.0589232109, -0.0241944026, -0.117877267, 0.0573122427}, - {-0.00978624169, 0.13978748, -0.583105147, -0.0613648593, 0.113621846, 0.0617289878, 0.0293867476, -0.0045549958, - -0.0695693046, -0.132537872, 0.0656214729, 0.0206372794, -0.107758328, 0.258991748, 0.10078425, -0.0122682573, - -0.0145303272, -0.177658841, -0.0391280279, -0.0634489059, -0.0534740239, 0.0524244346, 0.0380537063, 0.00640045758, - 0.0722596198, -0.0506699905, -0.00803348236, -0.19415468, 0.269671112, -0.0246876534, -0.0616109408, -0.139999822, - 0.0617404319, 0.0294188745, 0.00311012054, 0.0230088159, 0.0722845718, -0.0176521558, 0.0611287951}, - {0.00112583663, -0.360180944, 0.575528502, 0.0192903411, 0.0173075013, 0.0539339557, 0.0420041084, 0.0160098299, - -0.014858203, 0.00594767323, 0.0410241559, -0.0556259975, -0.0489502773, 0.000186239966, -0.00771219656, 0.0280911438, - -0.0808957741, -0.0588199608, -0.0183162428, 0.00588714378, 0.0206260756, 0.0194923356, -0.017377615, -0.00470266817, - -0.00750542758, -0.0226672459, -0.0132172322, 0.0131698214, -0.0309777409, -0.0368709899, -0.0420983098, 0.0358286165, - 0.0098446086, -0.0296914633, 0.00213148096, -0.000874317251, 0.0987995565, -0.00825985987, 0.0709366053}, - {-0.0158108491, 0.142154545, -0.597817123, -0.110607922, -0.022215182, -0.021191204, -0.00902145915, 0.168263525, - 0.128166795, -0.0701669604, 0.0322860926, 0.00266996701, 0.0622922592, -0.0419892631, 0.0701767802, -0.0389898121, - -0.0231731199, -0.101146944, -0.0470251963, -0.0531794429, -0.0381809622, 0.0728643462, 0.190854117, -0.136879444, - -0.0313399322, 0.0900713205, -0.0415942073, 0.106083162, -0.0217333809, -0.0349914171, -0.0522217751, 0.117669187, - 0.170443803, 0.0750534162, -0.053058818, -0.0835725144, -0.0521740764, -0.0637077317, 0.223815456}, - {-0.0609820262, -0.10213387, -0.0407401584, -0.0223537255, 0.102290951, 0.202251866, 0.124105945, 0.170933336, - 0.121260956, 0.102289692, 0.041364152, -0.175900996, -0.00411602901, 0.128530845, 0.0464984067, 0.159829587, - 0.000125805629, 0.00554791233, -0.0602065697, -0.012698561, 0.0941857919, 0.164072201, 0.0708941147, 0.0755494311, - 0.0270814206, 0.422050208, 0.0832447931, 0.0414548144, 0.00911200326, 0.0272659883, 0.0215880182, -0.071343556, - -0.084227927, -0.0292863753, -0.0582624339, 0.0536316633, 0.0351148285, 0.0233120378, -0.0490946732}, - {-0.0304615516, -0.722393513, 0.223775059, 0.0557809584, -0.017885441, 0.0420647413, 0.000633004995, 0.0101862587, - -0.043509908, -0.00404780172, -0.0793302059, -0.0124373399, 0.0688847974, -0.0537383743, -0.0404504575, -0.0145101836, - 0.0164556801, -0.00862157531, 0.0429796688, 0.00935822818, 0.0246694218, -0.00160619966, 0.094587706, 0.00558296544, - 0.0903585926, 0.129714206, 0.0704667568, -0.012043003, 0.0648776218, 0.11760357, 0.016005218, 0.0678156689, - 0.0466042235, 0.261601597, -0.0394798853, -0.0528688952, 0.02477137, 0.2610825, 0.026928518}, - {-0.00204044767, -0.303070277, 0.0371784493, 0.0611634366, -0.0789749473, 0.261087477, -0.0725615472, 0.0402985141, - 0.0215261169, 0.128211409, 0.0658642352, 0.104621634, 0.11053744, 0.0382341295, 0.146089628, -0.0348110273, - 0.0404269733, 0.0149970027, 0.229472011, 0.149490073, 0.151680201, -0.00150661753, -0.162293881, -0.0290990993, - -0.0648977384, -0.0637948439, 0.157431796, -0.0373620205, -0.0522494242, 0.110257916, -0.0284285527, 0.228369698, - 0.113501534, 0.0761304274, 0.0714925006, 0.117133655, -0.0177075416, 0.0690843314, 0.0569110215}, - {-0.00157735089, 0.252079606, -0.469352543, -0.0173533577, -0.0788460821, 0.0592772067, 0.096267961, -0.00106394815, - 0.052962143, 0.0822540373, 0.030662898, 0.0277180187, 0.107380971, 0.0355737358, -0.0580494218, -0.0596666448, - -0.00464917067, 0.11888878, -0.102536112, -0.0255703554, 0.0622869208, 0.0953493789, 0.110627487, 0.129385263, - -0.0406048596, -0.0713270679, -0.0855957642, -0.136391506, -0.10331279, -0.221176431, -0.105724327, -0.121978648, - -0.0316908769, -0.0612064376, -0.111388989, -0.101146512, 0.00710648438, 0.0507386215, -0.0880320594}, - {0.0106900893, -0.172274232, 1.10299623, 0.00585243572, 0.0178238191, -0.0129032852, 0.0144015774, 0.022250155, - -0.00798369665, 0.0215656329, -0.00626016781, -0.00686205924, 0.0455703139, 0.0130867958, 0.0351463594, 0.00839974731, - -0.0011317184, 0.000611454772, -0.0171167459, 0.00803537387, 0.0202073157, 0.00436878065, 0.00680767791, 0.0233206414, - 0.0189025365, 0.0133102853, 0.0254971851, 0.0163108818, 0.00404220959, 0.0209459811, -0.00201592129, -0.0127896359, - -0.00498400303, -0.00261493702, -0.00195536437, -0.0119992504, 0.0417346582, 0.0137160877, 0.014063783}, - {-0.00938550755, -0.452213496, 0.577045739, -0.00147485593, 0.00802181195, 0.000626145455, -0.0286338385, 0.0016072822, - 0.00395696098, -0.0122132124, 0.0176652595, 0.00450052647, -0.00574624585, 0.00254154415, 0.0342615098, -0.000266581483, - 0.00508293789, -0.00227983645, 0.016443681, 0.000752414693, 0.0336546227, -0.00584628945, -0.0112355379, -0.00926770177, - -0.0108623086, 0.000586776179, 0.023216743, 0.0100631835, -0.004222319, -0.0377569944, -0.00794378575, 0.00381409144, - 0.0315812044, -0.000660376507, 0.0222830251, 0.0087617673, 0.010240403, -0.0278755445, -0.0098617943}, - {0.0122333691, -0.369171232, 0.644001782, 0.00936004613, -0.00896952115, 0.0119856503, 0.0108039156, 0.0163613502, - 0.0344688967, 0.00854989514, 0.00662672659, -0.0361005403, 0.0354678556, 0.0121243987, 0.0178821422, 0.0434004106, - -0.0148014817, 0.0052220826, -0.01631286, 0.00921887066, 0.0277677309, 0.0208980776, 0.00234343857, 0.00665001431, - 0.0131201372, -0.00459502311, 0.017806964, 0.0313309878, 0.0158353373, 0.0361735933, -0.00296249799, 0.00883143116, - 0.021813795, 0.0311126783, 0.026222486, 0.0232100207, -2.92710756e-05, -0.00144726795, -0.00972268544}, - {0.0163237937, 0.226944268, -0.509085834, -0.0104979584, 0.0405129567, 0.0364701189, -0.0883885249, 0.0026824635, - 0.0233819932, -0.19006066, -0.0189831238, -0.164295122, 0.0872056559, -0.126151919, 0.0352849849, -0.199241892, - 0.0205591824, 0.0402109809, 0.00544487499, 0.120889232, -0.189496681, -0.0462209508, -0.229599535, 0.0258180238, - -0.0531896837, 0.137823805, -0.109469056, 0.00969871599, 0.0287584383, 0.077695027, -0.00621831603, 0.0471580401, - -0.141194806, -0.0438590683, -0.160018489, 0.0062069199, 0.23400256, 0.0573968105, -0.0804196373}, - {0.0313884579, -0.320559114, 0.656851828, -0.027434364, -0.00158382859, 0.0291003902, -0.0055633341, 0.0110027175, - 0.0239999797, -0.0201891605, -0.0569826327, 0.0391144119, -0.0198305827, 0.00802208856, 0.00868938398, -0.0125693968, - -0.0440299995, -0.0219380297, 0.0121235689, 0.00403636834, -0.00634571398, -0.0286394171, -0.00651254924, -0.0103507573, - -0.0186854471, -0.0168511067, 0.0152582405, 0.00752741378, -0.0239873491, -0.00725376466, -0.0257278085, 0.00916039757, - -0.0130735096, -0.0130236102, -0.0156206908, 0.0261561815, 0.00979339425, 0.0135809584, 0.0225219559}, - {-0.0334549285, -0.259897083, -0.788507044, 0.0272619892, -0.168064669, -0.0604702644, -0.0123932399, 0.123705328, - 0.0133966375, -0.112574652, -0.0569978692, -0.200844809, -0.0817994848, -0.00780552998, -0.263689578, 0.0283791125, - -0.0780811012, -0.127972811, -0.0141082825, 0.02128773, -0.0145305758, 0.0475777611, -0.162745327, -0.122491039, - -0.0623994581, -0.0681373253, 0.0101238117, -0.0927318558, 0.148278028, -0.123234056, 0.126691952, -0.116394609, - -0.00726878177, 0.184328973, -0.00638589775, -0.0881356373, 0.0655242354, -0.0355971493, 0.0352303758}, - {-0.00106085732, -0.423344702, 0.633697748, 0.00369943539, -0.0125606181, 0.073859863, 0.0355081595, -0.00351902586, - 0.0278249048, -0.00624496071, 0.015095626, 0.00348072685, -0.0262523647, 0.00573548209, 0.0353506543, -0.0350689068, - 0.034878578, -0.0247350633, -0.0126836989, 0.0235473681, 0.00724009005, 0.0211320594, -0.0599019118, 0.00115149701, - -0.0305566993, -0.027079111, -0.0113297189, 0.0184223037, 9.75454022e-05, -0.00122086878, -0.014077723, 0.0196096972, - -0.00642586453, -0.0536701232, -0.0161266029, -0.0132401492, 0.0624155328, 0.0200466234, -0.0149398986}, - {-0.0117961904, -0.0807409585, -0.15726994, 0.0357724838, -0.0308921747, -0.0274567176, -0.0861517936, -0.00371119706, - 0.0717961937, 0.0914795026, -0.177986562, 0.0995075703, -0.0454396904, -0.0971687436, 0.0349120162, -0.0788108706, - -0.0287952349, -0.0471601784, -0.0178919304, -0.132412478, 0.0246319957, 0.245519131, -0.0518282428, -0.0342905261, - -0.0475485772, -0.0179598052, 0.0196477324, -0.125337958, -0.0343714505, 0.0272629037, -0.020346256, -0.0624346882, - 0.0802524388, 0.194421783, -0.0829724222, 0.486895442, -0.0818065107, 0.0293493047, -0.012208554}, - {-0.0083181588, 0.22207506, -0.697596967, 0.00660708128, -0.00740759447, -0.055896733, -0.105151817, 0.0452734008, - -0.0332291089, 0.0580954365, 0.12861684, 0.0054899361, -0.0451107621, 0.0139350053, -0.0152217532, -0.173496559, - -0.0123118171, -0.127481446, -0.0451567285, 0.020301545, 0.064480722, -0.079229176, -0.0995728374, -0.0184275769, - 0.107840322, 0.00592791708, -8.84682595e-05, 0.0451947078, -0.159041658, -0.0172098391, -0.0631591752, -0.0701392815, - -0.0628656223, 0.0281468853, 0.333879769, 0.0156724975, 0.0408069789, 0.0704050437, 0.102500521}, - {-3.15412799e-05, -0.846966088, 0.325773597, -0.0101419324, -0.0125580607, -0.00927500241, -0.0138850966, 0.00217824499, - -0.00691214856, -0.00316694309, -0.0196941886, 0.00221448764, 0.00320571451, 0.00300306291, 0.0042238161, -0.0194032528, - -0.00605727499, -0.011365925, -0.0186741762, 0.00242203008, 0.00276241009, -0.00883912761, -0.000100318794, -0.0160324257, - -0.019008372, -0.0186735112, -0.00336820516, 0.00196314533, -0.00326356851, -0.00342868851, -0.0145371761, -0.0152220456, - -0.00513232499, 0.000115522227, -0.00867435709, -0.00315635349, -0.0033086671, -0.0012656739, -0.0132068265}, + {0.0375181399, 0.0131807914, 0.0733145475, -0.108837478, -0.155519173, -0.15236935, 0.161187366, -0.102666609, + -0.105799064, 0.00281478628, 0.0976773277, -0.159017026, 0.0197313707, -0.0683622435, -0.145631433, -0.153941378, + 0.105601832, -0.0133290393, -0.153301701, 0.0457033068, 0.014024986, 0.0353368558, 0.0325997919, 0.158958182, + -0.113382228, 0.083345212, 0.136842892, -0.0691667721, 0.120123811, -0.0168791842, 0.0345238335, -0.0454866588, + -0.0923255309, -0.0891628116, 0.0346996412, -0.0130082751, -0.0113271773, -0.156546578}, + {0.0726021826, 0.103502043, -0.0908020958, 0.132167816, 0.131145015, 0.0872449875, 0.00343001494, 0.144630119, + 0.0472081937, -0.154692248, 0.0577940382, 0.114260346, 0.109050721, -0.000362979888, -0.150493786, -0.0934085548, + 0.0600608923, 0.0211810078, -0.157961667, -0.00713527203, -0.0531874225, 0.0535118617, -0.0721463263, -0.146463081, + 0.102262415, 0.124479882, 0.151097432, 0.0881217346, 0.140200704, 0.135360688, -0.0875871852, 0.135936484, + 0.150512502, 0.00687163277, -0.1080226, -0.10105101, -0.108616851, -0.0289672259}, + {0.0897642896, -0.0470770411, 0.0460546464, 0.0996882394, 0.150267735, 0.0900047198, -0.129711628, -0.0527934432, + 0.15648745, -0.0590935722, -0.0530138798, 0.14693436, 0.0316506103, -0.0886439011, -0.135663971, 0.0193879027, + -0.107859075, 0.0283069201, 0.103223026, -0.042615965, 0.120617002, 0.153798059, 0.0773706809, -0.159706235, + -0.154470861, 0.14559868, 0.0324159786, 0.124579862, 0.153827667, 0.142814159, -0.0309355557, 0.0711085722, + -0.109111674, 0.0798075944, 0.100062087, 0.0397855341, 0.145826876, -0.0653992891}, + {-0.0082918182, -0.0559212789, -0.138149008, -0.0750553831, -0.121066906, -0.10824693, -0.0508754514, 0.0895314962, + -0.110629641, 0.145756215, 0.161698774, 0.00714735826, 0.00970674399, 0.112757504, 0.0875736848, 0.11934334, + -0.04978659, -0.11310403, -0.0758787319, 0.101755619, 0.0582921542, 0.153120652, 0.0911140665, -0.142868668, + 0.023020776, -0.0593933538, -0.0656506494, -0.0897403657, 0.0824202597, 0.0772329718, 0.0932838023, 0.147335872, + 0.138820425, -0.0354531184, 0.0916320607, -0.0180149022, -0.127223313, 0.00665272307}, + {-0.161994591, -0.0837311447, 0.120749563, -0.0893452689, -0.0234873518, -0.15059875, -0.0629289523, -0.00260303193, + 0.0988588035, -0.148168355, 0.0415519327, -0.0885534957, 0.127174556, -0.136677012, -0.105595224, 0.0995858014, + -0.0963358879, 0.130610511, -0.0826890245, 0.12490695, 0.068815358, 0.074438706, -0.113374032, 0.041937422, + 0.0544410832, -0.144763529, -0.141715407, -0.14071995, 0.0929290801, 0.046868246, 0.0154255042, 0.00686074514, + -0.0574076958, 0.0550889559, 0.00349868531, 0.0777873844, 0.0781370774, 0.0808736235}, + {-0.0201358702, -0.0119948508, 0.104918666, 0.00582643645, -0.0840942636, 0.0523588918, -0.122168899, 0.0132227177, + 0.128966138, -0.0869960487, -0.0493874252, -0.0168802273, -0.11228656, -0.117928721, 0.0373956487, -0.0833369493, + 0.0892956406, -0.118798442, 0.0637328252, 0.0256041214, -0.0395213366, -0.0797605887, 0.0497715995, 0.157270819, + 0.0687596425, -0.122894429, -0.0528935194, -0.128653049, -0.0264614653, -0.0814447552, 0.12160445, 0.121561497, + -0.0170838404, 0.136359364, 0.0920615047, -0.0133804986, -0.111783221, 0.095903717}, + {0.10893096, -0.0233366489, -0.0312274862, 0.0745624304, -0.0525504574, 0.145235568, -0.0154960314, 0.0118131293, + -0.154219791, 0.0303010475, 0.000765661302, -0.105222069, -0.0266644415, -0.112353802, -0.038287688, 0.105301067, + -0.0913373232, 0.125884101, 0.00612349203, -0.108211495, -0.145317137, 0.00889762957, -0.0405989252, -0.127854183, + 0.0458876006, -0.114388384, -0.0884959102, -0.119747803, -0.0316362791, 0.129525572, 0.0588293113, 0.0549018979, + -0.110851295, 0.100242861, -0.0188745484, -0.0884676352, 0.141690373, 0.0938351005}, + {0.121955328, 0.0425509326, -0.146817341, -0.151763245, 0.0476985946, -0.0468854941, 0.151176482, -0.107470378, + 0.100642875, 0.113200277, -0.0836394802, -0.100278057, 0.0842702761, -0.0634377077, 0.160551086, 0.0416266769, + -0.0136745954, 0.0373774916, 0.0298799165, 0.087458238, -0.122181006, 0.0255288966, -0.119714171, 0.0113834711, + -0.044389654, -0.105602838, -0.157822132, -0.0617507286, 0.0742852762, 0.137082502, 0.11211279, 0.135917559, + 0.0146397501, -0.131425634, 0.042830117, 0.074733302, -0.0791545808, 0.0134458039}, + {0.0430324562, 0.067092821, 0.0272282101, 0.0923744366, 0.0690805838, -0.159880742, 0.0358636491, -0.0147407353, + -0.00573831191, 0.054857824, 0.14005889, -0.11662706, 0.081159845, 0.0971176028, 0.0950628668, 0.010667528, + 0.0993029624, 0.0307642762, 0.0701973513, -0.0545671917, 0.0012579757, 0.00849666912, 0.114160113, -0.0544877872, + 0.102585874, -0.0629265755, 0.0265691616, 0.0700659454, -0.0272537358, -0.0917718932, -0.0958046243, 0.00106194336, + -0.00413037091, 0.0988516062, -0.0467181429, 0.0626532659, 0.0279374421, 0.046994932}, + {-0.128358915, -0.076586321, -0.131046355, -0.136048049, -0.144173965, -0.0490374416, 0.155489892, 0.0322482772, + 0.14239879, -0.0183368083, -0.0851794705, -0.121827424, 0.109026454, -0.0984967276, 0.144833714, 0.0447203778, + 0.129640236, 0.0066913031, 0.0361555628, 0.143787593, 0.0261186752, 0.114235841, -0.128746569, -0.0592717156, + -0.00499864109, -0.0500711314, 0.00797269773, 0.0476464368, 0.0219431873, -0.0816871077, 0.129544124, 0.143321231, + 0.146819353, 0.148056403, 0.1408595, -0.0886334255, -0.0770426095, -0.0923085883}, + {-0.104276523, -0.122026525, 0.145471215, -0.00872952119, 0.0350246206, -0.0390001684, 0.123142637, -0.145629659, + 0.0582954027, -0.0506454222, 0.0186437257, -0.0489857309, 0.0114947241, 0.0431652516, 0.140367985, -0.0492204987, + 0.00540865166, 0.103468977, -0.138126224, -0.031874042, -0.00876137149, 0.0130292764, -0.0544058718, 0.108129777, + 0.12449678, 0.022790283, 0.0637340248, -0.137003869, -0.0162293781, -0.0336477906, 0.0679037869, -0.147200063, + -0.0974939018, 0.0949837938, -0.138831884, -0.156350851, -0.00287972414, -0.0505035184}, + {0.123540446, -0.0932709426, 0.0732477978, 0.0527432598, 0.0794918016, 0.052515164, -0.0767185166, -0.0295619555, + 0.113313153, 0.0769336522, 0.0204014424, 0.161857992, -0.0719397143, -0.121142365, 0.0565463305, 0.132993922, + 0.133220896, 0.0175849348, -0.134671479, -0.120096222, 0.0925806612, -0.01674629, -0.159258634, -0.123429932, + 0.0732396916, -0.111715347, 0.0731455162, 0.136292219, -0.0767611191, 0.0885467678, -0.0779372156, 0.0667365491, + -0.0817701817, -0.0457840823, -0.00868819561, 0.086994715, 0.0856432989, -0.126695588}, + {-0.131841347, 0.0565779284, -0.111557312, -0.064687036, 0.0929891616, 0.0876749381, -0.139876634, 0.00142902299, + -0.068532981, 0.0116176186, 0.0681857988, 0.138884887, -0.012990213, 0.0551733114, -0.12599276, 0.0901257992, + -0.0889128596, -0.147470683, -0.0662545785, -0.0409421027, -0.0649095625, 0.131250858, 0.124275185, -0.03942772, + 0.0754593983, -0.13518934, 0.123021096, -0.0446981415, -0.15972507, 0.0381435193, -0.0607110262, 0.066631794, + 0.0359788314, -0.0761613399, -0.0173511934, -0.144947797, 0.0489102155, 0.05493984}, + {0.145868674, -0.0449457094, 0.0413172655, -0.125094801, 0.0404811129, -0.143315285, 0.118110776, 0.0363845453, + 0.155124053, 0.0816698149, -0.0574693866, -0.0971965939, 0.0750849545, 0.129770666, 0.157283321, 0.0659641996, + -0.148275584, 0.0952184051, 0.128981039, -0.14138189, 0.130631968, -0.00491428748, 0.137568489, 0.087351121, + -0.0728697106, -0.00378106302, -0.0157988891, -0.126231775, 0.152164415, -0.0327764265, -0.0296822991, -0.0617500134, + 0.077251479, 0.0804704949, -0.107599653, 0.0074417647, 0.0223939251, 0.00170120958}, + {-0.111323878, -0.0384027325, -0.0916200131, -0.0822199732, 0.0939042121, 0.079324007, -0.0308014825, 0.0849097371, + -0.0355963185, -0.0119161252, 0.14193891, 0.105460256, -0.101578541, 0.00264859293, 0.125695214, -0.161012992, + -0.0328056067, 0.151899889, 0.0583962128, -0.156591326, -0.00235068635, 0.0664449856, 0.108965576, -0.153629974, + -0.143643498, -0.0987652838, 0.145143032, 0.143296912, 0.00806045439, -0.131198987, -0.0765921026, 0.0754232183, + 0.100702919, 0.0437555909, 0.00510449894, 0.0842330679, -0.00190459052, -0.136839315}, + {-0.0403520688, 0.0566826649, 0.0191349965, -0.0348243341, -0.0465190522, -0.0513376184, 0.00539687462, 0.125746593, + -0.0384901986, 0.0174710508, 0.140192941, -0.0801580846, -0.154589966, 0.103832573, -0.00537179271, 0.0214938428, + -0.057302285, -0.0460221544, -0.0506697483, 0.142123818, 0.137628391, 0.047963798, -0.140730143, -0.0755795836, + 0.117863767, 0.04997674, 0.102383979, 0.0974203795, -0.0683029145, 0.122397244, 0.069314383, 0.0286840163, + -0.0115327435, -0.114676252, 0.0680415183, -0.128106639, -0.0729025304, 0.0463562645}, + {-0.0865467414, 0.0620616525, -0.114992857, -0.0737054348, 0.153429002, 0.0038234333, 0.0745465159, -0.0468766205, + 0.108931772, -0.108494669, -0.142252862, -0.0584668554, 0.107695147, 0.0320089459, -0.02772565, 0.156318367, + 0.00216764933, -0.0152216591, -0.114293158, 0.0374206528, -0.00290757138, -0.0106554609, -0.0468179844, 0.0581039339, + -0.127921864, 0.0922831967, 0.129381001, -0.138888329, 0.0893372968, -0.122579351, 0.064223364, 0.124028914, + -0.0668019354, 0.147741884, -0.0459318459, -0.0293079671, -0.107673429, 0.0464607477}, + {0.100718565, -0.116662279, 0.155123577, -0.0226884857, -0.130095884, 0.0846471786, 0.0517479964, 0.159333631, + 0.00867947377, 0.00693885284, 0.0987309143, 0.158716425, -0.0611428097, 0.148732722, -0.112553507, -0.0311599765, + 0.0584789999, -0.118449174, 0.101856142, -0.144100979, -0.140954256, -0.0139261866, -0.125024065, -0.0398347303, + 0.0129180811, -0.0294045806, -0.0648995861, -0.0716549978, -0.046021536, -0.0337410197, -0.122273095, -0.0919324234, + 0.0694404095, -0.145915329, -0.0892624781, 0.108689576, -0.150705472, 0.0246671624}, + {-0.0736790746, 0.129485711, 0.0180175528, -0.13887243, -0.0198415797, -0.00379854487, -0.131558865, 0.0128300916, + 0.04915848, 0.000364120846, -0.00899229012, -0.0193514507, 0.136423931, -0.083356075, 0.0330703668, 0.106479853, + 0.0698619112, 0.0160408877, -0.0153723815, -0.0920542926, 0.0725461394, -0.107979126, 0.038340576, -0.131762147, + -0.121070214, 0.0786266625, -0.15563187, -0.153681815, -0.00320909428, 0.116581522, 0.053719148, 0.060120143, + 0.117376864, -0.0620628707, 0.0929451883, 0.070824571, -0.127199382, 0.126101419}, + {0.0620353706, 0.0665548444, -0.0291297063, 0.0917555541, -0.131587446, -0.00147253415, -0.152684286, 0.104163319, + 0.0941019282, -0.0597344227, 0.0933775753, -0.143874884, 0.125444189, -0.115141362, 0.055314634, -0.154663235, + -0.109654792, -0.01408331, -0.051815737, -0.144171238, -0.0235699452, -0.114422865, 0.12778753, 0.134228453, + 0.100956462, 0.0128264753, 0.134158522, 0.04324653, -0.0981709361, -0.0463938974, 0.00405096775, -0.0719402954, + -0.0184848234, 0.101614393, 0.0754334107, 0.0800934955, -0.109348826, -0.134811372}, + {0.113841653, 0.129851431, -0.0251416657, -0.135241643, -0.0619608611, 0.141875923, -0.0842909887, 0.130537257, + 0.0308152512, 0.0749645904, -0.00681328913, 0.0590095855, 0.09347523, -0.00934424717, -0.159728616, 0.129226461, + -0.0750428885, 0.157647967, -0.0183367506, 0.00396177964, 0.0770934671, 0.136059031, 0.0468641259, 0.0378477015, + 0.101846918, -0.0282764044, -0.0433594063, 0.129605308, -0.00897061173, -0.132457882, 0.155857399, 0.110682085, + 0.114334583, -0.0632861555, -0.119150326, 0.0515948944, -0.0885042399, -0.0120842131}, + {0.132679284, -0.0732360557, 0.108441547, 0.0799437612, -0.159487322, 0.0969999656, -0.0982678384, 0.0513216034, + 0.0683669075, -0.126571089, -0.0567834377, 0.145887896, 0.10728614, -0.12552321, -0.0853660256, 0.125573546, + -0.0583819598, 0.0941518992, 0.155076593, -0.065721944, 0.140424952, -0.122312367, -0.108907774, -0.124993138, + -0.0703500882, 0.136740893, -0.0324409269, -0.158094823, -0.0292970221, 0.0217135064, -0.136567965, 0.141355366, + -0.0157861058, -0.0918939561, 0.00538751483, -0.131168261, 0.0426246673, -0.0120290797}, + {-0.137233362, 0.0887645185, -0.130142406, 0.000105548439, 0.124926478, 0.0234028231, -0.0749694631, 0.0149643049, + 0.00123550463, -0.117997818, -0.159791753, -0.140676081, 0.110606544, -0.154513478, 0.0377208814, -0.0739190057, + 0.132965282, -0.116180815, 0.0978878215, -0.123618126, -0.0212900173, -0.148642242, -0.0212126449, -0.030841494, + -0.16049619, 0.0654499754, -0.0769500136, -0.0530239567, 0.0362997875, 0.155358121, 0.0725017786, -0.0718895718, + -0.030162584, -0.0148951709, -0.0715244263, -0.158512428, -0.057631284, -0.0381553546}, + {-0.095692195, 0.0946369767, 7.90162958e-05, -0.0728249028, 0.055954054, 0.0706268921, -0.0410451367, -0.0148699535, + 0.0321627818, 0.0785772353, 0.0856218338, 0.160383195, 0.13133283, -0.0239727423, -0.0237961262, 0.0545647331, + -0.065524675, 0.151253104, 0.0812737122, 0.0216438901, -0.0209443457, -0.0715255812, -0.000166464088, -0.149788439, + -0.108075663, -0.034808185, 0.129870012, -0.120656736, 0.135531813, 0.160220772, -0.107036538, 0.120178387, + 0.13677983, 0.113490991, 0.0310072228, 0.128048703, -0.0327223577, -0.144334316}, + {0.154766634, 0.159641981, 0.0782002583, 0.0125112608, 0.00613784092, -0.0358988866, -0.113256723, 0.0101603037, + 0.0569697991, -0.102555953, -0.120537303, 0.157389164, -0.053478539, -0.153392985, -0.144039467, -0.0541113466, + -0.0836022198, -0.00204109959, -0.160542041, 0.0920503065, -0.0623397939, 0.0510746166, 0.0547281802, 0.069822982, + 0.034880802, 0.0268685557, 0.0953532085, -0.101961032, -0.119095676, -0.0703220069, -0.0565684922, -0.0096270116, + 0.0168681033, -0.122680649, 0.0558653325, -0.128933564, -0.0581450649, -0.118648015}, + {-0.0148008969, -0.0177433938, -0.154590026, -0.110375144, -0.0786112919, -0.109294578, 0.152508274, 0.141915262, + -0.0721632838, -0.00199312111, 0.0527310781, 0.0768243521, 0.0480714366, -0.0422843918, -0.00213835179, 0.0245159548, + 0.117616527, -0.134097129, 0.127233729, 0.0435345359, -0.00817977171, -0.0893627107, 0.0424769036, 0.145475477, + -0.0870599225, 0.0246851854, 0.100039788, 0.0773090273, 0.0719074979, 0.00681622839, 0.0313009918, 0.087360248, + -0.139229566, -0.00589746609, -0.143353805, 0.0521574244, -0.159507513, 0.0569052882}, + {0.133858487, 0.0765982717, -0.149053231, 0.134929642, 0.138811842, -0.0275513344, -0.0382485464, 0.104324386, + -0.154125243, -0.0783934072, 0.0502953008, -0.0620578788, 0.14838922, -0.158121094, -0.0481085852, -0.122309931, + -0.107100613, 0.00284040952, 0.159867018, -0.154137775, 0.107471444, -0.0886745751, 0.0687051341, -0.0361995362, + 0.105715409, 0.0792395324, 0.149708033, -0.0856205001, -0.0408112966, 0.137989998, -0.0476124622, -0.0565457679, + 0.0236048698, 0.16005215, 0.141284987, -0.0826844797, 0.0190216359, 0.0291994978}, + {0.161895528, 0.0842959806, 0.0927392542, 0.0822553635, 0.125840887, 0.0351489075, -0.100873657, -0.154087812, + 0.0164115448, 0.0553238802, -0.0058953776, -0.0384515226, 0.0253423192, -0.116339907, -0.0872069895, -0.0177330654, + -0.0661248416, 0.0765460357, -0.146821767, 0.144487441, -0.100048356, -0.155358374, 0.0614059679, -0.0685045719, + -0.0449628234, 0.0746289715, 0.120300569, 0.142823189, 0.0291281212, -0.00523758493, 0.125816017, -0.0982990339, + -0.147727743, -0.0496808849, -0.0360582136, 0.0448009409, 0.0364114456, 0.0241963714}, + {0.00379355554, -0.00193203148, -0.124116145, -0.0549050681, 0.147121996, -0.0517183281, -0.00803695899, 0.009545926, + 0.115723617, -0.0978824496, -0.152257875, -0.0197025761, -0.114695534, 0.137397215, 0.137103707, -0.14208284, + -0.0904377624, 0.1320021, -0.159838498, -0.00429379893, 0.0303861927, 0.0909854993, 0.0112792952, -0.00688768364, + 0.0511562824, -0.0118110795, 0.140193179, 0.00618454302, -0.097604692, -0.148449227, -0.0190742742, 0.0437087156, + 0.0343888924, -0.00404336769, -0.020222215, 0.154478535, -0.0363832898, -0.0421627536}, + {-0.0909740701, 0.085904941, -0.0405890606, 0.00286448561, 0.101908125, -0.070017077, 0.0385037549, -0.100601122, + -0.126038104, 0.142819628, 0.0995881632, 0.00772377476, -0.0171233099, 0.0294347871, 0.151308179, -0.0489765666, + 0.113526322, 0.135996819, 0.123360291, -0.0759025589, 0.0102243526, 0.101353459, -0.110938877, 0.029797323, + -0.147840127, -0.0255856346, -0.129342049, 0.0335332304, 0.0442370363, -0.0456713215, 0.0656935573, -0.0185328592, + 0.136921346, -0.0513837188, 0.038727615, -0.0231042411, -0.0840941444, -0.0279757325}, + {0.0430503823, -0.157180786, -0.0979325697, 0.11956051, 0.15453212, -0.101836435, -0.0562208854, 0.0581463799, + -0.118952975, 0.0442159399, 0.0181179177, 0.114015847, 0.0872469246, -0.0429329015, -0.0678793117, -0.0859773457, + 0.0468489267, -0.0686767399, -0.0240619313, 0.0357655846, 0.000327532791, -0.159772709, -0.161974311, -0.082906194, + -0.0587996282, -0.139574796, 0.140444145, 0.0110265631, -0.109169863, 0.106866539, 0.13743332, 0.0881884098, + 0.142430425, 0.114510097, 0.073943913, 0.0392543897, -0.123949841, 0.148453727}, + {-0.115982749, -0.0161047429, 0.155952737, 0.0902053937, -0.120188095, -0.0814800858, 0.0653509423, 0.138881385, + -0.156727701, 0.121262453, 0.0287810378, 0.0716620758, 0.0621458329, -0.0831068307, -0.0728790313, -0.0445540696, + 0.0521531329, 0.0166683774, -0.148720086, -0.12713623, 0.0401482619, -0.0215407573, -0.0821222961, 0.15065071, + -0.07349962, -0.0460405648, -0.122045808, 0.0112530338, -0.0812266245, -0.0627066046, 0.0274421889, 0.118658744, + -0.0305289105, 0.0892365873, 0.144452453, -0.0757400915, -0.0202151369, 0.126208305}, + {-0.0437133387, 0.0323875919, -0.145843431, 0.0956786349, -0.0937139839, 0.13182582, -0.0706337616, 0.0204784479, + -0.0715969428, -0.128946602, -0.0713709369, -0.124152005, 0.161150977, 0.123647638, -0.108281486, 0.0249249022, + -0.0196917262, 0.137467131, 0.0400564261, 0.120215692, -0.0197306164, -0.106058814, -0.0686393008, 0.153262198, + -0.063919872, -0.00649026223, -0.0854413435, 0.0593921542, 0.0622429475, 0.117580555, -0.0392331183, -0.116162769, + 0.0542217903, -0.118614249, 0.121162921, 0.00294180028, 0.0475082062, -0.049234014}, + {-0.0692583397, -0.0381967388, 0.0108633479, 0.1139092, 0.138173491, 0.149172381, -0.0124229239, 0.0967442915, + -0.0113356085, -0.0632835254, -0.0774597898, 0.110642597, 0.11836759, 0.0137330545, -0.130651236, 0.00516175944, + -0.0644532591, -0.142986074, 0.111201085, -0.0865355656, -0.0990405828, -0.148261681, 0.0723652691, -0.0496738255, + 0.0799146369, 0.125526935, -0.119959667, -0.0733231977, 0.0375579558, -0.125790462, 0.0893025696, 0.136068493, + -0.0620285831, 0.02270036, 0.0143413413, -0.00679333182, 0.0437779091, 0.0163665451}, + {-0.0079713827, -0.0884929523, 0.0569680594, 0.10090746, -0.118078947, 0.142817497, -0.0454336144, -0.0205228869, + 0.0125616565, -0.147802323, 0.106965281, -0.0406258218, -0.00895241462, 0.15554814, -0.0414349176, -0.139739379, + 0.0597116426, -0.065914534, 0.139313579, 0.108560361, 0.133568347, 0.0660503879, -0.142822742, -0.133444175, + 0.0197380427, -0.0862744376, 0.0128055131, 0.122056544, -0.100315422, 0.151099995, 0.101481423, 0.0356684104, + 0.150380984, -0.0398464501, -0.122602984, -0.0857770592, 0.111295432, 0.0352329724}, + {-0.0795286596, -0.0135276821, -0.099894695, -0.144355819, -0.110170931, 0.03193051, -0.06891267, -0.0775772333, + 0.13832669, 0.0787900761, 0.110538125, 0.00923796371, -0.133039117, -0.0690641478, -0.118728943, 0.114284076, + -0.148924515, 0.132811144, -0.12561056, 0.119440265, -0.0696713701, -0.137848869, -0.158671498, -0.060738679, + -0.12787731, -0.0514016077, 0.00684055593, -0.0906583965, -0.0991082266, -0.0541855097, -0.00720922137, -0.107373029, + 0.12489038, 0.061813172, 0.136876851, 0.00414928375, -0.0272152144, 0.070515871}, + {0.0633898675, 0.0261055827, -0.0303880889, 0.108446807, -0.138521463, 0.109587051, -0.0527590588, -0.104560778, + 0.145587534, -0.0615862757, -0.0511819236, -0.153311551, -0.114011265, 0.138836622, -0.138622403, 0.057557568, + -0.146311373, -0.0104568377, -0.0132391546, 0.0235701967, -0.150254726, -0.0178036708, 0.152054191, 0.00430745166, + 0.12046618, 0.149914369, -0.0895572305, 0.0688318387, 0.000806387747, 0.133287728, 0.130526453, -0.0496313199, + -0.134963602, -0.0261162389, -0.108013473, 0.0387918949, -0.0315872356, -0.0375124328}, + {-0.0702602416, 0.13350451, -0.0713753849, 0.0828309879, 0.095670186, 0.0772128776, -0.13807185, 0.0868573561, + 0.0694821253, 0.161312461, 0.0376974232, 0.0855570287, -0.0856447294, 0.104297563, 0.0293575302, -0.0660395175, + -0.119928382, -0.0202570427, -0.158904806, 0.138914466, -0.159712985, -0.0709039122, -0.000578988693, 0.119963653, + -0.117200539, 0.0140864048, -0.0217343159, -0.105365559, 0.0787841156, 0.0245445762, -0.0198229365, -0.103426315, + -0.102254003, -0.125449911, 0.092554763, -0.0965021998, 0.143660918, 0.161924228}, + {-0.091380775, 0.0902072489, -0.0787675083, -0.129824847, -0.114890404, -0.0510432497, 0.12673308, -0.122940376, + 0.152958423, 0.0302275419, 0.0788332596, -0.0904918164, -0.142775595, 0.0472710058, 0.140344039, -0.135789633, + 0.0489897914, 0.129470944, 0.0903763473, 0.152369484, 0.0904615149, 0.118806586, -0.0390668474, 0.0223889165, + -0.0683183074, 0.0224100929, -0.0929112881, 0.0322820805, 0.117006496, -0.0842939094, 0.0467631817, 0.0763286576, + -0.0412778333, -0.0936026722, 0.101683334, 0.00150246988, -0.0214761868, 0.00202752394}, + {0.0931837857, 0.0519282483, 0.143079862, 0.135947719, -0.104597598, 0.112018764, 0.0880292729, 0.0845717192, + -0.0152654219, -0.0373741277, 0.0412207842, 0.0699536502, 0.152654529, -0.0965109766, -0.0515422337, -0.149151176, + -0.0727594793, 0.122508764, -0.0720897168, -0.11613635, -0.00287481234, 0.131856412, 0.0442777239, 0.0511138923, + 0.117966585, 0.0539097637, 0.118921012, 0.0926490426, -0.056768816, -0.0246980637, -0.0146312993, -0.0584468208, + 0.0625289232, 0.103360929, 0.0212460235, -0.160290256, -0.0171533041, -0.0927262977}, + {0.122992054, -0.121641986, 0.00919510983, 0.132251814, 0.138677061, 0.0245913938, -0.0132963769, 0.0885153636, + -0.0177891664, -0.104117021, 0.092064634, -0.09593454, 0.0744026378, 0.0253976472, -0.0733910501, -0.0295158532, + 0.00949139241, -0.107024148, 0.138210788, 0.0033552337, 0.107254177, 0.0919673294, 0.142293572, 0.0413063578, + 0.159880146, -0.101272628, -0.0422178879, 0.147710085, -0.148415595, 0.00233918009, 0.00242303102, 0.136210263, + 0.0534714051, 0.154573873, 0.0786171928, 0.0273063947, -0.15448764, -0.0414444916}, + {0.0898866802, -0.135805607, 0.115045406, 0.004659486, 0.11955782, 0.10092821, -0.119626179, -0.159937426, + 0.0340409763, 0.116208076, 0.0108968997, -0.14195089, -0.0673095435, -0.119819, -0.0855211914, -0.0979382992, + 0.027035987, -0.0272905566, 0.153282329, 0.0108530596, -0.0699147582, -0.0828620046, -0.125843167, -0.0787093937, + -0.0663496852, 0.0274581034, -0.0961758047, 0.0732983649, 0.0837045908, 0.0555426702, -0.0423846021, -0.136814252, + -0.0118285036, -0.0869185403, 0.152370587, -0.151435211, 0.0638860688, -0.00232051872}, + {-0.0154513987, -0.117591597, -0.146931335, 0.0898989215, 0.127863154, -0.149810284, -0.0153377084, -0.0275334064, + 0.0667812973, 0.0841470733, -0.0213061068, -0.0096444739, -0.0438218042, -0.0510887504, 0.0760734677, 0.0104146414, + 0.00657391967, -0.0470524244, 0.0876158997, 0.0928223506, -0.151132405, 0.0758929476, 0.0482022204, 0.138256758, + 0.0161372311, 0.0861580595, 0.0267331488, -0.0683179423, 0.0705482438, 0.0316986255, -0.0909379497, -0.0500811115, + 0.0536342897, -0.0866031349, 0.0673920959, -0.142121732, 0.113538273, 0.0417943001}, + {0.00674463809, -0.00848382805, -0.0414302014, -0.0290110074, -0.0863290504, 0.0848298892, -0.0551902317, 0.0764047503, + -0.126707032, -0.0417560488, 0.0813922137, 0.130038664, -0.0509855449, -0.131082088, 0.117798924, -0.145355746, + -0.114900097, -0.029941123, -0.0669310763, -0.0540767312, -0.0202202816, -0.0616445616, 0.122462064, -0.0220264588, + -0.114233732, -0.089240782, -0.0238952152, -0.00607678993, 0.0146209924, -0.144275472, 0.0309213605, 0.119558036, + -0.158877656, -0.0946448073, -0.0561636239, -0.154124856, -0.139539346, 0.0773290247}, + {-0.0706122518, 0.142111525, 0.028334612, 0.0350808352, 0.0180377793, 0.0627749413, -0.0157577563, 0.137011409, + -0.119079024, -0.0257686898, -0.100344718, 0.11925438, -0.159686744, -0.108425438, 0.0412919708, -0.0198664684, + -0.105418041, -0.148711011, 0.0834916234, 0.0718630552, 0.0851137936, 0.135803774, -0.0776668489, 0.0684946328, + -0.0496378951, 0.0813848451, 0.0962988511, -0.0709890053, -0.0637890622, -0.0352360271, -0.100540034, -0.0553742163, + -0.143287867, 0.080920808, -0.0245261267, 0.0781563967, 0.0252334829, 0.0032579815}, + {-0.011535489, 0.0552640259, -0.0983526185, 0.0339013152, 0.0132326186, 0.0394182615, -0.107476547, -0.0585200153, + -0.0286504645, -0.0641861185, 0.0628532842, -0.0200877357, 0.0359877832, -0.00735839736, 0.106743492, 0.0747473836, + 0.0880687237, -0.0856431648, -0.0607137345, -0.138980284, 0.00380198704, -0.0358185731, 0.0985477045, 0.128078863, + 0.0927461982, -0.0583981276, 0.0941757411, 0.0641981661, 0.0837170854, 0.0826532841, 0.0373146236, 0.099213101, + 0.141936481, -0.0883395001, -0.0265714824, -0.0922904313, -0.0187212341, -0.0954300836}, + {-0.0661870539, -0.0637757406, 0.0329980627, 0.0278386045, -0.123141132, 0.104435213, -0.150509506, -0.0377595387, + -0.0381488763, -0.0498402901, 0.0291372687, -0.0404456109, 0.132321209, 0.036423631, 0.0955276415, 0.0880473405, + -0.00581585849, 0.0350670479, -0.105391763, 0.109004349, -0.0307852384, -0.130414367, 0.158892557, -0.0700889826, + 0.111940481, -0.0488851704, 0.109760575, -0.046024438, -0.148169786, -0.1542539, 0.125599995, -0.0850679651, + -0.0576269738, -0.0777193084, 0.00306573929, 0.113862865, 0.13207753, 0.0669908896}, + {-0.0854257047, 0.13936989, 0.074924849, -0.0841942802, -0.0611698851, -0.0762111992, -0.0370029658, -0.0574388877, + -0.0268648621, -0.137779236, 0.0829785541, 0.0324663371, -0.0706529617, -0.0671335086, 0.121097766, -0.132527038, + 0.00574235339, 0.151703492, -0.101537719, 0.0477447733, -0.16160433, 0.141720667, -0.146222994, -0.00596134039, + 0.0159236584, 0.135296106, -0.0185441915, 0.148325399, 0.0713032484, 0.0788530782, -0.0833149627, 0.0763515532, + 0.0153745096, 0.00260664802, -0.0600787215, 0.0740377083, 0.00351291825, 0.150920734}, + {0.146803513, -0.135727257, 0.143984005, 0.129221424, 0.0728848726, 0.121201091, 0.0576991253, 0.0668190122, + 0.127226397, -0.0429382212, 0.0460455939, -0.110571407, 0.00621784339, -0.018589288, 0.0808830932, -0.138415739, + 0.0326586366, -0.137723565, 0.141134277, -0.0493232608, 0.0885061026, -0.0800451487, 0.128048167, 0.0686369985, + -0.10238988, -0.0988603085, 0.132035479, -0.0735019743, -0.0164126866, -0.0271777175, -0.0952774435, -0.161617264, + -0.0184646919, -0.11892768, -0.0814189017, -0.0424528681, -0.00929298159, 0.0308834389}, + {-0.0951418057, -0.127076209, 0.134029284, 0.0373848192, -0.137483984, -0.0928140506, 0.13186419, -0.0432761759, + 0.105871372, -0.146426588, -0.037120156, 0.0107719935, -0.10095492, 0.155143276, -0.122863702, 0.152565673, + -0.134512201, -0.0668405145, 0.0512387604, -0.0789312273, 0.123567499, -0.0726303831, 0.0448999554, 0.153618887, + -0.0823359266, 0.113874853, -0.004029328, -0.146584198, -0.102001913, 0.102459073, -0.0799319074, -0.0965176895, + 0.138858914, 0.159140363, 0.111638516, 0.141033664, -0.157543883, -0.130956575}, + {0.0655031502, 0.134221643, 0.126227245, -0.00710083032, -0.0546412542, -0.0962074623, 0.0805685595, 0.155987993, + -0.146623641, 0.125878647, 0.11039748, 0.147601724, -0.1299977, 0.132004082, -0.0608010665, -0.0144341262, + -0.0844925717, -0.0984741449, 0.148434043, -0.0574451163, -0.0365917385, -0.113340519, -0.0632391423, -0.104926191, + 0.0684432164, -0.0184234437, 0.0689748973, 0.108491249, 0.0293650348, 0.161162272, -0.0690787658, -0.137146086, + -0.117884345, -0.0175346751, 0.105014935, 0.0756608844, -0.0889441147, -0.0368543528}, + {0.0251566917, 0.0880182683, -0.121371619, 0.0240717735, -0.0186902545, 0.034002088, 0.149701566, -0.00530120824, + 0.140733391, 0.121368177, 0.0707216114, -0.142183095, -0.0472748727, 0.116474636, 0.107784413, 0.100810386, + -0.139013469, 0.151560485, 0.139605954, 0.049415119, -0.0914053172, 0.103264764, -0.122787647, 0.0670682415, + -0.145730928, 0.0687837377, -0.142004788, -0.123478793, 0.114381619, 0.0354750082, -0.112866424, 0.082104966, + -0.0229964685, -0.0738181174, -0.00234958413, 0.152679712, 0.0368348025, -0.02470286}, + {-0.134176776, 0.0600278601, 0.110702656, 0.0223374385, 0.0539329313, -0.119032688, 0.123434648, -0.0821668506, + 0.0341056436, 0.131075725, 0.0687222481, 0.0810620338, 0.0292768329, -0.0594329387, 0.0625031441, -0.112251788, + 0.0379707329, -0.14402847, -0.142893583, -0.0203098375, 0.155954182, 0.0998718962, 0.012865887, -0.124054402, + 0.0725158006, -0.105825752, 0.0885164067, 0.0336444825, -0.117535211, -0.0272768848, 0.0980318934, -0.0163562372, + -0.0370732024, -0.108581439, 0.108961299, 0.0620971583, 0.0382534377, -0.0263660513}, + {0.095558621, -0.0958883241, 0.126957774, -0.00670441473, -0.14494583, -0.0642151833, 0.0420669913, 0.114460826, + -0.0937227383, 0.118939266, 0.0335833952, 0.135247082, 0.0544229634, 0.150566295, -0.159375459, -0.106477857, + 0.135637268, -0.071804285, -0.0255159009, -0.0100964298, 0.100122638, 0.121790603, -0.116215467, -0.00802672841, + 0.138003364, -0.113805197, -0.0470594615, -0.0990353227, -0.0792972594, -0.0887459368, 0.103651859, -0.133300781, + 0.117960609, 0.0811400041, 0.157920733, 0.0148476949, 0.150584653, -0.0911697969}, + {0.126302868, 0.0825577155, 0.105737031, -0.0755706355, 0.0729191601, -0.0633011386, -0.0367738642, 0.0643601269, + 0.0747000799, 0.039796982, -0.137118742, -0.0697711557, 0.089790836, 0.0904136673, 0.0553527102, -0.0428082272, + 0.0528327003, 0.154704884, 0.085552983, -0.0959978551, -0.120239362, 0.0226343777, -0.0253005493, -0.0450294241, + 0.139757544, 0.0591047853, 0.100923128, -0.135554463, 0.0737651885, 0.145476639, 0.152816221, 0.0755506381, + 0.0958037376, -0.0874703825, -0.00346816937, -0.0564318076, 0.0846550092, 0.0566187724}, + {-0.145482168, 0.142824933, -0.0358918458, -0.0647192597, 0.139751002, -0.0997964144, 0.108639881, -0.135771811, + -0.101867124, 0.0686281249, 0.0826863572, -0.0303606465, 0.101582445, -0.0390331596, 0.0730453059, 0.0275329631, + -0.160290509, -0.0916613936, 0.132883102, 0.0645846054, -0.128855631, 0.127391979, -0.103228189, 0.0525567606, + 0.0847893208, -0.0591220744, -0.0945398808, -0.0926886424, 0.0496552996, 0.0475548506, -0.0140152397, 0.148692995, + 0.0782762542, -0.0992234275, -0.11280369, -0.0467911065, 0.031262856, 0.0656332448}, + {-0.0931156725, 0.133793712, -0.0471967049, -0.145352349, 0.0266869701, 0.00193466153, 0.132647991, 0.122975461, + -0.0695274323, -0.143085226, 0.101551138, 0.00452972623, 0.0207479838, -0.0216653347, 0.0831958055, 0.104311153, + 0.00942372717, 0.159955099, -0.0990665928, 0.152739361, 0.0502699688, 0.138896108, -0.0725091696, 0.113915756, + 0.0596380197, 0.0267375205, -0.101281442, 0.0449607931, -0.0749020129, -0.135740116, 0.0746423379, 0.092456162, + -0.0177492518, 0.00903730933, -0.114404745, 0.109487385, -0.0273379739, -0.119927704}, + {-0.0116146598, -0.0788322538, -0.0349666066, -0.132254601, -0.13766481, -0.0453253388, -0.140147209, -0.15993318, + -0.0651417226, -0.0987271294, -0.0129405325, 0.0194141455, -0.158066675, 0.144544214, 0.12718685, 0.152309671, + -0.0770952255, -0.014645475, 0.0290980693, 0.0346740745, 0.119578451, -0.113027297, 0.100903958, 0.0726089552, + -0.0798394084, 0.0455660038, 0.010599032, -0.00723621761, 0.031562157, -0.152519494, 0.0152613418, 0.138716251, + 0.154921398, -0.0347051136, -0.0294301081, 0.114802085, 0.111013986, 0.0487533249}, + {-0.04158682, -0.0852873549, 0.033002995, 0.154026017, 0.0685444698, -0.123257466, -6.18825595e-07, -0.0313884392, + -0.156846359, -0.0631449819, 0.150864452, -0.1406966, -0.153998971, 0.0269324686, -0.0584846474, 0.156181306, + -0.0525552332, 0.0102359941, -0.0731523633, -0.155586779, 0.15140985, 0.107878149, 0.100313328, 0.0444059372, + -0.00221210811, 0.157422602, 0.0897618681, -0.0245393347, 0.131690994, -0.0807922259, 0.0736935586, 0.133566082, + 0.0597162843, -0.114492074, 0.136362672, -0.135696799, -0.0176516715, 0.128866345}, + {-0.0224287156, -0.146162465, 0.161462754, 0.00711314892, -0.0996523127, 0.064208664, -0.126232892, -0.0617709383, + 0.0962587446, -0.00120085035, 0.084692724, -0.122172512, -0.0941684321, 0.0481004044, -0.156581983, 0.0959883183, + -0.0785346329, 0.0519663431, -0.1225072, 0.127008423, 0.161238521, 0.0903288126, -0.156453386, -0.0159464777, + 0.0733013451, -0.157138482, 0.0373030379, -0.138127849, 0.148198366, -0.10742335, 0.050770849, -0.0867791474, + 0.143453225, 0.0749728084, 0.10520979, 0.0881375298, -0.155022249, -0.0611279197}, + {-0.0917782784, -0.000811125676, -0.0354872309, -0.084210448, 0.0197369978, -0.0719233155, -0.0310130436, 0.0965506956, + 0.0462897792, 0.0180998947, 0.134906799, -0.105829388, -0.0783101171, -0.0868667141, -0.148010507, 0.132890075, + -0.116843536, -0.00620813575, 0.0789340511, 0.0266195945, -0.142183498, 0.115123913, -0.0300091356, -0.150599524, + 0.00754599785, 0.0848974586, -0.0650437921, -0.030060092, 0.00603786204, 0.132998079, -0.131052837, -0.0519631729, + -0.141366243, -0.0778565779, 0.1556492, 0.129959449, -0.0822981596, -0.0929470658}, + {0.0680898055, 0.11427854, 0.0211972333, -0.0077498625, -0.0261243414, -0.16017431, 0.0849448144, 0.00252695498, + 0.015912056, -0.0566566549, -0.0432453714, 0.00682442822, -0.113706537, -0.0300306194, 0.112171538, -0.0333927758, + 0.148448229, 0.0714522898, -0.0671178997, 0.11659421, 0.134334296, -0.0497111306, -0.12496423, -0.13255325, + 0.00297142635, 0.124170274, 0.113238201, 0.159033462, -0.131185964, 0.0749584585, 0.0039229095, 0.160131067, + -0.103444085, -0.101062827, 0.0271235127, 0.085477218, 0.135246396, 0.0841246992}, + {0.0972777233, -0.0324214324, -0.0501278304, -0.117852397, 0.0668613017, -0.018309541, 0.0630236343, -0.123417608, + 0.149540097, -0.0755526274, 0.113613382, 0.0541556701, 0.0144647965, -0.0195463989, 0.12169791, 0.0520371795, + -0.014859898, 0.138492092, 0.134409502, 0.0225321352, 0.152222648, 0.00727060111, 0.0552033819, 0.0310191158, + 0.0899194553, 0.123631939, 0.0904184803, 0.034310922, 0.0355594009, -0.0873830095, -0.0629013181, 0.0313743614, + 0.137224853, -0.113125362, -0.137799174, -0.00136170641, 0.0569311231, 0.00033627369}, + {0.140582711, 0.0666882843, 0.0628860593, 0.126775816, 0.030946482, 0.0155598279, -0.014883684, -0.0288827959, + 0.0355592482, -0.0366797671, 0.0594486594, 0.115711585, 0.0348766446, -0.0938992798, -0.129293278, -0.0878231451, + -0.000724876823, 0.0773949102, 0.0322506577, -0.143157914, -0.0329748951, -0.0669301301, 0.107684202, -0.0379990637, + -0.065633826, -0.0376346521, 0.0145334285, -0.148802459, -0.0318754539, -0.16022332, 0.0577683561, -0.0665533617, + -0.133655116, 0.101930477, 0.119332045, -0.127442241, -0.129697219, -0.0865818784}, }; const float six_dense_biases[SIX_DENSE_NUM] = { - 0.0358068012, 0.000898281171, 0.0217367113, -0.0265544746, -0.0845544115, 0.0717771053, -0.0896350667, 0.338159561, - 0.0275293905, 0.0230685957, -0.00351712457, 0.103906937, 0.517660439, 0.334648579, 0.102573998, 0.101453498, - -0.0807224065, 0.0408518165, -0.0473203175, 0.115539514, -0.000401440775, -0.108576819, 0.0293965898, -0.00195915299, - 0.0339241698, 0.0961106047, 0.327096283, 0.0165668819, 0.0520431101, 0.241015151, -0.0268077478, -0.0589138456, - -0.0555285476, -0.000455619767, 0.146385804, -0.121387199, 0.0519205295, 0.313046634, 0.189322412, 0.0484207943, - 0.0107734976, 0.0182580184, 0.144846246, 0.0323797129, 0.0367941856, -0.048185993, -0.0814495087, -0.0371007808, - 0.00476074684, 0.15602544, -0.0435842052, 0.185461104, -0.0419499911, -0.017373234, -0.223312691, -0.0239550043, - 0.10882584, 0.0511653274, -0.122622646, -0.0466074683, 0.00250071893, 0.0343811512, 0.0257191304, 0.278161705 + -0.109864615, -0.00545889279, -0.0512907989, -0.0936995149, 0.145228133, 0.136148497, 0.082344763, 0.16194196, + -0.0229825824, 0.116574578, -0.0256564897, -0.058733996, -0.14782922, -0.115881361, -0.139623746, 0.14362292, + 0.0457916036, 0.0223771594, 0.0677440986, -0.0922927707, -0.0339972936, -0.137796223, 0.0850529596, 0.10865587, + -0.138163224, -0.0926693082, -0.0489478298, -0.0663326904, 0.145771638, 0.159281373, -0.0736522749, -0.0456566252, + -0.131377712, -0.161315009, 0.113873117, 0.0961941928, -0.0246813763, 0.0113050351, 0.0658195317, -0.131229118, + 0.045095697, 0.118296579, -0.0262246486, -0.0172070265, 0.030266799, 0.0645385385, -0.0574949123, -0.111541301, + 0.00989755429, 0.0734110475, 0.0109292725, 0.0906195045, -0.0213869791, -0.0550156645, -0.0770896152, 0.0627855435, + 0.161606282, -0.136956587, 0.0591680035, 0.117993973, -0.100358412, -0.0904804021, 0.161572158, 0.0794185847 }; const float six_logit_weights[SIX_DENSE_NUM] NN_ALIGNED = { - -0.201751411, 0.347819954, 0.493884534, 0.274511665, 0.363753706, -2.35896945, 0.3773655, -0.10685952, - 0.596209824, -0.224591911, -0.365215212, 0.613381267, -0.242347822, -0.303737462, 0.266811877, 0.37569049, - -0.282472193, 0.453839839, 0.308412313, -0.165009454, 0.367185861, 0.483189702, 0.318070173, 0.475200891, - -0.218860522, -0.190120831, -0.580566227, 0.339473605, 0.391757488, -0.149844855, -0.573802054, 0.383461118, - -0.507005513, 0.357159287, 0.382413357, 0.350407243, 0.304840535, -0.40366289, -0.116036549, 0.332240224, - -0.232978418, -0.115689844, 0.658053219, 0.35329318, -0.217018828, -0.301838249, 0.337623596, 0.313897252, - -0.175598681, 0.399216175, -0.425547808, -0.526563704, -0.4182145, 0.280602217, -0.921227634, -0.301986456, - -0.295262814, 0.333246887, -0.232829303, 0.276836783, -0.210685015, 0.263218731, 0.338431299, -0.461315811 + 0.0506259352, -0.0670735389, -0.0409830809, 0.0799648017, -0.0936499536, -0.122460753, 0.0720161647, -0.00714924932, + 0.0374628901, -0.00931178033, -0.0230136961, 0.00667156279, 0.0823754966, -0.0555169284, -0.00904981792, 0.116692498, + -0.0391199738, -0.0115989298, 0.080099836, 0.0469093025, 0.0122002363, 0.0831808001, -0.086982742, 0.0337891877, + -0.00255012512, -0.00210243464, -0.124136865, 0.0730553865, 0.0849774629, 0.0424228907, 0.0538319349, -0.021144107, + 0.0260899216, 0.103255317, 0.0197341889, 0.0205372721, 0.0432852656, -0.0749761909, 0.0963372439, 0.0757804066, + -0.0152295828, 0.0183023214, 0.0326250941, 0.0934210271, -0.0808760673, 0.122171149, 0.118500024, 0.119957089, + 0.00975672901, -0.080600068, 0.0614878684, 0.102577716, -0.0595808178, -0.00613754988, 0.0455737859, 0.0759487897, + -0.0314992517, 0.0338666737, 0.0178338587, -0.0309750885, -0.0261106789, -0.0142950565, 0.0768712908, -0.121748224 }; -const float six_logit_bias = 0.250789016; +const float six_logit_bias = -0.076127708; diff --git a/include/weights_6.h b/include/weights_6.h index d1a7c99..d927748 100644 --- a/include/weights_6.h +++ b/include/weights_6.h @@ -18,7 +18,7 @@ #ifndef WEIGHTS_6_H #define WEIGHTS_6_H -#define SIX_INP_NUM (3 + 6 * 6) +#define SIX_INP_NUM (2 + 6 * 6) #define SIX_DENSE_NUM 64 #define NN_ALIGNED __attribute__((aligned(16))) diff --git a/src/match.c b/src/match.c index 6ae9fa7..459fab5 100644 --- a/src/match.c +++ b/src/match.c @@ -40,7 +40,7 @@ static inline float five_cand(tak_state_p state) { nn_prepare_input(cur_board, state, cand_five_embedding); return eval_net(cur_board, FIVE_INP_NUM, &cand_five_dense_weights[0][0], cand_five_dense_biases, cand_five_logit_weights, cand_five_logit_bias, - FIVE_DENSE_NUM); + FIVE_DENSE_NUM, state->ply & 1 ? 1.0f : -1.0f); } static inline float six_cand(tak_state_p state) { @@ -49,7 +49,7 @@ static inline float six_cand(tak_state_p state) { nn_prepare_input(cur_board, state, cand_six_embedding); return eval_net(cur_board, SIX_INP_NUM, &cand_six_dense_weights[0][0], cand_six_dense_biases, cand_six_logit_weights, cand_six_logit_bias, - SIX_DENSE_NUM); + SIX_DENSE_NUM, state->ply & 1 ? 1.0f : -1.0f); } diff --git a/src/nn_train.py b/src/nn_train.py index 9e2b482..0e08da7 100755 --- a/src/nn_train.py +++ b/src/nn_train.py @@ -59,8 +59,8 @@ from torch import Tensor # (input dim, hidden dim) per board size; must match include/weights_<size>.h NET_DIMS: dict[int, tuple[int, int]] = { - 5: (28, 64), # FIVE_INP_NUM, FIVE_DENSE_NUM - 6: (39, 64), # SIX_INP_NUM, SIX_DENSE_NUM + 5: (27, 64), # FIVE_INP_NUM, FIVE_DENSE_NUM + 6: (38, 64), # SIX_INP_NUM, SIX_DENSE_NUM } @@ -121,12 +121,13 @@ class SelfPlayRecords: results: Tensor # [n] final played result from black's perspective terminals: Tensor # [n] true when the recorded position is a terminal leaf terminal_values: Tensor # [n] exact value of a terminal leaf, otherwise 0 + parity_signs: Tensor # [n] ±1 converting the net's output to "absolute" perspective @classmethod def load_selfplay( cls, fn: Path, size: int, device: torch.device ) -> SelfPlayRecords: - # [net input] [game_id] [played result] [terminal flag] [leaf result] + # [net input] [game_id] [played result] [terminal flag] [leaf result] [parity sign] df = pd.read_csv(fn, header=None) inp_dim = NET_DIMS[size][0] return cls( @@ -154,6 +155,11 @@ class SelfPlayRecords: dtype=torch.float32, device=device, ), + parity_signs=torch.tensor( + df.iloc[:, inp_dim + 4].to_numpy(dtype=np.float32), + dtype=torch.float32, + device=device, + ), ) @classmethod @@ -167,14 +173,15 @@ class SelfPlayRecords: results=torch.concat([spr.results for spr in sprs]), terminals=torch.concat([spr.terminals for spr in sprs]), terminal_values=torch.concat([spr.terminal_values for spr in sprs]), + parity_signs=torch.concat([spr.parity_signs for spr in sprs]), ) def make_training_data( self, model: Module, td_lambda: float - ) -> tuple[Tensor, Tensor]: + ) -> tuple[Tensor, Tensor, Tensor]: model.eval() with torch.no_grad(): - values = model(self.positions) + values = model(self.positions) * self.parity_signs targets = torch.empty_like(values) @@ -191,7 +198,7 @@ class SelfPlayRecords: game_targets[game_terminals] = game_terminal_values[game_terminals] targets[in_game] = game_targets - return self.positions, targets + return self.positions, targets, self.parity_signs # =================================================================== @@ -208,10 +215,10 @@ class Net(Module): self.output = Linear(hidden, 1, bias=True) def forward(self, x: Tensor) -> Tensor: - # x: [n, 3 + n_cells]; the first 3 columns are the fixed head + # x: [n, 2 + n_cells]; the first 2 columns are the fixed head # inputs, the rest are raw cell states (0..6) n = x.shape[0] - inp = torch.cat([x[:, :3], self.embedding(x[:, 3:].long()).view(n, -1)], dim=1) + inp = torch.cat([x[:, :2], self.embedding(x[:, 2:].long()).view(n, -1)], dim=1) hidden = silu(self.hidden(inp)) return tanh(self.output(hidden)).squeeze(-1) @@ -226,7 +233,9 @@ class Net(Module): lr: float, ) -> tuple[float, float]: # data - positions, targets = self_play_records.make_training_data(self, td_lambda) + positions, targets, parity_signs = self_play_records.make_training_data( + self, td_lambda + ) n = len(positions) perm = torch.randperm(n, device=positions.device) n_val = max(1, int(n * val_frac)) @@ -235,8 +244,10 @@ class Net(Module): val_positions = positions[val_idx] val_targets = targets[val_idx] + val_parity_signs = parity_signs[val_idx] train_positions = positions[train_idx] train_targets = targets[train_idx] + train_parity_signs = parity_signs[train_idx] # training widgets optimizer = torch.optim.AdamW(self.parameters(), lr=lr) @@ -253,14 +264,16 @@ class Net(Module): for start in range(0, len(train_positions), batch): batch_idx = order[start : start + batch] optimizer.zero_grad() - predictions = self(train_positions[batch_idx]) + predictions = ( + self(train_positions[batch_idx]) * train_parity_signs[batch_idx] + ) loss = loss_fn(predictions, train_targets[batch_idx]) loss.backward() optimizer.step() with torch.no_grad(): self.eval() - predictions = self(val_positions) + predictions = self(val_positions) * val_parity_signs mse = loss_fn(predictions, val_targets).item() corr = torch.corrcoef(torch.stack([predictions, val_targets]))[ 0, 1 @@ -532,7 +545,7 @@ def main() -> None: _ = p.add_argument( "--iters", type=int, - default=100, + default=20, help="max loop iterations", ) _ = p.add_argument( diff --git a/src/selfplay.c b/src/selfplay.c index 5ffa6f6..42d82d2 100644 --- a/src/selfplay.c +++ b/src/selfplay.c @@ -38,10 +38,11 @@ static tak_state_p state; -static float row_head[MAX_PLY][3]; +static float row_head[MAX_PLY][2]; static uint8_t row_cells[MAX_PLY][MAX_CELLS]; static uint8_t row_term[MAX_PLY]; static float row_terminal_value[MAX_PLY]; +static float row_parity_sign[MAX_PLY]; static uint32_t row_game_id[MAX_PLY]; static uint32_t n_rows; @@ -90,6 +91,7 @@ static int play_game(const uint8_t min_ply) { memcpy(row_cells[n_rows], leaf->cells, sizeof(row_cells[n_rows])); row_term[n_rows] = leaf->terminal; row_terminal_value[n_rows] = leaf->terminal_value; + row_parity_sign[n_rows] = leaf->parity_sign; row_game_id[n_rows] = state->current_colour == C_BLACK ? game_id_black : game_id_white; n_rows++; } @@ -114,12 +116,11 @@ static int play_game(const uint8_t min_ply) { const float R = win_value(state->won); for (uint32_t k = 0; k < n_rows; k++) { - fprintf(stdout, "%.8f,%.8f,%.8f,", row_head[k][0], row_head[k][1], - row_head[k][2]); + fprintf(stdout, "%.8f,%.8f,", row_head[k][0], row_head[k][1]); for (uint8_t c = 0; c < n_cells; c++) fprintf(stdout, "%u,", (unsigned)row_cells[k][c]); - fprintf(stdout, "%u,%.0f,%u,%.0f\n", row_game_id[k], R, - (unsigned)row_term[k], row_terminal_value[k]); + fprintf(stdout, "%u,%.0f,%u,%.0f,%.0f\n", row_game_id[k], R, + (unsigned)row_term[k], row_terminal_value[k], row_parity_sign[k]); } return (int)n_rows; @@ -129,7 +130,7 @@ const char *usage = "selfplay, one game of asymmetric self-play training data.\n\n\ Usage: selfplay <size> <depth> <min_ply>\n\n\ Plays a single game of <size>x<size> self-play, with <min_ply> moves made randomly. Only the deterministic plies are written to stdout, one CSV row per recorded search, from ply <min_ply> onwards:\n\n\ -\tparity,white_flats,black_flats,<cell ids...>,game_id,R,terminal,leaf_R\n\n\ +\tmover_flats,opponent_flats,<cell ids...>,game_id,R,terminal,leaf_R,parity_sign\n\n\ nn_train.py runs many of these in parallel to generate training data.\n\n\ Copyright (C) 2026, tslil clingman\n\n\ This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version."; |
