From f869b2e56b8347c2e3f8e1ed464cdb2f443ee6d9 Mon Sep 17 00:00:00 2001 From: Viviane Potocnik Date: Wed, 30 Aug 2023 16:49:16 +0200 Subject: [PATCH] sw: Add transformer app --- sw/apps/transformer/Makefile | 53 + sw/apps/transformer/src/transformer.h | 1037 +++++++++++++++++ sw/blas/gemm/src/gemm.h | 8 +- sw/dnn/src/layernorm.h | 94 ++ target/snitch_cluster/sw/apps/Makefile | 1 + target/snitch_cluster/sw/apps/dnn/datagen.py | 341 +++++- .../sw/apps/transformer/Makefile | 13 + .../sw/apps/transformer/src/data.h | 56 + .../sw/apps/transformer/src/params.hjson | 21 + .../sw/apps/transformer/src/transformer.c | 66 ++ 10 files changed, 1685 insertions(+), 5 deletions(-) create mode 100644 sw/apps/transformer/Makefile create mode 100644 sw/apps/transformer/src/transformer.h create mode 100644 target/snitch_cluster/sw/apps/transformer/Makefile create mode 100644 target/snitch_cluster/sw/apps/transformer/src/data.h create mode 100644 target/snitch_cluster/sw/apps/transformer/src/params.hjson create mode 100644 target/snitch_cluster/sw/apps/transformer/src/transformer.c diff --git a/sw/apps/transformer/Makefile b/sw/apps/transformer/Makefile new file mode 100644 index 0000000000..3d71b761fa --- /dev/null +++ b/sw/apps/transformer/Makefile @@ -0,0 +1,53 @@ +# Copyright 2023 ETH Zurich and University of Bologna. +# Licensed under the Apache License, Version 2.0, see LICENSE for details. +# SPDX-License-Identifier: Apache-2.0 +# +# Viviane Potocnik ETH Zurich + +# Usage of absolute paths is required to externally include this Makefile +MK_DIR := $(dir $(realpath $(lastword $(MAKEFILE_LIST)))) +SRC_DIR := $(realpath $(MK_DIR)../../../target/snitch_cluster/sw/apps/transformer/src) +DNN_DIR := $(realpath $(MK_DIR)../../dnn/src/) +BLAS_DIR := $(realpath $(MK_DIR)../../blas/) +APP_DIR := $(realpath $(MK_DIR)src) +DATA_GEN_DIR := $(realpath $(MK_DIR)../../../target/snitch_cluster/sw/apps/dnn/) +APP ?= transformer + +$(info DATA_GEN_DIR: $(DATA_GEN_DIR)) + +SRCS = $(realpath $(SRC_DIR)/$(APP).c) +INCDIRS += $(SRC_DIR) $(BLAS_DIR) $(DNN_DIR) $(APP_DIR) + +DATA_CFG = $(SRC_DIR)/params.hjson +DATA_H = $(SRC_DIR)/data.h + +$(info Generating $(DATA_H) from $(DATA_CFG) using $(DATA_GEN_DIR)/datagen.py) + +$(DATA_H): $(DATA_GEN_DIR)/datagen.py $(DATA_CFG) + $(info Generating $(DATA_H) from $(DATA_CFG)) + $(info Running command: $< -c $(DATA_CFG) -o $@ ) + $< -c $(DATA_CFG) -o $@ + $(info Done and saved to $(DATA_H)) + +.PHONY: clean-data clean echo + +clean-data: + rm -f $(DATA_H) + +clean: clean-data + +echo: + $(info prefix: $(realpath $(MK_DIR))) + $(info APP: $(APP)) + $(info APP_DIR: $(APP_DIR)) + $(info DATA_H: $(DATA_H)) + $(info DATA_CFG: $(DATA_CFG)) + $(info MK_DIR: $(MK_DIR)) + $(info SRC_DIR: $(SRC_DIR)) + $(info DNN_DIR: $(DNN_DIR)) + $(info BLAS_DIR: $(BLAS_DIR)) + $(info SRCS: $(SRCS)) + $(info INCDIRS: $(INCDIRS)) + $(info DEP: $(DEP)) + $(info PYTHON: $(MK_DIR)dnn/datagen.py) + $(info PYTHON COMMAND: $(MK_DIR)dnn/datagen.py -c $(DATA_CFG) -o $(DATA_H)) \ No newline at end of file diff --git a/sw/apps/transformer/src/transformer.h b/sw/apps/transformer/src/transformer.h new file mode 100644 index 0000000000..20be4eaf83 --- /dev/null +++ b/sw/apps/transformer/src/transformer.h @@ -0,0 +1,1037 @@ +// Copyright 2020 ETH Zurich and University of Bologna. +// Licensed under the Apache License, Version 2.0, see LICENSE for details. +// SPDX-License-Identifier: Apache-2.0 +// +// Author: Viviane Potocnik (ETH Zurich) + +#pragma once + +#include "math.h" +#include "snrt.h" +#include "utils.h" +#include "gemm.h" + +#define BANSHEE 0 +#define DEBUG_VERBOSE 0 +#define DEBUG 1 +#define BRIEF 1 // enable this define to only compute two iterations of the loops +#define LAYERNORM 0 // enable this define to compute the layernorm +#define LINEAR_1 0 // enable this define to compute the linear layer 1 +#define FLASH_ATTENTION 0 // enable this define to compute the flash attention +#define CONCAT 0 // enable this define to compute the head concatenation + +/** + * @struct transformer_layer_fp64_struct + * @brief This structure contains all parameters necessary + * for computing a Transformer layer + * @var transformer_layer_fp64_struct::seq_len + * Number of input tokens + * @var transformer_layer_fp64_struct::embeddings + * Vector size of each input token + * @var transformer_layer_fp64_struct::positional_embeddings + * Vector size of each positional embedding + * @var transformer_layer_fp64_struct::ifmap + * Pointer to input feature map + * @var transformer_layer_fp64_struct::bias + * Pointer to bias for each head + * @var transformer_layer_fp64_struct::weights_q + * Pointer to weights for query + * @var transformer_layer_fp64_struct::weights_k + * Pointer to weights for key + * @var transformer_layer_fp64_struct::weights_v + * Pointer to weights for value + * @var transformer_layer_fp64_struct::ofmap + * Pointer to output feature map + * @var transformer_layer_fp64_struct::query + * Pointer to the golden model output for query + * @var transformer_layer_fp64_struct::key + * Pointer to the golden model output for key + * @var transformer_layer_fp64_struct::value + * Pointer to the golden model output for value + */ + +typedef struct transformer_layer_fp64_struct { + uint32_t BATCH_SIZE; + uint32_t seq_len; + uint32_t S_tile_ln; + uint32_t S_tile_lin1; + uint32_t P_tile_lin1; + uint32_t Br_tile_fa; + uint32_t Bc_tile_fa; + uint32_t Br_tile_lin2; + uint32_t Bc_tile_lin2; + uint32_t positional_embeddings_fa; + uint32_t embeddings; + uint32_t embeddings_lin2; + uint32_t positional_embeddings; + uint32_t feedforward_len; + uint32_t heads; + double eps; + + double *ifmap; + double *ifmap_lin2; + double *attn_ifmap; + double *bias; + double *weights_q; + double *weights_k; + double *weights_v; + double *weights_lin2; + + double *Q_lin; + double *K_lin; + double *V_lin; + double *Q_fa; + double *K_fa; + double *V_fa; + double *O; + double *O_lin2; + double *ofmap; + double *query; + double *key; + double *value; + + precision_t dtype; +} transformer_layer_fp64_t; + +/** + * @struct transformer_layer_fp32_struct + * @brief This structure contains all parameters necessary + * for computing a Transformer layer + * @var transformer_layer_fp32_struct::seq_len + * Number of input tokens + * @var transformer_layer_fp32_struct::embeddings + * Vector size of each input token + * @var transformer_layer_fp32_struct::positional_embeddings + * Vector size of each positional embedding + * @var transformer_layer_fp32_struct::ifmap + * Pointer to input feature map + * @var transformer_layer_fp32_struct::bias + * Pointer to bias for each head + * @var transformer_layer_fp32_struct::weights_q + * Pointer to weights for query + * @var transformer_layer_fp32_struct::weights_k + * Pointer to weights for key + * @var transformer_layer_fp32_struct::weights_v + * Pointer to weights for value + * @var transformer_layer_fp32_struct::ofmap + * Pointer to output feature map + * @var transformer_layer_fp32_struct::query + * Pointer to the golden model output for query + * @var transformer_layer_fp32_struct::key + * Pointer to the golden model output for key + * @var transformer_layer_fp32_struct::value + * Pointer to the golden model output for value + */ + +typedef struct transformer_layer_fp32_struct { + uint32_t BATCH_SIZE; + uint32_t seq_len; + uint32_t embeddings; + uint32_t positional_embeddings; + uint32_t heads; + float eps; + + float *ifmap; + float *attn_ifmap; + float *bias; + float *weights_q; + float *weights_k; + float *weights_v; + float *weights_o; + float *Q_lin; + float *K_lin; + float *V_lin; + float *O; + float *ofmap; + float *query; + float *key; + float *value; + + precision_t dtype; +} transformer_layer_fp32_t; + +/* Debugging Variables*/ +// dump_float(debug, 8); +// dump_uint(idx, 7); +// dump_float(ifmap, 6); +// dump_float(weights, 10); // = 0xa +// dump_float(value, 12); // = 0xc + +/** + * @brief Documentation for the DMA transfer function + * @param dst Pointer to destination + * @param src Pointer to source + * @param size How many bytes to transfer in total in one repetition/row + * @param dst_stride Stride of the destination, i.e. how many bytes to jump + * between two consecutive transfers in the same row of + * the destination + * @param src_stride Stride of the source, i.e. how many bytes to jump + * between two consecutive transfers in the same row of + * the source + * @param repetitions How many rows to transfer + */ + +/** + * Implementation of the GELU layer + */ +#define M_PI 3.14159265358979323846 +static inline float transformer_gelu_fp32(float x) { + float y = 0.5 * x * (1.0 + tanh(sqrt(2.0 / M_PI) * (x + 0.044715 * x * x * x))); + return y; +} + +/** + * Implementation of the LayerNorm layer fused with a linear layer and a GELU activation. + * Input is a 2D matrix of size (S x E) where S is the sequence length and E is the number of embeddings. + * The weights matrix is of size (E x F) where F is the number of hidden nodes. + */ +static inline void fused_mlp_baseline(float *input, float *output, int32_t ldI, int32_t ldO, float *weights, int32_t ldW, + int32_t seq_len, int32_t embeddings, int32_t ff_len, int32_t eps) { + float mean = 0.0; // max value of the current core + float var = 0.0; // sum of the exp values of the current core + float acc = 0.0; // accumulator for the linear layer + + uint32_t compute_id = snrt_global_core_idx(); + uint32_t num_cores = snrt_cluster_compute_core_num(); + + // compute the mean and variance along the innermost dimension + for (int s = 0; s < seq_len; s++) { + mean = 0.0; + var = 0.0; + for (int e = 0; e < embeddings; e++) { + mean += input[s * ldI + e]; + } + + mean /= embeddings; + + for (int e = 0; e < embeddings; e++) { + var += (input[s * ldI + e] - mean) * (input[s * ldI + e] - mean); + } + var /= embeddings; + // we have to compute the normalize row only once + // and then multiply with the columns of the weight matrix + for (int f = 0; f < ff_len; f++) { + acc = 0.0; + for (int e = 0; e < embeddings; e++) { + // we only have to compute the normalization once + if (f == 0) { + output[s * ldO + f] = (input[s * ldI + e] - mean) / sqrtf(var + eps); + } + acc += output[s * ldO + e] * weights[e * ldW + f]; + } + output[s * ldO + f] = transformer_gelu_fp32(acc); + } + } + +} + +// Debugging functions +dump_uint(idx, 6); +dump_float(debug, 7); +dump_uint(id, 5); +dump_float(concat, 10); +dump_uint(ct, 11); + +/** + * @brief Transformer layer + * + * @param l transformer_layer struct that holds addresses and parameters in FP64 + * + */ +static inline void transformer_layer_fp64(transformer_layer_fp64_t *const l) { + uint32_t compute_id = snrt_global_core_idx(); + uint32_t cluster_id = snrt_cluster_idx(); + uint32_t num_cores = snrt_cluster_compute_core_num(); + uint32_t num_clusters = snrt_cluster_num(); + + uint32_t seq_len = l->seq_len; + uint32_t embeddings = l->embeddings; + uint32_t positional_embeddings = l->positional_embeddings; + uint32_t heads = l->heads; + uint32_t eps = l->eps; + + // dump_id(compute_id); + // dump_id(num_cores); + // dump_id(num_clusters); + + ///////////////////////////////////////////////////////////////////// + ////////////// MULTI-HEAD SELF-ATTENTION BLOCK ///////////////// + /////////////////////////////////////////////////////////////////// + + ///////////////////// Layer 1: LayerNorm ///////////////////// + // Input size (S x E) // + // Output size (S x E) // + // S is tiled into Row Blocks of B_r rows // + ////////////////////////////////////////////////////////////////// + + if(LAYERNORM == 1) { + // compute the tiling parameters + uint32_t B_r = l->S_tile_ln; // number of rows per row block + uint32_t T_r = l->seq_len / B_r; // number of row blocks + + dump_idx(B_r); + dump_idx(T_r); + + // compute the size of the matrices + uint32_t ifmap_tcdm = B_r * embeddings * sizeof(double); + + // allocate memory in TCDM + void *tcdm_ptr = (double *)snrt_l1_next(); + double *ifmap = tcdm_ptr; + tcdm_ptr += ifmap_tcdm; + + uint32_t start_loop_outer = snrt_mcycle(); + for (int t_r = 0; t_r < T_r; t_r++) { + // dump_index(t_r); + uint32_t ifmap_offset = t_r * B_r * embeddings; + if (!snrt_is_compute_core()) { + // load the input feature map: B_r * E + // DMA transfer the ifmap into the cluster TCDM + uint32_t start_dma = snrt_mcycle(); + snrt_dma_txid_t txid_ifmap = + snrt_dma_start_2d( + ifmap, /* dst */ + l->ifmap + ifmap_offset, /* src */ + embeddings * sizeof(double), /* size */ + embeddings * sizeof(double), /* dst_stride */ + embeddings * sizeof(double), /* src_stride */ + B_r); /* repetitions */ + + snrt_dma_wait_all(); + uint32_t end_dma = snrt_mcycle(); + + // dump the ifmap for debugging + // for (int i = 0; i < B_r * embeddings; i++) { + // dump_debug(ifmap[i]); + // } + } + + snrt_cluster_hw_barrier(); + + if (snrt_is_compute_core()) { + // determine the row offset for the current compute core + uint32_t row_offset = (B_r / num_cores) * compute_id * embeddings; + uint32_t ldI = embeddings; + uint32_t start_layernom = snrt_mcycle(); + transformer_layernorm_fp64(&ifmap[row_offset], ldI, B_r / num_cores, embeddings, eps); + uint32_t end_layernom = snrt_mcycle(); + } else { + snrt_cluster_hw_barrier(); + } + + } + uint32_t end_loop_outer = snrt_mcycle(); + + snrt_cluster_hw_barrier(); + + } + + ///////////////////// Layer 2: Linear ///////////////////// + // Input size (S x E) // + // Weights size (E x P) // + // Output size (S x P) // + // S is tiled into Row Blocks of B_r rows // + // P is tiled into Column Blocks of B_c columns // + /////////////////////////////////////////////////////////////// + + if (LINEAR_1 == 1) { + // compute the tiling parameters + uint32_t B_r_lin1 = l->S_tile_lin1; // number of rows per row block + uint32_t B_c_lin1 = l->P_tile_lin1; // number of columns per column block + uint32_t T_r_lin1 = l->seq_len / B_r_lin1; // number of row blocks + uint32_t T_c_lin1 = l->positional_embeddings / B_c_lin1; // number of column blocks + + dump_index(B_r_lin1); + dump_index(B_c_lin1); + dump_index(T_r_lin1); + dump_index(T_c_lin1); + + // compute the size of the matrices + uint32_t ifmap_tcdm_lin1 = B_r_lin1 * embeddings * sizeof(double); + uint32_t weights_q_tiled_size = embeddings * B_c_lin1 * sizeof(double); + uint32_t weights_k_tiled_size = weights_q_tiled_size; + uint32_t weights_v_tiled_size = weights_q_tiled_size; + uint32_t key_matrix_size = B_r_lin1 * B_c_lin1 * sizeof(double); + uint32_t query_matrix_size = B_r_lin1 * B_c_lin1 * sizeof(double); + uint32_t value_matrix_size = B_r_lin1 * B_c_lin1 * sizeof(double); + + // here we define the matrices that will be stored back in DRAM + uint32_t q_lin_size = l->seq_len * l->positional_embeddings * sizeof(double); + uint32_t k_lin_size = l->positional_embeddings * l->seq_len * sizeof(double); + uint32_t v_lin_size = l->positional_embeddings * l->seq_len * sizeof(double); + + // allocate memory in TCDM + void *tcdm_ptr = (double *)snrt_l1_next(); + double *ifmap_lin1 = tcdm_ptr; + tcdm_ptr += ifmap_tcdm_lin1; + double *weights_q = tcdm_ptr; + tcdm_ptr += weights_q_tiled_size; + double *weights_k = tcdm_ptr; + tcdm_ptr += weights_k_tiled_size; + double *weights_v = tcdm_ptr; + tcdm_ptr += weights_v_tiled_size; + double *key = tcdm_ptr; + tcdm_ptr += key_matrix_size; + double *query = tcdm_ptr; + tcdm_ptr += query_matrix_size; + double *value = tcdm_ptr; + tcdm_ptr += value_matrix_size; + + double used_memory_kB = (double)((uint64_t)tcdm_ptr - (uint64_t)snrt_l1_next()) / 1024.0f; + + dump_debug(used_memory_kB); + + uint32_t start_loop_outer = snrt_mcycle(); + for (int t_r = 0; t_r < T_r_lin1; t_r++) { + uint32_t ifmap_offset = t_r * B_r_lin1 * embeddings; + uint32_t start_dma = snrt_mcycle(); + if (!snrt_is_compute_core()) { + snrt_dma_txid_t txid_ifmap = + snrt_dma_start_2d( + ifmap_lin1, /* dst */ + l->ifmap + ifmap_offset, /* src */ + embeddings * sizeof(double), /* size */ + embeddings * sizeof(double), /* dst_stride */ + embeddings * sizeof(double), /* src_stride */ + B_r_lin1); /* repetitions */ + + snrt_dma_wait_all(); + + // // dump the ifmap + // for (int i = 0; i < B_r_lin1 * embeddings; i++) { + // dump_debug(ifmap_lin1[i]); + // printf("ifmap[%d] = %f\n", i, ifmap_lin1[i]); + // } + } + + uint32_t end_dma = snrt_mcycle(); + + snrt_cluster_hw_barrier(); + + uint32_t start_loop_inner = snrt_mcycle(); + for (int t_c = 0; t_c < T_c_lin1; t_c++) { + uint32_t start_dma = snrt_mcycle(); + // weights: E x B_c + uint32_t weights_offset = t_c * B_c_lin1; + if (!snrt_is_compute_core()) { + snrt_dma_txid_t txid_weights_q = + snrt_dma_start_2d( + weights_q, /* dst */ + l->weights_q + weights_offset, /* src */ + B_c_lin1 * sizeof(double), /* size */ + B_c_lin1 * sizeof(double), /* dst_stride */ + l->positional_embeddings * sizeof(double), /* src_stride */ + l->embeddings); /* repetitions */ + + snrt_dma_txid_t txid_weights_k = + snrt_dma_start_2d( + weights_k, /* dst */ + l->weights_k + weights_offset, /* src */ + B_c_lin1 * sizeof(double), /* size */ + B_c_lin1 * sizeof(double), /* dst_stride */ + l->positional_embeddings * sizeof(double), /* src_stride */ + l->embeddings); /* repetitions */ + + snrt_dma_txid_t txid_weights_v = + snrt_dma_start_2d( + weights_v, /* dst */ + l->weights_v + weights_offset, /* src */ + B_c_lin1 * sizeof(double), /* size */ + B_c_lin1 * sizeof(double), /* dst_stride */ + l->positional_embeddings * sizeof(double), /* src_stride */ + l->embeddings); /* repetitions */ + + snrt_dma_wait_all(); + + // dump the weights for debugging + // for (int i = 0; i < B_c_lin1 * l->embeddings; i++) { + // dump_debug(weights_q[i]); + // dump_debug(weights_k[i]); + // dump_debug(weights_v[i]); + // } + + } + uint32_t end_dma = snrt_mcycle(); + + snrt_cluster_hw_barrier(); + + if (snrt_is_compute_core()) { + // compute the gemm for the current row block and column block + uint32_t row_offset = (B_r_lin1 / num_cores) * compute_id * embeddings; + // printf("core %d: row_offset = %d\n", compute_id, row_offset); + // ifmap: B_r x E, weights: E x B_c + uint32_t start_gemm = snrt_mcycle(); + gemm_fp64_baseline(B_r_lin1 / num_cores, B_c_lin1, l->embeddings, + &ifmap_lin1[row_offset], l->embeddings, 0, + weights_q, B_c_lin1, 0, + &query[row_offset], B_c_lin1, 0.0f); + gemm_fp64_baseline(B_r_lin1 / num_cores, B_c_lin1, l->embeddings, + &ifmap_lin1[row_offset], l->embeddings, 0, + weights_k, B_c_lin1, 0, + &key[row_offset], B_c_lin1, 0.0f); + gemm_fp64_baseline(B_r_lin1 / num_cores, B_c_lin1, l->embeddings, + &ifmap_lin1[row_offset], l->embeddings, 0, + weights_v, B_c_lin1, 0, + &value[row_offset], B_c_lin1, 0.0f); + uint32_t end_gemm = snrt_mcycle(); + } else { + // snrt_cluster_hw_barrier(); + } + + snrt_cluster_hw_barrier(); + + // write the matrices back to DRAM + uint32_t write_back_offset = t_r * B_r_lin1 * l->positional_embeddings + t_c * B_c_lin1; + uint32_t start_dma_write_back = snrt_mcycle(); + if (!snrt_is_compute_core()) { + snrt_dma_txid_t txid_query = + snrt_dma_start_2d( + l->Q_lin + write_back_offset, /* dst */ + query, /* src */ + B_c_lin1 * sizeof(double), /* size */ + l->positional_embeddings * sizeof(double), /* dst_stride */ + B_c_lin1 * sizeof(double), /* src_stride */ + B_r_lin1 / num_cores); /* repetitions */ + + snrt_dma_txid_t txid_key = + snrt_dma_start_2d( + l->K_lin + write_back_offset, /* dst */ + key, /* src */ + B_c_lin1 * sizeof(double), /* size */ + l->positional_embeddings * sizeof(double), /* dst_stride */ + B_c_lin1 * sizeof(double), /* src_stride */ + B_r_lin1 / num_cores); /* repetitions */ + + snrt_dma_txid_t txid_value = + snrt_dma_start_2d( + l->V_lin + write_back_offset, /* dst */ + value, /* src */ + B_c_lin1 * sizeof(double), /* size */ + l->positional_embeddings * sizeof(double), /* dst_stride */ + B_c_lin1 * sizeof(double), /* src_stride */ + B_r_lin1 / num_cores); /* repetitions */ + + snrt_dma_wait_all(); + } + + uint32_t end_dma_write_back = snrt_mcycle(); + } + uint32_t end_loop_inner = snrt_mcycle(); + + } + uint32_t end_loop_outer = snrt_mcycle(); + + snrt_cluster_hw_barrier(); + + } + + ///////////////////// Layer 3: Flash Attention ///////////////////// + // Input size (S x P) // + // Output size (S x P) // + // S is tiled into Row Blocks of B_r rows // + // S is tiled into Column Blocks of B_c columns // + //////////////////////////////////////////////////////////////////////// + + // TODO: Check if it implemented correctly!!! + if (FLASH_ATTENTION == 1) { + // compute the tiling parameters + uint32_t B_r_fa = l->Br_tile_fa; // number of rows per row block + uint32_t B_c_fa = l->Bc_tile_fa; // number of columns per column block + uint32_t T_r_fa = l->seq_len / B_r_fa; // number of row blocks + uint32_t T_c_fa = l->seq_len / B_c_fa; // number of column blocks + + // dump_index(B_r_fa); + // dump_index(B_c_fa); + // dump_index(T_r_fa); + // dump_index(T_c_fa); + + // compute the size of the matrices + uint32_t q_fa_size = B_r_fa * l->positional_embeddings_fa * sizeof(double); + uint32_t k_fa_size = B_c_fa * l->positional_embeddings_fa * sizeof(double); + uint32_t v_fa_size = B_c_fa * l->positional_embeddings_fa * sizeof(double); + uint32_t s_fa_size = B_r_fa * B_c_fa * sizeof(double); + uint32_t p_fa_size = B_r_fa * B_c_fa * sizeof(double); + uint32_t o_fa_size = B_r_fa * l->positional_embeddings_fa * sizeof(double); + uint32_t m_i_size = B_r_fa * sizeof(double); + uint32_t m_i_prev_size = m_i_size; + uint32_t l_i_size = B_r_fa * sizeof(double); + uint32_t shifted_exp_size = B_r_fa * sizeof(double); + + // allocate memory in TCDM + void *tcdm_ptr = (double *)snrt_l1_next(); + double *Q_fa = tcdm_ptr; + tcdm_ptr += q_fa_size; + double *K_fa = tcdm_ptr; + tcdm_ptr += k_fa_size; + double *V_fa = tcdm_ptr; + tcdm_ptr += v_fa_size; + double *S_fa = tcdm_ptr; + tcdm_ptr += s_fa_size; + double *P_fa = tcdm_ptr; + tcdm_ptr += p_fa_size; + double *O_fa = tcdm_ptr; + tcdm_ptr += o_fa_size; + double *m_i = tcdm_ptr; + tcdm_ptr += m_i_size; + double *m_i_prev = tcdm_ptr; + tcdm_ptr += m_i_prev_size; + double *l_i = tcdm_ptr; + tcdm_ptr += l_i_size; + double shifted_exp; + double row_sum; + + double used_memory_kB = (double)((uint64_t)tcdm_ptr - (uint64_t)snrt_l1_next()) / 1024.0f; + + dump_debug(used_memory_kB); + + uint32_t start_loop_outer = snrt_mcycle(); + for (int t_r = 0; t_r < T_r_fa; t_r++) { + uint32_t start_dma = snrt_mcycle(); + if (!snrt_is_compute_core()) { + uint32_t q_fa_offset = t_r * B_r_fa * l->positional_embeddings_fa; + // printf("q_fa_offset = %d\n", q_fa_offset); + // load the Q tile + snrt_dma_txid_t txid_q_fa = + snrt_dma_start_2d( + Q_fa, /* dst */ + l->Q_fa + q_fa_offset, /* src */ + l->positional_embeddings_fa * sizeof(double), /* size */ + l->positional_embeddings_fa * sizeof(double), /* dst_stride */ + l->positional_embeddings_fa * sizeof(double), /* src_stride */ + B_r_fa); /* repetitions */ + + snrt_dma_wait_all(); + + // // print matrix for debugging + // for (int i = 0; i < B_r_fa * l->positional_embeddings_fa; i++) { + // dump_debug(Q_fa[i]); + // printf("Q_fa[%d] = %f\n", i, Q_fa[i]); + // } + } + uint32_t end_dma = snrt_mcycle(); + + snrt_cluster_hw_barrier(); + + // initialize m_i, m_i_prev, l_i + for (int i = 0; i < B_r_fa / num_cores; i++) { + m_i[i + (B_r_fa / num_cores) * compute_id] = -INFINITY; + m_i_prev[i + (B_r_fa / num_cores) * compute_id] = -INFINITY; + l_i[i + (B_r_fa / num_cores) * compute_id] = 0.0f; + } + + row_sum = 0.0; + + uint32_t start_loop_inner = snrt_mcycle(); + for (int t_c = 0; t_c < T_c_fa; t_c++) { + // K: P x B_c, V: B_c x P + uint32_t k_fa_offset = t_c * B_c_fa * l->positional_embeddings_fa; + uint32_t v_fa_offset = t_c * B_c_fa * l->positional_embeddings_fa; + + uint32_t start_dma = snrt_mcycle(); + if (!snrt_is_compute_core()) { + // load the K tile + snrt_dma_txid_t txid_k_fa = + snrt_dma_start_2d( + K_fa, /* dst */ + l->K_fa + k_fa_offset, /* src */ + B_c_fa * sizeof(double), /* size */ + B_c_fa * sizeof(double), /* dst_stride */ + l->positional_embeddings_fa * sizeof(double), /* src_stride */ + l->positional_embeddings_fa); /* repetitions */ + + // load the V tile + snrt_dma_txid_t txid_v_fa = + snrt_dma_start_2d( + V_fa, /* dst */ + l->V_fa + v_fa_offset, /* src */ + l->positional_embeddings_fa * sizeof(double), /* size */ + l->positional_embeddings_fa * sizeof(double), /* dst_stride */ + l->positional_embeddings_fa * sizeof(double), /* src_stride */ + B_c_fa); /* repetitions */ + + snrt_dma_wait_all(); + } + uint32_t end_dma = snrt_mcycle(); + + snrt_cluster_hw_barrier(); + + // Matrix Multiplication S = Q * K^T + if (snrt_is_compute_core()) { + // compute the gemm for the current row block and column block + uint32_t row_offset = (B_r_fa / num_cores) * compute_id * l->positional_embeddings_fa; + // every core writes to a different row of the S matrix + uint32_t tile_offset = (B_r_fa / num_cores) * compute_id * B_c_fa; + // dump_idx(row_offset); + uint32_t start_gemm = snrt_mcycle(); + gemm_fp64_baseline(B_r_fa / num_cores, B_c_fa, l->positional_embeddings_fa, + &Q_fa[row_offset], l->positional_embeddings_fa, 0, + K_fa, l->positional_embeddings_fa, 1, + &S_fa[tile_offset], B_c_fa, 0.0f); + uint32_t end_gemm = snrt_mcycle(); + + snrt_cluster_hw_barrier(); + + // debug print the S matrix + // for (int i = 0; i < (B_r_fa / num_cores); i++) { + // for (int j = 0; j < B_c_fa; j++) { + // dump_debug(S_fa[i * B_c_fa + j + tile_offset]); + // } + // } + + // next we determine the maximum value of each row + uint32_t offset = (B_r_fa / num_cores) * compute_id; + uint32_t o_offset = (B_r_fa / num_cores) * compute_id * l->positional_embeddings_fa; + uint32_t start_stats = snrt_mcycle(); + for (int k = 0; k < B_r_fa / num_cores; k++) { + m_i_prev[k + offset] = m_i[k + offset]; + + // dump_idx(k * B_c_fa + tile_offset); + + for (int j = 0; j < B_c_fa; j++) { + + // dump_idx(k * B_c_fa + j + tile_offset); + // dump_debug(S_fa[k * B_c_fa + j + tile_offset]); + // printf("S_fa[%d] = %f\n", k * B_c_fa + j + tile_offset, S_fa[k * B_c_fa + j + tile_offset]); + + if(S_fa[tile_offset + k * B_c_fa + j] > m_i[k + offset]) { + m_i[k + offset] = S_fa[tile_offset + k * B_c_fa + j]; + } + // dump_debug(m_i[k + offset]); + + // determine the P matrix + P_fa[tile_offset + k * B_c_fa + j] = expf(S_fa[tile_offset + k * B_c_fa + j] - m_i[k + offset]); + // printf("P_fa[%d] = expf(%f - %f) = %f\n", tile_offset + k * B_c_fa + j, S_fa[tile_offset + k * B_c_fa + j], m_i[k + offset], P_fa[tile_offset + k * B_c_fa + j]); + // printf("P_fa[%d] = %f\n", tile_offset + k * B_c_fa + j, P_fa[tile_offset + k * B_c_fa + j]); + // dump_debug(P_fa[k * B_c_fa + j]); + row_sum += P_fa[tile_offset + k * B_c_fa + j]; + } + + // dump_debug(row_sum); + + shifted_exp = expf(m_i[k + offset] - m_i_prev[k + offset]); + // printf("shifted_exp = expf(%f - %f) = %f\n", m_i[k + offset], m_i_prev[k + offset], shifted_exp); + + // printf("BEFORE: l_i[%d] = %f\n", k + offset, l_i[k + offset]); + if (t_c == 0) { + l_i[k + offset] = row_sum; + } else { + l_i[k + offset] = l_i[k + offset] * shifted_exp + row_sum; + } + // printf("AFTER: l_i[%d] = %f\n", k + offset, l_i[k + offset]); + // dump_debug(l_i[k + offset]); + + row_sum = 0.0; + + // O_ij = diag(shifted_exp)^(-1) O_i(j-1) + P_ij * V_j + if (t_c == 0) { + gemm_fp64_baseline(1, B_c_fa, l->positional_embeddings_fa, + &P_fa[tile_offset + k * B_c_fa], B_c_fa, 0, + V_fa, l->positional_embeddings_fa, 0, + &O_fa[o_offset + k * l->positional_embeddings_fa], l->positional_embeddings_fa, 0.0f); + } else { + gemm_fp64_baseline(1, B_c_fa, l->positional_embeddings_fa, + &P_fa[tile_offset + k * B_c_fa], B_c_fa, 0, + V_fa, l->positional_embeddings_fa, 0, + &O_fa[o_offset + k * l->positional_embeddings_fa], l->positional_embeddings_fa, shifted_exp); + } + + } // end of B_r loop + uint32_t end_stats = snrt_mcycle(); + + } else { + snrt_cluster_hw_barrier(); + } + } // end of T_c loop + + snrt_cluster_hw_barrier(); + + // O_i = diag(l_i_Tc) ^-1 * O_i + for (int i = 0; i < B_r_fa / num_cores; i++) { + for (int j = 0; j < l->positional_embeddings_fa; j++) { + O_fa[i * l->positional_embeddings_fa + j + (B_r_fa / num_cores) * compute_id * l->positional_embeddings_fa] + /= l_i[i + (B_r_fa / num_cores) * compute_id]; + } + } + + // write back O_fa as the i-th block of the output matrix + uint32_t start_dma_write_back = snrt_mcycle(); + if (!snrt_is_compute_core()) { + uint32_t o_fa_offset = t_r * B_r_fa * l->positional_embeddings_fa; + // printf("o_fa_offset = %d\n", o_fa_offset); + snrt_dma_txid_t txid_o_fa = + snrt_dma_start_2d( + l->O + o_fa_offset, /* dst */ + O_fa, /* src */ + l->positional_embeddings_fa * sizeof(double), /* size */ + l->positional_embeddings_fa * sizeof(double), /* dst_stride */ + l->positional_embeddings_fa * sizeof(double), /* src_stride */ + B_r_fa); /* repetitions */ + + snrt_dma_wait_all(); + } + uint32_t end_dma_write_back = snrt_mcycle(); + + } // end of T_r loop + uint32_t end_loop_outer = snrt_mcycle(); + + snrt_cluster_hw_barrier(); + } + + snrt_global_barrier(); + + ///////////////////// Layer 4: Concatenation ///////////////////// + // Input size (S x (H x P)) // + // Weights size ((H x P) x E) // + // Output size (S x E) // + // S is tiled into Row Blocks of B_r rows // + ////////////////////////////////////////////////////////////////// + + if (CONCAT == 1) { + uint32_t cluster_id = snrt_cluster_idx(); + uint32_t core_id = snrt_cluster_core_idx(); + uint32_t num_clusters = snrt_cluster_num(); + uint32_t compute_id = snrt_global_core_idx(); + uint32_t cluster_core_id = snrt_cluster_core_idx(); + uint32_t num_cores = snrt_cluster_compute_core_num(); + uint32_t num_heads = l->heads; + + // INFO: we can only compute on as many heads as we have clusters + if (num_heads > num_clusters) { + num_heads = num_clusters; + } + + // compute the tiling parameters + uint32_t B_r_lin2 = l->Br_tile_lin2; // number of rows per row block + uint32_t B_c_lin2 = l->Bc_tile_lin2; // number of columns per column block + uint32_t T_r_lin2 = l->seq_len / B_r_lin2; // number of row blocks + uint32_t T_c_lin2 = l->embeddings_lin2 / B_c_lin2; // number of column blocks + + // dump_idx(cluster_id); + + // if (core_id == 0 && cluster_id == 0) { + // dump_idx(B_r_lin2); + // dump_idx(B_c_lin2); + // dump_idx(T_r_lin2); + // dump_idx(T_c_lin2); + // } + + // every cluster computes on a different head + // and afterward we add the partial results together + + // compute the size of the matrices + uint32_t ifmap_tcdm_lin2 = B_r_lin2 * l->positional_embeddings * sizeof(double); + uint32_t weights_tcdm_lin2 = l->positional_embeddings * B_c_lin2 * sizeof(double); + uint32_t ofmap_tcdm_lin2 = B_r_lin2 * B_c_lin2 * sizeof(double); + // we use below variable for summing up the partial results + uint32_t cluster_ofmap_tcdm_lin2 = ofmap_tcdm_lin2; + + // here we define the matrices that will be stored back in DRAM + uint32_t O_lin2_size = l->seq_len * l->embeddings_lin2 * sizeof(double); + + // allocate memory in TCDM + void *tcdm_ptr = (double *)snrt_l1_next(); + double *ifmap_lin2 = tcdm_ptr; + tcdm_ptr += ifmap_tcdm_lin2; + double *weights_lin2 = tcdm_ptr; + tcdm_ptr += weights_tcdm_lin2; + double *ofmap_lin2 = tcdm_ptr; + tcdm_ptr += ofmap_tcdm_lin2; + double *cluster_ofmap_lin2 = tcdm_ptr; + tcdm_ptr += cluster_ofmap_tcdm_lin2; + + // double used_memory_kB = (double)((uint64_t)tcdm_ptr - (uint64_t)snrt_l1_next()) / 1024.0f; + // dump_debug(used_memory_kB); + + // determine the column offset of the ifmap for the current cluster + uint32_t cluster_ifmap_offset = cluster_id * l->seq_len * l->positional_embeddings_fa; + // if (core_id == 0) { + // dump_idx(cluster_id); + // dump_idx(cluster_ifmap_offset); + // } + // determine the column offset of the weights for the current cluster + uint32_t cluster_weights_offset = cluster_id * l->positional_embeddings_fa * l->embeddings_lin2; + + uint32_t start_loop_outer = snrt_mcycle(); + for (int t_r = 0; t_r < T_r_lin2; t_r++) { + uint32_t start_dma = snrt_mcycle(); + if (!snrt_is_compute_core()) { + uint32_t ifmap_offset = t_r * B_r_lin2 * l->positional_embeddings_fa + cluster_ifmap_offset; + // if (core_id == 0) { + // dump_idx(cluster_id); + // dump_idx(ifmap_offset); + // } + // load the ifmap tile + snrt_dma_txid_t txid_ifmap = + snrt_dma_start_2d( + ifmap_lin2, /* dst */ + l->ifmap_lin2 + ifmap_offset, /* src */ + l->positional_embeddings_fa * sizeof(double), /* size */ + l->positional_embeddings_fa * sizeof(double), /* dst_stride */ + l->positional_embeddings_fa * sizeof(double), /* src_stride */ + B_r_lin2); /* repetitions */ + + snrt_dma_wait_all(); + + // for (int i = 0; i < B_r_lin2 * l->positional_embeddings_fa; i++) { + // dump_idx(i + ifmap_offset); + // dump_debug(ifmap_lin2[i]); + // // printf("ifmap[%d] = %f\n", i + ifmap_offset, ifmap_lin2[i]); + // } + + } + uint32_t end_dma = snrt_mcycle(); + + snrt_cluster_hw_barrier(); + + uint32_t start_loop_inner = snrt_mcycle(); + for (int t_c = 0; t_c < T_c_lin2; t_c++) { + // weights: P x B_c + uint32_t weights_offset = t_c * B_c_lin2 * l->positional_embeddings_fa + cluster_weights_offset; + uint32_t start_dma = snrt_mcycle(); + if (!snrt_is_compute_core()) { + // load the weights tile + snrt_dma_txid_t txid_weights = + snrt_dma_start_2d( + weights_lin2, /* dst */ + l->weights_lin2 + weights_offset, /* src */ + B_c_lin2 * sizeof(double), /* size */ + B_c_lin2 * sizeof(double), /* dst_stride */ + l->positional_embeddings_fa * sizeof(double), /* src_stride */ + l->positional_embeddings_fa); /* repetitions */ + + snrt_dma_wait_all(); + + // for (int i = 0; i < B_c_lin2 * l->positional_embeddings_fa; i++) { + // dump_idx(i + weights_offset); + // dump_debug(weights_lin2[i]); + // // printf("weights[%d] = %f\n", i + weights_offset, weights_lin2[i]); + // } + } + uint32_t end_dma = snrt_mcycle(); + + snrt_cluster_hw_barrier(); + + if (snrt_is_compute_core()) { + // compute the gemm for the current row block and column block + uint32_t row_offset = (B_r_lin2 / num_cores) * cluster_core_id * l->positional_embeddings_fa; + // dump_id(cluster_core_id); + // dump_ct(row_offset); + uint32_t ofmap_offset = (B_r_lin2 / num_cores) * cluster_core_id * B_c_lin2; + uint32_t start_gemm = snrt_mcycle(); + gemm_fp64_baseline(B_r_lin2 / num_cores, B_c_lin2, l->positional_embeddings_fa, + &ifmap_lin2[row_offset], l->positional_embeddings_fa, 0, + weights_lin2, l->positional_embeddings_fa, 0, + &ofmap_lin2[ofmap_offset], B_c_lin2, 0.0f); + uint32_t end_gemm = snrt_mcycle(); + + snrt_cluster_hw_barrier(); + + // for (int i = 0; i < B_r_lin2 / num_cores; i++) { + // for (int j = 0; j < B_c_lin2; j++) { + // dump_idx(i * B_c_lin2 + j + ofmap_offset); + // dump_debug(ofmap_lin2[i * B_c_lin2 + j + ofmap_offset]); + // } + // } + } else { + snrt_cluster_hw_barrier(); + } + } // end of T_c loop + uint32_t end_loop_inner = snrt_mcycle(); + + snrt_cluster_hw_barrier(); + // now we will add the partial results together + // in a logarithmic reduction fashion + uint32_t cl_offset = 0x40000; + uint32_t is_active = 0; + uint32_t is_sender = 0; + // num_levels: number of levels in the reduction tree + int num_levels = ceil(log2(num_clusters)); + uint32_t start_reduction = snrt_mcycle(); + for (int level = 0; level < num_levels; level++) { + // determine whether the current cluster is an active cluster + // an active cluster is a cluster that is part of the reduction tree + is_active = (cluster_id % (1 << level)) == 0; + if (is_active == 1) { + // check if the current cluster is a sender or a receiver + if (cluster_id == 0) { + is_sender = 0; + } else { + is_sender = (cluster_id % (1 << (level + 1))) != 0; + } + + // if the cluster is a sender we perform a DMA transfer + if (is_sender == 1) { + // determine the destination address + double *data_dst = cluster_ofmap_lin2 - (1 << level) * cl_offset; + if (!snrt_is_compute_core()) { + for (int i = 0; i < B_r_lin2 * B_c_lin2; i++) { + dump_debug(ofmap_lin2[i]); + } + // printf("cluster_id = %d, level = %d, data_src = %d, data_dst = %d\n", cluster_id, level, data_src, data_dst); + snrt_dma_txid_t txid = + snrt_dma_start_1d( + data_dst, /* dst */ + ofmap_lin2, /* src */ + ofmap_tcdm_lin2 * sizeof(double)); /* size */ + + snrt_dma_wait_all(); + + // for (int i = 0; i < B_r_lin2 * B_c_lin2; i++) { + // dump_debug(data_dst[i]); + // } + } + } + + snrt_cluster_hw_barrier(); + + // active clusters that are not a sender perform the addition of the partial tiles + // if (is_active == 1 && is_sender == 0) { + // // perform the addition + // uint32_t row_offset = core_id * (B_r_lin2 / num_cores) * B_c_lin2; + // for (int row = 0; row < B_r_lin2 / num_cores; row++) { + // for (int col = 0; col < B_c_lin2; col++) { + // ofmap_lin2[row_offset + row * B_c_lin2 + col] += cluster_ofmap_lin2[row_offset + row * B_c_lin2 + col]; + // } + // } + // } + + // snrt_cluster_hw_barrier(); + + } + + } + uint32_t end_reduction = snrt_mcycle(); + + // write back O_lin2 as the i-th block of the output matrix + uint32_t start_dma_write_back = snrt_mcycle(); + if (!snrt_is_compute_core()) { + uint32_t o_lin2_offset = t_r * B_r_lin2 * l->embeddings_lin2; + // printf("o_lin2_offset = %d\n", o_lin2_offset); + snrt_dma_txid_t txid_o_lin2 = + snrt_dma_start_2d( + l->O_lin2 + o_lin2_offset, /* dst */ + ofmap_lin2, /* src */ + l->embeddings_lin2 * sizeof(double), /* size */ + l->embeddings_lin2 * sizeof(double), /* dst_stride */ + B_c_lin2 * sizeof(double), /* src_stride */ + B_r_lin2); /* repetitions */ + + snrt_dma_wait_all(); + } + uint32_t end_dma_write_back = snrt_mcycle(); + } // end of T_r loop + uint32_t end_loop_outer = snrt_mcycle(); + snrt_cluster_hw_barrier(); + } // end of CONCAT +} + +/** + * @brief Transformer layer + * + * @param l transformer_layer struct that holds addresses and parameters in FP32 + * + */ +static inline void transformer_layer_fp32(transformer_layer_fp32_t *const l) { + uint32_t compute_id = snrt_global_core_idx(); + uint32_t num_cores = snrt_cluster_compute_core_num(); +} \ No newline at end of file diff --git a/sw/blas/gemm/src/gemm.h b/sw/blas/gemm/src/gemm.h index b64e33a52f..baab570478 100644 --- a/sw/blas/gemm/src/gemm.h +++ b/sw/blas/gemm/src/gemm.h @@ -21,8 +21,8 @@ typedef __fp16 v4f16 __attribute__((vector_size(8))); typedef char v8f8 __attribute__((vector_size(8))); #endif -dump_float(query, 11); // = 0xb -dump_uint(index, 9); // 14 = 0xe +dump_float(gemm, 8); +dump_uint(index, 9); void gemm_fp64_baseline(uint32_t M, uint32_t N, uint32_t K, double* A, @@ -31,8 +31,10 @@ void gemm_fp64_baseline(uint32_t M, uint32_t N, uint32_t K, double* A, if (!ta && !tb) { for (uint32_t m = 0; m < M; m++) { for (uint32_t n = 0; n < N; n++) { - register double c0 = BETA * C[m * ldC + n]; + double c0 = BETA * C[m * ldC + n]; for (uint32_t k = 0; k < K; k++) { + // dump_index(k + m * ldA); + // dump_gemm(A[k + m * ldA]); c0 += A[k + m * ldA] * B[k * ldB + n]; } C[m * ldC + n] = c0; diff --git a/sw/dnn/src/layernorm.h b/sw/dnn/src/layernorm.h index 24e6e2b23b..b875303146 100644 --- a/sw/dnn/src/layernorm.h +++ b/sw/dnn/src/layernorm.h @@ -9,6 +9,9 @@ // #include "printf.h" #include "utils.h" +// add dump function for layernorm +dump_float(ln, 5); + /** * @struct layernorm_layer_struct * @brief This structure contains all parameters necessary @@ -87,6 +90,97 @@ static inline void layernorm_fp32(float *input, float *output, int32_t ldI, snrt_cluster_hw_barrier(); } +/** + * Implementation of the LayerNorm layer for the Transformer model for FP64. + */ +static inline void transformer_layernorm_fp64(double *input, int32_t ldI, + int32_t seq_len, int32_t embeddings, + int32_t eps) { + double mean = 0.0; // max value of the current core + double var = 0.0; // sum of the exp values of the current core + + uint32_t compute_id = snrt_global_core_idx(); + uint32_t num_cores = snrt_cluster_compute_core_num(); + + for (int32_t s = 0; s < seq_len; s++) { + mean = 0.0; + var = 0.0; + + for (int32_t i = 0; i < embeddings; i++) { + mean += input[s * ldI + i]; + } + mean /= embeddings; + + // printf("mean[%d] = %f\n", b, mean); + + for (int32_t i = 0; i < embeddings; i++) { + var += (input[s * ldI + i] - mean) * + (input[s * ldI + i] - mean); + } + var /= embeddings; + + // printf("var[%d] = %f\n", b, var); + + // compute the shifted value of the current row + for (int32_t i = 0; i < embeddings; i++) { + input[s * ldI + i] = + (input[s * ldI + i] - mean) / + sqrtf(var + eps); + // printf("output[%d][%d][%d] = %f\n", b, s + compute_id, i, + // output[s * ldI + i]); + // dump_ln(input[s * ldI + i]); + } + } + + snrt_cluster_hw_barrier(); +} + + +/** + * Implementation of the LayerNorm layer for the Transformer model for FP32. + */ +static inline void transformer_layernorm_fp32(float *input, int32_t ldI, + int32_t seq_len, int32_t embeddings, + int32_t eps) { + float mean = 0.0; // max value of the current core + float var = 0.0; // sum of the exp values of the current core + + uint32_t compute_id = snrt_global_core_idx(); + uint32_t num_cores = snrt_cluster_compute_core_num(); + + for (int32_t s = 0; s < seq_len; s++) { + mean = 0.0; + var = 0.0; + + for (int32_t i = 0; i < embeddings; i++) { + mean += input[s * ldI + i]; + } + mean /= embeddings; + + // printf("mean[%d] = %f\n", b, mean); + + for (int32_t i = 0; i < embeddings; i++) { + var += (input[s * ldI + i] - mean) * + (input[s * ldI + i] - mean); + } + var /= embeddings; + + // printf("var[%d] = %f\n", b, var); + + // compute the shifted value of the current row + for (int32_t i = 0; i < embeddings; i++) { + input[s * ldI + i] = + (input[s * ldI + i] - mean) / + sqrtf(var + eps); + // printf("output[%d][%d][%d] = %f\n", b, s + compute_id, i, + // output[s * ldI + i]); + // dump_ln(input[s * ldI + i]); + } + } + + snrt_cluster_hw_barrier(); +} + /** * @brief layernorm layer * diff --git a/target/snitch_cluster/sw/apps/Makefile b/target/snitch_cluster/sw/apps/Makefile index d86145c858..0410fb1cb4 100644 --- a/target/snitch_cluster/sw/apps/Makefile +++ b/target/snitch_cluster/sw/apps/Makefile @@ -6,6 +6,7 @@ SUBDIRS = lto SUBDIRS += nop +SUBDIRS += transformer SUBDIRS += blas/axpy SUBDIRS += blas/gemm SUBDIRS += dnn/batchnorm diff --git a/target/snitch_cluster/sw/apps/dnn/datagen.py b/target/snitch_cluster/sw/apps/dnn/datagen.py index 67980e7a1a..4c8fb34de7 100755 --- a/target/snitch_cluster/sw/apps/dnn/datagen.py +++ b/target/snitch_cluster/sw/apps/dnn/datagen.py @@ -3,8 +3,8 @@ # Licensed under the Apache License, Version 2.0, see LICENSE for details. # SPDX-License-Identifier: Apache-2.0 -# Author: Tim Fischer -# Author: Viviane Potocnik +# Authors: Tim Fischer +# Viviane Potocnik import numpy as np import torch @@ -63,10 +63,97 @@ def emit_header_file(file, layer_type: str, **kwargs): emit_str += emit_softmax_layer(**kwargs) elif layer_type == 'LayerNorm': emit_str += emit_layernorm_layer(**kwargs) + elif layer_type == 'Transformer': + emit_str += emit_transformer_layer(**kwargs) with file.open('w') as f: f.write(emit_str) +def emit_transformer_layer(name='transformer', **kwargs): + + ifmap = kwargs['ifmap'] + ifmap_ln = kwargs['ifmap_ln'] + ifmap_lin2 = kwargs['ifmap_lin2'] + # retrieve tiling parameters + S_tile_ln = kwargs['S_tile_ln'] + S_tile_lin1 = kwargs['S_tile_lin1'] + P_tile_lin1 = kwargs['P_tile_lin1'] + Br_tile_fa = kwargs['Br_tile_fa'] + Bc_tile_fa = kwargs['Bc_tile_fa'] + Br_tile_lin2 = kwargs['Br_tile_lin2'] + Bc_tile_lin2 = kwargs['Bc_tile_lin2'] + positional_embeddings_fa = kwargs['positional_embeddings_fa'] + q_fa = kwargs['q_fa'] + k_fa = kwargs['k_fa'] + v_fa = kwargs['v_fa'] + weights_q = kwargs['weights_q'] + weights_k = kwargs['weights_k'] + weights_v = kwargs['weights_v'] + weights_lin2 = kwargs['weights_lin2'] + + # Get the dimensions: sequence length S, + # embedding size E, and position embedding size P + S, E = ifmap.shape + _, P = weights_q.shape + _, P_fa = q_fa.shape + H, _, P_lin2 = ifmap_lin2.shape + _, _, E_lin2 = weights_lin2.shape + + + ctypes = { + '64': 'double', + '32': 'float', + '16': '__fp16', + '8': 'char' + } + + dtype = ctypes[str(kwargs['prec'])] + + # layer_str = '#include \n' + layer_str = '' + layer_str += '#include "transformer.h"\n\n' + layer_str += f'transformer_layer_fp{kwargs["prec"]}_t {name}_l = {{\n' + layer_str += f'\t.seq_len = {S},\n' + layer_str += f'\t.S_tile_ln = {S_tile_ln},\n' + layer_str += f'\t.S_tile_lin1 = {S_tile_lin1},\n' + layer_str += f'\t.P_tile_lin1 = {P_tile_lin1},\n' + layer_str += f'\t.Br_tile_fa = {Br_tile_fa},\n' + layer_str += f'\t.Bc_tile_fa = {Bc_tile_fa},\n' + layer_str += f'\t.Br_tile_lin2 = {Br_tile_lin2},\n' + layer_str += f'\t.Bc_tile_lin2 = {Bc_tile_lin2},\n' + layer_str += f'\t.embeddings = {E},\n' + layer_str += f'\t.embeddings_lin2 = {E_lin2},\n' + layer_str += f'\t.positional_embeddings = {P},\n' + layer_str += f'\t.positional_embeddings_fa = {positional_embeddings_fa},\n' + layer_str += f'\t.feedforward_len = {kwargs["feedforward_len"]},\n' + layer_str += f'\t.heads = {H},\n' + layer_str += f'\t.eps = {kwargs["eps"]},\n' + layer_str += f'\t.dtype = FP{kwargs["prec"]},\n' + layer_str += '};\n\n\n' + + # Declare the DRAM arrays + layer_str += f'static {dtype} {name}_Q_lin_dram[{S}][{E}] __attribute__((section(".data")));\n\n' + layer_str += f'static {dtype} {name}_K_lin_dram[{S}][{E}] __attribute__((section(".data")));\n\n' + layer_str += f'static {dtype} {name}_V_lin_dram[{S}][{E}] __attribute__((section(".data")));\n\n' + layer_str += f'static {dtype} {name}_O_dram[{S}][{P}] __attribute__((section(".data")));\n\n' + layer_str += f'static {dtype} {name}_O_lin2_dram[{S}][{E_lin2}] __attribute__((section(".data")));\n\n' + layer_str += f'static {dtype} {name}_ifmap_dram[{S}][{E}] = ' + array_to_cstr(ifmap) + ';\n\n' + layer_str += f'static {dtype} {name}_ifmap_ln_dram[{S}][{E}] = ' + array_to_cstr(ifmap_ln) + ';\n\n' + layer_str += f'static {dtype} {name}_ifmap_lin2_dram[{H}][{S}][{P_lin2}] = ' + array_to_cstr(ifmap_lin2) + ';\n\n' + # layer_str += f'static {dtype} {name}_ofmap_dram[{S}][{HP}] = ' + array_to_cstr(ofmap) + ';\n\n' + layer_str += f'static {dtype} {name}_weights_q_dram[{E}][{P}] = ' + array_to_cstr(weights_q) + ';\n\n' + layer_str += f'static {dtype} {name}_weights_k_dram[{E}][{P}] = ' + array_to_cstr(weights_k) + ';\n\n' + layer_str += f'static {dtype} {name}_weights_v_dram[{E}][{P}] = ' + array_to_cstr(weights_v) + ';\n\n' + layer_str += f'static {dtype} {name}_weights_lin2_dram[{H}][{P_lin2}][{E_lin2}] = ' + array_to_cstr(weights_lin2) + ';\n\n' + layer_str += f'static {dtype} {name}_q_fa_dram[{S}][{P_fa}] = ' + array_to_cstr(q_fa) + ';\n\n' + layer_str += f'static {dtype} {name}_k_fa_dram[{P_fa}][{S}] = ' + array_to_cstr(k_fa) + ';\n\n' + layer_str += f'static {dtype} {name}_v_fa_dram[{S}][{P_fa}] = ' + array_to_cstr(v_fa) + ';\n\n' + # layer_str += f'static {dtype} {name}_weights_o_dram[{HP}][{E}] = ' + array_to_cstr(weights_o) + ';\n\n' + # layer_str += f'static {dtype} {name}_query_dram[{S}][{P}] = ' + array_to_cstr(query) + ';\n\n' + # layer_str += f'static {dtype} {name}_key_dram[{S}][{P}] = ' + array_to_cstr(key) + ';\n\n' + # layer_str += f'static {dtype} {name}_value_dram[{S}][{P}] = ' + array_to_cstr(value) + ';\n\n' + + return layer_str def emit_layernorm_layer(name='layernorm', **kwargs): ifmap = kwargs['ifmap'] @@ -618,6 +705,16 @@ def layernorm(ifmap, eps, shape): return ofmap +def transformer(ifmap, weights, bias, eps, shape, use_bias): + # ln = torch.nn.LayerNorm(shape, eps=eps) + # ofmap = ln(ifmap) + if use_bias: + ofmap = torch.matmul(ifmap, weights.T) + bias + else: + ofmap = torch.matmul(ifmap, weights.T) + + return ofmap + def main(): @@ -855,6 +952,246 @@ def main(): emit_header_file(args.output, 'LayerNorm', **kwargs) + elif param['kernel'] == 'Transformer': + seq_len = param['input_dim']['seq_len'] + heads = param['input_dim']['heads'] + embeddings = param['input_dim']['embeddings'] + positional_embeddings = param['input_dim']['positional_embeddings'] + feedforward_len = param['input_dim']['feedforward_len'] + + # check if we want to run a brief test + brief = param['brief'] + num_iters = param['num_iters'] + print("Brief test: ", brief) + print("Number of iterations: ", num_iters) + + # tcdm capacity in bytes + tcdm_size = 125 * 1024 + # data type size in bytes + data_type_size = torch.tensor(1, dtype=dtype).element_size() + print("Data type size: ", data_type_size) + # initialize the best solution parameters + best_dram_accessed_data = float('inf') + dram_accessed_data_list = [] + best_tcdm_storage = 0 + best_s_tile_ln = 0 + for S_tile in range(8, seq_len, 8): + dram_accessed_data = 2 * (seq_len // S_tile) * embeddings * data_type_size + tcdm_storage = (S_tile) * embeddings * data_type_size + if tcdm_storage <= tcdm_size: + if tcdm_storage > best_tcdm_storage or dram_accessed_data < best_dram_accessed_data: + best_dram_accessed_data = dram_accessed_data + best_tcdm_storage = tcdm_storage + best_s_tile_ln = S_tile + + print("LayerNorm Best S_tile: ", best_s_tile_ln) + if(brief == True): + seq_len = num_iters * best_s_tile_ln + embeddings = embeddings // 70 + + print("LayerNorm Sequence length: ", seq_len) + + # Layer 1: LayerNorm layer + ifmap = torch.randn(seq_len, embeddings, + requires_grad=False, dtype=dtype) + + eps = param['eps'] + + m = nn.LayerNorm(ifmap.size()[1:]) + + # TODO: due to a bug in PyTorch, we need to cast the input to float32 or BFloat16 + ifmap = ifmap.type(torch.float32) + + ifmap_ln = m(ifmap) + + # cast back to the original data type + ifmap_ln = ifmap_ln.to(dtype).detach() + ifmap = ifmap.to(dtype) + + # Layer 2: Linear layer 1 + # TODO: check whether we go for min DRAM accesses or min DRAM accessed data + # we reset the best solution parameters + seq_len = param['input_dim']['seq_len'] + embeddings = param['input_dim']['embeddings'] + best_dram_accessed_data = float('inf') + best_dram_accesses = float('inf') + best_tcdm_storage = 0 + best_s_tile_lin1 = 0 + best_p_tile_lin1 = 0 + + for S_tile in range(8, seq_len, 8): + for P_tile in range(1, positional_embeddings, 1): + dram_accessed_data = ((seq_len // S_tile) * (S_tile * embeddings) + \ + (seq_len // S_tile) * 3 * (positional_embeddings // P_tile) * embeddings * P_tile \ + + (seq_len // S_tile) * (positional_embeddings // P_tile) * S_tile * P_tile) * data_type_size + dram_accesses = (seq_len // S_tile) + (seq_len // S_tile) * 2 * 3 * (positional_embeddings // P_tile) + tcdm_storage = (S_tile * embeddings + 3 * embeddings * P_tile + 3 * S_tile * P_tile) * data_type_size + if tcdm_storage <= tcdm_size: + if tcdm_storage > best_tcdm_storage or dram_accesses < best_dram_accesses:#or dram_accessed_data < best_dram_accessed_data: + best_dram_accessed_data = dram_accessed_data + best_dram_accesses = dram_accesses + best_tcdm_storage = tcdm_storage + best_s_tile_lin1 = S_tile + best_p_tile_lin1 = P_tile + + print("Layer 1 Best S_tile: ", best_s_tile_lin1) + print("Layer 1 Best P_tile: ", best_p_tile_lin1) + if(brief == True): + seq_len = num_iters * best_s_tile_lin1 + positional_embeddings = num_iters * best_p_tile_lin1 + embeddings = embeddings // 70 + + print("Layer 1 Sequence length: ", seq_len) + print("Layer 1 Positional embeddings: ", positional_embeddings) + print("Layer 1 Embeddings: ", embeddings) + + weights_q = torch.randn(embeddings, positional_embeddings, + requires_grad=False, dtype=dtype) + weights_k = torch.randn(embeddings, positional_embeddings, + requires_grad=False, dtype=dtype) + weights_v = torch.randn(embeddings, positional_embeddings, + requires_grad=False, dtype=dtype) + + # Layer 3: FlashAttention-2 layer + # TODO: check whether we go for min DRAM accesses or min DRAM accessed data + + # we reset the best solution parameters + # TODO: For the full model, we must also reset the sequence length + seq_len = param['input_dim']['seq_len'] + embeddings = param['input_dim']['embeddings'] + positional_embeddings = param['input_dim']['positional_embeddings'] + best_dram_accessed_data = float('inf') + best_dram_accesses = float('inf') + best_tcdm_storage = 0 + best_br_tile_fa = 0 + best_bc_tile_fa = 0 + + for B_r in range(8, seq_len, 8): + for B_c in range(2, seq_len, 2): + dram_accesses = (seq_len // B_r) + (seq_len // B_r) * 2 * (seq_len // B_c) + (seq_len // B_r) + dram_accessed_data = ((seq_len // B_r) * (B_r * positional_embeddings) + (seq_len // B_r) * 2 * (seq_len // B_c) * (B_c * positional_embeddings) + (seq_len // B_r) * (B_r * B_c)) * data_type_size + tcdm_storage = (B_r * positional_embeddings + 2 * positional_embeddings * B_c + 4 * B_r + 2 * B_r * B_c ) * data_type_size + if tcdm_storage <= tcdm_size: + if tcdm_storage > best_tcdm_storage or dram_accesses < best_dram_accesses: + best_dram_accessed_data = dram_accessed_data + best_dram_accesses = dram_accesses + best_tcdm_storage = tcdm_storage + best_br_tile_fa = B_r + best_bc_tile_fa = B_c + + print("FlashAttention Layer 2 Best B_r: ", best_br_tile_fa) + print("FlashAttention Layer 2 Best B_c: ", best_bc_tile_fa) + if(brief == True): + # seq_len = num_iters * best_br_tile_fa + seq_len = num_iters * best_s_tile_ln + positional_embeddings_fa = positional_embeddings // 10 + embeddings = embeddings // 70 + best_br_tile_fa = best_br_tile_fa // 10 * num_iters + best_bc_tile_fa = best_bc_tile_fa // 10 * num_iters + + print("FlashAttention Layer 2 Sequence length brief: ", seq_len) + print("FlashAttention Layer 2 Positional embeddings brief: ", positional_embeddings_fa) + print("FlashAttention Layer 2 Embeddings brief: ", embeddings) + print("FlashAttention Layer 2 Best B_r brief: ", best_br_tile_fa) + print("FlashAttention Layer 2 Best B_c brief: ", best_bc_tile_fa) + + # positional_embeddings_fa = positional_embeddings + + q_fa = torch.rand(seq_len, positional_embeddings_fa, + requires_grad=False, dtype=dtype) + k_fa = torch.rand(positional_embeddings_fa, seq_len, + requires_grad=False, dtype=dtype) + v_fa = torch.rand(seq_len, positional_embeddings_fa, + requires_grad=False, dtype=dtype) + + # Layer 4: Linear layer 2 + # Every cluster computes one head + seq_len = param['input_dim']['seq_len'] + embeddings = param['input_dim']['embeddings'] + positional_embeddings = param['input_dim']['positional_embeddings'] + best_dram_accessed_data = float('inf') + best_dram_accesses = float('inf') + best_tcdm_storage = 0 + best_br_tile_lin2 = 0 + best_bc_tile_lin2 = 0 + + for B_r in range(8, seq_len, 8): + for B_c in range(2, embeddings, 2): + dram_accesses = (seq_len // B_r) + (seq_len // B_r) * (embeddings // B_c) + (seq_len // B_r) * (embeddings // B_c) + dram_accessed_data = ((seq_len // B_r) * (B_r * positional_embeddings) \ + + (seq_len // B_r) * (embeddings // B_c) * (B_c * positional_embeddings) \ + + (seq_len // B_r) * (embeddings // B_c) * (B_c * B_r)) * data_type_size + + # TCDM storage: Input (B_r x P) + Weights (P * B_c) + 2 * Output (B_r * B_c) + # we store the output twice to use it for cluster2cluster communication + tcdm_storage = (B_r * positional_embeddings + \ + positional_embeddings * B_c + \ + 2 * B_c * B_r) * data_type_size + + + if tcdm_storage <= tcdm_size: + if tcdm_storage > best_tcdm_storage or dram_accesses < best_dram_accesses: + best_dram_accessed_data = dram_accessed_data + best_dram_accesses = dram_accesses + best_tcdm_storage = tcdm_storage + best_br_tile_lin2 = B_r + best_bc_tile_lin2 = B_c + + # check which is the closest divisor of embeddings for B_c + embeddings_divisors = [] + for i in range(1, embeddings + 1): + if embeddings % i == 0: + embeddings_divisors.append(i) + best_bc_tile_lin2 = min(embeddings_divisors, key=lambda x:abs(x-best_bc_tile_lin2)) + + if(brief == True): + seq_len = num_iters * best_s_tile_ln + best_br_tile_lin2 = best_s_tile_ln + embeddings = best_bc_tile_lin2 * num_iters + positional_embeddings = positional_embeddings // 10 + + print("Layer 2 Sequence length brief: ", seq_len) + print("Layer 2 Positional embeddings brief: ", positional_embeddings) + print("Layer 2 Embeddings brief: ", embeddings) + + print("Layer 2 Best B_r: ", best_br_tile_lin2) + print("Layer 2 Best B_c: ", best_bc_tile_lin2) + heads = param['input_dim']['heads'] + ifmap_lin2 = torch.randn(heads, seq_len, positional_embeddings, + requires_grad=False, dtype=dtype) + weights_lin2 = torch.randn(heads, positional_embeddings, embeddings, + requires_grad=False, dtype=dtype) + + feedforward_len = param['input_dim']['feedforward_len'] + + kwargs = { + 'ifmap': ifmap, + 'ifmap_ln': ifmap_ln, + 'ifmap_lin2': ifmap_lin2, + 'S_tile_ln': best_s_tile_ln, + 'S_tile_lin1': best_s_tile_lin1, + 'P_tile_lin1': best_p_tile_lin1, + 'Br_tile_fa': best_br_tile_fa, + 'Bc_tile_fa': best_bc_tile_fa, + 'Br_tile_lin2': best_br_tile_lin2, + 'Bc_tile_lin2': best_bc_tile_lin2, + 'positional_embeddings': positional_embeddings, + 'positional_embeddings_fa': positional_embeddings_fa, + 'weights_q': weights_q, + 'weights_k': weights_k, + 'weights_v': weights_v, + 'weights_lin2': weights_lin2, + 'q_fa': q_fa, + 'k_fa': k_fa, + 'v_fa': v_fa, + 'prec': param['prec'], + 'eps': eps, + 'feedforward_len': feedforward_len, + 'heads': heads, + } + + emit_header_file(args.output, 'Transformer', **kwargs) + else: print("No valid kernel selected") diff --git a/target/snitch_cluster/sw/apps/transformer/Makefile b/target/snitch_cluster/sw/apps/transformer/Makefile new file mode 100644 index 0000000000..0ec3e09837 --- /dev/null +++ b/target/snitch_cluster/sw/apps/transformer/Makefile @@ -0,0 +1,13 @@ +# Copyright 2023 ETH Zurich and University of Bologna. +# Licensed under the Apache License, Version 2.0, see LICENSE for details. +# SPDX-License-Identifier: Apache-2.0 +# +# Viviane Potocnik ETH Zurich + +APP = transformer + +include ../../../../../sw/apps/transformer/Makefile +include ../common.mk + +$(DEP): $(DATA_H) + diff --git a/target/snitch_cluster/sw/apps/transformer/src/data.h b/target/snitch_cluster/sw/apps/transformer/src/data.h new file mode 100644 index 0000000000..ed0d84b08f --- /dev/null +++ b/target/snitch_cluster/sw/apps/transformer/src/data.h @@ -0,0 +1,56 @@ +// Copyright 2022 ETH Zurich and University of Bologna. +// Licensed under the Apache License, Version 2.0, see LICENSE for details. +// SPDX-License-Identifier: Apache-2.0 + +#include "transformer.h" + +transformer_layer_fp64_t transformer_l = { + .seq_len = 32, + .S_tile_ln = 16, + .S_tile_lin1 = 8, + .P_tile_lin1 = 4, + .Br_tile_fa = 16, + .Bc_tile_fa = 6, + .Br_tile_lin2 = 16, + .Bc_tile_lin2 = 64, + .embeddings = 10, + .embeddings_lin2 = 128, + .positional_embeddings = 8, + .positional_embeddings_fa = 6, + .feedforward_len = 3072, + .heads = 12, + .eps = 1e-05, + .dtype = FP64, +}; + + +static double transformer_Q_lin_dram[32][10] __attribute__((section(".data"))); + +static double transformer_K_lin_dram[32][10] __attribute__((section(".data"))); + +static double transformer_V_lin_dram[32][10] __attribute__((section(".data"))); + +static double transformer_O_dram[32][8] __attribute__((section(".data"))); + +static double transformer_O_lin2_dram[32][128] __attribute__((section(".data"))); + +static double transformer_ifmap_dram[32][10] = {0.29955628514289856, 0.24237778782844543, 0.28320738673210144, -0.23294220864772797, 0.6711532473564148, 0.7817673683166504, -1.7903079986572266, -1.7484028339385986, 0.17347639799118042, 0.26684314012527466, 0.4285173714160919, 0.23187029361724854, -1.0214571952819824, -0.8272632360458374, 1.73421049118042, -1.4920727014541626, 0.4212009906768799, 1.5045722723007202, 1.2715909481048584, 0.6186699867248535, -0.03720300644636154, 1.0352473258972168, -0.010085521265864372, 0.08948016166687012, 0.08403018116950989, 0.3900034725666046, -0.5798414349555969, 0.8758938908576965, 0.3923848569393158, 1.1084611415863037, 0.8651734590530396, 0.8552159667015076, 0.6551142930984497, 0.6284835338592529, -1.240527629852295, -0.3206981420516968, 1.9312142133712769, 0.14532019197940826, -0.6426551938056946, 0.8636024594306946, -0.28692659735679626, 0.6076121926307678, 0.6058412194252014, 1.310962200164795, -0.22671589255332947, -0.21202045679092407, 0.5717787742614746, 0.6217140555381775, 0.16048920154571533, -0.9214988946914673, -1.1081523895263672, -0.1873779445886612, 0.4428268074989319, -0.23210768401622772, -0.03265155851840973, -2.4472389221191406, 1.4654350280761719, 0.9460834860801697, -1.1149258613586426, 1.1145904064178467, 0.03089355118572712, -1.345747470855713, 1.1755166053771973, -2.6327924728393555, -0.34027230739593506, 0.9906934499740601, -0.8522497415542603, 2.1413915157318115, -1.3971668481826782, -0.34667718410491943, 0.8272179961204529, -0.8144713640213013, 0.8704906702041626, 0.42876532673835754, -1.0822943449020386, 0.0897880271077156, -0.5701157450675964, -0.4379720091819763, 0.9723184108734131, 2.5161385536193848, 1.4174768924713135, 0.9893999695777893, 1.3602887392044067, -0.0935290977358818, 1.7962695360183716, -2.7218122482299805, 0.6793039441108704, -0.4281911253929138, 0.10439950972795486, 0.6829997897148132, -0.6505400538444519, -0.5982505679130554, 1.1049343347549438, 0.07340002804994583, -0.2650377154350281, 1.5317397117614746, -0.4234650135040283, -1.2932401895523071, -0.3380949795246124, -1.7333080768585205, -0.8419343829154968, -0.5396385192871094, -1.5231894254684448, 0.5315326452255249, -1.2034415006637573, -0.4245772063732147, 0.07730565220117569, 1.875472068786621, -0.4534667134284973, -0.7925668954849243, 0.9535707235336304, 1.151903748512268, -0.13315540552139282, 0.08438003063201904, -0.09100868552923203, -1.2605611085891724, 0.8441868424415588, -0.09287318587303162, -0.6985651850700378, 0.21403880417346954, -0.15580163896083832, 0.23432767391204834, 0.6822389960289001, 1.0926461219787598, -2.085524559020996, -0.43826431035995483, 2.4477906227111816, -1.2867459058761597, -0.7331361174583435, 0.029714155942201614, -0.44976484775543213, 0.5125347971916199, 0.9635794758796692, -0.6281530857086182, -0.26829636096954346, 0.7101594805717468, 0.07767737656831741, -0.14202016592025757, -1.9229623079299927, 1.9811607599258423, 0.6291940212249756, -0.866241455078125, 0.3045923709869385, 2.130127429962158, -0.03114248998463154, -1.0110560655593872, -0.7547012567520142, -0.15047518908977509, -1.0343188047409058, 0.43190959095954895, -0.21825698018074036, -1.0593950748443604, -0.9331956505775452, 0.7418633699417114, -0.6416015625, -1.1449408531188965, -0.2216721922159195, -1.4207135438919067, -0.4769698977470398, 0.9096040725708008, -0.703892171382904, 1.5214450359344482, -0.650736927986145, 0.775122880935669, 0.22993706166744232, 1.0133904218673706, -0.9822868704795837, 2.4250054359436035, -0.033152904361486435, 2.0599231719970703, -0.9175734519958496, -0.13843588531017303, -2.200242280960083, -1.173760175704956, 2.3141539096832275, 1.8193583488464355, -0.026067588478326797, -0.15813365578651428, -0.49908581376075745, 1.361249327659607, -0.18967720866203308, -0.3885493874549866, -0.786457359790802, -1.7692580223083496, 0.2863011956214905, -0.21016442775726318, -0.9223791360855103, 0.45429885387420654, -1.1687315702438354, 0.9219834804534912, -1.5306804180145264, 0.023687714710831642, 0.24904991686344147, -0.5595901608467102, 0.8956621289253235, 0.04378461092710495, 1.6459648609161377, 0.41662755608558655, 0.6518019437789917, 0.3813154399394989, -0.23150035738945007, 1.2160699367523193, 0.08806271106004715, 0.6308029294013977, -0.34934189915657043, -0.6988832354545593, -1.5400984287261963, -0.5138258337974548, -0.8326722383499146, 0.3555538058280945, -1.7180389165878296, 0.01316128484904766, 0.178916797041893, 0.6754010915756226, 0.7094535231590271, 1.814162254333496, 0.4674278795719147, -0.8301903009414673, 0.5800148248672485, 0.0506475456058979, -0.6755331754684448, -0.5170525312423706, -1.0310269594192505, 1.0266954898834229, -0.5373877882957458, -0.6849286556243896, 1.0066107511520386, -0.3169121742248535, 2.180732011795044, 0.39543670415878296, 1.5466394424438477, -0.17296931147575378, 0.0028406770434230566, -1.3705193996429443, -1.2542332410812378, -0.17928342521190643, 0.3005622923374176, -1.2411619424819946, -0.7604763507843018, -0.9971481561660767, -0.34904149174690247, 1.4026312828063965, 1.4061442613601685, -0.17910364270210266, 1.0127676725387573, 0.6204230785369873, 1.631783366203308, -0.7482913136482239, 0.013824710622429848, -0.32870203256607056, 0.2805330455303192, -0.38157811760902405, 1.050493836402893, 0.22899320721626282, 1.554774522781372, 1.3818135261535645, 0.47803470492362976, 0.9340946674346924, -1.149354100227356, -0.07195238023996353, 0.094148188829422, -0.2303592413663864, -1.8998197317123413, 0.9478582143783569, -0.5774972438812256, 0.6273242235183716, 0.08511336147785187, -0.17339491844177246, 1.2335858345031738, 1.3917635679244995, -0.9181737303733826, 0.8067649602890015, -0.2031417340040207, 0.1952214390039444, 0.2491716891527176, -0.4661024212837219, -0.9029006361961365, -0.4005606770515442, -1.3514083623886108, -0.9017993807792664, -1.6874597072601318, 0.8505309224128723, 0.6772608160972595, 0.07380298525094986, 1.992045521736145, -0.33044907450675964, -0.39032217860221863, 1.4987003803253174, 1.7977542877197266, 0.23182973265647888, -0.47785019874572754, 0.29946964979171753, 0.8488782644271851, 0.33152151107788086, 0.12891224026679993, -1.223803997039795, -0.6243273019790649, 0.0021198776084929705, -1.010364294052124, -1.1195878982543945, -1.2632447481155396, 1.45260488986969, 0.6929251551628113, 0.343516081571579, 0.232745960354805, -1.2546554803848267, 0.8387576341629028, -0.6354030966758728, -1.2173643112182617, 1.2314362525939941, -0.12220431864261627, -1.506661057472229, -0.13116802275180817, -0.03123668022453785, 0.5124772787094116, 0.8173767328262329, -0.277248352766037, -0.8170580863952637, 0.11041826754808426, 0.024119500070810318}; + +static double transformer_ifmap_ln_dram[32][10] = {0.46452078223228455, 0.3989201784133911, 0.4457637667655945, -0.14641213417053223, 0.890852153301239, 1.0177592039108276, -1.9331703186035156, -1.8850927352905273, 0.3198699355125427, 0.4269891679286957, 0.1360882967710495, -0.0529932975769043, -1.258102297782898, -1.0713794231414795, 1.3915482759475708, -1.7106120586395264, 0.12905338406562805, 1.170744776725769, 0.9467267990112305, 0.31892529129981995, -0.7288752198219299, 1.3721952438354492, -0.6757485270500183, -0.4806863069534302, -0.491363525390625, 0.10807815194129944, -1.7919747829437256, 1.060001015663147, 0.11274360120296478, 1.5156307220458984, 0.5687811970710754, 0.5572498440742493, 0.3255196511745453, 0.29467958211898804, -1.8697514533996582, -0.8045317530632019, 1.8033225536346436, -0.2648535668849945, -1.1773780584335327, 0.5669618844985962, -0.8357915878295898, 0.6300406455993652, 0.627138614654541, 1.78258216381073, -0.7371275424957275, -0.7130469679832458, 0.5713223218917847, 0.6531485915184021, -0.10263556987047195, -1.8756307363510132, -0.8741760849952698, -0.06342005729675293, 0.4914848804473877, -0.10280527919530869, 0.07281889766454697, -2.053262233734131, 1.3919070959091187, 0.93461012840271, -0.8801402449607849, 1.0829830169677734, 0.21540148556232452, -0.812310516834259, 1.0699037313461304, -1.7731359004974365, -0.061687178909778595, 0.9319266080856323, -0.44389674067497253, 1.790964126586914, -0.8506969809532166, -0.06646864861249924, 0.5346022844314575, -1.069199562072754, 0.5768762826919556, 0.14534524083137512, -1.3308416604995728, -0.18580901622772217, -0.8304832577705383, -0.7013891935348511, 0.6763539910316467, 2.1845452785491943, 0.8434077501296997, 0.49585506319999695, 0.7969770431518555, -0.38336753845214844, 1.150946855545044, -2.5172524452209473, 0.2440902441740036, -0.6550772786140442, -0.22267067432403564, 0.2470908761024475, -0.4190307557582855, -0.36304330825805664, 1.4605926275253296, 0.35610711574554443, -0.006265299394726753, 1.9175820350646973, -0.17589673399925232, -1.1071833372116089, -0.08448924869298935, -1.5783731937408447, -0.5557647347450256, -0.22793908417224884, -1.2945537567138672, 0.9336956739425659, -0.9478021860122681, -0.10316050052642822, 0.4411078691482544, 2.391134738922119, -0.13448981940746307, -0.5022280216217041, 1.208802580833435, 1.4887551069259644, -0.32514122128486633, -0.018083952367305756, -0.2656499445438385, -1.9165053367614746, 1.0544042587280273, -0.2682817578315735, -1.1232327222824097, 0.1649329662322998, -0.11186710745096207, 0.21255043148994446, 0.5850174427032471, 0.9262972474098206, -1.7165554761886597, -0.34675294160842896, 2.0531868934631348, -1.0523197650909424, -0.5919577479362488, 0.04240117222070694, -0.5346583127975464, 0.43035218119621277, 0.8826674818992615, -0.7135490775108337, -0.3526785969734192, 0.6285336017608643, -0.005730237811803818, -0.22604668140411377, -2.0120058059692383, 1.9031152725219727, 0.7149531841278076, -0.8942551612854004, 0.3656558096408844, 2.330077648162842, 0.004378218669444323, -1.0500872135162354, -0.7742289304733276, -0.12403332442045212, -1.0751198530197144, 0.5026593208312988, 0.30942532420158386, -0.8307526707649231, -0.6596870422363281, 1.6108859777450562, -0.26442596316337585, -0.946711540222168, 0.3047959506511688, -1.3205264806747437, -0.041264742612838745, 1.8382614850997925, -1.1216769218444824, 0.8447425961494446, -1.0747063159942627, 0.18525491654872894, -0.2964985966682434, 0.39580005407333374, -1.3676804304122925, 1.6431738138198853, -0.5289781093597412, 1.3205687999725342, -0.7151663899421692, -0.13213665783405304, -1.6749892234802246, -0.9068712592124939, 1.7031396627426147, 1.3328834772109985, -0.04805130138993263, -0.1468765288591385, -0.4020114839076996, 0.9900798797607422, 0.24397137761116028, -0.014678393490612507, -0.53219074010849, -1.8104045391082764, 0.8630207777023315, 0.2173260599374771, -0.7089682817459106, 1.0815156698226929, -1.0293700695037842, 1.6897783279418945, -2.176287889480591, -0.245980903506279, 0.03388730064034462, -0.9703301191329956, 0.83688884973526, -0.22102338075637817, 1.7686594724655151, 0.2419952005147934, 0.5340487360954285, 0.19814249873161316, -0.058413658291101456, 1.8669843673706055, 0.366633802652359, 1.0885268449783325, -0.21515345573425293, -0.6800746917724609, -1.7989661693572998, -0.43393179774284363, -0.8580260276794434, 0.722420871257782, -2.1239943504333496, -0.20098139345645905, -0.016860587522387505, 0.5346329212188721, 0.5724582672119141, 1.7995660305023193, 0.30361682176589966, -1.1377742290496826, 0.42867809534072876, -0.1593417525291443, -0.7777865529060364, -0.6156388521194458, -1.1415059566497803, 0.9638295769691467, -0.636444628238678, -0.787399411201477, 0.9432801008224487, -0.41086748242378235, 2.144569158554077, 0.31796425580978394, 2.276470899581909, 0.2784050405025482, 0.48268401622772217, -1.1130648851394653, -0.9779484272003174, 0.2710684835910797, 0.8286158442497253, -0.9627605080604553, -0.4042372703552246, -0.6792334318161011, -0.9646596312522888, 1.154742956161499, 1.1589934825897217, -0.7590466141700745, 0.6830350160598755, 0.20832528173923492, 1.4320011138916016, -1.4477242231369019, -0.5256166458129883, -0.9400503039360046, -0.18934416770935059, -1.0248322486877441, 0.7822344303131104, -0.2543799579143524, 1.4185633659362793, 1.2003117799758911, 0.05987422168254852, 0.6353555917739868, -1.9936538934707642, -0.634129524230957, -0.06019999831914902, -0.41077306866645813, -2.2143309116363525, 0.8620831966400146, -0.7857944965362549, 0.5158026814460754, -0.06996053457260132, -0.34923315048217773, 1.1707614660263062, 1.3416446447372437, -0.8412476181983948, 1.9024715423583984, 0.2960954010486603, 0.9297391772270203, 1.0155534744262695, -0.1221746951341629, -0.8169539570808411, -0.017922788858413696, -1.5303585529327393, -0.8152022957801819, -2.006601095199585, 0.35242530703544617, 0.19137319922447205, -0.3695323169231415, 1.4134470224380493, -0.7452788949012756, -0.8009300827980042, 0.9548896551132202, 1.232856035232544, -0.22264869511127472, -0.2876620292663574, 0.8688360452651978, 1.6862472295761108, 0.9165228605270386, 0.6150803565979004, -1.397493600845337, -0.5055909752845764, 0.42643842101097107, -1.0799375772476196, -1.2424407005310059, -1.3040510416030884, 1.4090408086776733, 0.6501324772834778, 0.301078200340271, 0.19042056798934937, -1.2954704761505127, 0.7958168387413025, -0.6768469214439392, -1.2582170963287354, 1.1880967617034912, 0.032350897789001465, -2.216724395751953, 0.017789196223020554, 0.18012948334217072, 1.063402771949768, 1.5587174892425537, -0.21952097117900848, -1.096451759338379, 0.41025054454803467, 0.2700566053390503}; + +static double transformer_ifmap_lin2_dram[12][32][6] = {0.5592128760780101, -0.3223643795390148, 0.5138781656523993, -0.7592214987689807, 2.417337785331285, 0.17028885180838357, -0.18586838199027028, 0.40185795512569217, -0.5670525260070235, 0.14141128561714333, 0.536910685665978, -0.04468791360092496, -0.13107111869784893, 0.8500574802035589, -1.2986776963277358, 1.3299424270339977, -0.14883240827467462, 2.0486968982261202, -0.9909136952855094, -0.3600241005246587, 0.1602748303156346, 0.07168780603661637, 0.30202523579276225, -0.582835004754739, 1.0356927036283528, -1.0360800724687276, 1.993616236752697, -1.2365797403960304, 1.8548042098231963, 0.20499605949096963, 1.2010757276760113, 2.057751677950784, 0.2883899362101988, 1.6134203350119927, -0.9640624060585024, -1.1213275218434526, 0.6531743202785056, 0.2277981765470329, -0.8359861748374583, 0.5680057504067159, 0.28253652479051733, 1.1165497781562674, -0.5714364972858512, -0.09854463425203973, 2.395067138296113, 0.3316175009075528, -0.6884736402196919, -2.0231033737037047, -1.6070787249452574, -0.7165117692039605, -0.7553512437574256, 1.9280259690970352, -0.26733976223106926, -0.0673955495394241, -0.536406291194771, -0.7093789385459298, 1.744020696757244, -0.8126325347024919, -1.5969922983164335, -1.2686890383326754, -0.9291972010711246, 0.9031672530350638, 2.269233244076525, 0.40988533123157295, -1.7212576593177709, 0.7166427020983424, 0.3627363765292881, -1.5589258141736047, 1.3206137582172544, 0.22241582722694822, -0.5254557201726808, 0.4487811587655208, 1.4717430631656925, 0.6002964569533693, -0.7795697135851043, 0.610220453599741, 0.9796702201792316, -1.7646934144734967, -0.8420374077504474, 0.5166078996711738, -1.2752325216668503, -0.44546162876683887, -0.15696203458936964, -1.1862950949600968, 0.37408049529043713, -0.38524482721238545, 0.7842727318028115, 1.1538879916827052, -0.9454918159942679, -1.405125889371723, 1.0636457383418108, -0.7818062318843579, 0.8829476857079316, 0.8745221489151239, 0.6929310708225009, -0.39888705398196755, 0.9994754870230482, -1.666570871939696, 0.7961227485818212, 1.22745042848715, -0.6004867918118467, -0.5361669868684229, 0.4874774972013086, -1.890981268173993, -0.3938745167085202, 0.3139908715338594, -1.1261703254618494, 1.0966132130656288, -0.31621524862176864, 0.002668556331391873, -1.9226574720130702, -1.6380306920827867, -0.9710154441004514, 0.4763931829831273, -0.8587268321219447, 0.420689070376205, 0.6054083058374654, -0.7954680985571436, -0.20058537792435566, -0.19994075887630136, -1.895096099561938, -2.091666612524903, 0.0004974458415376117, -0.4080026099220151, -0.44867368855172923, 0.5700168037125656, -0.19142620469203458, 0.7614369056740486, 1.185949052557463, 0.6170757026559303, 1.650950629705662, 1.7703882319843902, -0.49884117664872785, -0.35212526236220854, 0.42973964778170143, -0.20813077355955645, 1.3420338787636203, 0.7397153430022654, 0.8838113044537101, -1.3377145615324746, -1.855416176565475, -0.8136295403887579, -0.7714846254184806, -1.2122365561438313, 2.8536471208979433, 1.3032022234889244, 0.4760756036980966, 0.04693766693045954, -0.5984449522911452, 0.7900271874549623, -1.969917184758775, 0.3503211304018375, -0.0008137206583593385, -0.6256281405885463, -0.3510577387659576, -0.13894191854589522, 1.199426224041857, 0.12132847331734303, -1.4608604499664002, -0.22948805550230816, 0.051902944512615914, -0.019119222645881905, -0.9757273564713941, 1.8473014772988974, 0.5263294510598043, 0.07053654437136757, 0.9547242579775002, -1.1278918446449648, 0.07734968673664687, -0.5799201931033439, 0.31678992899871267, -0.7432885872434457, 1.4335843287274053, -0.9465575672564711, 0.4879570553679617, -0.6623786574250906, 1.0259687873673153, -0.02932551729568818, -0.7891190307945258, 0.29564308636903597, -0.34927374642138076, 0.8136749201194545, 0.620245645223459, -0.43951272221042564, 0.46265400794768385, -1.869391305207575, 0.48193063531644537, -0.095540604007519, -0.16987767760770991, -0.19495692375454912, -0.08834646865917613, 1.2824833220745997, -0.13585649309388986, 0.6657305691375492, 0.6391954485208522, 0.3751449189250956, -0.19786418069226533, -1.1107085792532714, 0.16954868116772995, 0.0976102127373202, -0.22307281025633455, 0.5329264170127224, -0.7498434517605724, -2.2463793716496183, -2.030956619344538, 0.3469149176826813, 0.9569335370728702, 2.0063313680095405, -0.07729526178752644, -0.4820520883676177, -0.3642766707809299, 0.2721281447061126, -1.0173409588721802, -0.22291945275506458, 1.415842532715168, 0.3487504850213432, 0.3522443413976922, 0.9077850533771569, -1.0749257488285808, -2.072058608998672, -1.189733419675099, -0.5102992245699747, -0.5266987160364432, 0.38803217663099665, 1.2098862819236005, -1.0678208861159952, -1.6484340857205138, -0.6773093361468119, 0.19847908080770726, 0.43435982710100896, -0.06608174057217904, -0.4396025725464862, -0.06842865579333862, 0.0757461775588834, 0.945043974186398, -0.8271942633183708, -1.0171091372766654, 1.0045993947511778, 0.1215505686746317, 1.4850546815331578, 2.90124785320579, 0.9193799243970369, 1.4109003071198862, 0.9342714574384375, 0.7408981122108215, -1.501451886644788, -0.8528561599738412, -1.4502786649323292, -0.060333190180409904, -0.06215199874022316, 0.6962114020423124, 0.1737374420722428, 1.9987164641082087, 1.7922666332582982, 0.39258330183185886, -0.1955663537656974, 1.185062371327038, -0.24969600604011072, 0.5062590514320574, 0.7374924629427219, -1.0887076741188921, 0.9197089124134338, 1.4198792364404926, 1.13966263395932, 0.8820726768303652, 1.1454947730219187, 0.3830272308939737, 1.0330281295592512, 0.1958899672744909, 0.2610941691615629, -1.6928895703415128, 0.08949085370524765, -1.6099870201619317, 0.6146813355739139, 1.0232681185457035, -0.6120020584064751, -1.0855633146564565, 0.9035218354603602, 1.199279110133032, 0.21247320768848982, -0.8276719054682797, 0.34353353507020123, 0.7795065425753578, -0.31690501369321267, 0.08404007020790137, -2.0217996637419504, 1.4723540101508836, -0.5690532461968705, 0.7600008532793323, -0.09696213550941978, 0.49872412917775666, -0.6501714914135994, -1.4186463922997374, 0.4572717163404996, -0.6798540159722049, 0.8800683478695012, 1.1617475981837795, -1.2832223575262358, 0.01811044220476568, 0.5665224930728516, -1.7263899334779662, 1.0788518344074862, 0.5214662704113713, 2.207851490608375, -0.8847331619490723, -0.22393893146647295, 0.2604924986511237, -1.065720378325982, -2.4784405095403583, -1.397338674255014, 0.12733886071252698, -0.962990797187108, -0.4158341820319732, 0.8295084980828852, 1.129362539634652, 1.4448964367746397, -0.27202686813738103, -1.1376577043818543, 1.1669873661563108, -0.5526532153140147, 0.17431258922451653, -0.08674760587893786, -0.02662111271639052, -0.5787298408624987, -0.46418731609632075, -0.7338887598113502, 0.0037124668666011543, -0.4390315224865612, -0.5445053993271162, -1.1731970859703744, 1.557358039479812, 0.8235296531498106, 1.3403087264740343, 1.429798559996883, 0.8488733195590197, 0.6549815456848764, 0.5939979568631141, 0.571492357564412, 1.2838646589587073, 0.1968309175885564, 0.0125526247658802, -0.588379978175527, -1.459242663662794, -0.16058887298258492, -0.30513433025622483, 1.3958505210549053, 1.112993202632025, -0.6980224325960035, -1.1242172376210566, -0.04898442309094625, 1.7267743114344978, 0.3596144012700469, -0.359544416669036, 0.20255944297423273, 0.3676083732835713, 0.8149334833372205, 0.9572709382349587, -1.4303046720322652, -1.9840617027488057, 0.8352543400425974, -1.6685708178136907, 2.264358935950376, -1.1013820170238586, 0.6513073416660541, 0.5222811637226092, 1.6332065112971001, -0.18689854597886257, -0.8293836626550278, 1.2200036287220326, -0.948302395460301, 0.6269276746157323, -1.8413847347422614, 2.975492133500898, 0.5732253342246594, -1.876866690355531, -1.4492981424636866, -0.7472606420064576, 1.4876059940278459, -0.18934308720894036, 0.13020040181367357, 0.5331924552669381, 0.9913637676227545, -2.6437681894231435, -0.6461446779487539, -0.8660236542618331, 0.47452405238110584, -0.4790606483008819, 1.5321216571398668, -0.1636651452718229, -1.0332700298347521, 0.9892360243254097, -0.6416390065504894, -0.604900108391799, 1.535151051934949, -0.18334305957155458, -0.35686131551458816, -0.3292665860742744, 1.7738534285950363, -0.33142178700758057, -0.6235361522388553, 2.8510918408680124, -0.7318379837818061, -0.6194976835634578, 0.8118142867300344, 0.43758672808479837, -0.7150266134830248, -1.9406394619639358, 0.8679359705510734, 1.4354983174276066, 2.182868585469132, -1.1741764376487758, -0.9331282790464878, -0.2820770772397286, -1.9483310573156807, 0.31916263280850626, 0.6390360973776629, 0.5428826848071413, 1.5065733412421733, -0.47412499801799024, 0.2569777134684139, -0.18464959701431985, 0.707300443390559, 0.16960249404796737, -0.4185489493255141, -1.4509136246246903, 1.2609714707832425, -0.048585931918069494, -0.7466175012069378, -0.805144923911586, -1.6081696632587419, 0.2108448776087118, -0.626995367880836, -1.25582651238933, 0.03382654045677089, -0.45889090147992845, -0.2896301303848118, 0.4922810729687261, -0.11561150744781683, -2.0656398984212156, -0.15730996466261546, 0.7768976641774541, -0.7044791153933941, 0.8524501556338853, -0.3340090119288742, 0.08640562469139157, -0.059343641632369076, 0.1619562886451128, 0.15046570393731748, 2.7590525887014667, 0.22065232253703387, -1.3774088537570648, -0.29499229105904573, -2.4537835279476146, -0.8341158090629236, -0.43274207019506117, -0.14358452337381933, -0.8677025372132973, 1.0347284219371276, 0.48707383897255696, -0.06866257813543919, 0.2937618607534383, -1.161359070554741, 0.21001598604651528, 0.4159405289601604, -1.5043005890504582, 0.7372524407400997, -0.5334658384258053, 0.2567239585606655, -0.6299751233419266, 0.024035161278926437, 1.1244580271586777, 0.40836377201711715, -1.8739717517634698, -0.26853628794603523, 0.37761170331094157, -0.0050819767759484056, 0.009684786386250501, 0.2636875321138984, -0.08553945533113934, 0.33475288490766125, 3.4237712468503103, 0.744628978129671, -0.9096458649167182, -0.6827694846192245, 1.6425500385797525, -0.3900596403135759, -0.9509348833512404, 0.3229857369820825, 0.44175525248542286, 0.7931445181078505, -0.06988463350772384, 0.6819214512912009, -0.06839741587635721, 0.4734557044072717, -0.9215746025534817, -0.6195377638236638, 0.809667872762421, -0.4103668947560523, 1.749809215983805, 1.001647179219911, -1.7659243403508436, 0.15383957509758237, -1.2779831760745572, 0.2669263499455465, -1.4256436904962992, 0.040903466313536106, -0.9342945534262868, 0.7618231087000356, -0.30058739646889815, -0.5446714593776727, -0.4802089660362259, -1.1432227238603179, 0.5174957898345334, -0.26915089392842423, 0.3387263580347474, 1.2480509452812811, 1.9521841872543286, 0.9788396157168914, 1.001353646981955, 0.40906237950521346, 1.2380051766092655, -1.1622188132692055, 0.03880070372652659, -1.3157311036080868, 0.21159132832002855, 0.8251757971684041, -0.5943198935837782, -2.059249774668197, 0.4455096569146938, -1.5530036453685645, 0.24334104727505046, 1.9679440499519993, -0.14949638764508505, -0.1787890634869671, -0.8694565617159877, -0.02701940155527667, -2.327140574554701, -0.3493894186252125, -0.02711649643869937, -0.2125855163161856, -0.8626785926902893, 0.5125620452253108, 0.835126803441082, 0.4370304631746852, -1.4380277943151216, -0.15463871080474192, 1.427347151863727, -0.03594236427723813, -0.9987807222089615, 0.15285084511988004, -0.4453218737326093, -0.8774506171339351, -1.1301294572944445, 0.27932962145356316, 0.666378400360196, 1.0765917423686246, 0.2439549047998887, -1.00859364816552, -1.757528113553421, -0.7922512836603205, 1.4533777876325222, -1.508283926364581, -0.9454297378995183, -1.010459444419853, 0.0754147254586834, -1.2810537542822706, -0.7736354580243704, -0.811961379205231, 1.3638217257964536, 1.077496971491708, 0.5810375830537511, 0.3551271969105679, -0.043876281219692365, -1.0850332393056394, 1.109609770945844, -1.0337911892064604, -1.8807813444109054, -1.2265714811977597, 0.3936172157806796, 1.0778363941578806, -0.8644861643567047, -0.9521061052105131, -0.3765845085538441, 0.17855829086113095, 3.5953876986672255, -0.8488543068716493, 0.3153960860722241, -0.4124980314658376, -0.25957042793288443, -0.47466672457489073, 1.251745108485312, 1.9089401526170708, 0.08093711755806289, -2.256777082059624, 0.324177164165908, 1.062105790670867, 0.2886235312894662, -1.2983305542602077, -1.5005961252940438, -1.4260396412546816, 0.12572172650108407, -1.371518218990482, 0.5998645930096181, 1.2473531605780193, -0.9358060344486432, 0.49295286102524044, -0.3494884497630849, -0.9308402692062906, 0.3630283557686611, 1.7611911540817928, -0.7229213248269448, -0.4323877136781272, 0.09012216684853104, 1.2693688025965613, -0.05609728003750563, 0.2942911094966865, -0.7311965810915613, -0.21592794240105817, -0.4553253041620339, -0.13454483357874214, 0.3803586083160361, 1.2706120469339364, -0.868299098407261, 1.59925697493435, 0.5433594960509881, 0.5675579810614343, 1.9203285366540146, -0.5030970822643847, 0.8421602450844566, -2.316838061301056, -0.4201799135308444, 1.99145358910135, -1.1698739038813457, -0.48526560569590693, -0.664516213841126, -2.1784216925774254, -0.05592421534349575, -0.3735237580415768, -0.22461780649945687, -0.6015415198184665, -0.525149213451578, 0.20817264425532928, 1.0421502948740846, -0.24223189745187212, -1.5453453515930158, -0.565952007041841, -0.453301777620275, -0.26956499012979956, 0.6612001818907256, 0.6566383906736746, -0.7620891486112908, 0.4039229699126195, -0.03287499950025958, -1.728025679680301, -0.1351648490652594, 2.979844425070889, 0.21407749737048995, -0.41165660712793767, -0.8911684286042895, -0.49236046031915226, 0.08810619424950021, -1.4051338603716423, -2.3224238004285707, -0.3410883214075715, -0.12686282703773566, 0.23609553256542695, 0.23545196849666264, 1.371312887239788, 0.2318653380046876, 0.08464059182127714, 0.19008151199377613, 1.7562161679995132, 1.181971977987871, -0.8172519034071913, -0.31575932783054717, 0.2503737947188051, 0.028618079946139307, -1.723439924093865, -0.7885161782185284, -0.594263411951702, 0.5644435285732619, 0.8811148239408805, 0.7833035854562042, 1.0392171119322082, 1.8371154985886862, -1.2420591801850245, -0.23753657646460405, 0.19313774990116925, 0.5053866496884525, 0.3283028032403514, -2.225396433305001, -1.096249407991655, -0.9149883628966105, 0.21230053589695053, -0.6023002440801871, 1.4512382841053386, -1.5038113250304717, 0.11558860384831522, -0.06338166413389325, 0.22201020504142566, 1.4399368526678278, -1.536144263111769, -2.717778670757182, 0.1168039138752043, -0.5866181500734327, -1.5377442224077151, -2.0944415177169953, 0.7870016058915985, 0.8949404757727989, -1.2488701028525535, 1.8425900504983932, -0.8820586551654293, 0.31200772222466067, -1.4538990075976945, -0.4972028753925732, 0.30783322485667264, 0.534974938780373, -2.0058475112711514, -0.4541796977906028, -0.5567288589208035, -0.7063829736735863, 0.08317733846151737, -0.9039919874880522, -2.359353503098415, 0.11425878193276912, 0.64706666019578, 0.4359959376210403, -0.09281069482301793, -0.5382334133878951, -0.633983343063867, 0.49835413266819356, -0.6176307398455463, -0.58828999383318, -1.7334295099492802, -0.8643497543156821, 0.689824201173873, 1.524711206099055, -1.548684848469057, 1.2284263304913572, 0.19868751298961676, 0.11836116797672853, -0.06310268278090121, 0.7479073753397237, 0.19168429076964602, -2.501823109461287, -0.673945501033193, 1.2235988334078434, -1.1636116702452202, -0.22624467871026605, 0.5071009399593757, 0.6279007880533118, 0.5692262629524086, -1.7255159569914225, 0.6397252376986503, 0.23342621054073684, 0.21399479954715414, 1.1788921695577175, -0.4946728962147127, -1.8310549540520982, -0.3690830035843751, -0.42224783195423987, 0.32423026673778105, -0.4402301947763417, 0.7465865033369634, 0.43199223950922194, -1.939062107304355, -0.10453191019598392, 0.8153426406136252, -0.7800663274052761, -0.4477465519532468, 0.01545038682624204, 0.39608506375087277, 1.1493902335657455, -2.130104535188091, 1.1476608122361165, 0.9320022617397814, 0.03568906908977818, 1.4420580869170465, -0.5372177387698984, -1.1864962493216553, -0.5500096460519907, -0.763791941134191, -1.697389937955057, 0.2998477603655102, -1.3941268553154642, 0.5706575386796322, 0.7831976119427991, 0.28018300766602294, 0.13693472548612742, 1.0154445987056024, -1.1860807036684393, -0.19007920263882952, 0.1523832525182091, -1.2093360312349437, -2.100547843467698, -0.1530333323078057, 1.1971503331114541, -0.38189865297027337, 0.7916834209392376, -0.1728944869857963, 1.160481352505748, -1.0427224611678692, -1.040602541009036, 1.8273660232377136, 1.4195569065800453, 0.8386877142814951, -1.0778628423584962, 0.3469301281229362, 0.6711365751637789, 1.1526892923346204, -0.18194736753591428, -0.19855569336096057, 1.688961038095004, -0.8745505869548725, 0.32284669288734297, -0.8259830110426495, -0.3611221208798455, -1.4195164842808716, 1.1907305012760756, 0.1522501461827938, 0.922469684257407, 0.016501336648811274, 0.7429642513221194, 0.10750421501190041, 0.4808356602618045, 0.1323677945856938, -0.7034274377386549, 0.09645911224015045, 2.532325541632594, -1.5866221126564115, -1.971084122083064, -0.13301270859207348, 0.39343143403797187, 1.3390674367668436, -0.747255398772972, -0.16290875300595686, 0.4979804345513483, 0.08795913929250766, -1.1826687439735564, 0.8708434312878163, 0.10036766629128512, -0.5580601750838238, 1.0076432223870029, 0.8554191239588586, 0.5698707282163747, -0.20863591717796462, 1.3123618498586958, 0.820266660992923, -0.05334598793633222, 0.10738590560666669, 0.7476571054869932, -1.5691946737355327, 0.8999837788505479, 0.038792413114335636, 0.9914820089613138, 0.9465564741859593, -0.9548035752110309, 0.37108183095020375, -1.6932708709240643, 0.5742732453192894, 1.1869006875492747, 0.2555908214103616, -1.3999854653788708, -0.5270366881316677, 1.8409181821652891, -1.7547244042030132, 0.07405473692919617, -0.14925008749413637, -1.8439449535735588, 0.3444816081051852, -0.2983334069128005, 1.38335867526748, -1.9630063235244388, -0.5193463961965822, -0.11562338831110575, 0.352400820758953, 1.6482773735238936, 0.6711383514595195, 0.2238366057536359, -0.7182362270286512, -0.35435416471609005, 0.6485877172023825, -0.2757466733288484, -0.3563016808385527, -0.17817414950901492, -0.0019081140052624073, -0.39273602229275606, 0.06348346009811161, -0.8742437683710312, -1.8689872110353185, -1.5147133895052636, -1.0184612409555949, 0.18139626346512772, -0.7129650139254672, -1.3195899155857833, -0.21170557963600709, 0.49610977046001814, -1.107773982297535, 0.6462111934112551, 1.688912150364615, -1.3591299269239323, -0.7475464904708393, -0.9405677474521547, -1.693588315970276, 0.20250426856488513, 0.9856658198526146, -0.44166427943855957, 0.509830562978939, -0.5991965310798085, 1.4973252224613436, -0.5546344165085834, -2.2200296733850635, 0.11782530162434772, -0.2746421487353144, 0.4690531558116329, 1.40804274909555, -1.1589358423900673, -1.39264188930796, -1.6570523533049744, -0.5797120770538159, -0.5914414514498524, 0.9272580348234067, 1.2692870943822299, 0.40403527645846804, -0.261501940678677, -1.0862317630027116, -0.1526016183398903, -0.08532835954893107, -0.8388665678221077, 0.23964567353038213, -0.7439278891788523, 1.3723479505028726, 0.824813770461099, 0.5243129136614292, -0.10372952028569096, 1.3566661021189814, -0.5845287147363865, -0.8059330271558699, 0.6671892437824667, -0.49774514260345515, 0.29484142406469005, 0.6191696327292491, 1.8705821587413778, 0.7631902200350251, -0.7088811330868576, 1.0059809179620727, -0.508032215950158, 0.004726053571028723, -0.30330784941160444, 0.22020618545944062, 0.1331832955345884, 0.04208118830258324, -1.2387913861871258, 0.7326479811535176, 0.1542920099223582, 0.4162106818030797, 0.7167058863039155, -1.1914296976986598, 0.05132650366382693, -0.4211031612870858, -1.7864727886991922, -0.19373243001813595, -0.5237224340522099, 0.47552274099861314, 0.37932931641385165, -0.01778581204620033, 0.5135963784050196, -0.0920407091659859, -1.2851040951432764, -1.3867367743332586, -0.010248112584533295, -2.380960707383888, 0.2770426540930432, 1.4353993617223093, 1.043407848929735, -0.6643084477672975, 0.1560528379614375, -1.0888910309318305, -1.39073904258463, -1.0653294525847614, -1.685728242447165, 0.4278716389829903, 0.8151267745756855, 0.4590974059792218, -0.8170842929318204, -1.801558199044534, -2.7422706187790467, -0.5385419989517659, 0.4561341860266813, -0.310225122334308, -2.1875217223893677, -0.45557869602550916, -0.45727725255439894, 0.9297468280161273, 0.32453333878542806, -1.7736376333551942, -0.9131947056110343, -0.4728773766206769, -0.6493391107311841, 0.1834771824260959, -0.45551981611072734, 0.7193135815798101, -0.6933979942834584, -0.5348504033921155, 0.3478776145762176, -0.1393727443862952, -0.3424969723393732, -0.7332649826023855, 0.6913175647423441, -1.257101185725113, 1.0310169221725312, -0.13131058277048602, 0.030573820416151365, -0.6620542368308769, -0.49766727093101915, -1.641862178277871, 2.3640821336546574, -0.9548887269449952, 0.8055568803047201, 1.7115905120926056, -0.563245126658301, -0.3859649719336605, 1.0784783346646432, -1.1361477490330392, 0.4775583825007609, 0.5678618464386147, -1.2049378392751529, -0.5784213772732109, 0.3638626925141807, -0.6477251149727985, -0.138088388413468, -0.0857690957689657, -1.170514473695407, -1.3583835241962454, -0.8536726298571233, -0.5789612164736667, 0.5515364147936958, -0.21001044830338852, 1.5965986648878876, 1.332952122458738, -1.106990241078737, -0.8323599454667959, 0.2023236465664476, 1.8101184401899872, -0.04969075738554229, 0.8972323805641829, 2.434777614341617, 1.0541755565684054, -2.2557001693044554, -1.1197104590989124, 1.3770060053835511, -1.3038099206851257, -0.802611403636314, -0.7510835439747036, 1.0990271545114865, -0.4529621630427125, -1.4636178063664385, 0.06335152605342771, -0.6206243450289093, 1.1869113497927544, -0.818440789798608, 0.2561702472397693, -1.2318619147211731, 0.2627597696598712, 0.11912488371549859, -1.7453842388181258, 0.5887777831164662, 0.5273151918284512, 1.640536966751914, 1.3794237668484932, -0.12785314033845285, -0.23534497071474694, -0.9009256843963697, -0.7250059642049492, -0.3977475426257049, -1.0030890967146173, 1.2159224791122567, -1.1216933730870873, -0.20804879801288678, -0.4245954695995834, -0.6569530388001403, -0.263170367989491, 0.2895021927054334, -0.4314031435542754, 1.6490973670655187, 1.5338741666166893, -0.677703293025438, 0.3143397547229224, 0.7007642565342262, -0.2522685361450174, -1.5839480376139985, 0.93074956060378, -1.5149960747905178, -0.6856706097428578, -0.04648765391700708, -1.3398052760638477, 0.7363355075559743, 0.10653207903038861, -2.639936447634558, -0.5287473140151686, 0.6498935272688897, -0.2527748085146442, -0.34770737406235824, -0.14220047626519997, -0.21879014539673222, -0.07200916739308166, 0.25193535673172046, 1.2609596592019676, -1.1086716524384936, -1.6354483839867169, 0.5380690112521336, 1.4518703841949971, -0.8093138277596921, 0.06530274990972673, 1.3084005610091705, -0.7378474785525959, -0.15513790834740002, 1.547983753080703, 0.7288188703318803, -0.0933899148618752, -0.6840324465492571, 1.0468602313032118, 0.1347189206162325, 0.32826400571663844, -0.18723650691558066, -0.7075241895582589, -1.9984292742164604, -0.2914318569441844, 1.4668619149746296, -0.5938909033513795, -0.4553027196820818, -0.012440663289446416, 2.164276135105918, 1.4789527353334166, 0.6160953641329345, 0.038310480621150396, 1.6452500224294333, 1.494343112286883, -0.7650247014788575, -0.533709060717757, 0.24993274705180898, 1.6324500704316365, -0.4538416684548764, -0.6445270873066975, -0.06237514498867967, 0.7630851408555358, -1.3197078202188879, 0.038195444018690794, -2.0454029376907057, -0.9556481289697868, -1.3658861254597947, -0.4601388424221046, -0.40389335639772284, 0.3790463199332069, 0.17039119497287172, 1.9051753831890847, -0.7565222879698993, -2.233593705684145, 0.7533866182365011, 1.4157272603671784, -0.5779376838751896, 1.3152500508527694, 2.0424397893714183, -0.1606058104953894, -2.121156427498829, -0.814081708698557, -0.27922653429038075, 0.613844672204543, 0.15119026883650383, 0.06413060813440008, -0.23094742754961228, -0.4124703421444433, -0.3236376417397888, 0.15518720205424386, 0.5184938316181349, 0.13564301588069413, -0.7100012592183507, 0.4212833527503162, 0.9262968064316901, 1.6187247645232936, -0.44643936620597546, 0.1009606074107147, -0.35665110868705857, -1.014494742181071, -1.0343996078852367, -0.14083690434012247, -2.659674765988563, 1.1200535905266031, -0.4586778781046084, 1.6905924900617433, -1.8033182127130851, 0.5433525267884302, 1.4233809128401147, -0.8987486269309799, -1.453057056751839, -0.7448768215305785, -0.2267855258163122, 1.945693704496327, 0.33609999329560913, 0.40548081566055455, -0.5462618578171711, 0.15373776030536832, 1.711074878534925, 0.023787252110310374, 0.4233202019040906, -0.008827631681980003, -0.10826351511745486, -1.1066691303703746, -0.7957526976620205, 1.8473188835888321, -0.9965255911026194, 0.09807222024537897, -0.9407586128443268, -1.0498307678564212, -0.6755550472210402, 0.6860650501401647, 1.2491613871904947, -0.4157878155545817, 0.06440187003639199, -1.0303028958266864, 0.5622472587190729, -0.3536052308653158, 1.0932146030825403, 0.36571824880332326, -0.19675259067500117, 0.8014014989569858, 1.5435968634285022, 1.902043007662628, 0.43820881569167025, -0.18756171249906528, -0.6866083948565544, 0.2644213172812575, -0.8739131198364251, 0.5028273336903448, -0.22790955142933395, 1.5505766536584806, -0.3083581069104587, -0.2756384235217714, -0.08712041258032677, -1.5385358044156583, 1.5886418554737576, -0.7748824652422079, 2.103248029337103, 0.890022377440416, 0.6445857174711459, 1.142680024548178, 0.7279074737383107, -2.3500551015249735, -0.04587882784611171, 0.8972524641969086, 0.5171651392783594, -2.680398134256749, -0.14294078235428628, 1.4535614828454053, -0.25878946093034666, -1.150648836844086, -0.27918479828900283, 0.18762273746188549, -0.2897213292792658, 3.366197693866059, 0.2467457004931064, 1.3146142241825884, -0.33042133576860777, 1.1368661880496993, -1.2765256946266974, 0.5631661206163274, -1.9298974365961459, 0.5804306040972446, -1.6436648860641425, -1.1242856767655485, 0.7176381272548557, -0.26502129920077905, 0.018804496205326933, -1.9240434249515963, -1.151736654209814, -0.7733751324010287, 0.12724549306641642, 0.8698381079510638, 1.3468989585853053, 0.6993307309524431, -1.3755887390386246, -1.3702040758563874, 0.6048642954458721, -0.23792858122085253, 1.620207826009963, -1.7785773079872162, 0.747925897632815, 0.27650594380432825, 1.405206974690175, 1.4527336375856612, -0.8045674628364357, -1.3268370782350791, 0.03901846375371842, 0.5689529546931205, -1.4234302377651125, 0.19220471457556346, 0.7741988976758539, -1.23776452431, -0.7207401991713909, -0.5835455049457218, 1.2122375074919018, 0.21249919187342148, 1.3298659450361623, -1.292458696881581, 0.005456891100888988, 0.769740287438423, 0.7214780176914463, 1.345661917126047, 0.18333266477760912, 0.4406591505341931, 1.2158097956852845, -0.8159372232158066, -0.29215327086693227, -0.8869329146871234, -0.08988881844794458, 0.39160206252059276, -0.5251538857201289, 0.5323166743578026, -0.16374565008274838, 0.3397135343663835, 0.20781479108384168, -0.1570056470130424, 1.1186692216915683, -0.5922507420399947, 0.374049479643793, -0.4714366545027258, -1.7800873492764042, 0.200432184971249, -0.4510884110917245, 0.7815208373774285, -0.529196555581843, -0.6004156268390762, -1.987720596410682, 0.48026877352900804, -0.7125624358838566, -0.8635819653496137, -0.18865548902962756, -0.2574880688121813, 0.523806567104555, -1.7303517305542833, -1.0285553977934347, -0.11034990592802998, -0.7884438344511571, -0.24170806050666505, -0.2991729019398932, -0.36617527054992993, -0.2180913173890188, 0.49441274267255686, 0.6678157312282177, -0.23699048511969242, 0.1614226129495087, -0.2552962154031892, -1.6932679790648506, -0.7260428936615658, 0.983917326770679, 1.5508445843971757, 1.0928624592476766, -0.2686621350585599, 0.10550971291282485, 1.2293114178521045, -0.7100199116352982, 0.2251083357001051, 1.090471403127213, -1.1754999891954272, -1.4111309180712674, 1.594334716432477, 1.1372124171259699, -1.4830687641923233, -0.3439724328166409, -1.5396688044442735, -0.6530928014336336, 1.120347029827944, -0.9233474350658438, 0.5042380476094092, -0.6904562284525139, 2.4780322297004083, -0.2031870518226454, -0.4232460765743194, 0.4081816219963742, -0.4288812456955435, -0.5678348620750594, 1.060013239317373, -1.0891223916285455, 0.28360515994750446, 0.5489348880826361, 0.8552310805980752, 0.6629955550754738, -0.5855799022885917, 0.04505979751703283, -0.7679200474020268, -0.16387626425210505, -0.37261710919405294, -0.5739676712378301, -1.1613713542857809, 0.5234541491477545, 0.03777729114334165, -0.3546644244976776, 0.87387343925544, -0.5520139384476067, -0.4720689981267439, 0.01761451566596255, -0.4379304095967114, 0.06737860874331991, -1.5623779775926485, -0.9121315682652166, 0.029834900788377673, 0.1905497192124624, -0.7566715014724017, -0.10983522918119382, 0.9742107436060682, 0.1815564957981359, 1.2838385132758123, 0.13797695908894034, -0.6442723551108704, -0.8432744836505134, -0.1576458748377887, 1.1087873353884619, -1.1040097942922944, 0.13926798182665912, 0.6638960874060112, 1.6693259142853603, -0.042589103587092496, 0.5092687615690856, 0.8709546215751225, -0.5934609907062391, 0.45661093976245476, -1.168389537997648, -0.18353619149782954, -0.3721734346762326, -0.07431406396242313, 1.8921813580128142, -0.39768063718044483, -0.12351163257863787, 0.1776654000420943, -1.615145727172023, -0.8295223514809212, 0.19496211097190255, -1.6753936838176986, -1.2449841234813048, -1.103185502766208, 1.4687648094175687, -2.321135504151646, 1.8028715890978269, 1.618525966060461, -1.6264971386084712, 1.2252147966002902, -0.8266134139742128, -0.7896159557742973, -1.9930284454336427, -0.8745205052196425, -0.03567815340518255, 0.0007735740585857306, 0.24630311446624104, 2.4046485450836372, -0.27585688749815324, -0.034901401558489656, -0.6129097478356353, -0.11827005035011492, 0.21092672955479633, -1.9032603306465568, -0.3131719125585028, 0.19173872269255007, 0.6267867341635497, -0.3384374795024242, 1.0490754729429352, 0.8498306144609853, 1.3559229216880748, 1.0814542782212446, 1.9102104086410767, -0.7012681525615534, -0.19191977865841836, -0.23081233263192683, 0.11906173850664951, 0.09610887971340569, 1.8209463416759175, -0.15734240718500028, -0.11962634027135648, -0.9085526532719989, -1.5432961003875627, -1.382447044939543, -2.0883967374837424, -0.9868856173905888, -1.8445485130687704, -1.8549177920034712, -1.1632546049183305, -0.32159816338170244, 0.4162133575979579, -0.5834522007996513, 1.526399442141217, 0.932690624644091, -0.8327089198669363, 0.008129612787209651, -0.8756430509115771, -1.710104948463473, 0.7313833433842383, 0.38408626128483575, -0.649419875486093, -0.513266352794694, 1.8195502866473248, -0.1763912919090115, 0.19407569314639708, -1.333352138482723, 1.6199178344118101, -1.1117879761260026, 0.13364018438286004, -1.1948230210123498, 0.1612449407072351, 0.5333275706619913, -1.0918332184562467, 0.16551955021595594, 1.2108353511404824, 1.8565281147242538, 1.0200840632616635, 1.2917964848033998, -0.5995012498463435, 0.4542355507386299, 1.0573490168071358, 0.969281396126661, -0.16453913664021197, 0.012557288974792772, -0.8326648169504967, 0.20556814037632598, 0.03248765167879757, -0.7245324573042504, -0.43713748626328824, -1.0603675746188996, -1.4111542329070657, 0.08140056889890593, -1.6690868948551485, -1.1813269148820238, -0.5973114058758489, -0.2775847609684858, -0.5829098608452269, 0.7225893211798833, -1.2788343348724025, 0.5877801879908481, 1.4192183290393245, 2.8979565669480776, 0.494994469813483, -1.033921386291816, 0.532567367721892, -2.3224749060682606, -0.26278621379585276, 0.733390618716078, 0.26893520218170347, 1.221797483656276, 0.323206684696481, 0.9161514268765875, -0.47743933817297207, -1.3341639985706244, -0.9366913808485806, 0.8888120977620863, -0.7753383102835627, -0.9472878915679738, 0.6280600246330923, 1.762955600977091, -0.6663298900129063, 0.7995964753155814, 0.5257372157147355, -0.707308331499479, -0.6136393162168713, -2.7489424780609055, 0.7065684336229514, -0.6573403725716099, -0.58231197299488, -0.78654738406919, 0.5380613168300563, -2.672784704980037, 0.6606461413961936, -0.1465624833411055, 0.0888686178359086, 2.210061572985145, 2.294971536351295, 0.9054629313566077, 0.19123939814004304, -0.7690722863543772, -0.48141989592265805, 0.30117385932659657, -0.6322754761814786, -0.11848755674606819, -0.7858056186488147, 1.249740380134423, -0.9833533015410122, 1.5702883009575592, 0.7329811562451155, -2.3453034094765703, 0.06961372042941413, -1.7674377652295938, -0.4823518480102962, -0.9096482757858206, -0.3911960495224077, 0.9584964196392289, 0.2091404096377211, 1.9440629363828146, -0.6836512541286069, 2.0686371705300597, 0.10643253908633565, -0.3179037933173635, -1.1888561761902947, 0.437705987045847, -0.2147721802061823, 0.2761341259404923, -1.0209599555567732, 1.895957414765353, 0.9248264121062436, -1.2110092283276828, 0.3602228469209382, -0.6987373586718392, -0.7082064195775276, 0.3661454196313209, 1.314104216899166, -0.2441216940535231, 2.0138382754778252, 0.5219720954022979, -0.08440099763819482, -0.6467096589101514, -0.36467836426192457, 2.306805171234094, 0.10333405365920315, 1.262206300587313, 1.2385757211726727, 0.0786512979538671, -0.0446569301783945, -0.7978964905353421, -0.7341983188707576, 0.9061681213460211, 0.1070785877700045, -2.1287955756401415, -0.03971436372203894, -0.10957554854168067, -1.0317721302803744, 0.5993302414050995, 0.6123891869516165, -1.9146406027175389, -0.5346724812004263, -1.140909676169055, -0.9218011862017488, 0.27611730546102964, -0.9881133157145163, -0.6348662646698552, -0.40453729148031137, 0.5490850093087994, 0.10449493299406218, 0.7058222782976669, 1.1573538404416537, -0.9614417476066206, 0.11039493566755493, 0.8016514059839949, -1.0999458151114896, -1.2537006155798813, 0.931769887114095, -0.6461245870221363, -0.583460013639197, -0.9265736250708216, -1.3079107876503053, -0.528389767905448, 0.62761091808355, -0.3351114611430507, -0.19252255814410482, -0.5539637811185102, -1.0780381690215899, -0.36024421304719534, 0.40487342139413346, 0.8273606518739184, -0.2632800799913896, 0.6091457655412053, -1.4683341216884573, 0.9334821307825095, 0.7871629831549233, 0.3110198224106242, -0.7390068869208783, -0.12142732607052047, -0.682575283096325, 0.757967165609461, -0.5075729205837868, -0.11858690586463072, 2.312019925911996, 1.1827166724325398, 2.5605087627947176, 0.4504053399188213, 0.30833615112301993, 0.4395390057955763, -0.3102740398455176, -0.47513590682940166, 1.9197995391230374, -0.057986766993555844, 0.40667950306171746, -0.9311249518862825, -1.6081698979146364, -1.7033414267080773, -1.1548182787566532, 0.4591173186661342, -0.22126557360431712, -0.8931423124095793, -0.4730945723131449, -1.5713279143291838, 0.042243251969781355, -0.13675379123545883, 1.5818686396946895, -0.6671392597715344, 0.6068864566857306, -2.066749712250998, 1.0166034670789614, 0.7872049592007335, -1.5370113666767096, -1.4157897348781787, -0.6571753489676143, -0.0073887060348982025, -0.20964059111239142, 1.842231958342178, -0.7335304642031956, 0.2603592655580558, -0.24727516775674271, -0.12878384178251495, 0.18061216815427464, 0.5520102397033649, 0.59836911473434, -1.263347844489138, -1.1297726718055079, 0.35098777857068997, 0.6671280250584627, -0.9504464833410847, -1.7319145858764533, -0.7191313345929545, 0.778220364395407, -0.13120556048835122, -0.2930163511505559, 0.5723346703893823, 0.6203708393226456, 0.2070121538250916, 0.2504069869217224, -2.631300644202274, 1.2304876155132989, 0.12374552127660925, -0.3119765375252944, 0.24839138525664695, -0.1624153403778225, 0.03880244392900311, 0.6158820453287145, -0.5981193189630719, -0.30265359442735773, 0.2853163858135379, -0.35328868813706593, 0.882172885773135, -0.12961925475721936, 0.06243420099283874, -0.20407710211890429, -1.5949026874652747, -0.05332681850296319, -0.25597623856642276, -0.6030242198434205, 0.4088883202636772, -0.2724833852008808, -0.45929307858413176, 0.38697114353479634, -0.30186361360214947, 0.8892702547518307, -1.5902155659117287, 0.1280189328715702, -1.0606800869205806, 0.29698071047896596, 0.9178955776947431, 1.3204150787059499, 1.9096001735626094, 2.0246106010626352, -1.8886998371777806, 0.17210627716791888, 0.5173357468686053, 0.21821777482903415, -0.7469644301115992, -1.5153025298846639, 1.4750641794860442, -0.012974963571520922, 0.30800329068321186, -0.13644745817708911, 0.060062407256992176, 0.43707696467535867, -0.4342808065669149, 0.08406524833082493, 2.120062200683758, -0.39093327003097744, 0.604848796983356, 0.9747407688885689, 1.012873772943999, 1.484776688598748, 0.14565192873522928, -0.9294574487154434, -0.7571009810872806, -0.9386802556218249, 1.1602915547581503, 0.7893195458148732, -0.06367056771853903, -0.15812194267803795, -0.7149486541702276, 0.8231769198784274, 1.232763521495371, -1.146675753152276, 0.5240190746997556, -0.9345501217515976, 0.9493595584367673, -1.5446192639792005, -0.3182492668955925, 1.1361942311054651, -1.145113482369334, 0.9739359234143615, -0.05841150864303299, 1.209516920788085, 1.1578737392495533, 1.0079838324611112, -2.045985771110317, 0.31763376711687136, -0.6693994649557887, 0.7872340825098989, -0.06219090357218694, -0.4887568391095863, 1.5264479465661827, -0.3920484186494468, -1.3841274063303197, 0.9141674224442334, -0.13399877228790466, -0.2383751675490254, -1.4089934229838479, 1.5497639675164128, -1.4115187301366752, -1.2316301831360181, -0.4075135129474034, -0.27807277617596804, 0.16055275587935025, 0.3822750196275415, 2.0936195435761773, 0.08483080701202206, -0.42553701943795863, -1.5213654253629316, 0.6610673515383165, 0.8510208092372255, -0.12233978003488, 0.5205292747850148, 2.5691121311598972, 0.13206472221872997, -0.2935492442322827, 0.6666703683850778, -0.9817375451511643, 0.25713755671616667, 0.18450887391512988, -0.7031562630047683, -0.27282672187157186, 0.9797623849731464, -0.9521997441000268, 0.4189269010623663, 0.07265230453723724, -0.5690752366847833, -0.3834312229563053, 0.5547580599772614, -0.660840001199387, 0.8690939961288345, 0.6286101267287627, -0.8030869088145396, -0.4403845106326689, 1.6136934748883152, -0.025545618694785378, 0.4121108237247161, -0.7099613669538072, -0.0820084862859561, 1.1658044052170125, -2.2633259411386595, -0.33500756427622663, -0.4332396299087868, -0.51771218110873, -0.17599895386113948, -0.8218468597925086, -0.14128842540754843, -0.8802180892372109, -0.9099975918055594, -0.5809101072983743, 0.35829864679310924, 0.24582058796063788, 0.08582685153919768, -0.6888794127719298, 0.248428760381155, 0.3681953510986335, -0.4119406792648015, 0.10295452460701619, -0.028514516594771975, 0.29777232727863706, 0.8033790542554038, 1.855731462672373, -0.9915477914770672, -0.39104957954484354, 1.8604829261476872, -1.3498707308861384, 0.6985676905680062, 0.6491575771420562, 0.10035814975085965, 0.6203657041059164, 0.03720130058393096, -0.5092646268916621, -0.9522644140450425, -1.1410759953910785, 0.19107807200401367, -0.46218201119755625, -0.64002492430303, -2.1257015836539916, 1.2385096001374738, 1.579659452635625, -0.3357229908464301, 0.18491188600986957, -0.3025292534015403, -0.125549804848653, 0.622928495685437, -0.40809712587392005, 1.617634084815633, -1.3903083795868942, 0.8455260891545993, 2.405637871088736, -0.0418063625320119, 1.3018845864309894, -0.17197041932468912, -2.2541117032362497, 0.376683847715228, -0.5960809546537884, 0.49012293971249343, -0.9331394837018785, 1.6819198933778177, -0.7158309082227594, 0.9297067612987469, -1.2692584190046803, 0.8420013194403864, -0.20389300980685746, 0.576569789963951, -1.1187440105143156, -0.5856510449204204, 0.9663331828007576, -1.7177271455306033, -0.014639223084981728, 1.7314859050882176, 0.6987110800208967, -1.6848834226351845, -0.468054031300935, 0.2231411040063078, -1.2079120248207287, 2.0110030501455016, 1.4453850086239999, 0.34059707215507334, -1.8213959334958643, 0.8699402772722297, 0.4899667100861624, -0.01173787871675348, 1.1948559206670855, -0.8870269587625144, -1.555705163842219, -0.26533917383348415, -0.3325290424739039, 1.5977665804314234, -0.41203089860517084, 0.49183361850554513, 0.5136570154037132, -0.23309124875198506, -0.7998287164209388, 0.530066185314952, 0.47106304564421286, -1.0105968114955957, -0.8353508972894879, 0.12377709284481839, -0.07289187751377658, -0.6735741109340289, -2.0639344018430106, -0.014438189818046943, -0.4713457882035365, -1.3988791318705927, 0.7076705525000143, 1.0974072497097722, 1.1672671573256546, 0.5553099499949979, 0.12122031680888311, -1.3280507129101098, 1.1654608124772015, 1.3139075127865134, 1.28261825548601, 0.8583778828163117, 0.4508675701062839, -0.3773168693728364, 0.16884703765184494, -2.5899418769593017, 0.8980383022257733, -0.7871723126611332, 0.008146263601196916, 0.15100042746757067, -2.158690321719755, 0.5154773443584927, -0.8968793509306945, 0.12745529032276473, 0.3057102963260676, -1.127194036956006, 0.06889018035163645, -0.29649779158358486, 0.4000800574133786, 1.3294197922581654, -0.9809012577471112, 0.2604706024238921, 0.5802535538390949, -0.7974783258128166, -0.6640912726671294, -1.119222930304624, 0.5834025731102502, -0.25723586541301474, -1.618253196199123, -0.0570695619599075, -0.43841397343582966, -0.6767231131676439, -0.38371376805174173, -1.9996328333376983, -0.33850140623335534, -0.1183524981649774, 0.005796690030477999, -2.458306016054147, -1.099750705180441, 1.054860270281014, 1.1651235359219074, -0.8686068833819991, -1.4001372299430193, 1.1272944804074991, 0.03719751404379593, -0.06732456664178753, 1.0123217113273348, 1.396494377415687, -1.114892120467897, -0.23680354926169062, 1.1762829232717322, 0.35544788004728406, -0.41986744728203046, -0.3867023929082546, -1.483298749076887, -0.566334552372417, -0.03321061530877886, -0.8527679221181403, 1.4516682272189547, 0.7320822341298279, -0.05200885253027685, -0.9525949548843667, 0.5751795467491231, 1.178459960930901, -0.10762850518883417, 1.5651830651133336, 2.1380607452390663, 1.2280945171647695, 1.4042702000856067, 0.09325784801982663, -0.3557970327475224, -1.073778288097418, 0.8968276612463406, 1.399133831515596, -1.2439663723417378, -1.781799686206601, -0.33427106612358554, 0.889230360742913, -0.41170088971799085, 1.2155279834457413, 1.600649868770159, -1.6424774434123148, -0.30897369601229935, 1.047363878453214, -1.0791866371859211, 0.34680511458320423, 0.9927888544576774, -0.8514984695838704, -0.8372280244524042, -0.22804642016295132, -1.3868435427851724, 0.7441016059552877, 0.06972829881636747, 0.3420780025264497, -0.04386730461990216, -0.017778941397242242, 0.6102135468147727, 0.1101978218029996, -1.401046648194382, 0.6208120606616816, 0.26306079867835747, 1.6277476977056633, -1.4148077742490233, -1.12911289812443, -0.4018145604094114, -1.3755867441903893, -2.399920233063965, -0.020319571626188252, -0.895842610909627, -0.3494298955785707, -0.2738387174328631, 0.34922230639219626, 0.07109890321458032, -2.4101191646725644, -0.7411692543552041, -1.3233841458208606, 0.6863453426487733, 0.3632155343313335, -0.5590033258828403, -1.1449685446383917, -0.7258003922221851, 0.278797530701865, -0.3441402294664407, 1.441339424212574, -1.2335052347473323, 0.07612868920434228, -0.4241597163106437, -0.05332877983539378, 0.10099084201256278, -1.8787758687909357, 1.4045284087841965, -0.04347827565492549, -1.2990797348095602, 0.6319627183761264, -1.0748380347638893, -1.280830568026441, -0.4632576940943757, -1.2762157345443148, -0.4871099169463196, -0.8573516675952042, 0.2602500067557723, -0.663512812580364, 0.9193611678505703, 1.4195120671985408, 0.31768737978504635, -0.22676062071355782, 0.7472485772463154, 0.33979457913367445, -0.024989366536706515, -1.1780091950874647, 0.8422172106604986, -0.9853850143769382, 1.0084091587937258, -0.5446586568124329, 0.2287236140419025, 0.12649973956792954, -0.8624432460024017, -0.2042801144909528, 0.8201641258212513, -0.8429169760408267, 0.15786776211979775, 0.586990037118922, 0.7581270686613231, 0.13813966047716805, 0.14287983497159015, 1.542247836275435, 0.6889352238499454, 0.3790751131802156, -0.36007691647378387, 1.5453032787583676, 0.4475231964904419, -0.06905081640069816, -0.2556692520813782, -0.6423795723912976, -0.6500078649365075, -0.6577072095504994, -1.4866829628942408, 2.5030140049559653, -1.0572143847418314, -0.000571660449572993, -0.042894005602608545, -0.4591852328122149, 1.2843268761512387, 0.3968454779394536, 1.138745996685296, 2.4071733886455227, -0.10540633867195442, 1.2714215049136428, 0.04757946360595818, 1.2348108652417815, 1.6311115642560317, -1.6302649244099794, -1.2745470694966483, -0.8131839077565575, -0.6825393122927416, -1.0794370197645617, -0.7204636565534043, 2.1467941519636455, -0.18535362890328835, 0.6625127934408671, 0.38979365484662193, 0.7719784843101606, -0.4958538436662962, -0.658575404725063, -1.8250261743740281, -1.3009369789521832, 1.1569797741579901, 1.0803875458840382, 0.3519814471093802, -1.5678550885987372, 0.17700126122173684, 0.19570581803986603, -0.9713133420910822, -0.40681730492260765, -1.079374837348168, 0.9333820675088979, 0.7164115790249227, 1.5974993677559646, -0.27698287787067033, 2.0383895476075855, -0.6836849892211939, 0.8311193676081333, -2.4241121219014663, 0.31596002357495434, -0.999473279382509, -0.262687475352513, -0.46071381621370666, -0.8976883600787323, 0.5219272929937467, 0.9722622620644177, 0.552832436548929, -0.027467290841698567, -0.6107378749038481, 1.3506129449321138, -0.4521398968561788, -0.22117060492964993, 1.3204666166460701, 0.42542027990331455, -0.19467559818902735, 1.3362817877824478, 0.1643979281153062, -1.613150980719597, -0.5326178763831365, -1.5741387694417994, -0.2358632094400509, 0.35096623923842685, -0.40087086833885227, 1.547569381699142, -1.7090186764224344, 2.2199280575728784, 0.7516533958698258, 0.6804837145322774, -0.19556806995297935, 1.3537057525493934, -2.0138393066087383, 0.172351936169543, -1.7024086384702934, -1.0519290071418026, 1.6258351842437149, -0.11856858846558817, -0.8121335733777978, -0.02927583999406098, 1.548105034805526, 0.6981009969478109, -0.990277098683295, -0.15604117684813257, -0.9747927516511783, 0.4652704424950469, -0.31289780730884004, -1.651056798736739, 1.2755967903796157, -0.13648504411430237, -0.48481306969894616, 0.023313382404551213, 0.48504298344685315, -0.8507882704201493, -1.039212404883905, -0.653701398776706, -0.5189768622716721, -0.12449303534256825, -0.5128172446702866, -0.06818346256734656, 0.510667943805758, -0.20971767447744363, 0.7975878663589364, 0.3042695491801, 0.2654566914993375, -2.0012906991903865, 0.413870629899118, -0.6025010011948203, -0.14082858261327996, 1.075340195058932, 0.2593371488480129, 2.62922759693777, 0.3324210527578405, -1.2020419530087723, 1.1926421271709948, 0.2347858166167028, -0.9756048534996443, -1.8200265368846862, -0.5169307203823522, 0.1500518697766681, -0.038484274917838325, -0.5595155602432803, 0.7826664898369591, 0.4484219149387221, 0.29541985156163897, 1.3984689244673294, 0.25998037440140653, 0.42332643185294355, -1.2422400480672728, 0.2176902105319219, 0.728761958261402, -0.011206770084421624, 0.42373795905496436, -0.0772966783872132, -0.1844058501562145, 1.5231610698492861, 1.5815719719777372, -1.0224998294567542, -1.608411795245145, -1.8940383890496493, 0.5392647246180361, -0.9404210876785811, 0.24515734401955552, -0.8758837658412391, -1.528076170772824}; + +static double transformer_weights_q_dram[10][8] = {-0.9954168307888536, -0.7025528681323762, 0.41098923499226014, 0.7739177723108309, -1.2762292342683303, -0.1434065696905791, 0.199025684270468, -1.5400573604406471, 1.548288167937, 0.9288465316923816, 0.08390244767011035, 0.3572785103117973, 0.17859923880951847, -0.6768899292657692, 0.8504258697467754, 0.9425485271043043, 1.8547476587140206, -0.03019556689050345, -0.2256181742270194, 0.19368409881631005, 0.5058710736668895, 0.1038460098414191, -1.4076687315200758, 1.029960808199997, 2.177326020841736, 0.4365480813048655, -0.42153332375097163, -0.9320608828189856, 1.8110431275164358, -1.4858191479600487, 0.7389689210845545, 0.6644577289945207, 0.09402273928088646, -1.4671607394596426, -1.219750082862799, -1.3274229125145334, 0.6099936154303692, -0.11014269025953972, -1.3293671463788634, 0.7101787049919178, -0.01670896018294231, 0.43343311885236446, -0.014621424093204098, 0.6955788134794414, 0.5722528182048355, -1.481720319316519, -0.15323533618009222, 1.090316288383937, -0.9430074874135619, -0.1734020738525506, 0.9803566659279874, 0.0627858851186502, 1.0423699879551078, 1.5545069571528942, 1.5849730687530486, 0.7199388940089966, 2.6380786365181796, -0.27680484002022715, 0.1962794539558957, 0.8731470189472956, 0.010205327986369436, -0.8838416943783096, 0.8068577169597195, 0.29925023340409146, 0.8239191817788585, 1.0202696745617659, 1.3346481596559676, 0.36384746366328413, 0.7611949933670529, -0.8829189545685341, 0.26915516555170543, -0.09599439254200862, -0.6554716217755595, 0.6816100143946399, -0.29262366803238393, 0.9362614654567366, 0.1418089057088939, -0.4836971414215709, -1.242898069994524, 0.2730005353024221}; + +static double transformer_weights_k_dram[10][8] = {0.11501735450468505, 1.0157942265133257, 1.6129488803273395, -0.19175241722939693, 0.6164470190315824, -0.20570447804044192, 0.42155963063098567, -0.5707540620409073, 0.6536593231539053, -0.29432626362033404, -0.47610390457226875, -1.3121219556703199, -0.9264218514606051, 0.14788650580579352, 0.0069296369726892315, 0.3306231644074124, 0.8545701717376761, -0.4324600332331524, -0.024493143878920487, 1.980986216379721, -0.2658724362020457, 0.011103897250099562, 1.0111021595209633, -1.1665892611773085, -0.7991803895400539, 0.18661178764402744, 0.8742346952912949, 0.22713168745929768, -0.5133236613036435, -0.5447919995948828, -1.4490806809539707, -0.5830552203885363, -0.007188030468140175, -0.296150919949663, -0.7591698936771379, 1.1809578134345797, -0.14668266051521825, 0.5946658094550371, -0.4752871063125886, 1.1838674589073483, -0.48408003859590065, -0.34832623473704294, -0.031424129829246916, 0.6027021077218985, -0.1269124796513161, -0.132580840204314, 0.8622146933847438, -0.6652501624993471, -0.018728729244763993, 0.056387506785403815, -0.48921141096064424, -0.7306000207552646, -0.6274502774485388, -0.6020537188199624, 1.313122245567395, -0.14388808008330586, 1.3163800108985646, -0.12593952342837475, 1.25609380794485, 1.1658575421017066, -1.7009294128404835, -0.3443663683433915, -0.9552666410033216, -2.123695546730074, -0.9533932980859413, 1.5109902204218253, -0.062040923189698165, -1.7641855643145632, 1.4985053270616493, -0.4079372826543253, 1.429769590030981, -0.2897447883816845, 0.7736151342348289, 0.6104204582278638, -0.5422032040096507, -1.149255707834347, 1.7075504892947724, 1.4528943457305363, 1.5535736491676595, 0.8145713078829363}; + +static double transformer_weights_v_dram[10][8] = {-0.12165398416725498, -0.13585017018841927, 0.8520383693040029, 0.7245001435289563, 1.3299880805922875, -0.1805351705743782, -0.22203877342660364, -0.5230311319816758, 0.045765518028111664, 2.1112388578012884, 1.9700777629678679, 0.1456185008563352, 0.6952680695280342, 1.289500316820128, -0.3238211924056418, -0.8891278822176073, -0.42661916146469137, 0.6485611566020152, -1.128094765763347, -1.5840451502971633, 0.6965634921004461, -0.33600719481813285, -0.3359458033736853, -1.3453794288815801, 0.782406872557914, 0.16436581820924961, -0.6098672123657596, -0.5846446870404606, 1.7665907233368394, 2.253287365111219, 2.1818716851528808, -0.5497385523974774, 0.13346330686979527, 1.4238494481371482, -1.024560317933999, -2.1184228571205432, 2.7190025950526526, 0.12139097966886359, -2.264633819910481, 0.3073860300996402, -0.7067903733730903, 0.6106696781448256, 0.9068876194863097, -3.317724464737154, -2.0497241895681757, -0.10894532272353238, -0.7411727659275126, -0.12690932620061937, 0.9755465820040533, -2.2324805857840126, -0.41172630952063033, -1.0396879806496875, 0.38836715314064946, -1.148341236578185, -0.13701257775185274, -1.2830157440037042, 0.5193131643764798, -1.0320197896016023, -1.809474915977338, -0.1212982442332069, -0.2953960807718986, 0.40810561816935464, 2.080423035876765, -1.6117772384994753, -0.7770214056299425, 0.379905274145285, -0.9775608318995274, -0.48822228555618374, -1.3000959690754121, 1.4827558216775214, -0.8285588045938762, -0.6205741491240148, 2.1497158382519235, -1.1455161335907829, 0.844733308455809, 0.8508105491449758, 0.3061881865842359, -0.5136891309162446, -0.11046637288796825, 0.4878869471857865}; + +static double transformer_weights_lin2_dram[12][6][128] = {0.16773671218212843, -0.06372312245930913, -0.6625850298997638, 0.31931330490352056, -0.7703083579211024, 0.369010898692774, -0.9262558726002627, -0.021452503506505422, -0.6884402260487072, 1.5154027937733978, 0.8284697701567305, -0.07697958106921719, -0.4538814926580921, 0.5439309292438045, -0.5492443043774654, -1.220225030532012, -0.7053512461796413, 1.632643282613422, 0.5778426489678986, -0.9229177377752995, 1.588544297460673, -1.7481169305157809, 0.2618776316461439, -0.7711250331583439, 1.4721431859882452, 1.6321252809774605, 1.521708343024266, -0.46073261039758234, -0.7747734720993155, -1.3354599996427268, 0.9861401026653767, -0.575980258880269, 0.0853876730028182, -0.6195540436182536, -0.5432771078257063, 0.3060459872354665, -1.824118723913547, 0.8784176817828129, 0.8097094976615903, -0.361780627962229, -1.467071190440473, -1.8907115007272879, 1.1242546008439889, -0.4974181028535098, 1.829441455586246, 1.017979249905673, -0.7075497604105697, 0.059183606525579274, -0.13056990600722507, -0.5832122715205462, -0.01409309201012074, 0.016108610412205803, 0.1900118760884006, 0.24188780949423172, -0.8882450727066196, -1.3576659214518099, 0.07447367725510536, -2.991099769542917, -0.6488322635921112, 1.8595982643945574, -0.702641433986396, -0.6416959601570708, 1.3390388750212445, 0.057488906459266735, -1.808725561176733, 0.2948187135806436, 1.1497414866629478, 0.8709941695277267, -0.2850339815191343, -0.4997261831464098, -1.4398917507631508, -0.2148727154738073, -0.031164729254402425, 0.48150661412660234, 0.12415703923674576, -0.26613703422724105, 1.0565002395567262, -1.6752860867796824, 0.1869147939846373, -0.7272110183291539, 1.6245102578872348, -1.3773924349992401, 0.14296540214244555, 1.4878267201868336, 0.10331510654880505, 0.9062060348158155, 0.9324085143967664, -0.21818888199568304, -0.2522508930003547, -0.8562525871887124, 0.10204130138311729, -1.0184106320915587, 0.1825164284873822, 1.056310703030919, 1.7552903725196911, -0.12454007621445604, 0.31880532192621097, -0.35541825354040035, -0.8580393155101081, -0.2682711254651047, -0.30783295275138195, 1.3170139199898268, 0.7531186614185573, 1.192570085627795, -0.6615475858876328, 1.4991876630051717, 0.30861856418442385, 0.46151436623585584, 0.3960375120229514, -1.5852068567014443, 1.9903541747766398, -1.1185087223822021, -0.5183442785156127, 0.06782511507671637, -0.13813126796841926, -0.8649990189511263, 0.6978353775870149, 0.16085392211498364, 0.7383270750320552, -0.6856342770612354, -0.6045226539767258, 0.8110514204550441, -0.36508901079756473, 2.2802828142762928, -0.7663535452926638, -0.3887166303815122, 0.9034427218611359, 0.21868488058095606, -0.30457226174639157, -0.287175489125426, 1.3568449350217864, 0.39711905418048105, -1.1763187968954603, -0.33474769656895564, 0.917254226523988, 1.0804852401399638, -0.9584787505991971, 1.7478622379080422, -1.2473029790869914, -1.982585782186715, -0.41852445481952294, -0.9465815043529053, 1.3486167490991765, -1.3147522922373933, -0.14921512592164993, -0.6510935828594568, 0.009685462499594857, -1.0764421921168665, -0.12975724308626338, 0.4720265080850217, 0.3117809833804109, 0.8469168005900016, -0.520242573974674, 0.27675686046474957, -1.7178145403893597, 0.439729002709256, -0.30048055544717606, -0.6302171098523444, 1.241050608643494, 0.5721350887681553, -0.0022023636536079735, -0.4924114110139152, 0.9950463422748212, 0.9816810712679719, 1.9924377989279343, 0.03900009491657034, -0.2935571188258591, 0.1266892245615102, -0.715464769225636, 0.3145853867440553, -0.3835873169761903, -1.0953446648325833, 1.0121232148460444, -1.0957236224096085, 0.17063463111383734, 0.5102992173497909, -0.3658969046671184, 1.23797611806204, -0.18059200075977175, 0.9936325102325779, 0.18430235850671245, 0.16517189020344797, -2.016269812957052, -0.3616199185761283, 0.7527532999342817, 1.3277176349050535, 0.2920534284459897, 1.0606099435377094, 1.848598832091733, -1.3301443272735525, -0.5759958625549068, 0.27878675140631204, -0.2315083920631258, -0.8288316208067809, -0.2635580627160318, 1.3355871376746895, -0.8117302674348011, -0.23432703924765444, 1.92799930513707, -0.23101856846075614, -1.4238524703136513, 0.1368000358051577, -0.2055684135567207, -0.15855445409422964, -1.2600442043395892, 0.1701769006730323, -1.068866010850334, -0.1904292641612836, 0.5892434527813512, -0.2157459392172624, 0.4055498592698905, 1.6497067243577175, 0.7890192766736421, -1.044353487265588, 0.7953139847174688, -1.5740154854045074, 0.9665654379132748, -0.3889094455704384, -1.8426397459593846, -0.9001191779220159, 1.7045921258988515, -0.8923330121142684, -0.5956915482032328, 0.011227289589172133, 1.7111591357647962, -0.9587860284026688, 0.7548194520215976, -0.32603844480628175, -0.2353359336920787, -0.16729381132141224, -0.6023878547302806, 1.371156314999161, -0.2459473828028695, -0.2620130902224386, -1.2172056461838572, -0.20656000988613168, 0.5008110746890201, -1.4028780271648753, 0.7193747259694553, 0.0660307754939295, -1.3093771377458805, 0.407051194515542, -1.1823392140768092, -0.4019555472426395, -0.26250820888118304, 1.2702869545254583, -0.24272141574465245, -0.42155102572483116, -0.05194109601117269, 3.292873619493133, 0.7890333104486489, -0.6211877906484109, -0.8047810389893006, 0.9678567436130486, -2.079988930109922, -0.6016769585932343, 0.12364670959331653, 0.7229553379296235, -0.5227730192140618, 0.023991105176350242, -0.0017528334343272331, 1.2586605379107056, 0.8446327540395329, -2.252502331262609, -0.5270068966745032, 1.6223796347828976, -0.4278645067985037, 1.6333830568090013, -0.8062257833307152, -0.30685337459460577, 0.3507708774563464, 0.424527526741457, -0.03735386264172313, 0.229879937036083, 1.1454140027646036, -1.1872670475847902, 0.6262020869197982, 0.7589488691885292, -1.6862092963785988, 0.7944545737967115, 0.9971081922053232, 0.7560471613916118, -1.1851981001821967, 1.0965175918763284, -0.46530937265986, -1.2761702411382863, -0.9791491731581209, 1.1589807765966766, -0.8156014346461856, -2.8072546995497247, 0.5334627416087777, -1.3798149493182552, 1.3972706448160608, 0.4552374166958973, -0.535433943499853, 0.8920580452737524, -0.5856331944062472, 1.7623274652492553, -0.2852747983665435, -0.18313041510663963, 1.4659299617833124, 0.1519470164480292, 0.23355499681619366, -0.836602381173288, 0.18618502715241547, -0.08859676768441688, -0.7180391575300691, -0.36232537769580714, 0.36477740973605915, -0.9281105879066266, -0.46197664970984853, 0.6483976493075976, -0.3812217162848902, 0.4303579894467762, 2.0043530514779873, 0.39102979400332366, 0.37534637396631415, -1.071734524715999, -0.16045645113900145, -2.998145904788263, -0.36470187389744846, 0.03991547011616779, -0.7008645685896715, 0.9912516955548382, -0.7450675439952815, 0.3264674970899282, 1.601666916097199, 0.5405397248625541, -1.1861306612606524, -0.522172803007203, -0.7727094284088601, 1.2277562505941912, 0.37759283992313625, 0.7444682278368736, -0.6522853231400494, -1.0696424743836717, -0.8054574164094268, 0.905380130000978, -1.1121207299686113, 0.2063449976062078, 0.5176153181186626, 0.2301751658467518, -0.17968415020039138, -0.5804234791794292, 0.522042470813759, -0.47680230351950187, 0.7668678996668346, 2.1152176375874023, 0.4635399730851282, 0.7692324460373827, -0.5214713943997042, -1.6311809160767827, 0.7017462722924709, -0.31859839125881545, 0.20304228378387937, -0.18790051825211995, 0.18432739014512065, 1.1541296937922023, 0.4450818568868103, -0.13551483948610296, -0.2758105920455811, -0.5849315949646472, -1.0646125679003637, 0.27411289538745437, -0.5032261617196119, -0.04351057134624247, 0.7743236339777182, -0.6756715811861062, -0.2671752620926679, -0.23914374307205996, 0.16461452793247355, -1.4436309225983486, -2.20506341329235, -1.0189819575984795, 1.5608022939480573, 2.31499985378701, -0.4181529433643855, -0.2711132087457424, -0.7206084096900425, -1.2504073094445143, 0.31340429692041716, -0.1447897506201982, 1.1850402988106572, 1.9541706849775027, 0.11232761778850357, -0.4382234425091706, -0.3947615339868321, 0.7015762348678443, 0.43950731587232217, 0.4486281613565141, -0.33259394965579864, -1.2893276502905346, -0.5665027824228605, -0.9867864794525018, 1.7152028381164288, 0.7425175887812803, -0.4541542908237512, -0.04974419881485532, 0.7205327224864219, -0.49642760570489125, 0.5806736618394556, 0.8088452773706619, -0.15195744367862507, -0.12096553277305616, 0.6220396950025358, 0.8874367244840082, -0.960123924615042, -0.2512769100863725, -1.3487372983592427, 1.9195263893870158, 0.1391130058484598, 0.3556392382753691, 0.022946113835703726, 0.06403402028906036, 2.01431714516637, 0.9153269759513197, 0.45535078555080316, 0.8164902531014034, 0.7554878281598991, 0.7302943512899034, 0.9227450720901643, -0.2149435624765486, -1.9175638929241665, -0.47494584965396475, -0.8209686635530825, -1.475086806478942, 1.5375697346337323, 0.43409387407100747, -0.5748944134752534, -0.1207717673708367, 0.10757938709427231, 2.24973612340786, 0.5656573548928321, 0.7510332313304937, 0.2925755284670311, -1.1385387437599415, 0.9278383480094607, -1.9329319879816766, 0.8833452963447278, -0.9531724053699292, -0.1039290425260258, 0.4382286101469634, 1.8998623656623255, 0.19200494459198952, -0.6716950287224315, 0.5638093918454188, -1.6242049283972644, 1.7704636715303947, 1.6534314391102312, 0.92655666075164, -2.1666623771571185, 0.3089037330906556, -0.34387294467445684, -0.17869075221031164, 0.45228978471381315, -0.9526180775686287, -1.1784311215584218, -1.4588182758831976, -0.3751354576229393, -0.3058513410728059, 0.9384734481636833, 1.1326237644059438, 0.12950394282796612, 0.7421113354249786, 2.22774088023295, -0.38297985887788083, 1.184609638956563, -0.28900852784476955, -0.38476787730344003, 0.06257594537962448, -0.8447175394855944, -0.3276448761445928, 0.9520069001238655, -0.7029145751675628, -1.6244073387265128, 1.622978343226983, -1.2795553886248943, 0.2494267093436905, 0.6236424924999387, -0.04290636875881789, 1.8562326434548018, -1.3390517668015733, 0.5090655455389611, 1.2848563335735044, -0.5387392229559257, 1.6741064751678032, 0.10066535315992477, 0.8949591322162106, 1.6846660415357275, -0.47037844642707904, 0.4157622049238856, 0.540404845364168, 0.3967936830533677, 0.43668944123398024, 0.2112361885627918, 1.185672884091169, -0.33641286222705097, 0.5497594019101291, 0.12465203566067538, 0.38350811363315446, 1.4507326394999236, 0.14723038127353738, -0.7869045408490771, 0.39357209249435554, 0.9743220259735553, -0.06453115565194864, 0.38254243983530506, -0.8643740939583053, -1.684728335866361, -0.20622146179421566, -0.2747979191346741, -0.07028871827775147, -0.5729020560099904, -0.6189757445377713, -0.1510371111896753, -1.1820077963068163, 0.6043354866597276, -0.9774217378587312, -1.3380178663597784, -1.4201147833071752, 0.18880445993987796, -0.8427639940831457, -0.32186427356745245, -0.006664725012722541, 0.8058032956183504, -0.23641847937920588, -0.6756647705708424, 0.4773883748212866, -2.185477701275724, 0.7531165422993013, -0.8203844714762077, -0.4004758384259698, -0.6468022951980026, 2.2667765095579213, -0.1464154957378096, 2.098114036236069, 1.0184508455410493, 0.8103126555466662, -0.40972058902905745, -1.1414090507678094, -1.3867326701405396, -0.4507753555588849, 0.10028961530046718, 0.13126844765242035, 1.8046340365305968, 1.0498294815194782, -0.1970397367331956, -1.4653721149167949, 0.28738863276181814, 0.5271374800610847, -0.1451944493283091, -0.9800599971955779, 0.6516285157791157, 0.3396200289963888, -0.8198525721107438, 0.6319579574491423, -0.3772650215173409, 0.3077068224849206, 0.31720206688921, 0.12158776309046304, 1.0809042082121207, 1.0642567891228714, 1.8179097447438652, -0.43206935605397984, 0.37786874569296014, 0.3952043620022568, 0.3619801074518372, 0.836701763727239, 0.13589241191151316, 0.5983402387018408, 0.11083062853937264, -0.47684235510432976, -1.425496108886025, 0.5861440987479868, -1.086649842646286, 0.8692343861045037, -1.5595017100635853, -0.11939217655297334, 1.867839017091306, 0.1529344462913203, -0.4142188866098133, -0.015382150772253089, 0.02331025826997036, -0.31332150638072576, 0.07177806286427546, 0.9588513248678675, 0.4790246289141386, 0.1782800679264196, 0.8316439535085373, 1.3697451219813022, -0.29239194315140027, 1.7130334754533454, 0.15301199433584703, 0.2516538496321531, 0.8052203626705442, -0.8193169757784692, 0.8297372716531863, -1.6382362402194854, -1.039626938505833, -0.8865946056863021, -0.9294253652017392, -1.7978162276590155, -1.992621134234571, -0.05491414933488196, 0.7607121087371761, 0.07984366129268702, 0.5462619894735057, -0.2682509648059717, 2.6409716720600263, 0.45749720934429716, -1.5363699364147407, -0.7376116600379029, -0.00034809918522295523, -0.0446268595336354, -1.0661827948417526, 0.20144275615808793, 0.7334562425309233, 1.552508206699953, -0.4212114236659149, -0.18798580599722212, 0.362342131367099, -0.40201566793731663, 0.24422295735481817, 0.5936899101332285, 1.4911129590651635, -0.012571888777807325, 1.1564868960369348, -0.4347382827914363, -0.03991151500405277, 0.8894520643614005, 0.6750877041971858, -0.8924490272423622, 0.06802820117873785, 1.3941390498912603, -2.2183459123693248, 0.728823441885771, -0.20738631995329626, 0.5619451894738027, 0.24102109818707865, 0.5988075233622759, -1.197341333157397, 1.141794439805377, -1.4503023284963743, 0.17970074803850108, 2.2516048850144963, -0.56902356791673, 0.5251052705298633, 0.41230439233508803, -2.0610354044549024, 1.6463483630850755, -0.3895932560221762, 0.023372481314313378, 0.3726580742458444, 1.6009305244339782, -0.5079472543165146, 0.026058442391582896, 0.189669602985114, -0.4909043876322673, 1.251004287596872, -0.006491959097523364, -0.34124077949668935, -0.7483757154858288, 1.1325804441514433, -1.359337165187181, 0.08751016369069563, -0.03871848811440984, -0.4955048405923246, 0.290692491485043, -0.01520214370946306, 0.22914631673454838, -0.7461512339849881, -0.6443114053235841, 0.11847291756872175, 0.19439551671935018, 0.7833381602627896, -0.046667928646890046, -1.0787563446019552, 0.592125761379138, 0.8248616990025323, -0.03807672876925321, -0.48943896240142126, 0.32030678738297486, 1.2611027845782836, -0.8146138503383921, 0.707894179465638, 1.42836604641047, -0.6933696474669173, 1.6507389021911445, -1.8867586637765072, -0.6801063289945823, 2.506643391838216, 0.5179032468570114, 0.9157906679850603, -1.4615127877407137, -0.7014811604960124, 0.7482144125451611, -0.45231597591557254, -0.43328033036609237, 0.5546620950055203, -0.5335895092359707, -0.5577499923860028, -1.2434580142633445, 0.7479993507037666, -0.2454859351558673, -1.9763318246520143, -0.617052799856045, 0.8295099746093358, -0.7985138795193706, -1.9669454509751187, 0.21568313531934488, 0.06218865917825329, -0.21979058106116164, 0.551630007075062, 1.588518953960295, 1.7006327293948955, 0.4788544238385019, -0.41615197068085047, 0.32476024918516005, 0.4828001936355227, -0.2857415896451339, 1.325049359243402, 0.5943271959845479, -0.09542742482466746, 0.6091191876188028, -1.0204861021625729, -0.07122776033319436, 0.25474731658461836, 1.0326277403651098, -0.4032539921927929, -0.2859438908875716, 0.4275765566731029, 0.2610713689915173, -0.15565017655025964, 0.4811708838672695, 0.46865565860373054, -0.525365919337175, 0.39464486011730787, 1.4521501913227826, 0.4920754113025742, 0.01001877915514528, 1.1302339241072494, 0.5012574226736635, 0.40239815358228387, -1.023646734531218, -0.9290930154151816, 1.9346717432885199, -1.2125355152651964, -0.5977126284420752, 1.181293809817535, -0.6689545864836354, 0.33663422390191694, -0.9150073073042401, -0.46210018982909373, 1.0727263376369174, 0.25920697127003867, 0.19738682741687985, -0.2176025539922073, 1.5618547104206084, 0.0874164574098187, -0.18022449922123449, -2.177291625468745, -0.6691715014457149, 0.26238802318984583, 0.7114854381779321, 1.3594786178950642, -0.5105267831106245, 0.8957599457510734, -1.8832700802531435, 0.3734138241025368, 0.8513556242527552, -0.06483231029486143, -0.07775530075881103, -0.731458954443067, -0.1906549073376802, 0.5839211556095644, -0.18220420821816138, 0.5399541172046803, 1.5514984760944803, -0.23835669566472859, -0.8129680193587631, 1.6959480854121158, -1.542485498562725, -0.10582221958284689, -1.1602067061862453, -0.732183062829934, -1.032232792355313, 0.40740998722283345, -0.4461691518402758, -1.639602822546497, 1.737408764400146, 0.5102671515154679, -1.104532973746827, 0.20282323529368904, 0.5451864270031233, -0.4174196455050283, -1.4803962625447804, 0.0711312016026537, -2.4575219310050103, -0.29715235983531224, -0.9060734662625927, 1.0377336775259156, 0.9787682718988012, 0.7181988996772725, 0.5755430190021412, 0.7397220744929801, 0.5318564513368325, -1.3215398823928493, 0.40397027552612724, 1.3257611388643007, 1.8091618397708604, -1.6680040155978901, 0.19219664371439094, -0.5576196967532386, 0.7132732615745503, -1.2150580083595408, -1.4463083092451903, 0.9548065220526738, -0.12789818738063033, -1.000610995686859, 0.7832918030824878, -1.8489698667637202, 1.3870856731187504, -0.6090513936305421, 0.5193597474251914, 0.2818036067134789, 0.5815463164249131, -0.567803366150921, -1.2006864703832458, -0.06290120845238856, 1.962828854249686, -1.1333475754839513, -0.16505100921916624, 0.3678799166519874, 1.6492263827929101, -0.4626305949889216, 0.9386977073001513, 0.01711080123922268, 0.9872047773741, -0.7134319737419914, -0.44937185484417963, 0.3885563045101157, -0.1988361913928128, -1.0830569238314645, -0.3597416459932602, 0.6560019605281613, 0.19154241112008105, -1.4668221584548882, -0.6920493662799277, 0.572714186764936, 0.6916475040075348, -0.46840541134330865, 0.9121131054406446, 1.6074096919057093, 0.11841252923863307, -1.4402773937935691, -1.6930804949542624, -1.1162555921139607, 1.096287644463553, 1.0639045161507725, -0.28203213808230204, 1.1732559505317561, 1.3898278424498873, -0.12386177897129297, 1.1385254001814025, -0.7663128158804938, -0.10502618788525488, -1.2868290476443027, 0.39333359256220896, 0.10555634094791072, -1.2555614763203795, -0.3695707657351879, -1.3087493812000008, -1.2121987546438076, 0.7016264290342246, 0.11644777354668061, -0.9859202287793376, -0.39767440147104705, -0.037356754428425336, 1.0076307089633902, 1.8450467799321841, -0.4770321781666495, 1.1781691723419236, 1.2069309607629284, -0.4175503084970734, 0.3129035109422391, 0.6794906080144418, 0.24235117892116984, -0.00015134736402941756, 0.3528969484018996, -1.351170406870033, 1.2155283753301906, -1.402537825666173, -0.6203795676764393, -1.3742391623665489, 0.6052811339871745, -0.6746837003668393, 0.24199407601003217, 0.28736119321050707, 1.7974505990090723, 0.3186949805078729, -1.0063738446337889, 0.043447057275043346, -0.9162521618284151, 0.5740193687324415, 1.524994279141021, 0.42122454074468846, -0.5058031215088832, -0.001935251987053423, -0.059249535360658356, 0.30669357584478807, 0.22049638564358517, -0.7209260326374053, 0.578590600877031, -0.2814338568695432, 0.6471911034482357, 0.6355326129684161, -1.1584852824016685, 0.8754522360715343, 1.3631571444107151, 0.8948572423285246, 0.12695806790569364, -2.0123992429307687, 0.17385489080177374, -0.31875591594593894, 0.5421847899339702, 0.20730337920079658, 0.505578016119112, -0.889916275322328, 1.222002486711219, -1.545636873356207, -0.5794523266184156, -1.3620271852148316, 1.5575703663389617, -0.2193018045216694, -0.4677903230735593, 0.48272717104738166, -0.4675832048242394, -0.7543230939085693, -0.6098586620173682, -2.3682295377243645, 0.6261136824601904, -1.4955905073070523, 2.70409271869755, 1.6902670347280917, 0.4675422030146951, -0.7686061607983937, -0.8420265795888455, 0.04748961117866384, -1.5506214471694328, 0.6597456051505508, 0.9810895192151013, 1.2060122914372473, 0.5094505048346659, 0.948354175015636, 1.1841352702569934, -1.6107945297750212, 0.37363430210542137, 0.36301946174407, -0.4713654733277363, -0.1357900352713401, -0.8317998284783682, 0.143060129811001, 0.357954244463521, -1.0013479121939963, 1.1320693665450008, -1.0722974377446446, -0.3378876880640738, 0.6373983419863073, -0.7974884472315626, 0.09171832221402072, 1.1137754394535067, -0.5173249508895911, 0.3641096108993, 0.37562510410149125, 1.149953675035897, -2.4150876953168714, 1.2388796995290943, 0.3019276636231262, 0.35532009889140853, -1.268683781896227, -0.7208155426015784, -0.343031757238289, -0.8745959707232299, 0.6340160893384413, -1.406093789252919, 0.5129399194497606, 1.884693292443038, -0.7579009703382211, -1.086805433546504, 0.8863788687809607, -0.759425281130206, 0.5268352654420474, -2.508898843182651, 0.41955502862273386, 2.077603848983364, 0.7432663945852148, 1.4916593464656478, -0.8128170056509231, -1.4563234165763541, -0.9539524744639091, -1.408413616302921, 0.3718249353749545, 1.4767717300094048, -1.2913932275907674, 0.09416680314491302, 0.6229077094186778, 0.30995661293173044, -1.8878093325127658, -0.4463001426607724, -0.6393035105594692, -0.5219090322847073, -1.1431032202175238, 0.23996231659805162, 1.1809752738189252, 0.8051030956141957, 0.400987603269216, 0.9557302887303304, -1.7460166934842984, -0.36154499394302375, -0.06522295552167409, -0.6009801257039329, 1.9887587169725671, -0.7018354826915972, -0.2041348043523018, -0.6175366203935166, 0.13159474089261292, -0.9446699924851863, 0.2068538637260416, 0.31382355603718387, 0.30840240507887645, 1.2878146580745333, 0.5856219393424119, -0.6568938854009293, -0.05232317203714638, -0.37799051437745823, -0.3901095063695634, -0.37088956582253585, -1.0038556934540235, 0.5356482043193802, -1.345197705402757, 1.0500306672776403, 0.30840104248656297, 0.7653967450899795, -0.21309922823334831, 0.8392040761097412, -0.16416710878946741, -0.6709972930186268, -1.5423915961168462, -1.0433007967333698, -0.4096728112440253, -0.9174412411641567, 2.4195675460926807, 0.08813241769030257, -0.5916662331186044, 1.1922469683938692, -0.009977679759738923, -0.5222022711446821, 1.6344397845287502, -0.6799665641060869, 0.8410052507767574, -0.1350848011563506, 0.2508398220742027, 0.2465317823851017, 0.6839967409804478, 1.681812863852406, -0.39747629739679413, 0.0954623781181105, 0.22696508074722685, -0.9432999224955897, 0.3002815391057095, 0.6247436756056247, -0.28001777607518696, -0.268935060413408, 0.9243691012328462, 1.0528496388391924, -0.7876280793719912, 0.43382470243213683, 0.6289022860101765, -0.033711366761932496, 0.5805204623048469, -0.6754668943387816, -0.394637468929365, 0.48355518941861697, -0.22244804258316303, 1.685628214162959, -0.11568422609670699, -0.14295613102166807, -0.37391290726473403, -1.5435990936321167, -0.556050658038526, 1.0753715521250267, 0.46704881675224336, 1.0723003552935109, 1.231529689961776, -0.15439993951522968, 0.34112426931531764, 0.27947376218479614, 0.5107161167447202, 0.4689867373861166, -1.8048261251158957, -0.7118422460610452, 0.17700385429720378, 2.209744990011742, 0.5891707013601143, 1.8192381659692514, 1.1260293291302985, 0.9524656674056426, -0.4526268909737412, 1.4407795793808869, -0.19531408663845634, 0.2283470744920325, 0.011234729330484954, -0.6034955540076896, -1.0733837614648305, 0.28332303940663434, 2.247768381111992, -1.3579610652989789, -1.4299091422968209, 0.7741861134374209, -0.7448851196209746, 1.5139575345025822, -0.6996137533248805, 1.189260513704343, 0.7560345480854492, -0.5955564946507164, -1.892210580413274, -1.507844840921064, 0.6443820369253852, -1.4107609501193221, 0.1755020796040547, 1.107261067809891, 1.6407744690151982, -0.4798733122332927, 0.40063712375861044, 0.08195954117181646, 2.0152721910595703, -0.4021684274370984, -0.7504431079196243, 3.4052517316861657, -0.1670293961990677, -1.2975465623015716, -0.6311541134061391, -0.1405561945796084, -1.052764847449791, -0.02729241829228328, -0.7854270758121915, 0.028516722473608622, -0.6353277757640107, -2.036958121665058, -0.642928398294438, -0.854329570376376, -0.4402500408509159, 0.15257075985667826, -0.6819127080659984, 0.6468347012501044, 0.0930693446845866, -0.48887663896467776, 1.289961254197282, 0.3077351479215355, -0.6084945465256884, -0.4955153130182802, 0.6648048184574585, 0.8846331641907219, 1.0191412836502698, -0.4547337947749852, 0.3866792602527052, -0.3608091685311371, 0.4315664458823607, -1.1405729828723672, 1.0658378320568267, -1.6215943351797741, -1.4960032394689278, -1.1752867571353782, 0.7754013715005769, -0.12596887340485374, 0.08870089142026438, 0.17102026852126964, 0.005037630800198677, 0.5154356751840908, -1.2980855885884446, -0.95942170120491, 0.025064490896124083, 0.05774506261158576, -0.44666312777814293, -0.36009115973957706, 0.7734222385388448, 0.20931239869905546, -0.6405935855372006, -0.9779825570939976, -1.2602630407674884, -0.11213116060164738, 0.31683998325190177, 0.9608162613161545, 1.7617259402782062, 0.5332249726108867, 0.0480691978209954, 0.4698413593912798, 0.7079213520824291, -1.4719055966627554, -0.3554080437826893, 2.1224401502693415, 0.8671446299467845, 0.3939521074267198, -1.042531579871164, 0.3447086045230242, 1.2430525196600999, 0.8932360765812469, -1.0899041626739954, -0.10185537856378798, -1.7802874942339497, -0.5872424427404682, 1.1342357318491285, -2.2425671656367667, -0.3803110761017083, 2.600781602195285, -1.2290888874925296, 0.24569789929243, 0.2854925491407574, 0.7325172508900486, 0.9087490791207049, 0.16351892393813683, -1.415052295757837, -1.7206306176358126, 0.060234739722926374, -0.08942974231790239, -0.5326903183397282, -0.862827297911899, -0.15735909472717494, 1.6833283452032104, -0.048846256996197955, 1.4441404573947205, -0.6577610674094022, 1.0122300292640196, -1.309665630454003, -0.2686500917542327, 0.5540823200822727, 0.13944705380804281, 2.1332591207760423, 0.8065789677701352, 0.3252000063592445, 0.7887411128500289, -0.21228362057381842, 0.4527845805518231, -0.6529880062202584, 1.459939956281907, 1.8440846679363176, 2.127957081016315, -0.11724072209427554, -0.49699571473838994, 0.7646349717820928, -2.3009614984683644, -0.7185790399995472, 1.4575816264107626, 0.0009566262638368953, 0.8182082579799453, -0.13585198410986143, 1.3382523033803306, -0.6484224375517338, 2.027865524163214, -0.9966208197342079, -0.5301112335696907, 0.39150882760380246, 0.803042507106028, 0.3410600781005436, -0.5308353724645087, -0.698898758742007, -1.2280870462459705, 1.4250241437929307, -0.5029629441562755, -0.1258884709654688, -0.2781538960944018, -0.26209920904526157, -0.4591265210119423, 1.2686458890561711, 1.3501269652114032, 1.1802856827413442, -1.9918630409006053, 1.4124073508805255, 0.15947531968114928, -0.13562273551657536, 0.2973109282823203, -0.17685951799635244, -0.8235967956477911, -1.1095909880643675, 0.6923423498891493, 0.3542872190261509, -0.17985102389955504, 0.7847874077044223, 1.3102764929145028, -0.40375562127323683, -0.02378812527403701, 0.3259968219452401, -1.6932063886335549, 1.0608228443140864, -2.2581574537180726, 0.0005062460095738251, -0.6803068888120192, 0.03270078938345398, 0.9449563832937318, 0.2560919649556906, -2.1057408864224376, -0.5052118758709067, 1.421469323382145, -0.3788953447378539, -0.703456192532379, 1.0230324323469668, -1.0762757525300937, -1.1234187168399243, 1.0117046306174486, 1.0939727242689221, -1.5401055327147126, -0.9165098978210413, -0.7320998923855627, 0.36213834223499025, -0.4660635928974643, 0.8929178346215048, -0.5635566812842832, 0.8443361157461801, 0.2257379259786798, -0.46836797703096, -1.142429334719264, 0.5942375319267897, 0.5776330966220249, 1.11889000511201, -0.6225115798235682, -0.665277265086938, 1.3021608863661167, 0.3080846247560111, 0.2305268915721791, -1.4195690799131522, 0.7021465907786252, -0.5065603208361397, -1.0515292011570208, 0.03676529016321239, 0.19083714569711607, -0.45158221578290686, 1.430262537673349, 0.8564108501854661, -0.4684289952147731, 0.7358095889904793, -1.376958147267138, 0.29869224683807033, -1.9492123387745222, -1.6500691440373887, -1.0464692699857279, -1.5861004634732518, -1.8197269407302108, 0.13620180501268486, -1.2674896295636169, 0.5064578533223967, 1.14519788200572, -0.31357045824328467, 1.5444242142322857, -0.9755898265306233, 0.7260021867969293, 0.2983002122558138, 0.33007518208148007, -0.3012251999336654, -1.13629994945274, 1.2591509479456338, 0.23558756797719393, -1.042853289185364, -0.20293909969523755, 0.6958730281917784, 1.8791244019244464, 0.7131591899986326, 0.4556508032642018, -1.6345167208845197, -1.403341194881998, -0.3656703260246628, -1.179877567884639, -0.6956208755464927, 1.236197607064445, 0.7256395410256029, -0.9942873953265658, 0.40637929060102135, 0.001340784350614637, -1.2242281615824748, -0.0830634473482318, 0.027651783756700472, -0.13730254477957476, 1.0745886240915608, 0.5232663992732692, -1.1069337244040973, 0.3068199062637968, 0.5412303781268201, -0.1584788333976485, 0.055360709785356864, -0.010179517498452952, -1.4631874840764194, 0.43434043468018996, 0.4956327203352371, 0.1608750017124351, 0.21204181061562222, -0.848269051241505, -0.05190576930487508, 0.4342286760696506, -0.15638601277079034, 1.1680467944309245, 0.23523486252012651, 0.2931013470203736, 0.05383532865352654, -0.3722041294537168, 0.4322781449509412, -1.8638660542434666, 2.0608887843113273, 0.4025575201110334, 0.46665062174560024, 1.4335012256250086, 0.7398075993729516, -0.7527397495032649, -1.2318793580686687, 1.1497258936055144, -0.7014386812841402, -0.8522103401341584, -0.4526081006714111, 0.476164533281359, 1.093816318098742, 1.1597883185839557, -0.2865809153674455, -0.9793326842802514, 1.2156737659864476, 0.7265837346915243, -0.6063765414897068, 0.4590523848413457, -1.1963506272729019, 0.020177369737896966, -0.5196649709771612, -0.11042132844938202, -1.7803264017675031, -1.0983863507243814, -1.9943938078659595, -1.0180851564689184, 1.343090275133355, 0.05121250188699606, 0.18965693411991652, -1.2847595366907714, -0.8590688058956931, 0.7559867086719737, -0.6093457976035641, 2.287441638998896, 0.2849485575478564, -0.6258324519513977, 1.4242859506295802, 3.1760359675054914, 0.8806279132304711, 0.3677500720568211, 1.2699629292559889, -1.373229118623735, 1.3148250600931315, 0.6221202243471828, 2.161209836417307, -2.4149736340373655, 1.5154278721952714, 0.7974627211294567, 0.23813604752289289, -0.900197705620758, 0.4516990863796165, 1.8523087243586671, -0.9440633915033274, -0.13944564531024706, -1.9962862794970841, -0.876802883170169, -0.45909954643471435, -0.42349373411850877, 0.6253901471648027, 0.2884795399986682, 0.1993641699969819, -0.9750244314786808, -1.357435592557576, 0.5377569832746467, -0.24566106658181208, 0.7760340274462584, -0.13718006475583142, -1.0471331516010438, 2.3698156234871006, -0.8608042226343801, -0.21695269183024965, -0.3963647723939556, 1.3140655172664333, -1.5496430190473407, 0.8299243008006667, -0.23469208225352878, 1.17563374798573, -0.5685406484500056, 0.04936433736528017, 0.3097883608445818, -1.7607966379468067, 0.039978934156923385, 0.22648827570429167, 1.8868326165910845, -1.3359468501779264, 0.6020370854831343, 0.09420444683357239, -0.6254964658092993, 0.5933545751971042, -1.207196105637615, 1.22200570063805, -0.8370218706835116, -0.7362169554932866, 0.47824603981077524, 0.33189582274019075, -1.1410350461719765, -0.20545838480263884, 2.6831380407821084, 0.34587641407530284, -0.37209211976632794, 1.3972167882558741, 1.5468541517541319, 1.3774160713468802, 0.0890331713821522, -0.7617963846193975, 0.7359602107842439, -0.4591000552529005, 0.822805243465044, -1.3704452982024895, 1.1241415524841798, -0.39079861469985133, -0.3682221393582528, -2.862730990973833, 0.3127318821569574, -0.5488202376298091, 1.8942511988856663, 0.5697559112545517, -0.3016669085440337, -1.0631859015069938, -2.5359882587942857, 1.0391700460549405, 1.2895062553420336, -2.202145401537113, 0.06557171746910258, 0.04402596162369398, 0.9080815115907477, -0.04818489310611712, 0.8230410704104014, -0.797744380603796, 0.030779877800647056, -1.2360195428922787, 0.954992325464375, -0.41043047284201517, -0.9164072583967519, -0.8504048338756758, -0.7056726337225566, -0.6237624307170951, -1.8678225332641818, -1.4928026705324111, 2.113734390813324, 0.9503886873331864, -0.6764406676203423, 0.3300941747271548, -0.8577004158636681, -0.9508899749801195, 0.7649728251851297, -0.27781730274050287, 0.4576448036103095, -0.9612977596469916, 1.123017096832584, -1.0472700356156177, 1.070974103218303, 0.1442610329440957, 1.3037843089034824, -0.19194700432383366, 0.3936578615259371, 1.7754003059642411, 0.30763463139827374, 0.00448664532664562, -0.9659194892052072, -0.8249002512298813, 0.9455827325947566, -0.7695467082668787, -1.4939045852147155, 0.49132298190860557, 0.6712301995907592, -0.19850197254674795, 1.0175234856545008, 1.4541756482189356, -0.08027367417510534, -0.5181152695539641, 1.875280493218953, 0.1620107139280786, -0.7384881145759171, -0.5171161188288925, -0.06403923371006702, 0.12978190732109626, 2.4681068345281907, 1.1769716081503954, -0.7324609521575315, -0.19152297948200578, 0.2091053252025545, 0.3954333505187698, 0.15717459862331037, -1.1768146617436632, -1.254123931164029, -0.041531422478273954, 0.04187102672842283, -0.618389217305553, 0.018142080648009342, 0.9811928870760606, 0.38678827937826166, 0.055547484850162934, 0.13317012902523476, -1.800475631340105, -0.6487949930861694, 0.9647930068590418, -1.487718346596927, 1.9671268250571596, -0.37501801123158296, 0.34610293084708627, -0.05437993080264503, -0.6150924237870229, -0.43787079759759806, -0.017150838121724413, 0.27223581970527805, 0.13579425531133751, 0.17114666895138375, 1.4880740849985945, -0.6523866340206094, 0.6724032102680387, -0.2498818144309833, 0.3684109792157164, -0.05652868718922079, -1.141024988505546, 1.0062944399776677, 0.8612263693463771, -0.8651985363612925, 1.6409555329882874, 0.4760963910597331, -1.4235677497447479, 1.1982758403837634, -0.6480863852455645, 1.6982344632787765, -0.8187706458007767, -0.6608925110148092, -1.878968801793851, 0.8393277068222, 1.2099518385773633, -0.3010794489170866, 1.2234601520436406, -0.5316019239972422, 1.4282755674874026, 0.5703393562713633, 1.0888867653411374, 1.0643032788775597, 1.6935580592037394, 1.9364675418998223, 0.47240320094667826, 0.4170350364772233, -1.5902014047218211, -0.8490049971049308, -0.47339514182184983, -0.7405519451390545, 0.014168618743096923, -0.2220062149826033, 1.305130180708799, 0.22749278757750177, 0.6791469709199983, 0.007274426609199737, 0.29066318209770114, -1.2970923134475996, -0.19855173166745999, -0.9320767794783268, -0.40967432838228596, 1.1036337112977639, -1.7195390885648585, -0.6096349652250187, -0.6653270917294025, 0.5412489072541421, 0.7035313262086113, 1.4350188139062847, 1.0909763189822588, 1.4130923511612945, -1.0050719223251598, 0.3236472053381355, 0.6827457566049314, 0.40094481205354565, -1.5498598643101793, 2.6210019152932134, 2.0300902584395386, -0.7043940938451111, 1.0865988277002356, 0.9057001363970097, 1.4810649208771722, -0.10142946285532765, 0.46874289915027023, 0.9625740766310946, 0.09968113439098554, -0.2034198776993104, 1.0358096108450814, 0.16224668087220992, -0.045055182295066304, 0.5554786252919994, 1.2291191037431475, -0.3864008241497015, -0.19365121140022182, -0.20931069081798342, 0.4689683976066863, -0.5298256491030603, 0.6439945266787103, -0.19085594755902638, -1.1213635437310359, 2.375386241376686, 0.5881989810255106, 0.008273393570788342, -0.1861092734243662, 0.8224893358060019, -0.4218577232399481, -0.0032231663149655688, -1.81141037991999, -0.959887551414178, -0.5680617901151106, 0.9541157159307389, 1.12682412380246, 0.43895749888939467, -0.6706243964684786, 0.7825799663791051, -0.7723577262137622, 2.2529183253773697, -0.6198793866416389, 0.04618501623459061, 1.011174817648215, -0.6746114093338123, -0.5115801644049819, -0.01629195036762023, -0.5969933305425132, 0.26546536698365886, -0.3030480871350583, 0.3934547673395094, -0.23801758053719915, 1.8769504574256326, -0.24529552485016695, -0.9744135424772613, -0.7357611817796008, -0.21184761253034057, 1.1465910271880095, 0.11630436842876272, -0.4541508223849615, -0.36746508462131555, -0.1250927382677157, -0.440940747042338, 2.568724923652603, -0.09677977060333055, -0.3659348731125605, -0.3009786276980547, -1.1046192339132022, -1.4969909024911252, -1.705538843107525, -1.449579663145317, -0.23500821987366438, -0.9673606956637038, -0.5500313848742133, 0.808780940775045, 0.6111080247478592, 1.6395521189037061, 0.9609987857589979, 0.623642262045472, 0.723527014546075, -0.26343272683881636, -0.769665428394861, 0.17013249407359873, 0.465846208938873, 0.45598613407332417, 0.39401855978146333, 0.6591988409228787, 1.7266262581251506, 0.39676442311673654, -0.4965304502203755, -0.5142557769956214, -1.6655794153163535, -1.2675332626508233, -0.03314875902158776, -0.783876097094789, 0.4953254858094202, 0.28676342719419945, -1.0849457635502189, 0.3239859963424095, -1.5041496090466209, 0.5864069300955381, -0.9391275890746287, -1.0570473532938447, 1.0555673924267797, 0.09380606672705916, -0.3671423775673435, -0.35514842522056567, 0.411199894209508, 0.9946171745115864, -0.2316865971443836, -0.9112994229878664, 1.2023959036495757, -0.7622509288960355, 0.9136149401717509, 0.30962342705126583, -1.3385900681264526, 1.8165778911592796, -0.3070462119648475, 1.1668079912055098, -0.33944606940905453, 1.3710129669800468, 0.9300579839066637, 1.185142796653237, 0.10854220774737425, 0.6826304187866886, -0.5461042938952528, -0.11638255103314456, -0.08029464734292162, -0.42338854207086507, 0.5084747076597527, -0.8165363388123666, 0.6131311512926562, 0.5583314398652852, 0.09082361393666324, -0.8489450230349159, -1.2492858128054651, 0.34492034644528907, -0.8741986078561492, 0.5534680689510987, 0.3509848535144375, -1.463483294540364, -0.19006125129863014, 1.1315240293178561, -1.3435315937863141, -1.750741728784698, -0.6311931076898489, 0.7270923030390775, -0.5387718100480267, 0.9056367098865701, -1.846270591936921, 1.2272709847028767, 0.6799784552405994, -1.2083016255148442, -0.9766777894153844, 1.3236020557952743, -0.9018831271999473, 0.09157528929486593, -0.45525424561822153, -1.0049561715754778, -0.6200845763863535, 1.733477852496386, 0.4598612881320188, -0.2949519680069482, -0.10651038985747713, 1.478184862839466, -1.66916461604128, 1.0071272154577544, -0.3191246615023448, -1.3762881219090572, -0.05091349499804217, 0.8668706188030013, -0.7152198360224954, 0.2864085373632313, 0.04820236445222125, 2.0590829933787136, 0.10533466463098612, -1.185039046008763, -1.0208925536710525, 1.139829687497562, 1.5281883065641328, -2.029543137642918, 0.5209731324914566, 0.5071573516626207, 0.975792856064161, -1.2943315365568762, 0.19877285881355367, 0.011204445485047487, -0.602040653782272, 0.5736299498569932, -1.9785054425068482, -0.5976246285724223, 0.7019319162248578, 0.46197386760890474, -1.214555459415656, -0.9289682655079575, -0.9873330073605263, -0.4452115501359032, -0.7042276239280941, -0.6568950465417366, -0.9712261431242842, -1.5375361503838323, 1.0386438045163713, 0.8961184107636236, -1.1231152704037288, -0.7310087129802972, 0.4532745570836223, 0.6513772767640275, -0.17217271634298267, -0.7351692274922426, -1.3627698357475697, 0.7204891484463551, 0.29854415380834715, 0.3468095182692027, 0.8119840231832707, 0.06978447405544162, -0.24016735136695966, -0.08960307423878197, -0.21817961411038742, 1.1683267443828442, -1.037689638483834, -0.6239271870188987, 0.6620103621803525, -0.09434442862031094, -0.4030152273570181, 0.47070117017904045, 3.1976163385397074, 0.2619100970459515, -1.335463053243616, 0.6057649340496221, -0.32069248128125416, 0.008367224499531539, 0.10177303682522976, -1.0798033214501017, 0.19572546628132184, -0.9972708114342066, -1.1980320139463696, -1.2280764417902754, 2.043254030499081, 0.39400030768000005, -1.4071046643902017, 0.3997987346703504, -0.3505675095839659, -0.6649904581148862, -0.7190676510974615, -0.7314038673207472, 0.8294618413486863, -1.4971922309648993, -0.7580109890249522, -0.19362259003418086, 0.4033127688590755, -0.20302508970364014, 1.0547536665950978, 0.8053111300585767, 0.6621698769014782, 0.10949744083274207, -0.3680243157771866, 0.3011535518111016, 0.23882541455141687, -0.12244992044143885, 1.3013956438407601, -0.3304347302314844, -0.2383161417380752, -1.67036939630407, -0.11106638365989584, 0.4990455041789286, -0.25198767361062563, -0.5842103728027922, -0.1305107898573894, -1.409361808083387, -1.2557975528603051, 0.9117480009446275, 0.14983346550614027, -1.1349702581587906, 0.6622092567614445, -0.39207799039317925, -1.3665663590081276, -0.41128275516824825, 0.4632560672239587, -0.12326350295229303, 1.4215773652232737, 0.3356703315379674, 1.419239328081392, -1.326046400550978, 0.8498409192473517, -1.333424030987914, -0.4828556213675988, 1.159075456642561, 1.9463103138523798, -0.8415052898911937, 1.0060936340045976, -1.6511900176435539, 1.4022116059874739, 0.866511884032407, -0.9339415936059193, -0.9832761022039055, 0.2576454260927928, -0.030459679752091188, 0.481387386454465, -1.9786433296694181, 0.4839032883340431, -0.52661829084419, 0.5378888526826829, -0.7975908049246164, -0.30217127261876753, -0.8390830626369119, -1.71190823631273, -1.5139589626882188, -0.123355719896304, 0.16788051959333397, -0.17019749451831728, 1.6732330041304837, -0.9388831491865992, 0.7187438609965356, -0.5693078627176211, 0.9178670073251192, 0.7073102150037632, 1.7107199047271453, 1.6911825874334077, -1.213522552035225, -1.526918066370356, 0.3182607957611916, -0.7048446726313435, 1.542896177144803, 0.7414214926541779, 0.027571386474332372, -0.5754942139316102, -1.7958306634788441, 0.9412519070406014, -0.9489277592897538, 1.6311155422356378, 0.5653085033471172, -0.41201313101807663, -1.6742963677191696, 1.266664141133199, 2.0918988065309074, -0.21891340206561175, 1.587266678692178, 0.24357517704777013, -0.7155255221813551, 0.6177965287355739, -1.9946284216093966, 0.8872512984658244, 0.4001647745043678, 0.3292899527453197, -0.298976814312964, -1.6703766117775312, -0.877558359633544, -0.07982833124499089, 1.542228511553581, 1.0197136724339582, -1.7015354910808584, -0.48212576394146445, 1.48342039099686, -1.4829678245607811, 0.24934133729286487, -0.18269475995297718, 0.3839558739092927, 1.6891904534141162, 0.4619748421824861, 0.09993013315995518, 1.0462656041957057, 0.18766811525805024, 0.5447603805656711, -1.5745057434452947, 1.5827795236366957, -0.6502743062505872, 0.24046578837235552, -0.04403547820029734, 0.7664612539005661, 0.20144681297018477, 0.5785053189296201, 0.7764022341446827, -1.287512490286816, -0.23619342552685957, 0.6658466177075605, 0.16631539872440593, -1.4536544736540666, 0.2771445813826407, 1.129883095823573, -0.9555005854035606, 0.5683041332657001, -0.4512292838434167, -0.2801704266168622, -1.5059053494163779, 1.1190392605031392, -1.1718879290253827, -0.8841551589218146, -0.8920958466820361, 0.8939826883481805, 0.2034652918512655, -1.1021273970619352, 0.49297323422258654, -0.44848662225935687, -0.5489949380720973, -2.1257290549864827, -0.03594780788378006, 0.31488414200224113, 0.7341021381288548, -0.18111164825082318, -0.010486184647393863, -1.2860170377857756, 0.503103320093718, 1.5011465291329578, -0.21396707680556573, 1.3045604895745035, -0.6531242638897106, 1.8718755909371418, 0.13524241974414905, -1.7665651290994233, 0.41191565756029835, -1.2811663730152782, -1.2088906569879048, -0.8290994826950859, 0.8136601745512939, 0.43626266846062023, 1.6089090600319198, 0.1593815740133984, 0.9298775421247323, -0.4154891414125775, -1.3404214162908434, 0.09528931157394888, 0.448704117525186, 0.6054527978627932, 2.4408592434196965, -0.5166066202685516, 0.4204577595863723, -1.29987773563286, -0.41956356832710956, 0.15024675730990028, 0.826238085727147, 1.504682832366687, -0.2335959164195668, 1.1452390705220412, -0.7142725656031783, -0.6976263977299514, -0.30040150524704784, -0.17978414420698238, 0.03462283540349657, 0.004961040538083645, -0.9686623661641447, 1.0156800590204957, -0.5910526566968882, 0.42668333759774785, -2.0723034039377595, 0.697952343937172, 0.31893183399956626, -0.23088144999338397, -1.509751062694838, 0.10747571439392618, 0.10611992491921178, -0.9208567330224402, 0.41616978812279903, -1.872118961147354, 1.0314063302051917, -0.21287356137371105, -0.8131389146040623, 0.20225111438661522, 1.4199156443209913, -1.5901962373203609, -0.9547182114259212, -1.0807755665828445, 1.0225863410319447, 0.14578447935362185, 1.2886811180355797, -0.4801752859875242, -0.20595689226841954, 0.5459497541973576, -1.7406726509793795, -0.31854406317287715, 0.8234509000335084, -0.6642196576581617, -0.6033204455513134, -1.092767255651449, 0.5099444391903665, -0.007179640854720999, 1.9388046452293908, 1.6002179297200447, -1.7574981376543641, 0.4657480592549505, -1.1366638959357926, -1.0466970244656812, -2.348820269680322, 0.7849763826831557, -0.2438165410162293, -0.4023438236960017, -0.6576455996483718, -0.8069427471635754, -0.1674045631751715, 1.099907646476609, 0.31278547680895696, 0.24422468441969067, 0.9839964884211916, -0.4248525421861309, -0.9541804382014959, -0.8911225638653535, -1.1388382692559194, -0.44118709528048106, 0.10941276154357217, -0.48521233846001877, -0.3686167969737519, 0.6413441803591936, 0.2479211831622872, 0.9766610530990674, 0.11101021374002976, 0.5854427384212253, 2.277491279753263, -0.7693262395031812, 0.5893216873540514, -0.6541864315768986, -0.06938245071569392, 0.8531392120125499, 0.707105319149386, 1.3205623217552738, 1.474365496672677, -0.6540118144074791, -1.1208556692016416, 0.5298280317907396, -0.5483340133806348, 0.4835462118207064, 1.6400307701149688, -0.7527660556091446, -0.2207014712546088, -1.9012367446206324, -0.011845221890036848, 0.11328910546500368, 1.0410718138994182, 0.7752307161020041, 0.10616567929962695, 1.6636658079534445, -0.13618936070901688, 0.07243706212858651, -0.9472077744730275, 0.5219610405531087, -0.8470430861883507, -1.177488097714965, 1.2434604281943695, 1.3975407829596296, -1.4309207608869086, -0.1558221865207312, -0.6512630617583657, -0.7290687216113811, 0.5152733116422641, -2.3595114280610967, -1.6052774277617399, 0.35428426550521314, 1.4875415958593063, -0.7841888048100197, 2.336027669010424, -0.4953367269783747, -0.8787818682467556, 0.7695845202396114, -2.5321239122945287, -0.44810406970440003, 2.260226631338183, -0.8780654507613918, 0.015979923325116736, -0.5691386244762248, 0.6060754235439968, -0.3936854489607823, 0.7969342297703721, 0.26214721724628937, -0.010518057969719493, -0.9001322196203593, 0.0943659621832766, -0.03816736449793848, 0.721589399500632, 1.217004629489626, 1.2833168243970015, -0.5260200198486596, 0.656638231269999, 0.5989106795317751, 0.1659232479155957, 0.364406640125318, -0.8685919574091027, -0.5131891025804275, 0.3759576560377138, -0.869982416258327, -0.7345685181989616, -0.5171796742457738, -0.8894703034997085, -1.0826478091988276, 0.7261075561744313, -0.706131682059633, 1.0589667993101595, -1.1152440995018695, -0.4933058762731387, -0.6712383697091975, 1.12335088041976, -0.09407603144337613, 0.7172806738325695, -0.7579177299008238, -0.609164835229734, -1.3553330327978614, -0.019650584704433195, -0.4803076283069569, 1.2519402070664514, -0.6641421031054549, 0.7043960474728573, -0.2921906301066324, -1.3676515621225143, 1.141874801312204, -0.015024811232282593, 0.5717555419933172, 1.1866504013111483, 0.9827490621042851, 1.7275770946339244, 0.432788235995093, -0.47813886421591933, -0.8714460344191897, -0.3178590722956541, -1.0286045457899349, -0.8025341000321401, -0.9411870219959466, 1.7783275330439052, 0.7255817354960545, 0.5150701229891861, -0.11226405829821795, -0.44163717594473184, -0.1375102757192428, 0.2762049181371265, -1.2497033166837888, -0.27474418761709474, -0.6384138322177773, 0.0025006347911576314, -0.4951545553209257, 0.7986018616075307, -1.660622472181582, -0.3974661297032506, 0.14195508782466876, 1.1742488499645927, 2.15632219900788, 2.3501189146758734, -1.1553701278196844, 0.7966594580004646, -2.1834227246100535, -0.691145872673244, 0.39958220554572854, -1.216755898801281, 1.2147647043866772, 0.6475726058839647, -0.3050369611353702, -0.36082108102321997, -0.6023620659122336, -0.8309067844131225, 1.2084845569673108, 0.24325632249018914, -0.0005784215469045945, -0.4626925507420147, -0.678649964720999, -0.27150483339996007, -1.5234460098622955, -0.9774107703754668, -1.4910310277195566, 0.7903692364559284, -1.4643865224645813, -2.4211016076172376, -0.9100195679190681, 0.7262082426269985, -1.0054943042359705, -1.500777460440331, -0.8688348040549531, 0.16029656369225695, 0.35352988537757307, -0.29194920862061935, -0.9828236038024252, 1.9220050485455538, 1.400174656314241, -0.33869047227217647, -1.016128789591686, -0.6596098468939191, 1.1432761980922856, -0.8707692499175943, -1.772284863316179, 0.1356924010752182, 0.6553645303577179, -0.07983117172640133, 0.1449619784129578, 0.9849951430194023, -2.076356254004693, 0.8728012372431501, 0.03079777593049583, 1.7281834262032811, 2.362709945312936, 0.6098483704805613, 0.7243884070840325, 0.8956610419016614, 0.29369615979985814, 0.4618061956689532, -0.11879885987832625, 0.4091757607417071, -2.2786897073448547, -0.6247729926926385, -1.3077696693750356, -0.7209553934014017, 0.2992554016895504, -0.7419808119512225, -0.27349200057360523, 0.5030962029782104, 0.5078594213457716, 1.8692666106818923, -0.28761598269501143, 0.43218338233503684, 0.2396978620703071, 1.338795258808114, 0.3649867693439435, 0.9999061228905383, 1.0635672960360585, -1.8606842678184219, -0.17218404794239636, 1.2040307377783537, 0.6574250653163278, -1.4812253208994315, -0.0170582056258441, -0.609287115241384, -0.5907400058854823, -0.34076482193730445, 0.7879699185151358, -1.2222599875487237, 0.03389748036349978, 0.9463913483379409, -1.0672796342182451, -0.506270084550158, -0.5237739778480014, 1.8997820918004282, -1.4043267718460093, -0.9199716837319385, 0.6046877389175205, -0.5181588907438721, 3.4474956927651337, 0.8175509219535936, 0.5405546279191125, -0.4062584258255965, 1.1178052087911723, 0.8691431128119826, -1.2312064629781365, -0.20229126984501603, 0.8553434412271401, 0.21621700648737333, 0.2653791661210467, 0.9264513733160266, -1.1659336494666324, -0.948815962845082, -1.866170928563386, 0.1605968107424527, -0.5730941391354524, 1.6610908786986758, -0.5102994863283247, 0.4862291698694014, -0.8880262098400197, -1.0996407788536786, -1.1026872898279598, 0.9316220945417517, 1.3282328751747563, 1.3254764619646495, -0.6396523522765016, -1.3907256888978008, -0.2788578604231624, -0.5677211833764197, -0.19074076031070328, 3.3177770321629443, -1.2338491844820385, 1.2239112871910003, 0.9932110431979975, -0.7005044755324946, 0.6201596788722094, -1.482305424213906, -0.6513123608903771, 1.8598847911090388, 0.7208855533271251, 0.8174526543777195, -1.134330817545791, -0.07194654199784922, -0.3252179452060136, 1.8952069586290123, 0.17766778608163517, -0.44695524379636, -0.7846907726938122, 1.8620527369297897, 0.5435115627741249, -0.4446802970229687, -0.22617275756319744, -1.1506465980729734, 2.120628606940419, -1.2980770068731349, 0.5487025003986162, -0.7099417203135552, -0.09835515549724476, -0.9743457775230356, 0.30435888123608246, 1.7516428594841185, -0.46544921540870143, -0.8497114521365112, -1.0339825534946439, 0.08115843671613096, -0.6066094336440838, -0.13047088702582313, -0.11201905921608454, -0.5019581461983088, 0.47490063643075286, 0.17173503092906178, 0.6431899649395725, -0.23872149766619224, -0.028721712652565425, -1.4369204429877465, -0.7043483767241477, 0.04360439333359939, 2.4960999423984482, -0.13722954472953605, -1.5304535066575236, -1.2346970008334854, -2.266949913807307, -0.4624922500096108, 0.022565602731663952, -0.257368300223374, 0.4356763930115034, -0.586857161879394, 0.06968815002457066, 0.37900863212459757, 0.42857993052128573, 0.3787327798855857, -0.7927822730097527, -0.8920108887781215, -0.08513462495764972, -0.378854974046106, 1.7074643949762172, -2.135423288869684, -0.017934502044962136, 3.406168768770632, -0.3666201942589558, -0.20624326083624842, 1.1189830026785335, -0.05763592033876413, 2.45889669000764, -0.012197041307958149, 0.7516849917169492, -0.07117390174891772, 0.3945233627729552, 0.07195894063173909, -1.8727680007027385, -0.5088098786201557, 1.464993202427589, 0.3449111247951254, 0.8494509722996453, 1.750328003641402, -0.18453310046988597, -0.5931209140159687, 0.8014787143841253, -2.686933468264052, -0.1791076550181655, 0.45165053042716463, 0.5775290716411025, 0.3295729377044873, 1.7846564254581045, 1.53571695111567, 1.3311200985616656, 0.18939885573177215, -0.22625665352238514, 0.00670673012745847, 0.3074008062852501, -0.2920609026154828, 1.545158085939111, 0.1369233115111857, -0.28730531011989763, 1.1047377340309825, 2.063848597546665, -0.38611367554412396, -0.5496375596740606, 0.658716342473419, 1.2177044932260268, 1.1754643008394154, 1.7821255702296483, -0.13443581273542884, -1.6366657813941712, 1.7791989418010552, 0.47287943204761507, 0.2846677372677902, 2.813014693165735, -1.018696411251144, -1.4259861740067266, -0.8038099773962392, -1.1182821619345513, 0.2801496864889041, -0.47159666033630393, -0.1261918572820217, 0.033625917152435035, -0.2951205793197307, 1.4398343939227665, 1.1894959769491664, 1.8501418087438086, 0.956905678821742, 0.014618718399019298, 0.6178045437029894, -1.4101911998665215, -0.0987004649563861, -0.329502482141717, -0.8688135009341061, -1.6481274773858574, -1.7718376142638643, -1.3768346295850198, 0.5659822119815847, 0.2425669838461522, 0.41620952444354886, -1.5710173931120528, 0.7417386987297616, -0.23851486543700182, 0.47062028183460747, 0.39541460589373995, 0.11174788170294983, -0.8088417376829332, 0.0009066596896233819, -0.20745942068486495, -0.03499567459563232, -0.08327198475097396, 1.1300405981040555, 0.9348827174613787, 0.7301012356968105, -0.9673767387337057, -0.5923963974647823, -0.3326058332617738, -1.405921031876885, -0.5013121080507481, 0.4372668690607546, -0.7266655582548127, -1.5721710704372442, -1.201782983516858, 1.2132056318163653, -0.26041490757239677, 0.5373785703708618, 1.2107520352104826, 0.7079229883060726, -1.3471754095333917, -0.7939169687464911, -0.8968784595700237, 0.4176607904866504, 0.3249685672047233, 0.24838805492190696, -0.3672873484804794, -0.6921188907852247, -0.4958325728592973, 1.367317839020472, 0.2524261198492061, 0.6579800168488112, 1.4839827513865715, -0.561632309015, 0.23652079790675906, -0.4903324954119249, 0.09912656547054303, 0.333666129561352, 0.22077326511399206, -0.194041077024394, 0.7531587527492296, 0.5170237486499323, 0.5436111298236262, -0.29364649759959877, 0.43615689634540583, 0.209522404413903, -0.4412538914508458, 0.052580690462736515, -0.4408963005006592, 0.019960962804798733, -1.624333610347512, 0.5003281667388737, -0.2887033795344619, 1.916753711583183, -0.2564454574318479, -0.38792744247312216, 1.7986529290207192, 1.9120910039247294, -0.21705046983702211, -1.1545294505661057, 0.34454168140199853, -1.565777190842104, -0.3039969187778905, 0.8988006272366036, -0.2879768579253691, -0.34422522533382366, -1.3750289943854572, -0.24719613566322082, -1.1210113987995936, -1.2391980530651758, -0.2252780643800041, -0.09421724289639898, -0.33093067100049683, 0.6278696550297107, -1.8800871143889077, 0.17009166575934964, 1.0200651816876847, -0.7529385991063793, 0.2987368142749938, -0.07648699416462335, -2.1502487223253324, -1.5876796588068274, 2.068182515581034, -0.2936924251847691, -1.388799522496814, -0.408484607372628, -2.0180274699762313, -0.032791860424978336, 1.0516193586445621, 0.9494869845586946, 0.995515961126187, 0.41412723052308587, 1.6089495844965989, -0.9474871099590387, -0.5815627560037311, -1.7964528440425043, 0.16538982992587942, -0.7319527488671081, 0.3692795793157511, 1.5611921907449, -0.8978325685014887, -0.2268078626149827, -0.5309962861055292, 0.07201516715432071, -2.434314852616728, 1.449757482527173, 0.4744077558142584, -0.5416351205869433, 2.2660916638054056, 1.11020426427447, -1.6829197968369678, 0.15082170348420298, 1.7621110917013203, 1.7401095555504877, 0.5392519410260627, -1.4235098831155986, 0.056463263594405004, -0.6963548682808837, 2.0415809465850456, 0.43271658564463056, -0.18797275721228432, -0.5568304246735866, -0.48796761821159795, -1.292810580741897, -0.5998570139754461, -0.2346242003304713, 0.8286501834765244, -0.7368561086985402, -0.44376875474220623, -0.0004908173861640336, 0.4208708674265662, 1.2071293877520475, -0.7552071013929652, 0.9236351835845457, -0.05837566001580252, 0.6951583529670979, 0.8306989177074579, -0.19610956093284193, -0.8372845710288846, 0.9482553703319297, -0.9169096044014198, -0.4409489430185798, -0.013881908859372263, 1.6772557940687784, 2.002776378754567, -1.1350981303051662, -0.949826787922004, 0.17216377194136315, 0.29599312680859097, 1.081321363447789, 0.5569746847793453, 1.6637836123504004, 1.6029894061563263, -0.8053048546223888, 0.09560804918091349, 0.013963859727831377, -0.4037770686515219, -1.756106996546998, 0.065952148847621, -0.8570639935152126, -1.2275565773734964, -2.215500214281302, -1.140728747827738, 0.8801581363850509, 0.63667062531427, 0.35899627766440534, -0.14874114920579462, -1.7926897922269955, 0.018698508958621483, -0.11005429828053218, 0.5678560114121703, 0.4524513169226536, -1.4481002752982226, -0.935303827291181, 0.32907480828411917, 1.815968946976184, 0.37263249289836775, -0.6280597716378297, 1.1694640247181916, 1.773715315343277, -0.2319843130014002, -0.7855412487214021, 0.6967377843326548, -0.7152907230181043, -1.3910123695349608, 1.082342797278427, 0.06955842538462975, -0.6289136729611903, 1.4125085287986676, 2.025590134435565, 1.746576388943919, -2.060685831545258, -1.431453126891794, 0.6734912677572197, 0.6401350535533352, 0.435400868244206, -1.0007141329301783, 0.6089290100942146, 0.4291753233203228, -0.9029293377217025, -1.1200409825086644, 0.04397693978192499, -1.10244612265024, -0.2773813968150354, -0.005352229277594311, 0.6573725024011854, -1.4662280689414051, 0.926974844165011, -0.6572916671523635, -0.6537352511089607, 1.55283475817559, -0.6251678518688363, 2.140988791886186, -0.8278147672247551, 0.38572633069031625, -0.6318610716818912, 0.7111190742818572, -0.4416437044439307, 0.367469145902725, 1.2495146354884694, 0.9353787074591674, 0.2988197956163671, -1.5839049003439432, 0.42330444919804316, -0.6469351862385775, 1.2095052233589756, 0.5263061454716625, 0.23899617476391827, -0.9285968325105913, 0.4003040718066842, -2.1561599667291262, 0.5269357871669345, 1.530666394156561, -0.7094783265215441, -0.7181957190268707, 2.1047567102187923, 0.6458685948033749, -0.30107511733828557, -0.24881581245959397, -1.801525657427965, -0.4859330788946545, 0.3473435634019159, -1.4936888563147976, 1.219914038937146, -1.5167554485466308, 0.8047069590125108, -0.9048546980985884, -0.27441611835118457, 0.4306425799188508, -1.7235037406979286, 1.354628016983049, 1.2737042271707677, 1.6191319296034328, 0.735919593851651, 0.4585966464736884, 0.5996372458926001, -0.11047101043242392, 0.3525723705153651, -0.14063353058666744, -0.6142313942856545, 1.130624877307917, -0.12102325767564293, 0.5442117526259592, -0.5403629622028528, 0.8296377545936948, 1.27214363752744, -0.3821121209536119, -1.6498126033020835, 0.9229483990313, 0.9779867268215527, 1.195364231090116, -0.039740256852109336, -0.6468504633660788, -0.1835463801348843, 0.18702699770560685, -0.6190596403307621, -1.7758304801107512, 1.508807177607114, -0.24109338697797905, 0.4631965911323548, -0.7186297277267051, -0.5932230289976798, 0.1649134830430658, 0.9217529559230451, -2.113107054187719, 1.495739110209002, -0.32991814907198524, -1.1285000187041665, 0.7977508692229875, -0.6324676669003331, -0.5207546968661813, 0.4941237199528515, -0.41245780364313256, 0.04939169628599765, 0.21857950385145597, 1.0775869197853591, 1.4174088220386398, 0.10745076413242229, 1.9652881178044732, 1.2144059061100803, 0.45170197162057635, 0.0005771812107460632, -2.027089220978618, -0.35269438817590215, -0.6067042421983502, -0.4462968771961304, 0.22169790172897152, -2.213860133799711, -0.25185231053466395, 0.18349468568397984, -1.234321257122067, -1.2767143227797635, -1.219748011178242, 0.803163868309887, 1.1723362156850679, -1.0511082561993392, 0.5896315959519233, -0.3026497563524433, 0.25857411751629744, -2.6379391495512574, 0.24254161271823366, 0.26758049299320774, 1.3736446383002492, -0.2808055784619822, 0.2722502138472599, 1.3403384783597367, 1.694634248553822, 0.6026873450172656, 1.62299765872056, 0.4762447251944673, 0.08810124426666355, 0.11117370308283465, -0.5050805874169455, -1.1338038691333352, -1.0207840815730405, -1.6422093576684975, 0.22368175843112467, 0.7426490550608933, -0.3142644472236707, 1.0103278730986882, -0.8660143027878295, 0.5697618899554041, 0.4264092604031469, 0.7240844437060513, 0.8266707092330077, -2.0643157683856, 1.9434979202863867, -0.6408643293198005, 1.6432896343445524, 0.9277333393877758, 1.3189945049352763, -0.25650286505666625, 1.965560992268791, 1.8213621585713746, -1.503533271861299, -0.19580489922245364, 0.191616368806377, 1.3181095248614239, -0.39674562813596553, 0.5356448376759921, 0.39311606885126577, 1.6224830274878241, -0.6639884519602309, 0.15546139261435685, -0.7387052243324294, 0.6289350238005109, 0.7282873752125394, 0.3165612132575932, -0.652281974301976, 1.5433942416056965, 2.47683597304532, -0.14916713468644752, 0.9501800034747293, 0.13587660177551125, 0.03613326393674803, -0.7237480311094019, 1.0949707620919027, -0.9769340341766338, -0.05921619047971073, 1.426825388255249, 1.6752120980115939, 0.795453306662201, -0.7755037047860419, -0.15461646907210536, -1.3890767080063884, 1.0529967718142275, 0.9976936151350384, 1.332735503169351, -1.7108387910528222, -0.10824453003093894, 1.2354760527115538, -0.8904457098799401, -0.8169754874480261, -1.1370577022172665, -0.6071774956226643, 2.0511476913856406, -0.7830498896948143, -0.03676275814229943, 0.6038293322962383, 1.472165824690626, -0.7056222632601199, -0.0467107787449815, 0.18807094004824762, -0.42216692790377014, -0.13855549523146243, -0.5433190954101608, -0.9226064296533822, 0.42507353110252416, -0.8172819525228391, -0.7809729727827792, 1.6446573868197591, -0.3656165913939135, 0.6023089914246612, -0.5643132881556219, -0.9633738886349973, 0.24632151425551105, 0.8204484828263375, -0.16201666001698542, 1.685912359362119, 3.06700252986585, 0.6617774942176655, -1.0040453137475622, -0.6172994137123726, 1.6180226180054886, 0.8429893215764661, 0.025460594268897623, 0.3479450777176482, 2.0078238030698636, 1.3393361998974052, 1.4317466616428682, 0.4579330597709827, -1.1274985211458544, 0.9767244079433385, 1.2587933112859289, 0.8476731372760178, 1.7628714799535847, 1.3049896091031608, -0.36150957824597807, 1.5030525940981552, -0.7801386726592521, 0.1513762139476246, -0.35112463351229073, 1.837739007328147, -0.015158507511135831, -0.2991192109089548, 0.46657766925371513, 1.420943752567541, 0.5809320989641804, 0.3551940772843608, -1.0999426989251082, 1.1041690429383328, -1.1560021403810814, -1.1062867754981813, -0.7827461172580052, 0.7959395609646354, -0.18153071461918635, -0.24116708825317848, 0.3990519149808553, -0.15564993281113088, 0.4372657274738833, -1.201873278369289, -1.3700180959347181, 0.6920833223124919, -0.5312294981487146, -0.10902101632296987, 1.248118109915001, 0.20872088585274678, -0.6083934186789268, 0.7423053567212846, -0.34444959772498385, -0.9777483292652849, 2.223789705043405, 0.6694591532307673, 0.28847229101563315, 0.11229000519845835, 1.6408969472159909, 0.6625981775877482, -0.1558226529617167, -0.7205611597593764, 0.24962408033917283, -0.09569261310086963, 0.9771306394522535, 0.034636130743337525, 2.075939890459903, 1.3566617676123918, 1.0270565232586033, 0.7237763615783379, 0.09591731457863975, 0.6889143877613391, 0.6425343157670212, -0.7279578424760957, 0.6830117763416009, 0.6185085759613994, -1.7337209714531534, 1.15745181629871, -1.2081895706309593, 0.6586845642819952, -2.78079601104039, -0.08882181771534245, 0.2339849515986858, -1.2018551498395114, -0.9508896526834771, 0.039812401385598245, 0.5873572672607883, 1.9338021854764944, 1.089671633947238, 1.8393226614447074, -1.273327662575822, 0.9223415325858076, 1.3719765295674315, -0.7945878809532562, 1.2787415555120119, -0.4821841102534756, 0.607473797642488, 0.5683312485637652, -0.6195875521757297, 0.5689569196095314, 0.8781962552006474, -0.8911113251956342, -0.7683616776084702, -0.47162079773443777, -0.03191869811931289, 1.022293595012591, -0.7946302231549325, 0.6032417486934556, 0.4980096428874349, 0.48928276635174567, 0.5660281554370863, -0.12191577116310535, 1.5524890878524804, 1.4946073381353722, 0.48484746551641333, 0.44908973109546657, 1.4917081663181815, -1.8614061954392773, -0.624587572177733, 0.3170694850496892, 1.2875393651128213, 0.1176439522089831, 0.46769590500613, -1.1477561641710432, -0.4888512541791814, 0.29087939445256583, -1.156431660359815, 1.0444105776920733, 0.08884650272073365, -0.48051165567394033, -1.0531656839887626, 0.02766324341023624, -0.10527902120387268, -0.6628173764404989, -0.3033610094512978, 1.7048899457191737, -0.31898415130533375, -0.46058272586248855, 0.21062683777699748, -0.36812460265029606, 0.33652676986636315, 0.3236159180652725, 0.8947763791232438, -0.046623060723555695, -0.47512302722136024, 1.575370258034113, -0.03761268839633734, -1.352386595817521, -0.9483356430836982, -1.028716739224381, -1.5638814718009917, -1.7210422812237611, 1.4945995510345567, -0.5268796561342607, 0.3566423182164152, -0.7167872516194996, -0.4428217812148648, -0.46422664555214305, 0.9369918534027788, -1.7404902110705263, -0.4324428804621579, -1.3367051291338052, 0.25810834246088477, 1.398762352581004, 0.034791693460034315, 0.3981107862143589, -0.7723477433968918, -1.8381312799299088, 0.11133077808104638, 0.9689358555384477, 0.07669974844112153, -1.1946344297396054, -1.8841567320644628, -0.20719681719458505, 0.9002601404675714, 0.2333724929750161, -2.0084680514191806, -0.7270727909976298, 1.0506326108080541, 0.5684322570795058, -1.6364404568511535, -0.07181480501491022, -1.3259578694687586, -0.9984287239140569, 0.030979117600469074, -0.08402038714892086, 1.2942189441837226, 1.5082843130642087, 0.3410030049413046, 0.0057889375667351094, -0.2432666473105903, 0.3981939687558286, 0.17119383734576185, 1.0460524144567587, -0.5746240339508544, -1.0349560837804677, 1.0184000283100978, -0.09955687084553429, 0.35200443059829245, 0.8279914080421767, -1.0798679506403541, -0.4390700834752314, 0.3680381824722795, 0.11464668364155528, 1.2353463697524734, 0.15743561049159477, 0.9256072483796912, -2.1849581690080555, -0.065984099161594, -0.4650474770641444, 2.143907078190805, 0.8816491221888422, -0.003902815411469966, 0.905199590933292, 1.0026700985921706, 0.9885068182490291, -0.9605994188901047, -0.009364231583693152, 1.7276268792428473, 0.22778147331011792, 0.7438423244369328, -0.5870832701281387, -0.6875243358298012, -0.40990083463094634, -0.8747836211413581, 0.2753721538148257, -1.4065218105605355, -0.33899470403862797, 1.4473751097143777, -0.6038191850464151, -1.1385745044486548, -0.4816987181224384, -1.3445513835383933, -2.5957409768073245, 1.260664230909938, 0.2240479886640547, -0.36671037716186844, 1.0528037049861176, -0.5193311511183563, 1.5718955134357182, -0.8159713739539352, -1.4616528319169775, 0.18574134153247543, 0.7170502881582332, 1.088677730777631, -0.33916355744140897, 1.821890903560027, -0.6246604296669839, -0.16633856709516748, 0.7274091035559674, -2.4715771243751226, 1.2879637708344551, 0.8125696535679003, 0.02150375939915354, 1.822498098193285, -0.17001990885000728, -0.052205598859868016, -1.0839349618672527, -1.2509817722769654, 0.9570579186595424, 0.37032567852749, 0.7661708667508003, 0.6372500799705507, 0.3841808718708592, 0.5735256411790288, 1.485071764115552, -1.921358153981379, -1.791669964880979, -0.5758839644664974, -1.4532306051766954, 0.1160156247366876, 1.0767435169705282, 0.6888533485394165, -0.301534039019897, -1.0015286896665496, -0.5136584805608818, 0.6106885504696978, 0.07238255324721113, -0.20658267805579636, -0.9803371411601391, 1.8558602683726249, -0.34684234783223405, -0.138705499081124, -0.7313561090591182, -1.0044446714902608, 1.3591013677668105, 1.4942643445597592, 1.8406160691146698, -0.7615340045466905, -1.6017596501358158, -1.3610928866213383, -2.076656356422838, 1.203987441260602, 1.410835808709077, 1.2990481267032234, 1.4153255218561738, -0.6573925555742512, -0.42027115973485385, -1.5213565790072734, -1.332033491041734, -0.33102623775307954, 1.340110048415235, -1.4261107490492029, -0.5232145959705184, -2.2848088931420065, 0.8902512659612491, 1.674110486119981, -0.972793451864786, -0.07743011620298457, -0.4913319447167086, 0.18282418791198085, 2.2772797990691647, 1.5324980852375782, -0.1815847476714992, 0.4617271801485095, 0.9632684685006433, -0.14506424114808303, 0.5103962896847007, 0.3177090775637023, 0.03191303725869083, 0.6308204756962924, -2.1211644723131724, -0.02930485583633999, -0.13078780011810998, -1.1038727471781569, 2.050182109550436, -0.6470129923265721, 0.4345613421962533, 1.3484671879831278, 1.4888034597366457, 0.8720229260359057, -0.7254503276995763, 0.8285985659333751, -0.5917126528319241, -0.44837495229842944, 0.12722050362405046, 1.2305141892155638, 0.7151072657003036, -0.40010337492322895, 0.413721469429948, 0.19376914373215087, 0.9920291161315633, 1.1147082449222048, 0.29682676074294506, 1.2656905677375838, -2.176072940640231, -0.3306294574129653, 0.2921479170003794, 1.154104526108482, 0.5825126289522653, 0.2701534137189382, 1.1343291794639416, -1.3987613199365359, 2.0374743389978627, -1.1598317103172542, -1.0004947044013306, -0.6198007001117833, -2.11493035968152, 0.6920712069054653, 0.5404300549763246, -1.8568976733896805, -0.0461425798346585, -0.26684094546500337, 0.3621050864222061, 0.44082885192374405, 1.0572972351619618, 0.7193849792885922, 0.6697172441294476, -2.372309233730456, 0.8397967248644236, 1.6908321897138245, 1.0213495345802792, 0.12679064943416948, 0.7409940265311785, 1.0718527529100068, 0.7458811584103926, -0.6468105502000671, -0.869284801742413, -1.3054611274711465, 0.276232984051142, -0.5563759421336263, -0.7791629303501022, 1.3319015834176797, -0.22703800554331624, 1.2742399221121468, -1.0311758922985133, 0.4955890468754583, -0.7995854873426, 2.06240141354978, -1.1343231763411903, 0.4563870076575751, 0.9814598643661121, 1.1276215638225833, -1.9695365549171249, -2.4572973110469056, -1.0220519870845493, 0.018064999514862144, 0.754060062389077, -0.2739183590275094, 0.9986033617806298, -0.6518789292799052, -0.5139154643660516, -0.6566439248016585, -0.34300581824604537, 1.1932986357592312, 1.607092129619061, -1.8735264640919256, 0.5079171532797483, 0.42254046476492185, -0.09860764477494396, -0.25875806103153426, -1.625666094056695, 0.8839111136542974, 0.6302719139868384, -1.1816059491920998, -0.8770360698657584, 1.4760791332584298, 1.0455690189454758, -0.3269341470162602, -0.06246586753421959, 1.301362501195787, 0.06393518361722653, 0.13819751107759315, 1.134165955447205, 0.4153648416666165, 1.9376580364864786, -1.781805734225342, -0.7508280591488423, 1.613113523011985, -0.7972871839181324, -0.8161020873770328, -0.4925971310656774, 2.2419857626757587, -0.8310381295604786, 1.584396674715407, 0.3588891143774135, -0.8422775912109417, 0.8195938255125932, -1.390080439023078, -0.26479485589503565, 0.0373559919191076, -0.8618126688825368, -0.6148341510806443, 1.3144782369860601, -1.413259141058041, -0.1566257320081451, 0.4571443687995678, 1.8139801219827336, -0.8729416492214658, -1.2021446452680054, -0.18287439285074464, 0.7151367410023329, 0.0724635819839709, -0.394150602661191, 0.3086697829408736, 1.1001489018141712, -0.7541391904025803, 0.6506253211085398, -0.6789193350439231, 0.7459004970720945, -0.8583929015402073, -0.3751247341071256, 1.1153679055306462, 0.3243622406515602, 1.6086260544405733, -0.8973214534592038, 1.4505614500774051, 0.6390192112355659, -1.097567907692405, -0.7789509309904787, -0.010118223620103015, -1.0067592408859265, 1.6858550771091214, -1.375924608815696, 0.9880995543293336, -0.6445948416979022, -1.4508885825739297, -1.4892296911532181, 0.33872966509087593, -1.308217262167615, -0.6692014546820036, -1.938665276478024, 0.08570043587182144, 0.3367745011191109, 0.30216625220261106, -0.029139117833403446, -1.6994515863979083, 0.36168092874820507, 1.1666478841476853, 1.3588702019634644, 1.3731126700876528, -0.6990041625840486, 0.23245328885846092, -1.445715944658206, 1.3926227501034782, -1.1446072903750102, -0.3816077510920729, -0.8630891545947001, -0.6716403178792367, 1.4677584224643059, 0.5204410421666292, 1.8760662842613385, -0.7032982984900227, 0.8890929266772621, 0.769892531358705, -0.9255303897325509, 0.5230236705061742, 1.3209816351528552, 0.4721963640474325, -0.12533254753908293, -0.15115069978271048, 0.918270672574204, -0.41451142025139015, 0.06983434930473358, 0.4428019418512945, -0.12167714338407565, -0.6749483178493708, -0.4005731600700831, 0.15795477733282282, -0.5361865265613242, -0.00765546636667677, -0.2486297625885688, -3.616244826516541, -1.240093138147424, 1.640939453974592, -0.4967717054593357, 1.3928570054101417, 0.3488571494425995, 0.29196792037545233, 1.353278291959696, -0.5810568006549722, 0.2576064001530712, 0.25150655593518184, -0.8098065870783787, 1.3128640032531393, -1.1852909158053921, 1.157878804816697, -0.3811363408541145, -1.8623261901283767, -0.05395662589269566, 3.0611733845656395, -0.054354803805188714, -0.24720917613413934, -0.06936303775634156, 0.04206641378767387, 1.252770550122401, -1.9223819765041372, 1.202712320404443, -0.39889697987982026, -1.0055963360448883, -1.6867607272487752, -1.0277579618997654, -0.46112981399687764, 0.3263146874682954, -0.5693906145441722, -0.3589843137912688, -1.936031194784913, 0.249550573252273, -0.10765873957312352, 0.8349991429830456, 0.7108618513078415, 0.29222682765828795, -2.1165124622742204, -1.8483066026640207, 0.07816241030036447, -0.08022928270577098, 0.606806535748979, 2.605058213283425, 0.42397577027479655, 0.675291066744399, 0.1948581130574186, 0.053796140071209864, -1.336800515204708, 0.3677730246474584, -0.9271093020874797, -1.4990654058428237, 1.0896473253676273, -1.5815367050307532, -0.7067595339381431, 1.6209549425055911, 1.3752140381174898, -0.6133729043121271, -0.28995254504887596, 0.21775129927781378, -1.4513065159005456, -0.5519419806661555, 0.5200969859479287, 0.36284766593900053, 0.5647216927706189, -1.1834916327999798, -0.905378910739902, -0.28194417652034437, 1.527761638614743, -0.785705814458699, -1.6162077232566219, 0.9782101083250803, 0.4292062014732737, 0.2185071569653127, -1.2394667444809362, -0.24870697467690292, 0.4573643259259206, -0.25535084881820336, 0.4777716036036974, -0.32651136607182046, 0.07901046926896166, 1.2886090146135347, -0.3605679983284582, -0.39764667123450276, -0.9954780884334878, 0.2561807897177513, -1.0843685493072819, 0.12986086111190515, 1.4638160519035035, -0.7926601642106428, 0.11386912747556614, 0.05064223484110245, 0.9535530862878486, 1.581370038498723, -0.7467107303747241, -1.1294768284497914, -0.6863173758499714, 1.7425897413780096, -1.750080716659231, 1.0200201403878384, 0.09216683237316162, 1.4445890756559074, -0.7575386400758898, -1.0267595764809776, -0.743203277087611, -0.3617902098106558, 0.9807379610674246, -0.4494919815199539, -0.139645087546484, -0.45590558967109956, -0.8314871492327359, -0.4016237646146306, 0.15802207902328172, 0.6808297404105077, -0.4004107535270797, 1.2013287338621885, -0.11531924092553854, 1.0876986546066656, -0.5880758813860446, 0.37634955414789306, -0.18527094825241655, -0.006937209118528061, -1.3608513191181555, -0.5197236573250131, 0.463408611045455, 0.1895096241785028, -0.8348270288277571, 1.1310636505387424, 0.019320381958476556, 1.2936501822037318, 0.7753045815203952, -0.5174529713073618, 1.6303894518830946, -1.424798288107138, 0.18463910494905925, 0.6357892633788328, 1.0191286705659799, -1.0776572234997361, -0.058071070610180346, 1.5263388569653553, 0.024994765804824147, -0.5151247779921773, 0.7487573413181321, -0.5718694030200041, 0.035058228455775144, -1.871894006094185, -0.6613196865194579, 0.5769725286701373, -0.7367371645074806, 0.6323524439681041, -1.6036518992044688, 0.47863453049805044, 1.4441827711806823, -0.9735425062205508, -1.4741086101976333, 1.2814696296764614, 0.3473471655658854, 0.7910848434880573, 0.30046251963870085, 0.08522935573665827, -1.403980406004003, -0.6146482994249365, -1.2315289364819961, -0.8977027776830132, -0.42433779835516944, -1.408345197598874, 0.42207025179163454, 0.8461892348632205, -0.2490679239134021, 0.8773618510991119, -1.301799608995058, 0.2625572138302102, -0.9427058228766325, -1.3881643437611735, -0.23483236113230144, 1.0207985074811297, 0.7713401976605815, -0.006814522630420675, 0.18837621181964065, -0.6573210575280002, -1.0449722114717626, 2.0186122729964926, 1.1741037427266254, -0.6846815563905236, -0.49771622437764096, 0.8746192365726885, -0.5174181206012595, -0.9476378494963715, 0.056782072073773386, -0.8790965213306376, -1.5574761449522962, 0.21609065407695296, -1.8626818101777476, -2.0961349093879544, -0.33105364449783375, -1.1589669416210095, 0.15132243302789938, 0.8521605677636602, 0.7742911410807676, -2.538589768176732, -0.03253742612676552, 1.0422979672486086, 0.3326917440450766, 0.3621209495718994, 0.6922554384196643, -1.9166699100712044, 0.2064510369320226, -0.6239270633688702, -2.529204012749036, -0.17706345246737432, -0.41998189317162704, 0.5896270638633384, -0.21469214077392976, 0.44731860905074394, -1.0540791458678187, -0.5301057190296372, 0.5084134433716269, 0.4554630839524932, -0.4084554473716878, -1.3027980677359505, -0.4161422881398393, -2.460697055036825, 0.5421086409579616, -0.8932238012324163, 0.5048363560164861, 0.3414417673370007, 1.5271676147265836, 0.18977908394646267, -0.06629069340678465, 0.7729936640614463, 0.34281900309511515, -1.1555368611628043, 0.296537366216279, -0.3026417513931259, -1.2210833218836539, -1.4742411434507334, -0.14560303293072532, 0.046983698579071434, -1.3665590045394855, 1.471863012837933, -0.8451617487867245, -1.6332734431577842, 0.2361034586065518, -0.3475342578604577, -1.3905060397760676, 1.811073181558942, -2.2845558148071, -0.13340769738466304, -1.5563678592094914, 0.9627065829455164, 0.15321158202821022, 0.8334286814456744, -0.3398650955417231, -0.6376838625799586, 0.6081958963575117, 0.9901982501221922, 0.35623705928968014, 1.0842624515579264, -1.5667536820401184, -0.6257925557519216, 0.7682912494990076, 1.1173074404160004, 0.14496376455100546, 0.44695349034542475, 0.050433113577438515, 0.35098947793500807, -1.3418569139214052, -0.10875592605323897, -1.0810666579003045, -0.7282751936534643, -0.6262881610175278, 0.5293884091632937, 2.2253130444496216, 0.8586917015117914, -1.4697058573054282, 0.9362446576484363, 0.79863673183808, -1.5602090121872974, 0.5783162278332646, 1.1951555259879219, -0.6532108007553509, -1.2992896271871042, 1.2611098853442282, -0.7545827594608056, -0.36198900956783775, 0.6447035193294413, 0.8194948647249047, 1.4598549115209354, 0.2836464927146788, 0.5211686346384714, -1.3692385165909204, 1.4964190701230657, 1.2462956506064462, -0.5556592512747162, -0.17330930073486658, 0.6290502769928877, -0.5802577510870809, 1.0746072114312424, 0.8485594404128306, 0.6119113473927877, 0.15531221334147638, -2.2593684559557246, -0.14329578244546745, 0.8696374882353123, 0.34178117698250476, -0.31084462878259445, -0.049667590380486994, 0.001024958794340004, 0.01745826015650065, 2.061655680618017, -0.20091142427273523, 1.62999490749593, 0.30641413633727077, -0.004195755687396656, -1.0735391094616389, -1.447030660023786, -0.3278301461019186, -0.8514356912425605, 0.19058848286262964, 1.4142801306207733, -1.3920535728295902, 0.004210702344412748, 1.1950148433456729, 0.7845203905386896, -2.7992162064438526, 1.1078334261149487, 0.8838498428601247, 1.7303935529284833, 0.10814583704412964, 1.058321853508688, -0.35250711745478874, 1.5707754718355267, -0.993616522481608, -0.770819120513824, 0.7353602889754229, 0.8538659984117739, -0.4836215067602598, 0.9881224827101989, 0.8301051921559156, -0.27937299969585233, 0.5075977458329036, 0.16086045997109896, -0.3724907451950873, 1.0407276314629512, 0.1035243161974872, 0.17829226436911383, -0.29302661250863893, 2.355379772816784, -0.6339438086298942, -0.24547841579497692, 0.553142239737994, -1.4447712869600169, -0.10581740020796536, -0.4720635039991762, -1.2665210758120529, -2.6540996410436106, 0.11891915476573794, 1.0996078153848807, -0.5185221739427627, 0.6938132809945982, -0.9727316982881665, 0.8949816226916981, 0.9129734868959687, 1.3070889916855144, 0.7867393096524915, -1.0714842437075964, -1.807462368498706, 1.2014866344567057, 0.6229076512220945, -0.2816212687484363, -0.7731735216366021, -1.3091664900629916, -1.1196034509026367, 0.8146717603062831, -0.9327486743061679, 0.24590379716684088, 0.6888572155488026, -1.431856899763485, 0.9498709387195441, 1.6027755842182616, -0.5506101111181769, 0.44713349005542324, 1.0023339789202066, -0.5075874816754351, -0.04025364308925709, 0.8784821536444274, 0.354165616551781, -0.34496828558498516, 0.252765632632188, 0.5060403800263849, -0.34941054966462454, -0.9684600861287586, -1.05385401691128, 0.21414179532614872, 1.062335579748586, -0.058214043298022156, 2.5847749332602, 0.09989507970317545, -0.51667585170615, -0.08646896041984872, 0.16087228538156456, 1.7896888081081215, 0.41312510613488473, -0.610273978130261, -1.1234803559227962, -0.8663998447283321, 0.7280800945640448, -0.6060289812671181, 0.3054072741705922, 1.5977020899206693, -2.0886778227205594, 2.04718791252273, -1.3944739484632676, -0.07769395725697413, 2.485647389509429, 1.161056885783272, -0.6422446354858306, -1.6866627876101177, 0.5835547255432384, 0.32799163478787424, -0.8074432428697494, 1.4534847934773354, -0.6520860152162103, -0.6257637502682993, -0.35347806043290736, -0.6064010457787304, -1.609303253469617, -0.44956874651117795, -0.5932212618722055, -0.7980109810319539, 0.23801683948070443, -1.8078078993421411, 1.6110932188650129, 0.8306217769227588, 1.5079696883540965, 1.7052265295882478, 0.16835781469295008, -1.5968498453112046, 0.05419468096069937, 2.080737900190375, -0.7813997319688913, 1.1723324732423348, -1.1791274655949502, 1.522909575863655, -1.838129548833068, 0.8885460864971125, -0.3112079672420133, -1.8009636793346049, -2.1219812182033895, 1.6211488910349103, 1.7647325336720354, -0.55392401828593, -0.18536494230320436, -0.7559434902011402, 2.02035055742048, 0.10236207599063739, -0.09071516667529367, 0.87002060394994, 0.20356887701465726, 0.11649757853760016, -0.5049684014655186, -0.878538580803181, 1.219994070236117, -0.4591311530517561, 0.7529292801127621, 1.8466624703615426, -0.3119279752724232, 0.3618651906707751, -0.11931261167544333, -0.15184679830362122, -0.08142618606573834, -0.45188168827767916, -0.34435155003796397, 0.5447850111120647, 1.461016480023341, -1.759834086257933, -0.20387130619003158, -1.1061309579704512, 2.047571834848655, -1.3625301397704557, 0.03847861193968079, -0.41908164540912235, 1.5267142534760538, -0.8074216676664461, 1.0942537068290124, -0.8589893343576649, 0.02880708722030125, 0.07541789139329211, -0.8964204184288705, 0.6104271933326174, -1.8896306217640972, -0.5715779960963441, 0.4862407608854612, 0.9376060820449048, -0.28981493648460016, 1.0601815230005722, -0.7181795974169856, -1.4223291833641392, 0.2547235818307659, 0.4253120949833701, -1.1337994252104073, -2.0662599115172653, 0.5696294165103171, 0.4807972440746681, -0.3334732608283706, -0.7907307751741902, 0.3401662792087062, 1.3672741814009857, -0.6528412434007834, -0.984898049801574, 0.44178370023062646, 2.3589933091709563, 2.2492879960896084, 0.6098625542626688, 0.34842243659368244, 0.21742125464736634, 0.1286412370033291, -1.7506912234691885, -0.33887856780628234, -0.058130587212581325, -0.23849827593955103, -0.588672020705869, -1.5085222292073164, 2.20745259723818, -1.1395828435290725, 0.7867474162185699, 0.08511682154742599, 0.530729446677609, 0.3021529756635018, -0.652536121488528, 0.4832898322611189, -1.2687776942664193, -0.9031732659236469, -1.8365049505188262, -0.8401997607017293, 1.1672764414566084, -1.0278570477914484, 0.17559902453769902, 0.42560541758942194, 0.8184067330416113, -1.2701487841608123, 0.49835521087482404, 1.0547915487532276, -0.035297958124361, -1.6367117659354635, 0.9350268770492959, 0.4735793365879849, 2.066401169980402, -0.33085780821604055, 1.0662489588346322, -0.7236136907093336, -0.2366005418237537, 0.3118694011837782, -0.29251836991064384, -1.2745280345294823, -0.8602100327750805, -0.07780553709972224, 1.5088601684612821, -1.4362173161200273, 0.2828495091475873, 0.009266781617777662, -1.1328914140136568, 1.710880865859913, 1.0311326194819417, 0.6707102828626799, -0.5461790439353942, 0.9711793150927074, 1.9233090609717092, 1.2077222840020747, -1.2383233071901971, -1.3746370296756663, -1.6085273302015077, -0.22203922522726993, 1.9226056756793166, -0.5048076251130126, -0.043963810041906456, -2.2117506504974447, -2.162347704092384, -1.1445904695784506, 0.1940339202350278, 0.7444904216395526, 1.6010916611258923, -0.8213769209241042, -0.6593728867487116, 0.23738288144814607, -0.9012431889469893, -0.20122570212640017, 0.22508102515092662, 0.7605771798197924, -0.6197714222289087, 0.461487533016861, 0.9885369669648936, 0.4830310122781418, 1.3010866809132744, 0.07210674722777907, 1.0626862705466873, -1.5609889694409194, -0.6194981237001738, 0.4112577930821558, -0.7601267361673396, -0.12173258785663424, -1.4737831888237733, 0.6191588554531684, -0.562184039487719, 0.8796180040454592, 0.28668491714510613, -0.8404839317066655, -0.33008069949103136, 0.7105602568018861, 0.2628866171785153, 0.2713271999760396, 2.509721984172877, -1.1030272605184115, -0.8131357663444699, -0.7012590434919239, -0.35370856166896436, 0.4272160752827559, -1.235928055595834, -1.4589951124432525, 0.10606974809893534, 1.0490144034143574, 1.1401676515714214, 1.5602518232258726, -0.1316931030152692, -0.5588298639233481, -1.1798315543869777, 0.25423148693344516, -2.329708589685058, -0.1611008305495774, -1.293954740300037, 1.5638669636681488, -0.7457053375145688, -0.6696185160915793, 0.4450622193871014, -1.820015514626756, -0.6841212925165058, -0.11557789598708554, 1.151756816890297, -1.3994069725233815, -0.9225837945409925, -0.7015293372430998, 0.14557157851798416, -0.6488915404249679, 0.5181013615346238, 1.1101965867010084, 1.1400621104262982, 0.5669351554200318, 1.628655977372503, 1.1169088997424437, -1.1027247239157423, -1.2154057454628897, 0.30413440003257725, 0.4408163359631587, -0.7670250649875356, -1.4324664872243593, -0.10094123058942654, -0.8075856256378251, -0.09621481510992093, 0.46221378683028386, 0.1667616956765533, 0.027729684273670476, -0.6491132407601561, 1.5228201136451585, -0.16562850009431018, 0.5950528675438397, -1.0419185868083787, -0.5985193479741547, -1.0738447527439543, 1.788948584745946, -1.2325612333443072, -0.836914713668649, 0.5239932036193977, 1.9161683660322844, -1.4272699417780046, 0.8293178842537923, -1.2264705966483058, -0.04597990324972495, 1.8906549668204278, 0.9421047560257181, -0.807010114883981, -1.119951155966275, 1.1821055005631875, 0.17397451011234072, 1.6568916173993327, -2.161361822163266, -0.10893182605495363, 0.08045279279873387, 1.9409424148662304, -0.1767614344743045, 0.25880349272739006, -0.12417094682887361, -1.5666613380497623, 1.8891773441773552, -0.04669787176283761, -1.399980051448174, 1.2931674090867675, -1.7441216997483413, 0.6135856643531975, 0.5904282098582874, 0.8714988428569002, -1.9693756516575391, -1.3439533152505785, -0.17955195369335797, -0.6390092243100048, -1.3386346301502519, 0.1956419307017713, -0.154811442924692, 0.6838608318277294, 0.09583878264956507, -0.9490178938632181, -0.42298733389277077, -0.9761527761546062, 0.5886653092379591, 0.20399290647527346, 0.5158621290601251, 0.3361637150433332, -0.0840611891215317, -1.1346435642707655, -0.2831471438083741, 0.7532893387345917, 0.26676009847445914, 0.4195057830533126, -0.37907311341065303, 0.8138441501785322, -0.0017713213496273143, -1.4279315144128575, 0.127297463548603, -0.43860049222365943, -0.9207821659942775, -0.6982628146742288, -0.47737501108118235, 1.0973524489753268, -1.1631704471876354, -0.6448462257352514, 1.2478277285342685, -0.9535748485371196, 1.1010957888549868, -1.5176019318982594, -0.3678275742008581, -0.25822269433889045, -1.461390865704153, -0.221189396941947, -0.6079997861419684, 0.2605821179006874, 0.8907214317482947, -0.2897775819027704, -0.09849861993514802, 0.6885256728955403, -0.2791053970836441, -0.6793666542903476, 1.249783890153001, 0.4796806532708648, -0.9226697694236917, -1.176722232598049, 0.14355110585703812, -0.20129982865454085, 0.22194994994725567, 0.23146865620783758, 1.6694377251663244, -0.5389819127967479, -0.1443175790084589, 0.41087999419331056, -0.7640243887629617, -0.7180711780751314, 0.10517217800088413, -1.3828305275303805, -0.06758378480990582, 0.10006348512241166, 0.45434785513478976, 0.46311517202542646, 1.647219601375317, 0.0963437586410137, 0.20541837056183218, 0.08236269987589594, -0.6005548745768965, 0.9272948375646727, -0.24354050181310793, -0.22033680012834594, 0.9695271692142623, -0.29948851492748413, -0.9527439222312267, -1.0880912464935015, 0.054981156346117374, -0.5660396507329793, -0.29717856392002556, -0.04083288515295536, 1.0338668347332045, 1.6828432679771586, -1.7998106503968425, -1.4527159141395913, -1.2407599011227048, 0.19265871886562935, 0.7261815748689618, 0.2928989175106737, -1.34361075336494, 1.9618314891849296, -1.961477519039208, 0.6067798642374093, -0.9398734941624577, -1.4160404491189216, -0.12160407112688297, -0.5045820104317634, -0.5196865213591367, -0.4480735859571536, -0.6649026362109189, -1.0066499489098275, 0.30874446046730514, 0.2423808558861513, -0.6475131446929849, 0.6479427567431872, 0.5213927711113006, -0.2948202171449642, 0.2634627733105601, 1.9224975768533579, 0.026976636733625492, 0.30952752417150853, 0.7076376663118469, -0.9138103973636641, -0.30889227644936884, 1.4540261677025847, -0.8221389943598081, -0.588038234461568, -0.5244820252135467, 1.3378716219526687, 1.2530385228003316, -0.9106010889982076, 1.899332176169294, 0.5764950939705556, -1.034395434153627, 0.9810008154794896, 1.7922435643746273, -0.9257763652451753, 0.7429073598196138, 0.2606189680155636, 0.12852481855920034, 0.16605883874954933, -0.43900022720898685, 1.1360090499605335, 1.6430054310046425, 0.27513668932269936, 1.117611053039336, 0.41392188096741706, 0.3441306717260009, -1.4644211330145278, 0.6926562526915562, 1.068458625377813, -1.3700696100114267, -2.0027194859651005, 1.2712147826101827, 0.6108022121551525, 1.827883401988348, 1.49682253754663, -1.498807717939337, -1.2860024861530703, -0.8552188536617934, 0.3369896727544974, 0.7245355697839364, -0.8214315460621029, 0.44109611654147907, 0.5705572269774465, 0.06590179873448668, -0.8354277456713564, 1.3858886068530871, -1.2653282493985, 1.4925214870472732, 2.3669803699198972, 1.2467715006725173, 1.041820098630538, 0.17729372155344567, 0.14833291807982577, -0.5762449399777807, -0.20913684813592306, -0.8840313111682832, -1.7256511687931952, 0.4464567604000436, 1.5696072864217565, -1.5107411614291475, -1.919045525488347, -0.39284231136024667, 0.642261212971914, -1.5566853652081156, -1.4195908701604916, -0.19518744408626176, -0.062796460600534, 0.14773366666584706, 0.5933124208465305, -1.257281067913892, 0.46191592051764446, 0.48953706269055897, 1.537140159071271, 1.8001612651602614, -0.09035661359187494, -0.08008953380065702, 0.5550625182987955, -0.6192862077789711, -0.6194490923758899, -1.3842131227703087, -0.6442854252008431, 0.004310308986859974, -0.8192859105507256, 1.8446971502738685, -0.6822008865400492, 1.6035130190910534, -1.8234460501370229, -0.2161013013225925, -0.42930260307085955, -2.1992152335223514, -1.1645688132881276, -0.0027305349396484877, -1.3222351936152148, 0.3096752736763023, 0.5301317384831784, 1.3176937460170013, -1.0750510120212, 1.4366607957461852, -1.1863230769603135, 0.8169615081274427, 1.945998082166153, -1.4741717842067263, 1.0727046962527615, 0.7604354547177733, 1.0127275799116227, -1.1504741483205345, 0.046663848882222324, -0.41614806490650597, -0.130333521585836, 0.6584361564011335, 0.9528088241690057, 0.3264326568315127, 0.04468306472425897, 0.36881071704357293, -0.693824507410013, 0.7571894944422922, -1.6944446869650207, -0.41610271882814304, 1.445612205825981, -0.7344446459241352, 0.2379834287461269, 1.7658010428921032, 0.899476846965225, -0.5446415556288037, 0.5940059593484025, -0.20541102682291998, 1.2972810373469248, -0.8619329742338163, -0.9995107551919223, -0.38657348236703737, -2.3750929169938804, 0.7482169422869621, -1.0163085846469417, 0.2808453440838143, -0.12685025114948897, -1.1454774810030333, 1.203007531467209, 0.11754067768731466, 1.0682344096280718, -3.0001454304286095, 1.9741629526950777, -1.6310903545738005, -1.0763155593061657, -0.730674268674942, 1.2224106966606128, -0.876142611650797, 0.3425249914970222, 1.525269777862721, 1.2299082010225988, -1.0319391121636672, -0.9808233679288441, -0.7694711307041686, 2.008106278814718, -1.3802722217172205, 1.7112956696610628, -0.17986472316396296, -1.066593964724342, 1.194241938484396, 1.7010094716661732, -1.4531100825401797, 2.0140943483593357, 0.00961089155518196, -1.5117519393616556, -1.225033387547948, -0.4013256550665814, 1.2671552063447231, 0.35280285161085073, -0.5960613431486281, 2.540754369404317, 0.12452161850318348, 0.6489189020968069, -0.266000444569746, -0.9088480640459227, -0.32532143347778014, 1.8950184827415795, 0.1233803144398878, -0.8506586820583893, -0.013146295073653665, 0.8791204277882693, 0.17210568890449163, 1.632367328013707, 0.15862039487955654, -0.16339120814322525, 0.23897405779048442, -0.6421838621896824, -0.17334884721929977, -1.1070943362639738, -1.2216533790784645, -0.07491402130843892, 0.39581632483835966, -0.5710516304874607, 2.051139469309425, -1.82773175657593, 0.5747008941265317, -0.22853438210232366, 0.8634619143586166, 0.2521752390452931, 0.48904471670322064, -0.564392245951514, -0.10072099150740713, 0.4522478618181492, 0.3451387680566698, 0.27136338383972597, -0.7355092140807842, 0.8414467402239644, -1.1690021151149572, -2.788511038384896, 1.8189971647722083, 0.9032792502072324, -1.1969960098569172, 1.206963641510476, 0.34107287068465036, 0.5747472954848997, -0.09774507597793355, 0.3505076901816651, -0.2800587010869735, -0.17141366812550005, -0.6034656461417384, 0.3665551294097223, 0.6422610144258437, 0.6852370705793731, 1.8141528512917984, -0.6006505084403668, -0.401073196111487, 0.4481129685052948, 1.1215412005788055, 0.294281094993007, -0.8400996437124898, -0.23659055793172576, 1.2337003308820302, -0.7944425795053791, -0.12501859797022763, 0.12669952550269392, -0.26145501283663203, 1.0612872544961902, 0.1643712657991143, 1.3638181337811686, 0.1671936246779602, 0.536660694982275, 0.046322463990348964, 0.5357032817625664, -0.3910850558251935, 0.7037151344594822, 0.42634767130989204, 0.4020635808682617, -0.1452834786642244, -0.28685192204171245, 1.5813119435145027, -0.3313666238103324, -1.630863443675375, 1.8975968381884851, 1.497988454976838, -1.2833894894614397, -0.4271835840370606, 1.296428671679604, 1.0147636236527358, 0.008499718134879552, 0.7763218624280281, -0.9911165491373074, -0.28955079825767266, -1.2106468003843902, 0.6563624003164797, 0.054901669351109676, -1.4690725419140442, 0.06901440689355592, 0.4252773778706197, -1.093914555087802, 1.0594616327950752, 0.9903516449069268, -1.2093145024199112, 0.37967646564114543, -0.4758820769224347, -0.5921632526896037, 2.505246673635534, 1.2072370620006596, 1.370225466799814, -0.9917405164498511, -0.6520088992578232, -0.5696532524323059, -0.8093412890185301, -1.0826275786645045, -0.4801083441565978, -0.892280722293537, 1.412615895841031, -0.7113480780630511, -1.58398942271415, 0.07178044356560984, -1.2871905265662251, -0.9859321167207238, -0.9367274619902408, -0.2266617043180088, -0.8235377496257132, 1.6616248255857569, 0.2110414345000711, 0.4195206213331096, 0.4557109402631586, -1.1844739993372275, 1.0737929954280732, 0.10979465007800482, 0.38488576234322136, 1.3142064281473396, 0.6090123241409612, 1.0358009972485072, 0.7961360452240189, -0.7504240210817026, -0.4717852822314755, -1.9977526467992452, -0.21152758583251302, -1.869102265647399, 0.03226987415993391, 1.6172348405102026, 0.571609333114801, 0.11015187322020059, 0.10883356045207511, -1.1062908985717914, -1.1092367045073637, -0.012251254567757242, 0.8371704017648944, 0.1882536400549766, 0.4182684075319435, -0.3447023347644645, -0.7932199304382765, -0.9849697798584544, 0.7168358822007905, 1.418999037385018, -2.403734256558076, 0.9390772175487241, 0.22773646275302892, 0.5616178375297155, 1.2930499113213374, -0.37115833509731555, -0.4189488435377704, 0.30384787269295527, -3.09516529226863, 1.4376287260090312, 0.4409253327910705, -0.4403250314077104, -0.01839259972989579, -0.09132107400635489, 0.8993074950529176, 0.7860707096819252, 0.0477880560338064, -0.3208932477679777, 0.1259803458217062, -0.9116258668673404, 0.8538691740175305, 0.23500589115883444, -0.8278577538333346, -0.40942559335898576, 0.2567713855866453, -0.7177231480244217, 0.23493164012909643, -0.08362383634635764, -0.6322235536233912, -0.41000204751825736, -0.4364264295280201, 0.9472591623961788, -0.49591180781239114, -1.2168293697790002, -0.4506714771692287, 0.04189705377801499, -0.3919359249696162, -0.08424919865351914, 0.2840733616903701, 0.2849199073658345, -1.0924306659919145, 0.33684764607473267, 0.2452347016349107, 1.2244644861038698, 1.058925836769312, 0.2157094268939756, 0.8842025248865851, 0.7511051409587467, 0.84229162019877, -0.24636947592105027, 0.5054648516804614, -1.1738282480311948, 0.9209592920512764, 0.09202643450386803, -1.618664478117834, 1.0424262856623745, 0.2635251007081735, 0.12024192413580576, 1.8816350118726597, 1.296344926519369, -0.38004377705918146, 1.0908056348553017, -2.0710700397722674, 1.1108278459257963, 1.8072200656396853, -0.2832080542168339, 2.1495481922715567, -0.913304278073554, -0.13497558680801955, -1.2339441459427007, 0.16781086931278816, -0.5118420624618873, 0.43169942287551266, -0.22804268789046647, 0.9449444726231594, 0.09900173255653308, -0.42338324819041095, -0.4915708710890753, 0.388987193739956, 2.094613031828752, 0.5747081768308763, -0.7983286790842801, -0.3736394395978573, 0.029004260079962152, -0.8006824757561799, 1.1197336711178068, -0.9896157373454266, 0.4966790956650833, -0.320720861795497, 0.2404711868912757, 1.7983471339688688, -0.45215688264510606, 0.896961504429265, -1.1616159798557508, -0.840560393015905, 0.07480233754961872, 0.17992670342491432, 0.40524411436169705, -1.6268041045901802, -0.515842081058143, 0.3550333279229013, -0.7169358889557749, 0.2669144829157952, -0.7584809853254146, -0.8370380914872608, 0.48072270248825516, -0.40604137567306653, -1.0335439663756396, -2.069883524764944, 0.6487461014247821, 0.011710122578667713, 0.7558956908425195, 0.5521614840818139, -0.25174889683631496, -0.9515208767957234, 0.7906470835496024, 0.16009301473206583, -0.9156242627130992, -0.8294654016291866, 0.6405496416929598, -1.1150477048464416, -1.4778148420891877, -0.6532442833617729, 1.0668677881031745, 0.42505345945888107, 0.07673387953069587, 1.1717799752861355, 2.372817497973731, 0.31201596993898206, 0.6638888271489586, -0.8305561220137307, 0.028066442063465726, 0.5327162396709624, 0.1408772044753154, 0.7686937307721734, 1.2407913952843508, -1.7571668440478188, -1.4407261503018678, 0.46966304643082196, 1.067965459457961, -0.39086059969793585, 0.18266961756344147, -0.09601667538677204, -1.6541976778103968, 1.7762728362797546, 0.044625271683577473, -0.05332555492084246, 1.5519660869822542, -0.5164453460006669, 0.3735110292906932, -0.14055947835504265, -0.4662885370095864, -1.5754096176009653, -0.5279910388184064, 0.1877355482506709, -0.33550084881023345, -0.2335582239599356, -2.000574246170347, -0.5830606097499693, 0.7201314957738653, 0.2767541956493462, 0.4410172346230466, 0.1496171764974113, 0.25584855399911693, 0.4231757850905495, 0.819138838244574, -0.21665970285704256, 0.7993969106462642, -0.0524553739237593, -0.10297969217994243, 0.10341500732243082, 1.3960023077483688, -0.3532908554905869, 0.2203147660382962, -0.09582033114984764, -2.2210275614128365, 0.606197840696221, -0.8083685791528877, -0.5880259036476851, 1.3096925869345688, 0.14641410716326553, 1.0053476857132149, 0.7403000763828661, -0.5588102569869894, -1.8250095277930243, -1.0186046335834653, 0.7832698999328468, 0.3231401688432538, -0.8047074876514235, 0.22535724026429152, -1.3470992648831748, 0.4765280552548135, -0.04554836049444112, 1.0856094027781182, 0.11016455864671677, -0.07169925780054585, 0.0271210087334666, -1.880645185815656, -0.6627766870787014, -2.8871893512281774, -0.5590779904078584, -0.2852107316710877, -0.14430057889633358, -1.3447542589401562, 2.2915669321114898, 0.1728899952093592, -1.421973566402149, 0.08592097416861628, 1.0123703420638568, -0.9558110283152651, -0.9027941505852196, 0.5300767150099646, -1.9419175079586657, -0.2760382915222782, -1.0179287043200682, -0.1606599622524637, -0.3767181010147598, -1.1725123233730355, 0.9572648447195339, -0.1936224437544405, 0.42763321723323666, 0.0597133381305523, -0.9990105347232393, -0.4832753666973765, 0.6204763319584289, 1.960673372068261, 0.8079703046097372, -0.3452734166837273, 0.3245617375208927, -0.07491582919001254, 0.2743378624516145, 0.5983093934031979, -0.25216135518238597, 0.596753836231434, 2.245459616334286, -0.2948256683719357, 0.28882168918856443, 1.0813537774504756, 1.8535627999465232, 1.1961057282238132, 1.318252064967893, -0.3950711849667241, -1.377281651368375, -1.408790244923528, -0.4636389874147835, 0.4564524135315159, -1.6380091071491378, 0.9185995000712671, 0.4692427417861781, 1.276662831833898, -0.9447062381422022, 1.0877432601911943, -0.22886776336281126, -0.012711978863996708, -0.030811506691294257, 0.38780634756191124, -0.47366773078962465, 1.4814958435930687, -1.1828980688637942, -0.19863200267049605, -1.3001223272185354, -0.4242285448896925, 0.08898755668384477, -1.694063278944873, -1.6602985696240946, -0.6264097653393359, 2.1301257422525035, -0.9460005244382601, -0.5374812634338685, -0.43004926797690446, 0.29036657258875936, -0.8172987007397908, -0.5094563820595255, -0.6841925657572985, -0.008910378204569518, -0.7731489284211737, -0.616010025614043, 1.1972052729129066, 1.1413513407181342, 0.1378551765169379, -1.4064193442890494, 0.47683432031632644, -1.0476861800204984, -0.06901359480920458, -1.2496780870132282, 1.6753024031738708, 0.041143324574971704, -1.4522215930201885, 0.7573346464645373, -0.15931444765366126, -0.7557308301686515, 0.196471099443403, 0.9564572866814582, -1.4803875895078311, -0.9249142102969159, -1.0917150382335596, 1.2585219246267312, -1.2891710566522292, 0.2768772021936127, -0.11943879225386107, 1.4656182572667367, 0.021005580078823815, 1.015858071109535, 1.3572500812200858, 0.5985933296458931, 0.5118443929095804, 1.3341173368810655, 0.25975515970872654, -1.237917055905442, -1.5278312160468452, 2.1781558314592333, 0.4138981989747854, 0.9117147230752412, -0.0703340663019803, -1.0158619558246755, -0.10701579101103097, 1.1466314764426422, 1.6748325965852073, 0.5314453542027439, 0.22641290320796856, -0.6327321154028427, -0.3761520310209821, -0.9094876923198735, 0.5199396339404194, -0.6279140323320965, -0.5316788990880681, -0.7754230114648885, 1.6645731868153486, -0.25248989955644296, -0.07000691089126687, -1.4833807861581225, 0.2847398900881516, -0.4709041665604012, 0.21337597451344031, 0.4752659270130253, -0.6322357393536067, 0.8609686485998456, 0.6154141944357284, -0.5912751549232785, -1.3228568966598775, -0.0850817349853954, -0.8896445451859949, 0.30012988995739986, -2.946119896252344, 0.036167602681861456, -0.028803490284605167, -0.11461775128822176, -0.19075498390300027, 0.29202031786639293, -0.3294293306975217, -1.2138544157908646, -1.0972607879764735, 0.8248759718159153, -0.8925466032322242, -0.16541550491454302, -3.4465386476151045, -0.9566298189710206, -1.078687196973154, -0.4891250155546176, -0.19531569651548852, -0.5990381399213928, -0.7036039565674199, -0.5527767107100636, 0.16920318370993273, 0.5427235579499587, 0.5503428910211222, -0.7497767572001619, 0.011571029854715547, 0.49984033903822517, -1.7283983057101304, 0.8594792530055284, -0.12824597747986724, 1.130107130041837, -0.4987262662830606, -0.13416057776817544, 0.5080625985293201, 0.2117295363547809, -0.8118692986997613, 0.9424962371461574, 0.6300633108154001, 1.2746895140278918, -0.003615756251429331, -0.05126805599191769, -1.6138120917239291, 0.7882409923880206, -0.47367442818736116, -0.43963455311049604, 0.712317456491045, 1.3326960118808617, 0.5896451874379312, 0.9762107134249405, 0.5626831277485056, -0.4376044921422135, 1.5861409442199574, -0.3308751028344161, 0.45942840764057974, -1.7057231513870459, -0.9254725284067791, -0.11018949372955511, -0.7616338202748348, -1.0857700920096018, -0.4372008083571365, -0.40109369588497923, -0.644818536292368, 0.25281756977441044, 2.4197071280480786, -0.22106488208438388, -1.095650643379566, 1.894125695645947, -1.2761684375038809, 0.02036098869546291, 0.7947496785408548, 0.3421126605593487, 0.7949003661056283, 1.1747154329748026, -1.165207479384505, 1.183093398265755, -0.35715333224519835, 0.09841575912600005, 1.574023689454931, -0.23482068201661857, 1.2386946627395476, -1.6783552822721601, 0.8611354052037511, -0.03315728672592852, 1.0193997600753135, 0.8649479142208678, 0.4164604631092424, -1.7829228532488806, 1.18355749410558, 1.57769088119824, -1.686257098236667, -1.1607340307397962, 1.0433166175934159, -0.27772980615804893, -0.6837779231673817, 0.3903294683158698, -0.3671124601982576, -0.1276413455606181, -1.700409020471655, 2.268428305186674, 0.2736751307318294, 0.4618308615774054, -0.14119264307379673, 2.2199837786106715, -1.375939861531243, -0.7221917522954365, 1.1098492022750432, -1.4505379826083395, 0.26060143268332325, 0.9771611195144573, 0.3765145109829216, 2.215882692348702, 0.4047556377415391, 0.17708325001281291, -1.9644517128168955, 0.3982782935193131, -0.6262164185787708, 0.15245667799057772, -0.6508467682648665, -0.040947126846172834, 1.7119976409288793, 0.21779845582679846, -0.04145965880856733, 0.13225304399295884, 0.1739378890012343, 0.08037751104228624, -0.9411877899806691, 0.38565902729297424, 1.0958429749681566, 0.0669055558927883, 0.4361448377834406, -0.5901261511098935, -0.8885190831394413, -1.4871156416726072, 1.3669107918561987, 2.3091823854788514, 0.622552717517235, 0.2783143206723023, -2.1305113526512396, -1.4978709762185878, 0.8018120395351532, -0.33995160613042685, 0.1777765322633653, -0.2258895695037579, 0.19586512261588473, 0.45301580114334045, 0.18103013768124301, -0.5147488863527064, 0.20662933937315553, -0.09581792397706412, -0.4704069093141071, -0.13483315552265066, -0.5594310075701671, -1.5755216037255442, -1.5674068340789091, -0.5157357110184205, -0.10054465770334044, -0.7071565768766122, -0.4099340274741994, 0.35968200228333286, -0.18585633976713617, 1.5416706566134035, 1.9286900603543355, -0.5159285075025919, 0.16886996206928914, -0.9067434891373716, -0.6039824452258518, 0.27720989342858937, -0.8814432879855706, -0.6919477366657376, -3.300499554594386, -0.6173928008586741, 0.8153244286523782, -0.35573315997666993, -0.20534234860472675, 1.9722365498950571, -0.1019166129902459, 0.08112220912426235, 0.7463452888856003, 1.1314090216181174, 1.1725026304304351, -1.3737070495742683, 1.734619629252936, 2.481740839103901, 0.9194703215452048, -0.34821661861545355, 0.9728026357332336, -0.10658444194926611, 1.3646609952054927, -0.20423441003137643, -0.06138988353092309, -0.1103302198524375, -0.3172315867238737, -0.8436575516229253, -0.5086533079781693, -0.1020901909331111, 0.041548802438476466, -0.9989480071569191, -0.19084542074059116, -1.012929236908774, 0.37846266910121795, 1.5569101781200219, 0.03186861709827397, -1.9643672831540329, -0.9559693601351081, 1.0476398922384702, 0.4753938790634957, -1.9155181532004628, 2.7851118312057928, -0.4660427767210397, -0.7434686806220159, -1.8644578336246445, 0.7950519234725988, -1.5175445270408634, -0.18967795984276006, -0.07354703638985319, -0.0028940583295309318, 0.05057720453427609, -0.2571010737906899, 1.841219462891703, -2.1896361652733782, 1.2511986406908666, 0.5753085882254242, 1.1153018270644537, 0.13982610960157404, -1.383864413771338, 0.7931811133480174, 2.1309464599529786, -0.3672255367396895, 1.2349500491253345, -0.2851321814733262, 0.8721818251187332, -0.2026228852474988, -0.2791938533272248, 0.08040090821476319, 1.0892882614640076, 0.09768943644705562, 0.4204417256351771, 1.3114392443815635, 0.04829268265664478, 1.2850500288988436, -0.2779162535369758, -0.43169391727862744, -1.5832048871215894, -1.6962198203895802, 1.0729777959132656, -0.3475301277658165, 0.5554189051412136, -0.3178837805858156, 0.5327674010524779, 0.6755622625790911, -0.1842302677407756, 0.43041683511575013, -0.8115483237447811, 1.3968996263534743, -0.17863606115051833, 1.585212875612633, 1.3280038403293726, 1.6695928015875903, 0.6109821394084319, 1.1349894473760842, 0.28476618327344827, 1.4784673864794742, -0.2823155837802257, -0.9183380787461971, 0.18428479751772892, 0.9836044862804338, 2.025235066042294, 0.8265404261612499, 2.088855400024876, 1.2286394369048508, 0.6715801392320037, -1.0498151352816971, -0.8931372957848912, 0.009361893370829872, 0.9162789715980914, 0.006157909931788802, -0.4922874423094256, 0.18089602650564962, -0.9841484655534926, -1.1301889231546511, 1.3001340798635899, 0.13693015400741945, 1.0390411986454737, 0.09933412649399904, 1.7158843111310522, 1.904568532616043, -0.48794979349112055, -0.4338145756826169, -1.0370401983449686, 1.0390032114803736, 1.1522094113772554, -0.4274833545676901, -0.8753567770565199, -1.6315994757003491, -1.7385506630534566, 2.532384190967428, -1.7056567691204445, 0.5413608251407436, -0.7741297263854691, -0.9447738094748025, 0.6661287246658135, 1.2031380054266403, 1.10368337423764, -1.2970356849209472, -0.6566436584727551, -0.14816924917182495, 0.7899980629195169, 1.8273852077888946, -0.9277938527847925, 1.9598998746936958, -0.27099375424892697, 0.6313744587208714, 0.40220491996516095, -0.29639672770006376, -1.8023859026222553, -0.7750540161682024, 0.1947076125945104, 0.5471135873496065, -0.652969912710415, 0.8404848088284015, 0.12894499297938444, 0.6032885408701868, 1.2514835286413495, -2.3974894979687105, -0.9304443816961642, 0.5235805043032368, 0.9237070587307208, -1.2232371757835139, 0.5076176935522306, 0.11779678439009704, -0.34612498438387546, -0.7314860546390927, 1.553910216869756, 0.373159475336515, -0.30618102562662347, -1.0154187441535123, -1.3683721575144063, -1.6848734071167453, 0.7057898542723938, 0.7127375808855136, 0.6820908867090917, 0.14243208748778438, -0.49764571567254134, -0.34993722444753544, 0.28263895634917763, -0.0811609390230422, -0.8001263943467075, 1.2016381946021464, 0.6300938668214966, 2.0197124104278883, -0.39730245577489043, 1.1082615629881487, 0.46812678384907336, 0.666746788576162, 0.26123698644751225, -0.7024810946461257, -0.5922965445684787, -0.48103667153342716, -2.24353922047969, -0.9337194785548774, 1.3686185555811365, 0.3972741496203757, 0.37354079869199974, -1.1743179438700706, -1.1748244659763896, 0.1406513465704322, 0.7766944125577693, 0.6468554295128249, 0.8402029124529626, -0.5495888272912638, 0.2752226876433018, -1.0617295543596483, 0.45862157925707286, 1.1714768594080485, 1.1805224647157246, -1.6892820684956078, -2.393405099847649, -1.6331785264764314, -0.7303247685543807, -0.37576096935444997, 0.4013478691603241, -1.0157957733816363, 0.14002890339339075, -1.0252839102787974, -1.0375314340230521, 0.8172730168671789, 1.062543562593135, 1.2810809804809749, 1.3999493985992992, -0.1750138803985548, 1.395734920938993, 0.20896311087749608, -1.3682057826232348, 0.004699216277132869, 0.4764319522852837, 0.12823174581788757, -0.546109883020964, 0.2523240224674329, 1.9724181468899409, 0.571137816454056, 0.522392971014453, 0.06334935501567902, -1.4920451846109672, -1.0225677061413179, 0.44255002330819526, -0.4682032342920937, 1.0350483070201422, 0.8200797384116898, -0.3029007829607368, -0.9845615009741489, 0.7582526902117465, 1.4833592773254187, -1.3989560209509306, -0.02010565525754588, 1.696186541558, -0.14162189076683343, -0.6537141574516205, -0.38621139164560747, 0.8184053985461378, 0.6452934033126237, 0.7403406155596476, 0.5169782497985267, -0.8189857182537518, -0.3298835390479515, 0.4237001612173338, 0.7833162409431745, -0.0019372831953367766, 0.2733210830893454, -0.6400595311632477, 0.6228358338196626, 0.3278665095994055, 3.081520639298892, -1.4435639267846334, 1.7053027215702756, -0.9588347501825313, 0.8266484324217002, 0.6242654188330886, -0.6407113941329479, 0.2772593629992858, 0.24814190447973083, 0.03363219264335503, 0.04496534388566153, 0.7087040051423135, -0.9221069417630742, -1.5268364676636788, -1.2896607997985812, -1.3661213777130599, -1.2075968696301782, -2.389243136958518, 1.4955588874856782, 1.2032086179453023, -0.14139077396705954, 0.2105872325884853, -0.5266170806972954, -1.9635764068165913, -1.2961941687735021, -2.2835960332407423, 0.33843875542096646, 2.3953920170177923, -1.1837497023332566, 0.496939041745984, -1.6834236268645497, 0.0947364755311612, 1.3677509022976098, 1.3010190519580898, -1.7668063834316443, 0.21564869547117013, -0.44708261946187283, -0.002380181670482115, 0.650945443490256, 1.4074149358152999, -0.3502584098400984, -2.275975800589525, -0.713875724177341, 0.5589684491426312, -1.965116029720147, 0.47575103008133773, 0.1679025472894861, 0.5439197139149357, 0.18336508565925638, 0.3219885649627636, 1.7554902588109447, 0.4642725270837393, -0.4390920573164246, 2.2698459891448923, 1.9524244471530363, -0.14392435570038756, 0.8876434758028264, -1.6577043260766187, -1.0198707516700816, -0.5961056777066923, -0.34369290129618396, 2.3123203551692133, 0.9307680048590791, -0.002081134721685804, -0.4816298626933, 0.5166419734688004, 0.09544852566577597, 0.738769513030866, -0.5320413954446367, -0.4940048696009806, -0.6416355699204741, -0.9125056647182483, -1.1862204740038778, -0.6555000958717663, -0.833470938908399, -1.1616778894644986, -0.5822364941000208, 1.5789499695762335, 1.6906076958567484, -0.6682910973489802, -1.5375408783188134, -1.7035671717673282, 0.5113501775091176, 1.3627201535356952, 0.34281653314195654, -0.0361566378498718, 1.283526267201893, -2.2745695742593397, 0.19000854891098337, -0.9356963719873145, 0.7771715931847443, 1.1747876035023088, -0.6581782060160273, 2.1514708443588093, -0.36624102952776444, -1.02996208423095, 0.7217520972507986, -1.3423248117021074, 0.29948769841449313, -0.9983234204192304, -1.1349975297569361, 0.2390417601230243, 0.7072204486510455, 0.35832543994067206, 0.8041102924500155, 0.3028670857744879, 2.7623138131362417, -0.7089157750419613, 0.22621529706629703, 1.0159042552872546, 0.4778866048560423, 0.13862524435273077, -0.6817769904192166, 1.2905800338344828, -0.5617711995631723, -0.937878912770488, 0.036259068904784184, 0.3074683196641872, 0.02334508317808002, -0.056636545167360136, -0.6105722560497783, 0.22034125973327826, 1.3981176980080354, 0.002830930797289729, -0.24195892578863437, 1.3598231207188574, -0.5983975108140343, 1.509108735185707, -0.3108584778552104, -1.2228769868033365, 0.5943397739409046, 0.31935177535483583, -0.036439093781717204, 0.14778839039885514, -0.11651573539454131, -1.4649049971267012, -0.2683259472901276, -0.1143739595865752, 1.7635913804869325, -0.16130246501945172, 0.4072876137215747, -0.31103626857775446, -0.05171663918837877, -0.7274085567918993, -0.869998251494505, -0.7193321231806105, 1.7505951189711304, 0.7440630635174471, 0.0016957841800653661, -0.983556012268064, 0.5131452298233552, -0.21520406798199235, 1.2554935163458343, -1.0675348115557104, 0.7469420795328888, -0.9963438487998225, -0.6229174823536682, -0.6770598584016285, 1.2562729341933596, -0.2712138170575698, -3.068642230593467, -3.0531360276822577, -0.5584911390555901, 0.7473315149504595, -0.18706483628559678, 0.14675010155914514, -0.006368544270069353, 1.6844988114574022, -0.6214979241607808, -0.3355320210713104, -0.09820727272027757, 0.8687934479912008, -1.2005133663272494, -0.33084789733891284, 1.1571084045756281, 1.4246451046643682, 1.6962376428779853, -0.01965764703939021, -0.7773091413938378, 0.7348575748530396, -0.23216605868100404, -0.8192776375683218, -0.2080446140023382, -0.44904006003328667, -0.4432456841776011, 0.06399763185741875, 0.21563610206370648, -0.2508963268128007, -2.5393973783220463, 0.323376954594191, 0.1384357529412035, 0.021153113599300586, -1.6410540709354358, 0.3691910055245278, -0.17495885529094257, 0.554361827175954, 0.20816477209501544, 1.2322688447103174, 0.2259606292852208, 0.5140029111794593, 0.37718842026130545, 0.33603722021339, -0.017669087842033065, 0.3990879000210093, 2.178612539524806, -1.4021972726687062, -0.059858631189209026, -1.0031183337604832, 1.383398163582628, -1.0611670406818532, -0.6074540386699645, 0.25468663161832605, 0.13474280254470264, -0.10885846887714488, -1.3619488838854161, -1.1865743468938024, 0.8343602196452481, -0.31636758410943266, 0.0822806179687328, 0.03610500422763477, 0.36975660962214374, -0.37447984002912227, 0.9006398818186364, 0.4263942528559476, -0.8471405691528062, 0.6370923472128284, -2.771271846414234, -0.2775641216533752, -1.9698060876925318, -0.7631948292304876, -0.11501310895829121, 1.2264502383793572, 0.44510581587390197, 0.7850830340365011, -0.8972456251148753, 0.6916483637375145, -0.5297453646047573, -1.901732896640853, -1.007326391309077, 0.2220310453886031, 1.0724562599385534, 0.40011245153735736, -1.1593565442528044, 1.5287688772353074, -1.2265309382410865, 0.17812058438692274, -2.1424196963250663, -0.5365247347682954, -0.175882228830132, 0.20779436050052882, -1.2395880259585617, 0.04832542895494312, 0.07093709252503462, -0.056371503668414216, 1.3597592757778154, 0.3828295662314724, -0.5315492554139866, 0.6360780600344075, 0.7531154590527323, -0.7824250791522117, 1.0617544257117932, 0.5489962301017025, 0.6286191631180904, -0.7554812899095874, 1.3460101201505388, -0.6564959907077351, 0.16698785124367177, 0.09451925409687266, 0.17705768947811729, 1.0138194440077566, -0.24231907310256842, -2.546273886239003, -0.05507329609619993, 0.3576296538398323, 0.27507225100326244, -0.7942125094255036, 1.0744369972956842, -1.1548545340061322, -0.15997902636302005, 0.2950954321082824, 0.8845493763065855, -0.8132679790365331, 0.21153971778686953, 2.2177421007414084, -0.9299613122041496, -1.6733913807379388, 1.3474760825861976, 0.9816143450439703, -0.3855895553937516, 0.8502913770246404, -0.016034574759692683, -1.1339934776440412, -1.7563721581739282, -0.06647491888759757, -1.8920747028441938, 2.3760043080911335, 1.8177530262775197, -1.8575847163422115, 0.844553214178571, 1.5954993729399956, 2.1252863078605264, -0.9089236614521397, -2.0469171775640773, -0.9384063102943723, -1.5482176543034978, 0.4526740914408505, 1.4013381381239929, 0.991045705937935, -0.47656146801187094, -0.27582104974046956, -0.5642658623540668, 0.325163151043837, -1.544633482053262, 0.15518857788732585, 0.15382265815454396, -0.6343026666433687, -0.8052290074500515, -0.01691923834054946, 0.6541683607771073, 0.5338183805463347, -0.9091383582478858, 0.3968969223456185, -0.17061628431357603, 1.747323697825887, 0.8012341564226836, -1.255442509886699, -1.2920206203653015, 0.0749186813352897, 0.2120295206583239, 1.182843648729612, -1.1122449131709833, 0.6272974182744673, 0.22777924320090764, -1.6251751647156196, 1.0411757059610847, 0.019367245918048063, -1.5738996411263415, -0.269270207865917, -0.5708394331822761, 1.8504054703733777, -0.22094889809967533, 1.1868455374446385, 0.5717141696167073, 0.8579212808811838, -0.49203515643303497, 0.42647412290047176, 1.0808047827262008, 0.010157228470302567, -1.719815859158772, 0.38805715778854427, -0.9969905666150687, -1.9361769141375387, 0.2474759878876688, -1.4221009001917095, -0.5918211873235646, -0.8058159270505826, 0.5438653208536682, 0.19307918373458596, -0.24237795984767208, 2.3297553315723163, -0.6782771653830929, -2.264267240688485, -1.3620513569200732, -1.9227157102467343, -0.5474383968696648, 0.24293097804441546, 0.8929260011447531, 0.049719985269798754, 1.3121549852716419, -0.7380138820116222, -0.011523274745424477, 0.7707761640355849, 0.2159962953115613, 0.5540026920594798, 0.09682345285130588, 0.398898061918644, -0.8325427357082503, -0.8742308162726118, 0.047733473640843245, 2.054543245821081, -1.3898902807090843, -0.12538538363326618, -0.09873796128345852, -1.4497902777439649, -0.4782177466678878, -1.5489795500879526, -0.29518331705238504, -0.44407598222159483, -0.9106356388426876, -1.550174445411619, 0.9328231660401188, 0.05594760595703414, 0.07566938845558267, 0.3298955808621695, -0.0017861668992007044, 0.586486364465265, -0.4362101979996282, 1.009729735572833, -0.042390290391845505, -0.2808285449424426, -1.0403468643014806, 1.131390812188699, -0.773890404524892, -0.22102358669926575, 0.6645483621647768, 0.7694091180284272, -0.03831164560096324, -0.3150960131582738, -1.0259652416179839, 0.20049882895150267, 0.03693677780369976, 1.6551618339165797, -0.22673604901843455, -2.417611359678329, 1.1106483704352281, -0.715751960430851, 0.5164952578195183, -0.6996317634146395, -1.897990257489308, -1.8041186305012002, -1.4690150868698797, -1.3087988024213557, -0.17486927381146705, -0.45353269534719165, -0.19149104316066032, -1.4266479569878736, 1.8919903045082074, -0.9473356590670324, 0.5173785755076394, -0.13818347423848865, -1.086849997656127, 0.36593831570404595, 0.6194226195093413, 1.4453714190862008, -1.3271158566185721, 0.60921787209085, -0.4832669384376709, 1.3186433317044879, 0.9513213947793335, -0.8548751359506115, 0.1071168124112579, 0.26717848135064914, 0.7030211740414508, -1.0709788797992723, 0.45569586838966974, 0.2887090154342446, -0.24229609713368583, 0.49390930613496803, 1.2738314634647165, 0.8139546371116826, -0.8058423065764165, 0.916823751781412, -0.6678215090538104, 1.4119852560554031, -1.3924034581122728, -0.48456149875876053, 1.0643581297073346, 0.3566463977388516, 1.0415975486050486, 0.028040080194454448, 1.0504197093941925, 0.44965919555783174, 0.8435496128685037, 1.7026256067041448, 0.14373254549294262, 0.7291427328749441, 1.2935074397997568, 1.1398931375510761, -0.18068743577377236, -0.6047067890923773, -0.5346294021251248, -0.10853463546664842, 2.24413601184453, 0.3297355179043857, 0.6657531282588651, 0.964251923438201, -0.5628928015239664, -0.0017106246437996794, -0.19257380601095586, -0.5999594838401076, 1.3310045638118178, 0.01078134546842449, -0.9551407698862096, 0.3885729820005979, -0.05434661623637475, 0.3767388172770911, -0.4898330949543117, -0.713441149440031, 0.42018478215791266, -0.8439100277112023, -0.19565425401483183, 1.2508445943709827, -0.598991758922596, 1.8429649718578998, -0.14258798772701783, -0.18138700905606242, 0.18618696335301746, -0.17087391761424983, -0.8432760462260274, -0.9939917370091027, 0.4305596597055404, 1.1091371083897912, 0.0790722776794302, 1.2495242586059518, -1.521274693280775, -0.7616476824293791, 0.19580408817424708, -1.3143027744001392, -2.091488061999562, 1.9663088091747154, 0.229879430005645, 1.4409375453185944, -0.36162055274827665, -0.27464439642870486, -0.6230996505620815, 0.5751002240784702, -0.16100067047853925, -0.09962621112274908, -0.4351501356168505, 1.3351792476960413, -0.5784998697471228, 1.3361458462940539, 2.3601479775013887, -0.4647589716386651, -0.4548988716102504, 0.7028762701773292, 0.5914980686358756, -0.6966115762392115, -0.7696723521588696, 0.03715612980676316, 0.32221017528830087, -0.4234227574937845, 0.34726424283234486, -0.48116562286295844, 0.3138392530237178, -3.16017434136752e-05, -0.3914227082899591, -0.581666722921146, 0.17111964776203006, -0.06008169278035282, -0.041886584782142536, -0.28699248044931597, 1.462175320301007, 0.1245846313065406, -0.1123526751684876, 2.092515176950615, 1.2272760858332872, -0.19552592726578952, 0.49191271925867636, 0.6144137708252538, -0.6106235763708134, 1.4976844345055038, 1.1892142848985179, -1.1357119642005757, -0.28436481789594376, -0.4421830922813949, -0.6328684584245098, -1.7040349067620155, 1.0820432527761576, -0.9968510182567392, -0.7985198199890275, -0.2588215482253829, 0.20174302514172218, 0.7287507331021361, 1.1722852714149967, 0.4322448567665407, -0.771155579801035, -2.612258680121964, -0.7051447495309736, -0.08301192443248484, -1.4472391477276658, -0.3526737726608245, 1.1294354483566833, -1.0899837588692494, -1.1395916553408674, 0.7779937885751342, 0.5183410812373956, 0.8509697670045957, 0.6208144564226835, -0.778892715214496, -1.0501461846073583, 0.8552859071722188, 0.8608448046488019, 0.5497428154557589, 0.04882443454369946, 1.6651080232070385, -0.32090016182105363, -0.3728486660772143, 0.8430133361143574, -0.5655459744432224, 0.7215544062511454, -1.9484490239876828, 0.6423145640402413, 0.014400283567776857, -0.7898745532400717, -1.586323922234601, -0.8458020923790143, -3.088311088273429, -0.7711672240651922, 0.9871615977182401, -0.9045757185197361, 1.1588809667487696, -1.3285096437778892, 0.5493583705018974, -0.17757552950573202, -1.6167076444272095, -0.6257691840041929, 0.3674989256823125, 1.5365222795738054, 0.3527319212488765, 1.0485204480487655, -1.660459836294662, -0.5794960248043395, -1.2465657293652699, 0.39414956926958317, -0.22431122185124802, -0.7424297725903407, -2.0183158330852966, 1.0943683904642862, 1.9180228164677529, 0.33125926943311296, -1.4098590113169003, -0.3049008568768526, 1.2884791320277762, -0.8304495335533479, 0.5648082533641575, -0.6324582858362591, 0.15519145016196245, -0.14331072524661, 0.5955341112172925, 0.2683604694117294, -0.46158779655753196, 0.07612773147707591, 0.4518924976580781, 0.4439502747372077, 0.8523538103367174, 0.6526631303289786, -0.14639057359720992, 0.11541815018151078, -0.14641912207628505, -0.28858965267185804, -1.1094993394266683, -0.13666302182060672, 1.1197245750262241, 0.5969030971713879, 0.7652826186532012, 0.5565420987155717, -0.39973686526861824, 0.7840343460033151, -1.1888373414791333, -0.38373069667860454, -0.2549327865564444, -0.831606465136574, -0.8020163962470959, -0.867149529466562, 0.3741626587437947, 0.009823237085445392, -1.7368701460461045, 0.9578205180189425, -0.30283019943674705, 1.1710486547250496, 1.3504432585716344, 2.135913369966061, -0.37144981581277836, 0.6683173129623053, 0.20836373808769923, 0.45158986081203556, -1.1459347939795756, -0.819138263097992, -0.44181173736632695, -2.228038352852804, 1.3450784569893894, -1.1523580752749787, -0.20464272457508284, -2.6483454695188007, 1.213210112709636, -1.4004764346361736, 0.09732611023114367, -0.44728592455565547, 0.10547550295522748, -0.42093313113048986, -0.5056183426815237, -0.35915275364763544, -1.0946537876925737, 0.31096146492651894, -1.8148942677707616, -0.3091292910916751, -0.07769189114014907, 0.8210353689958184, 0.9977559638388211, -0.9741254410868778, -0.532900582192196, 1.2326485600619295, -0.556852354708009, 0.5224831305011773, 0.2473387410334785, 1.1142299086991494, -1.1993099089239656, -2.3844231540204452, -0.031312298998023125, -0.2578374897963484, 1.3655566629409817, -1.978772520685182, 0.05702667001523861, -2.7661971160023278, 1.4379234027888605, -0.7192462186848305, -0.8359204541555126, -1.97072449798586, 1.2834263121409806, 0.5648994039770748, -0.10923252179999401, 0.5481965021182704, 0.192406781879664, 0.48581076499243303, -2.605560426009065, 1.03504983076068, 1.4042025146049608, -0.6532422029882547, 0.21720993132656635, 0.44583467031113655, -1.4473969873605004, 0.7442621658759352, 0.0035577574611439537, -1.5352838320153788, 0.36582337868920506, -0.43827718248031894, -0.331658585134989, 0.03475743065587794, 1.695364872590356, 1.558451620009631, -0.20689475301966134, -0.45129848619848684, -1.523170827436555, -1.694309335523152, -1.198176658548595, -0.19969177462827617, -0.05282460007952421, -1.1791283297361472, -1.0067735453064437, 0.17055987486894333, 1.548598735029748, 0.7208980223949303, 0.4530935835189574, 0.8089115623004025, 0.3351300125270723, 0.3800443655445466, 0.3736345544751257, 0.08967024919905225, 0.9223811114430721, -0.9791572872575997, 0.7490556870861242, 0.04211285779316042, -0.48675401364389137, 0.7892987384887062, 0.6514935495821761, -0.7389337564143339, 0.8226734205961588, 0.7249237684279655, 0.9660211264551801, -0.4532783587481408, -0.8511090310517235, -1.2152362800727083, -2.2688038747495143, 1.0639266151110012, -0.11852527671845324, -0.04079710558992621, -1.959172190759805, 0.634813706645387, -0.024392389160913488, -0.8994503599741844, 0.02058425261846817, -0.5502771537286061, -0.7627382878672573, 2.812113990163829, -0.35697622542008045, 0.8954830632884034, -1.2850622093830648, 0.9048756978263991, 1.295681539205646, -1.8039444541082827, 0.6289956120674256, -1.2464825605819987, -2.434105594966877, -0.7368776196463713, 0.07517741459098572, -0.7212226336631826, 0.6482644881693863, 0.7243697163628927, -1.015612682453925, -0.20576178987164687, -0.03565973922119395, 0.46655943398917193, -0.49256995004987253, -0.6208601544556013, -1.9147957069743964, 0.9111798522207986, -1.050789491681603, -0.17826554882391007, 0.0034287654351666343, 0.23891042130951867, -0.2896526657972369, -0.9678605370350775, -0.15606979834697407, -0.539588519878248, -0.9744762714085187, -0.1158787137991666, 0.463186013778498, -0.31756023012613327, 0.32352357908448803, -0.585725835882206, -1.7678336366681864, 1.5889268041950584, -0.20630705622264997, 1.232645492185463, -1.536865929859409, -0.9261652386696412, -2.0561143314389776, 0.4779964081018399, -0.8596011929021515, 1.0843957545428986, -0.9897567668916143, -2.3232928720337003, -0.03340641205022988, 0.7598708513617404, 0.6584247271159631, -2.3279582198317708, 0.24768310253870407, 0.8762008827221577, -0.6729640746468504, 1.2959884053547635, 0.9381350368383641, -1.1241425977603545, 0.4829581184819777, 0.44171108339691467, -0.1872572531285367, -1.2571533983758636, 0.2048074965235173, 1.6143344982484689, -1.3124698136215769, 0.3635463079780809, 1.3596873368910098, 1.081430863928576, -1.7061600182770245, 0.2118428338657974, -1.0006407692588688, -0.3401431816847726, -0.7813320328275092, -1.0011400049098196, -0.04519821459969004, 1.2603284232288081, -1.0630920047189185, -0.44789118146525986, 0.5582310695632384, -0.7090682864355446, -0.5133533644647693, -0.13049594943266846, 0.7311900472570971, 1.493841327862994, -0.25011186120154755, -0.7748595776465173, -0.5052909848740618, -0.5033837938274406, 1.0631419148120849, 2.2478394914416504, 0.7500249601704074, 1.5817576559551234, 0.8472836111216092, -0.470416237895585, -0.19965720263223283, 1.0216451463957437, -2.1860339921625407, -0.9948198936152898, -0.4396019229076382, 0.8734144476777804, -0.2965813670330133, 2.2470581118653734, -0.3395559758401316, -1.791968271962612, -1.9257914274985277, 0.3714309214848273, 0.703855673271628, -0.555710126333215, 1.0220050901401225, 0.20363711487789027, 0.8516796154742334, 1.5757937650329772, -0.09665836315586222, -0.776148895209055, -0.8004256779107253, -1.2413561284257886, -0.12925323644050332, -1.2379066703304404, 0.06651546025851007, 0.01391190021081403, -0.17367092702089812, -0.3287548140792935, -0.8711037772397026, -0.13391409347721686, 1.046744495577508, 0.8549541076563608, -1.14897045533444, -1.9386803001956516, -0.38823478112772664, -0.913589660602426, 0.2729518941831664, 0.15071694940790553, -0.10547684574045808, -1.2248164227256482, -1.351082215307864, -1.331163419569997, -1.3025284037326679, 1.591100615537101, 1.6839972656851228, -1.5013406493986328, -0.014560098841445244, 0.8758316571675913, -0.8616058158966454, 0.5237127012367585, -1.196778610697725, -0.35407288196013637, 0.6942107386263077, -1.8315746797885266, 1.4846155028429848, 0.43076769047114793, 0.384367439106405, -0.23394885184834452, 1.2198064491495224, -0.5383323547980174, 0.8160510810336509, -0.4573571329857449, -1.7335152974789638, -0.4636249816670279, -0.15318904243505294, -0.42412709535096155, -1.2846318534528511, 1.325417287661619, -0.24420837398318634, 1.7225099174527827, -1.3858598478981758, -0.350222801326749, 0.22885965098157468, 1.4051554822746368, 0.3335772936910085, -0.6286767607540873, -0.07004282442105106, 0.04489437050367313, -0.4059451088431407, -0.8094857079707901, 1.7505330159261117, -0.583610420693528, -0.7366008689555579, 0.3984745730971409, -0.06377005585758136, -0.8206644772162646, -0.6843563782443158, 0.413445320652666, -0.4554691818585017, -0.6229184879111299, -0.2413741831461815, 0.5506155379147128, -1.3103237870729614, 0.551465002061796, -0.5526669452272004, -1.432939322764634, 1.783677814895783, -0.2619175408084894, -1.7366570861134099, -0.35564945315684077, 0.10137133388748105, 0.7235998519780015, 0.09403042929115289, 0.15425730783069394, -1.8572780611255473, 0.5058501044761556, -0.7574907452490733, 0.17607281289803361, -0.8396945461067945, -0.7292802178089858, -0.7002824669050794, 0.5503576214615272, -1.5890603582592648, 1.793036043038875, 2.7878235846616866, 0.38956928497568377, 0.26174869373444265, 1.711065590611669, -0.21780984024318578, -0.7476219519355383, 0.18354455463527203, 0.9102969356546101, -0.9733253628488144, -2.344766204767146, 0.07301118913271507, -0.4917986474536467, 0.7416391329516281, -1.2880000713234445, -0.46197477360345757, 0.30212819705891386, -1.5167184180382485, 0.8501535296247528, 0.5175168374586809, 0.1763279409946514, 0.5808980947903934, 1.8472712753780864, 0.5887473330756161, 2.1954184977584354, -0.03769822240764868, -0.15613316317636414, 0.5004769377495568, -0.7455652599230427, 0.7677830295108011, -0.1441337502428087, -0.7523387828605589, -0.36755553576567623, 0.34105345138077786, -1.1914248220126447, 1.2303531748948233, 1.3432678076153106, -0.4313094961431832, -0.716554553207416, -0.36217498101423934, -1.5133659288612389, 1.4950695017357467, -0.5715269477785132, 1.1593421463571147, 0.43789720927678055, 0.09116342195238117, -0.3049393765588991, -0.837272212664342, -0.5766435716140458, -0.7356401726215391, -0.9485280265926767, -0.1250772778287353, -0.24361064177838979, 0.8522508371598432, -0.0037377039062253593, -2.5439058613954306, -0.0569000266151025, 0.4320024316685166, 2.194478575759713, 1.4396842305532822, 0.36543499574809074, -0.3770338147135057, -0.8552418236779827, -2.641615137447347, -0.01832206949724758, -1.220279075748726, -0.4532959432254292, 0.2687666926125023, -0.8588555314205266, 0.2995859931505431, -0.5333350265572113, 1.2847615357173254, -0.6750734120371739, 0.8097130403145714, -1.6270630113161542, -0.9700686987748345, -0.626750470435254, -0.873880059260819, -2.302124621855377, -0.2119446632235012, -0.45104357068515205, 1.474647321380819, -2.452150203161443, -0.26422200819131053, 0.3355570393620066, 0.4521192920529254, 0.6898023906005871, -1.0228088805014108, -1.5620067151329697, 0.2114421450103242, 0.16571047265242836, -0.9976369476833716, 0.2707035595461758, 1.527376877291636, -1.1501231170867043, -0.8215138548193065, 1.1255100205347468, -1.4908295737477542, -0.9614784827261649, 1.253875753998538, 0.6502131896760401, 0.5459866901410766, 1.4600197648017388, -0.0961460203532497, 0.7266795346872365, 0.24327467641293096, 0.6629927940460294, 0.1425139446241705, 0.6769287783907216, -1.3236927946900179, 1.7325000099103491, -0.44398667144970083, -0.06250247294850679, 0.7996605229107876, -0.8781887569136042, -0.04685771081608833, -2.1381243641968757, -1.1057101272330927, -0.2334652569852083, 0.9622037237887306, 0.6635341672421278, 0.12296392422848872, 0.16098800191091994, -1.9738778562669794, 0.878801521788013, 1.1264406225655363, 0.9266111456784218, -0.5837955300185679, -1.1381689631937657, -0.7637975260788618, 0.6253414266910773, 0.2560476374285288, 0.6225515550412877, -1.4003990017303332, 0.33627768607969516, -1.9427666341170824, -0.6932243069544903, -1.6260875697896702, -0.7277319111014768, 1.4038229847386294, 0.2920548422295979, -0.4789539104472966, -1.5162957655731588, 0.7303018926046246, -0.08451244525442732, 0.784113042439586, -1.5334585479514933, 0.5670458287729787, 0.42975930410924124, 2.449800593141972, -0.747332434740572, -1.2322385206168842, -0.7568040112448173, -1.4135743704317814, 0.02577746009056378, -2.0837637677880294, 0.49143275227877103, -0.09302281017834362, 0.7031745485857588, 1.9067771128764397, 0.017922750249444862, -1.0118512011569816, 1.098381595132738, 0.7341755899609803, 1.2311978717249155, -1.0213846091416032, -0.30656617450535995, 0.2039715668363261, 0.9137009208505903, -0.1853547296025253, -0.4531226067380201, 0.4791486178122148, 0.4244894303034229, -0.21125213591144995, -0.9006724834631074, 0.687500015940671, 1.5478498713739013, 0.5971262704659354, -0.28221603850355226, 0.1853982344045198, -0.4972609839585217, 0.09701023695712938, 0.5695911267833031, -0.3164094642230819, -0.14706947612684826, -1.3149133497939054, 0.6864680014836566, -0.772852350625843, -0.5806236044379457, -0.3330938726043226, -0.2730406772068024, 0.5762813326703923, -1.4304622484096188, -0.8424942170683648, -1.3966094397492712, -0.895345937295373, -2.1450526226610602, 0.8982603474010731, 0.2447347737164159, -0.14421939866277614, -0.32759685565611457, 0.296699608032958, 0.4488491381463045, -0.9366906772433812, 0.8575927698912629, -0.21528850062417895, -1.1881007189482282, 1.126951428099562, -0.9182517838371076, 0.03845610449911805, 0.21538710321609011, 0.4345124212863915, 0.22806905558766796, -0.0433565930969285, 0.7593857162181715, -0.31477607928734513, 0.45451779677564275, 1.1460305154279424, 0.17511551763090402, -1.8856875430269369, 0.8346203714049741, -0.0696682533840345, -1.477209694338219, 1.167580661482926, -0.17554887202590774, -0.8474837486432465, 0.34080524465178785, -1.067656844368498, -1.2235746072702904, -0.1496059091339221, -0.6271075452205968, 0.17720185109195266, 0.4353918232872083, 0.5660926079329978, 2.8554574415424483, -0.6620166583187813, -1.7269876019682948, -0.4078387228577495, -1.7228178107762542, 0.3726054112499986, -1.1217641084697834, -0.4549722253573668, -1.1732831794353027, 0.6575544136481785, -0.9201334492342766, 1.6328222950437552, 1.6244241347609476, 1.5613555902002136, 1.4668846483103386, -0.3487215605525855, 0.12066051762324873, -1.3338304508691319, -2.838826297994906, -0.6706495059056897, -0.2112553589247857, 0.4093088155814143, 0.0586543436679839, -1.9337244019029907, 0.07171251023300006, -0.453400009742923, 1.1415999381407176, -1.1548675809496596, -2.382993633047374, 1.665455784920222, 0.36977079711240063, -0.535727132830006, -1.4579294636750366, -1.6520070983625739, 0.08837369320935094, 1.1015994425060465, -1.2436747485612611, -0.16173195775871396, 0.7874586254788326, 0.8455365274680086, -0.47385229544186175, 0.8581794726994194, 1.9141693890868874, 1.2111468774347625, -1.283834409703804, 1.4122001960991903, 1.4246122083213058, 0.09617143246488447, -0.680416520345397, 0.7939074419436761, 0.05082061802593895, -0.3375681951224267, 0.2728075634559421, 1.8677062690963786, -1.2849446512608989, -0.3646522458534046, 0.917024620691813, 0.836213051287984, 0.4199460834454394, -1.2038519270531134, 0.12232264627089835, -2.2232529926712767, 0.32822411605932045, 0.2221878465543045, -0.40914638546335264, -0.5038836046014628, 1.8256305544491191, -0.7565556539701808, -2.7739792692396126, 0.28066845231027215, 1.3738789070045716, 1.7661381760831198, -0.9580232806819591, -0.1780922624537117, -1.0984645221049045, 0.12603798766445923, -0.1849675475219486, -1.4475049162679143, 0.9388707018063479, -0.5362768656635394, 0.9452817076530887, -0.37341197131483667, -0.2629170752516286, 1.325991973487167, 0.9619471376599076, 2.1975015359014103, -1.9973341541819725, 0.8588312686492864, 0.13666135012685632, 0.3102389236196128, 0.6936509306420062, 0.05434653570011313, 0.3886040413097377, -1.3881648803578328, -0.24232672717865358, -2.3006844443180974, -1.518751357394444, -0.3706901669875656, 0.7539809084190491, 0.4912794553641408, 1.285898467547851, -1.2234469904502512, -0.08958864363508236, 0.583078020131131, -0.23178079681176902, 0.4769446061135408, -0.4016965792806681, 2.1618387681417497, -0.3808916318031749, 0.7019003947692466, 0.6921832736273762, 0.2010723299967834, 0.23634082843208823, 0.6056544806575411, -0.11651743275509928, 0.5766313042860137, -0.5190655005970012, -0.4579416002427724, -0.424209530527786, 2.232559210366838, -1.8171412233712165, -0.6495312007257151, 0.01454464350825512, -0.012160378768442833, 0.45900058613553946, 1.622427208224704, -0.8381648037082366, -0.06922690164521429, -1.1571533446018838, 1.2962530073258305, -0.4164012434169487, -0.14957792428793357, -0.0966188865041463, -0.17162818417291137, 1.5823601195567514, 1.0185460546773435, -0.27435903244422055, 1.0624307534321238, 1.6824917464322542, 0.3499999101405133, -1.7539284490002658, 0.3415515608898923, -0.9304971196835875, 0.04252683790482448, -1.5965834974215565, 1.3596129553980816, 0.5975052601318105, 0.7282491018628274, -0.8685422050617817, 0.8955457613350786, -0.43664776638074715, -0.8206970291571989, -1.2898007224720796, -0.3186171612571654, -0.3330818341118064, 0.6655752973348447, 1.6764347205970604, 0.6078743574830635, -1.2342507922222805, 1.9210718505914963, 0.26510984025007406, 0.2685882654026507, 0.7102430456245953, -1.0462145584529572, 0.3857191152427833, -1.8835805633826779, -2.768761193953574, -0.4915726819365157, -1.5089924717034593, 0.013278831567490521, 1.5474176875871273, 1.7045030442907954, -0.7048211460588357, 1.0382872389284454, -0.4236141117291399, -1.1507654519546344, -1.6074537360491772, -0.7267874141115397, 0.11876040295645178, -0.6408806028454356, -0.12049820175789154, 1.1256684566373316, -1.1503658259476168, 0.3808406082354331, 0.16166298056768014, -0.9796873977838907, 1.0438547113586458, 0.2695904409689415, 0.7097366282641338, 0.36812978605144314, 1.1038117080137047, -0.5807051449206111, 1.027731721586947, 0.9661580338116212, 0.2598371929157506, -1.2798102496315147, 0.8352067419464927, -0.1452621149892954, 1.8549267889124994, 0.5665323669164135, 1.5421593189692089, -1.4677264718771512, 0.9585639718948312, -1.6479655417171202, 0.22271257385409565, -1.161398773427602, -0.861813501728504, -0.33065924746715947, -1.2370435572165541, 0.13012798200740622, -0.17426050640126142, -0.38744989631009263, 1.4307827967619229, 0.03543562533000589, -0.9972687727886126, -0.5170550450401604, -0.7750247609617125, -1.5190613124777796, -0.45895251295378553, -1.8056739512190008, 0.568360571435928, -0.2004869809428556, -0.14483685708825503, 0.5258043449164731, -0.16813587996429707, 0.10846389250099084, -0.05315797521827668, -0.21651365686613308, 0.06006145597959008, -1.4024064633139812, 0.689880904910238, -1.3428757039530983, 0.4589303661569864, -1.4188669947772765, 0.29352168212647334, 0.7308608932842507, -0.1353758679174761, 0.17358923934048226, -0.40216684119518126, 0.43993814071860016, -1.2871086596268482, -1.2622185432193231, 0.5955345200199184, -0.8657767655249429, -2.0777147735575694, -1.0097475327974674, -0.29221483234147594, 0.2292766310482291, -1.1056969652514455, 1.4876657299426514, -0.036104835108870456, -0.6423673306131062, 1.17645837315232, -0.27627899423171265, -2.1294237281854707, 1.0389397167884664, -0.6156099069368945, 0.5660062401217804, -0.34735225445425977, -0.32061267845758085, -0.898048854923999, 2.3890802889591454, -0.1207700865946951, 0.9658162458846846, 2.1295380289836494, 0.22730977326083576, 0.307795221689862, -3.159470294922449, 0.8956823805247126, 1.4364518339011614, -1.6940979672180807, 0.165976015208281, 1.0227277830757575, 0.9471964236813554, 1.3689187788341273, 2.0082590219654723, -1.4127390079463908, -1.4582830839548455, 2.057655232622654, -1.6262107983377108, 0.8065089603585295, 0.059317700347295395, 0.13330649608758663, 0.41871631403681064, -1.6670993078179417, -0.4557222192488648, 0.8358412168608853, 1.1485241583907668, 0.42382769612443416, 0.07067530896807704, 0.7805845452452761, -0.9230705042306333, -0.7008265657860365, 0.1238579585529523, -1.5033879105374937, -0.8006324477609928, -0.44793642959253405, -0.27299529722657506, -0.42911609794809474, -0.04754182561350199, 0.4678169668023181, 0.9609426463686324, -1.135854381028605, -0.9604027706620838, -0.8759778130611081, 1.3255392992467154, 1.4437271577682296, 0.4932168845856174, 1.1198442202865473, 1.2097953377572856, -1.4782787622655886, 1.534331937472566, -0.18592464788213361, 0.9065510875978713, 0.2441526620364802, 1.2142409950847504, -0.005934606839626211, -0.19071981471485608, -0.3040583507442866, 0.060081676730458174, 0.018762337319815515, -0.9902130995818926, 1.3074986871427252, -1.2758677347357341, 1.0698936415205338, 0.5702156020946687, 0.3041015469962475, 1.0315316803895331, -1.3625531333588328, -0.4647788936504099, 1.3043793230085174, -2.2931238782528447, -1.8655685521053629, -0.9669629869645776, 0.1883663353758491, -1.0634824082910936, 0.8013306975599391, -1.5443624045591937, 0.32715347959892516, -1.1042425552504813, -1.6161041406680392, -0.5109993363057571, -0.9190886093343267, -0.6077428272848499, -0.5002569071129503, 0.9756689510277916, 0.2772218606494787, -0.43287852998208237, 0.6296681915983172, -0.8502843261320427, -0.9505069068832771, -0.650584341206366, -1.661723761397373, 1.007089074815852, -0.11873490106540271, -0.1272993611104505, 0.9298614676390998, -0.5153289230941936, -1.556702035787103, 0.3807701443952423, 0.6123807492207072, 1.1867467887368908, 0.14654907176430795, -0.5370416367498603, -2.1139883997425315, -0.7876830210703504, -0.6237996086335619, 0.13592084587607914, 0.6393276776955494, 0.13991569771729745, -0.81809230737367, -0.6683486553698732, 1.115178173122076, 2.446771414213701, -0.1637585890568815, -1.1209704564711065, 0.4467511515071406, -0.9534092482312004, 0.3182330919933401, 0.271683759433474, -0.9573363828477164, -1.0712413179694105, -0.30255813778652974, 0.958247674089883, 0.4979415521551006, -0.8376872519699228, 0.022535961046091832, 0.6840510626836408, -0.21077828406318735, 0.584447240190305, 0.3410263701239205, 1.187176771555195, -2.1172358171100973, 0.30995019232039317, 0.7901976578611829, 0.30913468523891424, -0.9844146654250953, 0.3474506697688135, 0.6259418281233743, 0.4794626029480261, -0.06173762343825315, -1.3627102955192472, -0.20031835021540442, 1.6870429458740388, 1.6083459881399655, 0.2789050227337342, -1.2719884064904396, 1.1853106830638485, -0.9913580737072663, 1.2233104543278213, 0.8134432318899081, 1.886557959191833, 0.11022533467624505, -0.7681413266984113, 1.436892344457456, -0.5556957709754798, 2.3038212660346935, -0.682772274731363, -0.4746168209407287, 0.5511129315383609, 0.4215246673091607, -1.4860625654820405, 0.1897176503580621, 0.44020540443738876, 0.7496215071681255, 2.552398472469107, 0.7607506386602476, 1.0820709259858656, 0.19917231987970416, 0.7942499355919473, 0.19973021075409347, 0.29481380935757473, -0.6357637486064631, 0.12863791178542627, 1.8561515112410554, -1.4521073859968245, -0.44690133813439353, -0.5281516778029656, 0.23031228507637702, -0.05163289925469105, 1.4531091939178806, 0.06594794127602743, 1.9158929778743325, 1.3893544881471012, 0.8377158542991587, 0.4599670791005717, 0.6058828013346426, 0.21069233748771843, 2.0847766207434564, -0.029268516047371095, -0.3252030660188709, 0.13202105483543372, -1.2051521919108732, 0.08810029046160057, 0.2998899394140385, -1.329901911797941, -0.35244571721201917, 1.0093949421205954, -0.6561924048355037, -0.6769220785633787, 0.9004707724740563, 0.4215313341559502, -0.7375271922065233, 1.0706249247137103, -0.028892244945197036, -0.5183281825357204, 0.5736153002965058, -0.3758685831678415, -0.7918995871067815, 1.2782634446781616, -0.6356995421752419, -0.4833863369287177, 0.9974534142023732, 0.29124328932605514, -0.8236355220229586, -0.08699050597488259, 0.6590141733829847, 2.441583292882557, 1.8873452628569025, 2.2474275746061965, -1.2084812281924566, -0.8018851520041654, 0.6759181159646618, 0.00313769957548172, 0.31474207170695445, -0.07736951126774436, -0.25018161293926583, -1.2830507962514812, -1.5628441907653305, 2.8453969247062276, -0.6342184442111992, -0.592854552706071, -0.653723999513639, -0.76565949917059, -0.730526998162015, 0.09075307806432394, -0.9481548645415303, -0.04755585978648472, 1.3476101538895733, -0.9875559107864285, -0.7896939152505444, 0.4816267344514175, -2.1648165937072137, -0.7268788889746165, 1.2960347147856455, 2.9109429440400323, -1.065376273609101, 0.18513796404565092, -0.8814138828253623, 1.2409135508501319, -0.012877656665903105, -0.6476617613042353, -1.994768600369764, 1.3443028214739667, -1.8514533014456531, -0.7379582086548833, 1.694396228823381, 0.4026562338082194, -1.2758466479856054, -0.25334115795781886, -0.10298131523967101, -1.3748667924232236, 0.6293890561733958, 0.2738888278899806, 0.5612373487486728, -0.35340678348969806, -0.736843748234479, -0.40367835808832514, -1.2439466232262497, 1.2570138663363715, 0.45632423807954914, -1.170707965548015, -0.9587623429264018, 0.6425982154718701, 1.5567146540543542, 1.2516374448322218, -0.22322323181634318, -0.5695167025136576, 1.3827725588378879, 0.529065899193698, -1.5470827592965664, -1.0944906269170949, 0.2905472841355263, -0.987585623182969, -0.3515621243107407, -1.1366040859833553, -0.5160321145422849, -1.6442173347711861, 1.3423907595439113, 0.31986604002016844, -0.5786595172834021, 0.73801532386848, 0.5788365796442495, -0.7375548663739422, 0.45423130001442397, -1.225358779977498, 0.7678067565519512, -0.05078757448886205, 1.512293872317004, 1.106989348588503, 1.3272064524680798, -1.0102290516604413, 1.3418085812620126, 0.4314053354881663, -0.8698836928173348, -0.33508116195249105, 2.273858285763485, 0.41127055898865217, -0.5417916233776102, 1.3173262896619646, -0.06588492371272986, 0.5969382095462551, 0.6197204718248582, 0.3742348312569251, -0.04007772711014461, -1.6143631344300409, -1.2617480510616137, -1.2401273803885422, 0.3822358970465057, 1.8061346386866513, -0.22702264172388117, 0.37048462734622856, -0.11799395539242921, -0.005235059103559137, -0.6489984366966667, 0.7782101694572308, -0.024126859434724878, -0.09798935833649829, -1.0417284651310414, -0.6605483359597034, 0.6972000521784677, -0.15225780204879624, -0.36034171752445354, 0.5934576132973614, -0.25056255516564263, -0.7310153609877714, -1.8861910032233697, 0.254480151361828, 1.4148114593503607, -0.8002251737459469, -1.3914075562421209, 2.6894920671041236, -0.1506644941293263, 0.4047667831579401, 0.5611273432518382, 1.779203788992058, -0.48565136522391056, -0.26653744823132164, -0.8829510316719237, 2.532755174768609, 0.5582799591535964, 0.3625488756486719, 0.8429610656748877, -0.1422677046514221, 0.059560937411363916, -1.54096863376706, -3.409308449483486, -1.501482227036858, -0.17084770021492382, 2.3317238025849716, -1.2471763217303788, 0.6742533376141315, -0.4671654422272103, -0.7254154200533441, 0.23441703660981258, -0.4694323705405022, -1.612196166706617, -0.32563743615759183, 1.3898422646804982, 0.859146411700291, -0.2601661523404493, 0.3217117418244543, -1.0494347817905338, -0.5991667659706216, 0.8881794866760082, 0.5840210011255069, -1.2075635705473267, -0.3377101947699321, 0.13603306699179857, 0.5802301275309478, -0.704852221496425, 0.9615592481981307, 0.5450775566697076, -1.3780611142397772, -1.6167118554509825, -1.2811556928029282, -1.2724034602241299, 0.16120409249117293, 0.42750602102457846, 1.2666174612779004, -1.5508664421057543, 0.2620798945065646, 2.0332984208088303, 0.1261854523088127, 0.8345628189160572, -0.687707400490003, 1.0656169293117534, -0.31887838781706285, -0.005112174834790412, 0.2023207919468502, -0.5067392202386992, 1.823953396894383, 0.1523428263375545, 2.2440789764565605, -0.6697609733471732, -0.34309395149284333, -0.3824068477398153, -0.33303131558596377, 0.9716664193169441, 0.8311581421420695, -0.22780854741625758, 0.20032616901737238, -1.2785511330679982, -0.3197180135822623, 0.4959834053798831, 0.6752515974385053, 0.5334780166422973, -2.002795187816773, 0.27050605525523075, -0.9424869426824867, 0.458248932225858, -0.46118697878329784, 0.47832198627914324, -0.3661079341479641, -0.09319576406942727, 0.577819340020893, 1.2520997452677414, -0.2933921906178384, 1.136343377990995, 0.2468127074537116, -1.2252940887079373, 0.6375579341674809, 0.3462788965739153, -0.5177836733288577, -0.035284483529249705, -0.5338255181822806, 0.5193809161508848, 0.21798950092913766, -0.6956597590579882, 0.8046664677176151, -0.11463713804889088, -0.19176077914163675, 0.791885645189318, -1.4328882682847868, -0.9528659659051965, -1.637558975422558, -1.989264868496837, -0.8459538105074142, 0.944828292676069, -1.1921028346027158, 0.2546472038919744, 0.3861916389251654, -1.521512495954636, 1.535375205330882, -1.8914196543962882, 0.5149418901648063, 0.7752013519581096, 0.9145512827088738, -0.5080387911664219, 0.05031436015329658, -0.41216922303342934, 0.37227191099516266, -1.6600720014787667, -0.17968185610490092, 0.31830407850338693, 0.7686158224111359, 0.3658407552939923, -0.7165726159358554, 0.013357030158994452, -0.3372894061190394, -0.6789238357123408, -0.3832898769073804, -0.3227036184382978, 0.4460521819485986, 0.061892643502349666, -0.32267506934792967, 1.484633534363464, 0.4021774493619681, 0.4307762865129178, -0.5296069271797403, 4.151195369087241, 0.5487000909862146, 0.7163468748574175, 0.3808084179332832, -0.4772621640085183, 0.5479157515300286, -1.1044576899329694, -1.2036713335057232, 0.6909028182382742, -0.6529263174772725, -1.4725628267518027, -0.7473406606454858, 0.7387557364279378, -0.8760308731605688, -0.967180804004829, -0.49221734292555436, -1.4382474439405089, -0.3481040054911766, 0.22254446316102353, 1.731032969663649, 2.8055652681876384, 2.1160837251189757, -1.379194059803083, 0.6326539345516785, 0.15520482328940885, 0.8119547790137315, -1.610952801893542, 0.008918798158614715, 0.477564041851444, 0.25533528319659754, 0.998197782393884, -1.6484421505039013, -0.3004410869764593, 0.6057050457224126, -0.32020257217470566, 1.3359336989858763, 0.535133451920879, -0.5673962878727761, 0.24055606737735033, -1.6590194676777759, 1.9066265876591473, 0.2721183739248777, 0.06834872118107038, -0.7693837262978656, 0.6000193521872865, 0.20157135480173424, 2.472674269826056, 0.8258740084136792, 0.47137911495882484, 1.244572899040009, -0.3130562609295631, -0.7435497606216963, 0.13509423548484906, 0.6656236185332783, -0.5980179153119386, -0.6435416164377876, -1.3312882258359282, 1.0671430529417514, -0.09759042594372078, -0.35648374184511217, -1.2269456519162936, 1.6814992783555787, 0.04184788447848968, 1.68139083696507, -0.3030041682277847, 2.2849057798957273, -1.196531329787736, 0.6523992375423346, 1.4893905469952924, -0.6823297566186022, -1.1041446305707252, 0.4421841974696293, -1.4167436314301174, -1.5920898580925384, 1.4343243359414184, -1.9045005981467849, 0.057069471507391965, 0.5278224067845345, -0.7362602350911139, 0.19448161568570255, 1.5261487666748228, 0.004388839910851893, 0.015470814085829732, 1.615975884645819, 0.8879261649672402, -0.1326774466682177, 1.9382951563961202, -0.44547041979800195, 0.021230799239171535, -0.1571038497582797, -0.16148117044663435, -0.36447608885124355, 0.9360978659212479, -1.9835447885628907, -1.8064899970710941, 0.9036470769919311, 2.425086908712557, -0.6272015905517969, 1.957160646153106, -1.7538826809290353, -1.2373863108002687, -0.42249715021397544, -0.02100757430425144, 0.7526038212912296, 0.2047007870068672, 0.570705167349308, -0.7783611682766279, -2.3095477705978107, 0.22606718794222244, -0.32290132655615966, -1.597852946819715, -0.8952260637834641, 0.5568680007496093, 0.31733948888023006, -0.24697424901807427, -1.1633182632185708, -0.261549901914151, -1.855510767468883, -0.12245837196266503, -0.041080160924985655, -0.585409894265932, -0.4138566348289641, -0.6980329178942006, -1.0029216664042124, 0.10979946351080472, -1.6542257294131706, 1.393533502384212, 0.5174318732191945, 0.30147088153612134, 0.13176508644926532, -0.21802556521053773, -0.55329143084434, 0.2739291983626038, -0.6883020380352294, 0.6825537252923997, -1.5046508987238285, -0.5828333121318955, -1.1884290907589348, 0.1665509776472768, 1.3971140199197725, -1.3673567412727532, 3.0130147873449924, 0.7896539284272303, -1.055832543621147, 0.16658265730062774, 0.5232158049212052, 0.28570121739370363, -0.5325889850018535, 1.2918469178499534, 1.9819733294664026, -0.8093143209894869, 1.469595195954295, -1.2932943712519451, -2.1208284016640415, -0.4050898165492931, -1.1517011911443218, 0.8998956145443444, -0.23384644657433187, 0.526560658434697, 1.1222026129349756, 0.2160342440751586, 0.6797496626133915, -0.5331175042591417, 0.6637291624241468, -1.0147033164625645, -0.5049005083720637, 2.0659370602844436, -1.5900216896103532, -1.5339789892006166, -0.3200566858112642, 1.2830977533887504, 0.04654283897838462, 1.7838815763897529, 0.3904401499994594, -0.4111612807908421, 1.1847627666014435, -0.3955642857036182, 0.3675601425931492, 0.088662611923031, 0.46299757634197497, -2.2893235368562155, -2.268927460602336, 1.283516393286584, 0.20920007589000394, 2.4411204448502586, 1.1389069409067243, -1.1898031767179975, -0.43341406963651063, 1.7741298995608883, -0.016709317081657786, 0.11517899718492178, -1.5511855060356194, -1.3117417253404795, 0.13351391911792548, 1.1637653113813886, -0.27570074398670863, -1.5697680634730649, -1.954956462100421, 0.5552656916393576, 0.2373994429321212, -1.9303747103380289, -0.1921132978172397, 0.6250698172881495, -0.5949372282094622, -0.7826608913130164, 1.4562229269964548, -0.5416543116490529, 0.6936768940278385, 0.6261775893704643, -0.5859171652539004, 0.8555032381807751, -1.3676477362552337, 4.238533804853162, 2.4545185017647904, -0.913404759221193, 0.4250981319720471, -0.9763799065871701, 0.7808586039540816, -1.0328656450097617, -0.7721604644533069, -0.3530813727528884, -1.5411637128692925, 0.6539840707892913, 0.008229110336607592, 0.7966890453416182, 0.7037436956153061, 0.6614113279704881, -0.202848267721112, -0.29922308805427594, -0.5522097500427048, 0.09875065962242098, 0.7083328933399845, 1.7362802880024957, -0.2266535118741716, 0.5299005404626365, 0.6719364752934611, -1.8615906591576734, -0.09068813508526216, -0.1888891414579059, 1.3423077781666952, -0.6924470819765697, 1.1041424493388294, 0.4134851965057971, -0.4735791706069265, -0.7356651547484112, -1.575469178834194, 0.2059058482018911, -1.317543434131728, 2.347983690185328, -0.9350302948592141, 1.0039027596124084, 0.30969112449845376, 0.2541035100649089, 0.4211688015877788, 1.0647819562744412, 1.2886070484626828, 1.4453593413552184, -0.026423761925036916, -0.10046863824315762, 0.9375145304857443, -0.8794152043439424, 0.6161524124555712, 2.1765363841706007, -0.17519057418498793, 0.40239774219958097, -0.5314020562312248, -0.028260581879397745, 0.5266158478069836, -0.8130604924415793, -0.1620471073410965, 1.368895928096441, 0.2544222901453687, 0.0682140981898076, -0.08305873685961358, 1.1551649925205691, 0.20488815881813946, 0.9788412565833704, 0.6730413277634831, -0.10343628631794778, -0.011056773466636922, -0.26893242071811874, -0.22234819963659333, -2.063667484853198, -0.9528556130697672, -2.298918544448265, 1.4641851715761252, -0.6443216828282126, -0.7448597363782805, -0.5637254977251447, 0.026036289664867818, 1.7947458799857385, 0.47823466572724166, -0.6009031631006543, 1.5622161381793802, -0.012361922782423504, 1.1320815868058798, 0.2666111797781486, 1.0800481352272358, -1.3534368975569377, -0.12565159569358056, 0.8269760280151415, 0.4101805250340873, 0.5459250834776258, -0.578841318268924, -0.7708632540651004, -0.004711348442621566, 0.9139140784227678, -0.5887863731031122, 0.5255711160933076, 0.6899347371240381, 1.8406881042526044, -0.1494953868420972, -1.487372075437836, 0.04531226841225139, -0.8785887917514404, 0.6773321050874577, -0.0983506278141217, 0.5597628029545394, 0.9487620637619515, -2.0252012328413445, -0.3325641975286207, -1.1258330017788327, 0.023802932989263906, 0.42532764883918267, -0.1719694477750812, 1.1366386876717014, -0.06950662371831764, -0.5610077364219385, 0.6924775343736279, -0.08202929488370111, 0.03632839803067284, 0.2035677562126695, 0.48902609842042033, 1.0804149661369027, -0.7425106537204975, -0.5702977393123885, -1.3826240552189546, -0.5228635824639636, 2.541990031610674, -0.3358484399232096, 0.2708627260856431, 0.3577767439219406, 1.0481739531875494, 0.41502512979161693, 1.945039667472124, -1.333971998047096, -1.6319888693166744, 1.8081668907285702, -1.126545357015281, 1.017481115516176, -0.8746343950821853, 1.613464623094451, -0.987275067228173, -0.7782780233402289, 0.9358137937887636, 1.2685709811916313, -0.9922941446951046, 0.6495420807278994, -0.5015976512021791, -1.4515930568861974, -0.3017145427194569, 0.22396206990737433, 0.2449168875921067, 2.4353212694888504, 0.17708064085180888, 1.6379030780705819, 1.3277860775740942, 1.9763199313325732, -0.7129095818443579, -1.2469376388413769, -0.6242116235182271, -0.48041188552500946, -0.14268548581723478, -1.6604837693733687, -0.03806802185256857, 0.6963957195724964, 1.0623750746697818, 0.6233441558858677, 0.36657697739573364, -2.295074935487194, 1.0845561474708743, 0.4905268784109729, 0.9510955040687479, -0.5026253874469225, 0.5855406556971665, -0.4674907407543193, -0.5608509773657036, -0.054561000082436986, -0.13488620479039842, -1.6100667806518532, -0.3709803597469035, 0.29582203102054655, 0.8410085106517383, -0.6645326878187746, 1.1367845966619665, -1.3201243250510812, 0.13674546078719402, 0.9775512964502551, -0.6593867653205457, -0.16315112660697673, -0.6429666213286755, 0.5269463017070531, 0.13689944560905168, 0.2704736580667669, 1.0956057892301136, 2.0377599847068084, 1.1896914387079371, -1.1056334740369136, -0.061419064162327903, 0.6558988396743295, 1.1616563231258492, 0.05233437675572931, -0.43279599457514883, -0.6310196056008639, -0.07017445588897313, 0.21859133324465385, 1.7464304327601714, -0.38374464463022673, -0.4116300533373271, -0.9012559637626759, -0.29838378562277373, 0.1776181377502974, 0.5337179529206251, -1.6927309440114802, 0.19627841167268098, -1.3375053577369045, 0.34292489957433187, 1.7252380623451755, 0.3893308049876548, -1.6138835583138924, 0.24320533391068808, -1.503402740971457, -0.9820815913055403, 0.02826537327258336, -0.8677808012629867, -0.15732458310810252, 1.6448055242437023, 0.3882793537178024, -0.4745596075074129, 0.1657838803136746, -2.6918015152661914, 0.7632486195032542, 0.6973513947209198, 0.4101471209696532, -2.2799074841609177, 1.284770153684539, 0.03995086580146711, -0.2991581182473426, -0.08304172354784842, 0.28042933971050626, -1.0923071947444258, 0.9164084413681113, -0.6812760370027394, 1.5480579290916134, 1.4837613730950547, 0.023182419970626405, -0.2668022486973583, -0.1188765567232481, -0.22450605274030175, -0.01068777580695019, -0.5681288373513323, -0.798016193089919, 1.112093456749927, 1.4289069908566108, -0.8325323358283204, 0.6527204397669472, 0.45576965736433434, -0.05177234665505003, 1.1825820243015825, 0.5633724078799881, -0.2598338582029702, 1.2260636343236992, -0.06502314120499497, 1.3554177601202826, 0.015378075446720483, 1.771795744777381, 0.19716116753361734, -0.9289545353666014, -0.01120548540552129, -1.6568561810835647, -0.9711632993719995, 0.2888457566302567, -0.33812030790826947, -0.6944997091883152, -0.08753361436324024, -1.0825962267681306, -0.4698117598324523, -0.31391779051735585, 0.5155485258897468, -1.3906426323765313, -0.08794713693189429, 1.323299166667676, -0.1281180737897692, -0.7313549630276092, 0.30727046798040325, 1.1752251844693715, -0.7441249207177553, 1.6052690350217986, 0.18649308224250258, 0.17892852927651728, -0.0995691575256924, 0.4348534499771249, 1.484991734895783, -0.5720258392859724, -0.08690696328546704, 0.7713939696120472, 1.1722789472312292, 1.9496467641354467, 0.22942775691626238, 0.7124499254350729, -0.40961823346856296, -1.5841557574786587, -0.5783735657948544, 1.7072885072301731, -0.9760682458530513, -0.7133260677207641, -0.17406636751269225, 1.5115376392568705, 0.3444982802650086, 0.5618620561647593, 0.7768151831330067, -1.8495980414473379, -0.022772431183660354, -0.2688258642531703, -0.2316501235768239, -0.4349049986098626, 0.09524082099485014, 0.18287945969711975, 0.9756566821517488, 1.2112951490716906, -0.8350588047652798, -0.7894781658614808, -0.8425885522378407, 1.0078366331542066, -2.170943513352494, -0.07697039348999336, 0.624710432231761, -1.5714538060400307, 0.25497055299290833, 0.9193656642088831, 1.0914383490187152, -0.2746559451582547, -0.24795001040712014, -0.1821963308600328, -0.6151863420266909, -0.07974289047525698, 0.864835252508244, -0.11852133979339911, -0.5867385141837459, 0.7425778869302543, 0.7772435416319093, 0.7418518577569089, 0.18477538422252776, -0.862469199675159, -0.7201960090993764, 0.7441788487719844, -0.44740979333359115, -2.011406066578824, -2.0397719472330946, 1.6317617740438857, 0.501298361621573, 0.46480805036189093, -0.6492071444203512, -0.9962577891956758, -1.176143672100762, -1.460358133281756, 0.91939184535992, -2.6115193413417344, -0.11701441464426601, 0.36330899947821516, -0.7619851206952822, -0.9791836397007687, 0.06605184536205168, 0.9852736131214399, 0.18316974821162169, -0.16385983370688456, 1.769889718870536, -0.7568083172666948, -0.07093554823462433, 0.34915804932546474, 0.04394955212420144, -0.3412151969411125, -0.037998909530440356, -0.7920940693112494, 0.23924283654785033, -0.7218726802077204, 0.756794397487571, 1.129998141517764, 0.06199671202439378, 1.5818825635871332, -2.0927309142911965, -1.009720388820037, -1.161041154747722, -0.8447671692136892, -1.0157929981350513, 0.7904271516718387, 0.7254384385818724, -0.603295486359894, 0.25924412778603606, -0.04640660866056171, -1.6000423263326133, 1.8143254523998487, -0.08862538404196012, 0.5332621638876169, 1.1045997215315637, -0.41584450160976266, 0.9441745490519653, 0.24798697093505728, 0.007684578291883661, 0.10198392659226542, 1.6199201784700468, -0.32528736620138143, -0.5826981266958557, -0.36325256797247957, 1.1471577477638135, 0.6178987140946427, 0.36972297251343633, 0.5437284650592201, -1.4459624565283546, 0.05792287061159475, 0.41648235426252744, -0.3752827187450667, 1.6652887251405053, -0.42564437336001554, 0.9761973006448895, -0.7275241033025399, 0.6934458083833381, -0.29112188437100084, 1.3282243166189927, -0.9536927875603478, -0.719434212611784, 0.6748136465043926, -0.03597354593983007, 1.94009058703115, 0.09882655123973512, 2.1053876175385304, 1.4185342675315131, 0.1206620765251783, 0.14903745714080963, 0.10442318495551679, -0.17795681161591564, 1.2580662909953826, -0.309432614193383, -1.0905944849250224, 0.4769931537784153, 0.42744787996997274, 0.015299040637353436, -0.35211140544489866, 0.2588719668529644, 0.39806242670614195, 0.0982957694556772, -0.3643039151707563, -1.661352851241187, -0.7050125329026734, -0.943960952206926, -1.4473953121799084, 0.6926023466644213, 0.284659435800313, 1.6730413075943111, 0.6423676343810131, 0.3968310937206259, -0.8342984203305135, -0.06635863092332817, 0.48133940282415283, -0.34365908316039695, 0.8195486752084361, -0.2781857864218842, -1.0136587780355568, -0.4538474341770635, -1.1337344789342048, -0.5150244531135606, 0.958566232938252, -0.16105129432877321, 0.38436738614303156, -0.5172439276028532, 0.23093709347387772, -0.30272270953081704, -0.21962749662435752, 0.9566459591875526, -0.788349928603636, -0.44952615913370747, 0.525332205545319, -0.5812548660484521, 1.2956320514491553, -1.752164482642109, -0.6047121066028011, -0.15329007945272555, -0.04110361189064399, 0.2075100652227872, -0.04955642332135181, -1.2847570979710345, 0.4806820630644186, 0.8112350665109486, 0.577438605043487, -0.5506815219471743, 0.7858766373478445, -1.101050840231404, -2.2244251571050273, 0.09434075969634925, 0.19198836106624168, 1.0670984516256519, -0.7989553140491875, -0.20794218769948203, 1.5326125420890269, 0.020895643272767377, 1.429434237396836, -0.09226519337744446, 0.2530160966559398, -1.2052909073582596, 0.18629835668130743, -1.1412717735009497, 1.2293983703310951, 0.20963090073800605, 0.2771037033747804, 1.1176243523307434, -1.7749390137644867, -0.6160566595276167, 0.37431077650255806, -0.628817850166509, -1.5457989014436102, 1.0413567521072367, -0.6687052895376355, 0.08823501338384936, -0.8504561089335623, 2.674041129993747, -1.5899356389768722, -0.12358228035838018, 0.4957660906211637, 0.31851942141963985, -2.077120767009975, -0.5844799194788266, 1.9510391355162264, -0.347560684365186, 1.3086755801775074, 0.34475766053720236, -0.4033872470813162, 1.1582973308383313, -1.0684599760113471, 0.529968393960725, -1.6526921510620116, 0.9524384542696674, -0.22909069471152455, 0.6652418786019982, 0.0030589233668147898, 0.11365610389048802, -0.2480098634476716, -1.739708416005498, 0.13128969246670458, -0.8124775515041727, 0.09211054412374194, -0.5372875032406812, -0.0032089521665293573, -0.8316736236057737, 1.5059153046848375, 0.5055489101297763, -0.9926899954404349, 0.06717218616117565, 0.7564225434228204, -1.1172446398752929, -0.0971278427942958, 0.1783634876571702, -0.43831740139818265, -0.9897246258630265, 0.42789947696918956, -1.1881782474146696, -2.2595621851300622, 0.6418731773450146, 0.2534262764606806, 0.4316556467189196, -0.1404488018967209, 0.8263074484867586, -0.14552757065621125, 0.0789242186302759, 0.8209702417714765, -0.25903816299191046, 0.6767653743426741, 1.6145117461589933, 0.6926264703024766, -0.32214772217430293, 0.9292349516554164, -1.0508805938355477, -2.749764645898245, 0.013188601563584493, 0.33055296889149677, -1.1958215283600067, 0.1405450269372766, -0.508425415799171, 1.4570136536517577, -1.0251431195020073, 1.0969073653806085, 0.2995765466625078, -0.7079203015696985, 0.1288388731533383, 0.7296772632654821, -0.5084827629757859, -0.9959874907849151, 0.7608364139386558, -1.1970996777698375, 1.9127937929371042, 0.38743478707694207, 0.21795474706617954, -0.29993899538603785, -1.4785086866034736, -1.5956467908439216, -1.2082094773229581, 0.03773293580577447, 0.790311941516555, 0.5111896121176778, -1.1940258469292004, 1.2227006637979814, 0.836882842830787, -1.4311686461788606, -1.2744460342013122, 1.4644637457684015, 0.9728193611804964, 0.555860074890682, -0.4409659816734968, -1.268835784551248, 1.830337701005201, 0.5659326920677746, -0.5949593269450844, -0.48933591057504616, -0.5902894454298842, 0.8313257587194035, -0.014541865211528828, 0.42819120074867917, 0.12344083343107326, -1.5259370836437376, -0.4422937354316872, 0.2663102136658507, 0.7711270876630171, -0.6631414912664546, 0.7010024223490354, 2.074527616332793, 0.1267033512168494, 0.5771332153363341, -0.1669943788998164, 0.37570932219774306, -0.009486467375681047, 0.6339720925542973, -1.100679804820569, 0.208089727845949, -0.9425617416684303, -1.4440593374039066, -0.4882367066101957, 0.7163657255326146, -1.0357588950466872, -3.0737220356886374, 0.2470950795522819, 0.2864288554119523, 0.1483978221958065, 2.1154989451643167, -0.4001965762118845, -0.6462203956080385, 1.1265359562700552, -1.2596675882237476, -1.0043123290637297, -1.2085727111478823, 1.4452610642730932, -1.5066630796353353, -0.26195290731609777, -0.14271399927968614, -0.6530276111308737, 0.31402361422899266, -0.615575261840529, -1.5382467581744872, -1.146638529472436, -1.2566936090246918, -0.11659270837613013, 0.35542964402643873, 0.02526277564568483, -1.7743572584114875, -0.7085383632824588, -0.63517949386522, 0.7100322417458258, 0.37725139473966673, -0.5759538564824571, 0.08180511402950946, 0.41407533287471754, -0.24200104577387313, -0.4385693241008144, 1.6526863394676001, -0.11474769466518762, -0.7778772946580198, -0.28839425476706665, -1.9107601252457116, 1.2251863883694925, -0.6102167805929645, 1.314166180001923, 0.33549111757526723, 0.1642165334041994, -0.2711391207536865, -0.7227241249586495, -0.20242746834599726, 0.511635243911443, 0.7803547739974653, -0.327423000785996, 0.3502846670812043, -0.6690281009028096, -1.603564129628161, 0.651294169982652, 1.5346475986331407, 0.6076831921328979, 0.09553225219459871, -0.7254748961580175, 0.5000694612537876, 0.41285641663749495, -0.6307563086891868, 0.10304359933774031, 0.6906693939179498, -0.6117088277209861, -0.37359085726781716, 0.6415372041475905, 0.5667199392606257, -0.471612466163586, -0.28409429557130345, -1.1000185275940002, 1.2078426552444212, 1.820822882585083, -0.049716516450738324, 0.48541676042055915, -0.24833733761952417, 1.9706194085315605, -1.9357972478544503, 1.2746428725319756, 0.8787450667483632, -0.5743399181816461, 1.146477625622449, 0.82904607165605, -0.6240307749078965, -0.5201093385684066, 1.7563590799610034, 0.9291759054010359, 0.03949431623274768, 0.09878351123218292, 0.4678794507416003, -0.21611204185496907, -1.9415038866503043, 2.2711411739440632, -0.7573422816803704, 0.4462925903632097, -0.7789087537529676, -0.5503182367952988, 0.5971424930574555, -0.07203878009168195, -0.5217028851935946, 1.082108216219426, 0.41790242250612963, -0.0679066357661384, -1.263509598957737, 0.8004808096290376, -0.2541222406082443, -0.2133433497515408, -0.26792364723437295, 0.20112906676382966, -0.32435552792181394, 0.23282205608740192, 2.2221675354748855, -1.4830106452698057, 0.9891247273398209, 0.2603986195227453, 0.4910300720533456, -1.357238648432873, -1.2514963996484836, -0.30125845912815724, 0.1928097450048526, 1.4448018223442105, 0.5625834185014028, -1.1979257187589254, -0.07857776228971138, 0.06045821558284647, 0.7133596907037718, -0.8010426610921747, 2.0440257915732163, -0.5915625781476785, 0.4614571279264127, -0.8323915586162163, -0.12281522077241769, -1.891751987785829, -1.436820011323204, -0.3375407922826853, -0.4583639388670451, -0.09352467965350812, -0.09376078246251955, -1.104789843452201, -1.9113071146131402, -0.3080107984257694, 0.6890879947469407, 1.6298325324990017, 1.7332383276272256, -0.6570721931348752, 0.5011093119580866, 1.4256340832824121, -1.6409542816000537, 0.3031292239641022, 2.064237216045931, -0.051705902095611905, -0.7832897005596622, -0.7454241686325258, 0.7295020332844333, 1.6375808311567626, -1.2299275543889183, -0.5600159935032863, 0.36276227989135124, -0.0841421034314566, -0.34511214955582953, 0.1013965878283084, -0.18098461747365058, 0.9191251794719164, 0.06765779742714738, -0.24919806799835556, -1.7584641099826481, -0.2408943706631287, 1.1586506587846426, -0.6941027599159496, -0.40284176463802435, -0.07218934233754541, -0.6866794606674014, -1.136814985867382, -1.0286542111302972, -1.0753215203338025, -0.523524292626774, -1.1218134808250722, -0.874089313385567, 0.09331272041243248, 0.9386738047553144, 0.09076349142987619, -1.2160470369625689, 0.27900325888755534, -1.3482125481314258, -2.0470437247953943, -0.40859660863279956, 0.2828811548709021, 2.4800984064132803, 0.19294989666278736, 0.28212861056292143, -1.610912083835489, -0.5315801864225906, 1.706608368850939, -1.8501729731293364, -0.630002988972623, 1.4757143328892797, -1.6396479208187233, -1.8371716642350544, -1.0742314481301545, 1.0754611432095824, -0.5378007226773498, -0.3178784375535398, 0.5735335996600629, 0.4868994275345122, -0.21549627729467807, -0.16640172916066487, 0.908080649370133, 2.173437328284729, 0.4190344084566232, -0.9569146506578511, 0.45263575951706014, 1.778059009562198, 1.4488553145210796, 0.07467679612778716, -1.3459068501008828, 1.0900502612985628, 1.8272758673855272, -0.23894381261705294, 0.12043314967623445, -0.5773200285051094, 0.5216921180645022, -1.5092635778866117, 0.18102168205190566, 0.8965052639560143, 0.9201255573471795, -1.2903912922821366, 0.9873211691804024, 1.172724388329733, 0.20376377055663986, 2.138854170658406, -0.9316113182700534, -1.2475280594655904, 0.417911924644604, 0.3104385253889033, 0.8962967028920321, -0.5778036698087538, 1.0180641994003492, 1.978139527067393, 0.37723162368545265, -0.3153731448300482, -0.28043983006620493, 1.2268346250368896, -0.17227523540812437, 0.2580612644636763, 0.7839164309552376, -1.6857109421253955, -1.3003167935540005, 1.933409068497346, -0.720369637396077, 0.5104055429987321, -1.08388129713197, 0.23369005993420508, -0.8857461821887489, 0.21884110679487903, 0.3399839311138383, 2.2927612097100596, -0.1302670929713838, -0.2227227695346543, -1.4346253879586792, -0.8344086694038684, -0.7002516953857244, 0.43509420272323845, 0.8609631356011878, -0.43270705045183616, -0.24001073577599197, 0.28609176501217787, 0.7031717689478829, 0.23204270200931182, 2.1505272334979897, 0.2861763181933207, -0.7584547841123832, 0.5168757252968688, -1.1092933224722437, 0.28264197275089215, -0.7359352757039123, 0.7696916736749783, 1.1693904145377578, -0.03894762164617204, 0.6641135169499479, -0.7147964181583462, -0.3596311141562558, -1.8435871360153697, -1.0008815336080084, -0.8745896149619665, -1.7854772192044157, 1.4101601051693955, 0.3989081511969654, -0.46138352582140285, -2.070033977081843, -0.18644561980439622, 1.2400855648899223, -1.164136732605302, -0.7927090251554685, 0.5630168884076489, 1.1671379510254194, 2.231868835700232, 0.4565350508345933, -0.3389202312449233, -1.5275179745183336, 0.3230936836149417, 0.6082923125809354, -1.385778896370543, 0.4933263314478739, -1.9751095768562033, -0.2065779574546836, -0.19565497391904002, 0.19507228882058708, 1.1491676003071556, 0.47753659551701444, 1.267566892973097, 1.2699972267061581, -0.14783471801597317, 1.3947086641636515, 0.13849276493060986, 1.543713937406089, 0.8793567120723491, -0.19166319681661234, -2.178011595451856, -0.047935435051166216, 1.0519017754831546, -1.1503195176998693, 0.9590735535318957, -0.4101942648351055, -0.9291595233845755, 0.04827969552760872, -0.006591472103865717, -0.8287084685787525, 0.510991782645471, 1.1993354234468527, -0.6249200800653011, 0.06906024810652203, -0.2810131831119284, 1.7132565332176783, 0.3715878450725023, 0.4232188686511501, -0.23751681917622205, -0.284138784599415, -0.9181240192735334, 1.7200351673814782, -0.5646085076036653, 0.9511857419563984, -1.2703881921689144, 1.044280055990386, 0.03786689772227966, 1.4182728427165774, 0.8337325218228854, -1.0587247347181652, -0.5031113248889103, 0.8873021806079839, -1.6837264548806383, -0.963353987660909, -0.3925379775035674, 0.030351645171583227, -0.1480784901933993, 0.5971587614103617, -0.5966536682782796, -0.32585054539846936, -1.2881189235714545, 1.4626168790196996, 0.4876451579697916, -2.5512587798294053, -0.22746942805830464, 0.22714076786745147, -1.2367287849167479, -1.4958341332392378, 0.8404569974160938, -0.5250803172042454, 1.1030214409483563, -0.9430810970721388, 0.8419017021480036, 0.10747778668821155, -0.3872490592960608, -0.5972525446631549, 0.9643730616194118, -1.9150859939615104, -0.16132999883201363, 2.247013458758037, 0.2793924489497806, 0.22445447609820876, -0.5935321078971101, -1.021619853538392, -0.5669336330928147, 1.51072676166332, -0.4577459477554841, 0.2856756020469671, 1.3003683403048245, 1.6681883000570241, 0.29140173625397836, 1.4448227513845624, -0.49337735263206095, 0.3063926208053877, -0.8839906748898476, -0.8508338033152001, 0.32884664967404276, 0.8225807552240499, 0.28615338220135916, -0.6459677898912536, 0.456084692916367, 1.1816323117108978, 0.005750129390048088, -0.23080308943910496, 1.2329424071409298, -3.103298270774514, 1.2457064642869893, -1.438732143788353, -0.5069669088042135, 1.9410370006144513, -0.680135288988108, -0.684441394790031, -0.9299498749943689, -1.0023257557431406, -0.20085573890294844, 2.1892107786913413, 1.0539082768590986, -0.12946159481571648, -0.9603859816501762, -0.6759566438229674, 0.6063321523892387, -2.04080451980182, 0.3448387208567922, 0.6188680405937481, -2.53483233750232, 0.4718381152261103, 0.5204602861759604, -0.37294274011868744, -1.0608122326322948, 0.876995543974861, 1.6208103493973607, -0.10501804755065293, -1.144605534391477, -0.11545809967020526, -1.5254381527091445, 0.704971452166678, -1.1385423962074352, -1.0702260829994228, -0.8042670395297246, -1.9958053298936345, 0.06149218869846654, 0.0034778293679331336, -1.6309611881902848, -1.579450043003391, -0.812854397163873, -1.3440391096930395, -0.7992158635130223, -0.7307305666236779, 0.563033821782763, 0.5929740847991084, -0.4072124328227139, -0.9597031772508735, 0.6326426393413165, -1.26743591058185, 0.012961789096372823, 1.3690236683244486, 0.5626351995527971, 0.3930969343026333, 0.3804639938085295, -0.7055289460485151, -1.1137071825718237, -0.32401279261679405, -0.25360651639701537, -0.3629288727538312, 0.40309857005433064, 1.6124254520554622, 1.145346015655076, 0.18482864793147852, 1.0146132489781052, 0.5762713361888263, -0.4302922143454036, -0.7781673008888688, 0.3165266777932903, -1.3210033528584464, 0.47419403592709836, -0.02875008939599337, 0.14714621419460175, 1.4797797158907586, 0.6830428568029596, -1.051712101999051, 1.194440018218743, -1.1642432883696971, 1.04395640790416, -0.3903019504585278, -0.9469832104094259, -0.15920476878484313, 1.2958603176641055, 1.2195200287127348, -0.18102374320360753, -1.1645019636692635, 0.31512163398607973, 0.4112140952226413, 0.799068132489134, -0.194553356476797, -0.24713828227948162, 1.1162744704218956, -0.5100587555940508, -1.7306779449877614, -1.3161139044492312, 0.6341932724742192, -0.7347849903121613, 0.9645835907250738, 1.5026031951659682, -1.4760744795962333, -0.06731259930616487, 0.7042872721353796, -0.5335137254930029, 0.0716602316769604, 0.6043539708627061, 0.11692324897196178, -0.05768277951806856, 1.1162713764449659, 1.8796989655172829, 0.43088724829364505, 2.38688392018114, 0.29310955804355704, 0.7462035664728303, -1.4923332297842067, -1.2280466714373701, 1.0734872965346725, 0.5262032697307816, 0.7693518738655505, -0.28211783832137927, -0.0290036682453748, -2.931607725174539, -0.61001449056912, -0.7025484586715276, 0.7759827155138221, -0.19166960568471056, 0.9694902932312826, -1.04530914742025, 0.9727250463770896, 0.06310226379325519, 1.0818373134406507, 1.1047859736064884, -0.9784634968885791, -0.9146592081968249, 0.15142025533299056, 0.23328387697346153, 1.482068026300734, 1.4017194403233817, 0.5839385941999119, -3.499091269336771, 0.6898991159514024, -0.76367161011779, 0.271889761583164, -0.2648955270675521, -0.05132512877225392, -1.1445243383154795, -0.9341941596618715, -0.2758301417114395, -0.12386224872925095, 0.3429318698923175, -0.20380183235337243, -1.442620516648269, -0.08857891832728218, -0.5685844707827721, 0.31653125437081814, -0.7630932541957661, 1.0549727437086984, -0.23903901917404402, 0.13881369002402355, -0.277058267581059, -1.1828348650720584, 0.41122688905564325, -0.11093465300197233, 0.05700186250342231, -0.8530057143017865, -1.1330141754733023, -0.788433518694048, 0.0410432386990952, -0.2526837758051426, -0.7365204396871289, 2.374275605228078, 0.24647701310468878, 0.6189709904599635, -0.3036782549769593, -0.6671553020762782, 0.9568820989023366, -1.079178482400065, 0.29500583173695416, -0.9289020636769935, 0.7791599475788574, -0.1983372320556875, -0.49097598732772324, -1.2327667862306246, -0.463786196952311, -0.7468162049628737, 1.8137576226948215, 0.4907226689424396, 0.3853672976926061, 1.405986757744362, 0.006148904928010884, 0.5727386445488017, 0.09397490448508446, -0.35506525618267476, 1.7351653184984497, -0.39253263749716394, 0.12196757373920339, 0.38004382713166907, 0.7006111800175882, 0.4987705634227367, -0.7645303868257485, -0.5146892069655717, -0.5835515156473441, -1.1547773890712476, -0.05898296492235115, -0.40552495456101856, 0.7896471495772286, 0.9411139703339164, 0.22311955554865806, 0.08931789619560193, -0.20329358765536196, -0.5419364842040354, -0.49228170004771776, -1.470046814104873, 0.6676096440052671, -0.44637395277046676, 0.9374032660624821, -0.7037633657966252, 0.5428499229946147, -0.13842625496764632, 0.548639468660407, -0.3594168010139207, 0.2421866719596958, -0.0817332138093979, -0.9192998496555, -0.35704940560743, -1.4919237706313637, 1.1037769874590582, -1.1932808729832987, 1.1604899343567352, -0.47557530281844507, 1.1390775599840726, 0.4140067090270925, 0.1088305045378536, 1.371634833670723, 0.05763639823323865, -2.434504489175923, 0.4377902979825072, -0.5779445581390154, -0.7056675295714956, -2.021740325709645, 0.8029677145641245, 0.372094155662789, -0.1372592196189478, 0.26976533805181524, -0.2856178692405545, -0.42842908022510684, 0.6829412383634047, -1.0730779384994347, 1.078032654814702, 0.1028705256709566, -0.17083451753551113, 1.3636272406966754, -1.4006750649422988, 0.15878515184012215, -0.5343144396225946, 0.4710788182654698, -0.4982757116195573, -1.3461373576122837, 0.48275809709355627, 1.0413040069237451, 0.8304654840384449, 0.04525142470417448, 1.1150261280877063, -1.1063042830795375, -0.17512642858132432, 0.7145089895456904, -1.676898124939929, -0.8866319526811115, 0.6638695579328624, 0.254808343818158, -0.1733710488273902, 0.43767627484128646, -0.6256138766985718, -0.6851240806305982, 1.246686095028131, 2.1966714911546137, -0.9474534369642916, -0.3466673968775073, -0.13064991593232475, -0.7245453605918607, -0.42274357760674103, -0.7606593132101799, 0.27578036462065175, -0.5566738272654365, 1.199536196289435, -0.23475348690808437, 1.2938547579506634, 0.7592985062752258, 1.4565446120369363, 0.5925698585571267, -0.7640200189020293, -1.5621809116630407, -0.7130574853208561, -0.4979597501380508, -0.836982604341404, -0.10828483372806579, -0.8911104084843143, -0.5305610497468012, -0.2314311703766238, -1.4805313424936153, 0.037172383425924535, -0.35254712660408927, -0.6463816280682726, -0.8973473558769588, 0.27408867320343044, 0.534225162344233, 0.03416144031123779, 1.0984899529249132, -0.46684157066290927, 0.390301254662126, -1.3964014512436587, -0.11958770647925772, 0.0963977719220602, 0.07853829843736751, -0.7741909660805164, -0.7547260362208621, 0.024772134107200753, -1.1071919743033318, -0.1711226712502535, -1.1317122180615766, 0.3130399411048622, -0.09749071224790877, -0.6122835261689413, 1.8977625604682982, -0.6158681257547503, 0.14150514868201752, 0.633366058139706, 0.3022981431259149, 0.8464086072369427, -1.9920682382779313, 0.31987261665706757, 1.4605151609747007, -0.895705708541502, -1.3686366923522657, -1.000593460930194, -0.6261904034614113, -1.6050696268540892, 0.7985828095883177, -0.0647078304302263, -0.820144430633006, -1.5846222029520607, 1.0156576423133779, -0.3777444464294289, -2.248511631646904, -0.22298171339057637, -1.3116407970718018, 0.49837392154049015, 0.20113445520311113, -0.6283802144217903, -0.48080318136634503, -0.3915098696074766, 1.2435196549145224, 1.8378051494697483, -0.8294884022205283, 1.2595126389798217, -1.396000123676914, -1.2301254451264323, 1.177394337071036, 0.7446646704930803, 0.5984622226928328, 1.195742167988974, 0.17304651017091705, 0.9326265184393996, -0.28999465293677684, -0.8150842917522267, -0.7773891715527632, 1.2445059257621827, -1.6515059385419681, -0.37733967437868343, 2.200868956338072, -0.037016214744519195, 1.067978948465838, -0.13210306835820615, -1.0905311737704735, 1.3171121738640663, -2.026625839617695, -1.2436931771309372, 0.6944816510768994, -1.141005314690916, -0.6122350479820693, -0.12862947835875094, -0.9491628078514303, -0.08991804734081345, -1.2019662804601132, -0.4936417648624685, -1.2596078529018762, 0.2734969729341632, 0.26367761243012083, -0.3845216949704815, 0.1385123660970752, -1.7371291481554252, -2.1467027270393753, 0.15257804079233203, -1.5313723015536715, 1.999327366015178, -0.3011830368811492, -0.41735730168329915, 0.40317274283766563, -0.2599306041503258, 1.1233849190010659, 0.4793780102625427, 0.6032912765331433, 1.3921791832117953, 0.9074787163556444, 0.3027776034719056, -0.46394872724232683, 0.17922892798198736, 0.9260217504848337, -0.1506011687037088, -0.33026592354216766, -0.9391867896020281, -0.18689017008376085, -1.3748661784929348, 0.491865899616271, -0.010171129174967946, 1.1369473866469686, -0.530372190742135, -1.5147682480358724, 0.9077245158719225, -0.5188320162241412, -0.49635341037753455, 0.48864100459649756, -1.643545700438128, 0.08714203452357659, -0.21929293569507965, 1.3525223735804348, 0.9608987160964592, -0.5437878774099119, -0.7875132425793979, 0.634891241280815, -1.567584408083701, -0.2978084512504203, 1.0653702503009228, -0.026284407656174114, 0.22266706556141147, -0.5352806842579408, -2.2874688374285217, -0.9186842173387786, 0.5294556191859723, 0.13296251749129617, 0.9418539992801228, -0.3405517450474923, -0.11658713363915667, 0.11961296334390889, -0.47861521079367136, 0.35921345447160913, -0.6618431051396105, 0.4483628161283759, 1.6491913926528523, 0.1031541112096674, 0.2309572367392625, 0.5638613097108972, 1.645918930713119, -0.3117890128497673, -2.838210193806929, -2.0993946875235756, 2.102296024273826, -1.9610634965485907, 0.1452512596537228, -0.36246362230644247, -0.5417361612514813, -0.7706936775755416, -0.31454423708002427, -0.9766097322854914, -0.3875658504493611, -0.9590183230738742, 0.639776210649498, 0.5054570828740534, -1.730507320580122, -1.1586851904099194, -0.6060299700220276, 0.03431348768774517, -1.555046918191181, 0.9416564466713203, -0.19298125015030637, 0.813814526955861, 1.1811709952037412, -0.6473657578820925, 2.025323959475847, 0.12130231826075163, -0.6204857070365922, -0.7882694011985281, -0.952991055146093, -1.0926902409162254, -0.5647003802526669, -0.6704160544372039, 0.9478909898261734, -1.5331818795284904, -2.72400224769714, 1.1127676799398611, 0.10541256776887864, 1.901034065746133, -0.8052464476215749, 0.23880451597459376, 0.7869123531768744, 0.056788807482553626, -0.45408416458046014, 0.3481020024542226, 0.04517387615281715, 0.826322356648251, 0.8290543539264508, -0.7778304301487627, 0.33698613829735635, -0.07825557853383142, 0.7769363212181843, 0.19884590375221972, 1.1839932153430492, 0.3018701333938091, 2.0985954905843704, -1.7600644869669122, 0.5736332661249944, -1.0509230235258515, -0.038605273707839116, 2.146035779917799, -0.2060350690088525, 0.4294713501958167, 0.9186476984333585, -1.8246793326283324, 0.5182272467841479, 0.006942419458930889, -0.9008626726582498, -0.21817488537189503, 2.3387300849089097, 0.06855473645917348, -0.1480948858685203, -0.04468049280029273, 1.1990894907402945, 1.1428401942422082, 1.0261217464512553, -1.6845181697171983, -0.8527023428244022, 1.2174399474979154, 0.27056202020772646, 1.3249212553605918, -2.364534932046722, 0.8719995272557928, 1.0644818922729977, -0.5559162935722748, 0.4435938421673304, 0.7826085478388785, -1.0183909176173604, -0.3172548124372312, 1.44623110994092, 0.7302673474967414, -1.8526139165815334, 0.07509451456526277, -1.5556530964906934, -0.23093994245404167, 0.17868117506076717, -0.547128174979607, 0.7944348187093457, -0.014080642258853564, 0.34365004780990643, 1.8414508664514508, -0.6851543889767707, -0.3995219900425422, 0.9855128704638944, 0.602714123634939, 0.8632311639825612, -0.48587231060958325, 0.7191092210623281, 1.722279184501787, -0.007650657881754095, -1.63119009350982, 0.486392237687627, 0.4945609149702737, 1.2032493788224188, 1.0087736652065358, -0.6438046192076653, -0.6093529236412184, 0.6489340090125489, 1.7381196964307155}; + +static double transformer_q_fa_dram[32][6] = {0.955353643915495, 0.15059800298264459, 0.28877526152788124, 0.7874736692727674, 0.0033138313712354206, 0.1514137442800153, 0.315809991271786, 0.9486513571749156, 0.7170098907456542, 0.22719743130031045, 0.6504695181419571, 0.9213676025730508, 0.11962666414234813, 0.03356481723893723, 0.120873783894476, 0.6182273847922235, 0.20648358313884885, 0.6514548502404285, 0.8541611523236003, 0.8845191317729849, 0.3100390652948666, 0.10670548477443786, 0.8818608986918478, 0.2833004995016065, 0.2049458406686473, 0.818229361325842, 0.3680966078106971, 0.9456751156421486, 0.23788003195100227, 0.09672470107101927, 0.31804928668383237, 0.5114780330978735, 0.49040589165757387, 0.9266011293703142, 0.6226515170658152, 0.6734325958423881, 0.15824745803373108, 0.9110954293896678, 0.8079191321606969, 0.6989225491479112, 0.9790059781468533, 0.5530220735641552, 0.5174846800826481, 0.6627905601097629, 0.062256114207983604, 0.6749154834706713, 0.5714539977155987, 0.02467400014324106, 0.9985720301148958, 0.9286100013650753, 0.5112648450329714, 0.19250129754323608, 0.9399989546702964, 0.4424965437207281, 0.08903367852100286, 0.9466850172452775, 0.08767509584189703, 0.04542249121718489, 0.10021976686334788, 0.4358447061911017, 0.8990464144978517, 0.7474129374459488, 0.7268671627243809, 0.30308019452883317, 0.18577278135080932, 0.5351364761666076, 0.2710989573078423, 0.8204860984522667, 0.12720353495554737, 0.9908710160812986, 0.9399445949389931, 0.3835977766230936, 0.9153965709763672, 0.7684240486489097, 0.48827212677716336, 0.30053394038518333, 0.8001567827052283, 0.5795965694757327, 0.4101375281358759, 0.6779652511042998, 0.10580900381331015, 0.6181301311063709, 0.04551987133232649, 0.7145812679937219, 0.27284776364155316, 0.7998735155710519, 0.6773469323968611, 0.8015457892915246, 0.22268803063527987, 0.809622039595654, 0.012748043155422883, 0.9941934284317379, 0.8506019390784567, 0.6600377972294965, 0.03874996397902686, 0.2844631093848352, 0.1730539023622666, 0.5925321100460991, 0.8385131871963621, 0.9539648267522616, 0.2860982409704669, 0.38323036687301537, 0.626818148466028, 0.8404693639442287, 0.45051060930862485, 0.05551403301087332, 0.7214310111092582, 0.07544128933788452, 0.08926872629529436, 0.8749074010204755, 0.06913664610552217, 0.5755876742906745, 0.31872084218763086, 0.19933415329098003, 0.49269471023628997, 0.9113941179540345, 0.45567269163621005, 0.8082588081352305, 0.4754466616609616, 0.5585951830387132, 0.36358927491529747, 0.18499016320647466, 0.9777792562942947, 0.3813108543689122, 0.3620265571867308, 0.25040365936123377, 0.6627843268487396, 0.39718000344398297, 0.9215293908489035, 0.06558512115195747, 0.8950756602060682, 0.29383192038866424, 0.5860446625934536, 0.4551317834091305, 0.18581328736786418, 0.5498474921128761, 0.11538652767666646, 0.3758718996543703, 0.13483187294690402, 0.37492528946027326, 0.7431538552680481, 0.13459795438312538, 0.36556313241385296, 0.2812545531287758, 0.7919419045076249, 0.4385581978466321, 0.18067011097504782, 0.6228642882671899, 0.5040589040874364, 0.7175769818834761, 0.9466629584770496, 0.8681385389166836, 0.7880361586102863, 0.45019092287514106, 0.4822221311088801, 0.6756824735295557, 0.10854995058752281, 0.37511225152888106, 0.560706106633218, 0.8165855364463195, 0.7212563538559956, 0.16531914674214598, 0.18434282610388664, 0.81508241729572, 0.5209450951073856, 0.06533803058361398, 0.2538184299187105, 0.7074474098691579, 0.9327458379445724, 0.16737262016900822, 0.4163609439873608, 0.24902545723521485, 0.3239110153954329, 0.2379884280520127, 0.8848282414420039, 0.506704610970819, 0.7275813498411471, 0.39564869496755584, 0.3482850617325085, 0.9821843622529264, 0.568200408983969, 0.22188069333126847, 0.1040146058772462, 0.5713570487433763, 0.5716058518230671, 0.3287202794466546, 0.20922400086282533, 0.19626477557139888, 0.45488320781011005, 0.439416190552383, 0.40718957497031083, 0.7761866249159726}; + +static double transformer_k_fa_dram[6][32] = {0.5460847523446744, 0.8866919010723154, 0.22921713196313787, 0.16358131343322468, 0.9090101697080719, 0.5283144671730572, 0.692004477096009, 0.047075270506201417, 0.6301449548736207, 0.40678439473174377, 0.9057487385616014, 0.6020155635490347, 0.6744371435854862, 0.1340740747757324, 0.5153853864581497, 0.6160253308464486, 0.5834198488788745, 0.9349544222265975, 0.5738059896571934, 0.5342881474495988, 0.09678249547856976, 0.6443746100846981, 0.860914487772292, 0.030885928324454692, 0.5068580670142996, 0.1732539042863741, 0.6348271428122871, 0.07035760805258762, 0.20641449237267684, 0.49965081986383375, 0.6844685549876062, 0.9853843816751627, 0.9121146006940816, 0.5067488396283409, 0.7863947045092493, 0.9436986082062073, 0.18788828274231684, 0.036276633715755624, 0.06366534798260226, 0.5986996360379181, 0.06002669372301217, 0.2582818298413905, 0.08965240769175586, 0.10976962707657845, 0.9782462607444108, 0.39274784028554943, 0.7408770513938099, 0.27874327803735754, 0.42471678322182504, 0.39995277941068075, 0.2385689613510953, 0.5524258942229929, 0.6196236979108163, 0.23780636989925485, 0.5836371614645133, 0.5643109849387156, 0.3190413106969743, 0.9115205935983792, 0.9547825648882436, 0.06328448596996272, 0.3091687381223618, 0.8841821346981078, 0.5477592045995069, 0.5803481232622245, 0.9320867576095553, 0.15754145589146673, 0.15182912075503063, 0.4839516666316054, 0.2438601435613128, 0.4863837259872127, 0.0063057490669715666, 0.4494926521799968, 0.5861934964743326, 0.8642935385514404, 0.31659005436903054, 0.5601584819970029, 0.40254302904831296, 0.14234189370547756, 0.9906816639169087, 0.5961207927462902, 0.4751826516277534, 0.24055079347226904, 0.6571989848677248, 0.9593224687000075, 0.6044117505422442, 0.18270148300919997, 0.04495157126768601, 0.8772684193121051, 0.8174568236736218, 0.9245398116939949, 0.6176485898691713, 0.2720124525971359, 0.46126582970875274, 0.15020268470383746, 0.7961251902912705, 0.5984784052194926, 0.4953843591670555, 0.34851088997694635, 0.37262554040819007, 0.9190475591606655, 0.8866552351865867, 0.2151881930289289, 0.1259915677222413, 0.528456032264705, 0.8537198914174797, 0.7931050474952758, 0.7946355759876289, 0.5712973089431159, 0.28055463507614165, 0.33553244001757154, 0.9512641594199623, 0.682111492675757, 0.7627494320926435, 0.14338958995641904, 0.9320364489467042, 0.5888063117803605, 0.9369640710369882, 0.6444581762534229, 0.5374904977330469, 0.48508162375946484, 0.9110629685299224, 0.08758344686020436, 0.9912524122864912, 0.8005198668426806, 0.311119969841841, 0.47624035262322273, 0.4925844915974613, 0.5989943761294187, 0.24119148069052687, 0.036343815568869564, 0.36718587639283207, 0.21438090289652134, 0.22814110252548092, 0.6594557225515756, 0.824020651207728, 0.7983316043916212, 0.6559609438490706, 0.016647333492651906, 0.20267372283811713, 0.4663657221079568, 0.2902731717344852, 0.43185612888799907, 0.23835951856701476, 0.8078405410729929, 0.3665610904646204, 0.6957621988892645, 0.6279328504756815, 0.12146317286711295, 0.7510484924927234, 0.33796030176968184, 0.5797714597912196, 0.06910879274633741, 0.07748208234125731, 0.19165130168151734, 0.12441188085616561, 0.04194037240307691, 0.29918376212469844, 0.6100470366760293, 0.924052254785592, 0.9943293717644245, 0.2569600797615732, 0.47505463306165996, 0.5926348508634058, 0.18711941769982454, 0.06587754226232456, 0.4323673126922919, 0.8646649264139062, 0.9517932482900253, 0.622410567177116, 0.25909041660657484, 0.04295991471550553, 0.10357627015454429, 0.837257616414247, 0.017144447544888308, 0.25122725567195037, 0.2668646330098384, 0.3633939755201565, 0.1539794054141561, 0.4012401795645554, 0.9371234997291232, 0.05566555608568813, 0.613491964613107, 0.5991729217633514, 0.6854051032943045, 0.6640981781882621, 0.48395611270031214, 0.15421524765702543, 0.7057359209493415, 0.26509335860032845, 0.956550791381876, 0.10895943520779083, 0.3112152672779954}; + +static double transformer_v_fa_dram[32][6] = {0.7507734806913064, 0.5194593143551552, 0.34177601989927386, 0.23818600964469616, 0.7268704090998555, 0.5020328763631136, 0.8585260549059206, 0.995113608490874, 0.16037300743788407, 0.7156585875067538, 0.642040922346832, 0.6677073339993381, 0.7434661016636191, 0.18630950635498789, 0.5483379166732677, 0.4928484842161751, 0.5716791583714298, 0.255510220997776, 0.47498753941045235, 0.27741472104978127, 0.24476978168172647, 0.41772456908877975, 0.6060107810653996, 0.5052674343131373, 0.9966902491125099, 0.9512183173415056, 0.19853923515650507, 0.627314155102385, 0.3076498430990914, 0.19789136405526542, 0.8630540560926343, 0.11676939106649287, 0.7195905883453676, 0.3200582725562331, 0.5580739761525699, 0.33415801747900997, 0.531479655901216, 0.8281981822191754, 0.3132268640440623, 0.8821756131840502, 0.3305742324798331, 0.7662166142108684, 0.8481038085394176, 0.5263869570167143, 0.6313658122698806, 0.5215464009119711, 0.20372200123757744, 0.73836325058908, 0.35325479757967726, 0.7924047008007745, 0.2745448658926759, 0.5600794827605491, 0.658200722741503, 0.2045577955310609, 0.08609470870982872, 0.4198258024695729, 0.15224365554104347, 0.813139895520587, 0.7930716316186965, 0.596561259722417, 0.8372291369609091, 0.18833481030622723, 0.782404726615704, 0.1526822951206207, 0.32008023422423026, 0.34232742627378465, 0.03693327578316219, 0.7440915353755004, 0.4335234975421286, 0.7461157055690001, 0.017948907977940354, 0.9085421559112081, 0.818309095290462, 0.15183471355920608, 0.9200407566332138, 0.5213685610401997, 0.31670605231460125, 0.9707680666918874, 0.16341357959843428, 0.7272879704297346, 0.8577684380253987, 0.19071280720927652, 0.463362243119532, 0.6371643329351822, 0.517769585816658, 0.6188858244641551, 0.7916339159809823, 0.16072004542219787, 0.05809143098697456, 0.9209878354367667, 0.6001443314544448, 0.9994070674253142, 0.0639226155434428, 0.32235260223648754, 0.8497827398432534, 0.7146066684613136, 0.8781664554603029, 0.4010451610828293, 0.805126542022593, 0.8255393601265446, 0.48242923107960456, 0.2878007300688642, 0.10101195216469006, 0.9728042897905562, 0.9624834014612739, 0.5597672463595977, 0.38903340600629255, 0.2632505340403971, 0.21064755086417708, 0.9080667829655191, 0.7690610930850191, 0.2578063262385544, 0.20162825038118903, 0.1545238674148447, 0.785272827044165, 0.13119153058872424, 0.2907368048128921, 0.4029457084118766, 0.4239545305725759, 0.5863763505794848, 0.9391358006092027, 0.5685447369917895, 0.015608312295134041, 0.2509777390054544, 0.26618065691131576, 0.26545612946597263, 0.83902154710451, 0.42867927031924014, 0.20685972083361104, 0.6058048774428841, 0.8554597115996729, 0.07938008759860948, 0.10097522336489728, 0.9176440832317144, 0.983953455169533, 0.5205048551508509, 0.4345990462220439, 0.11372880389892204, 0.20541667095685479, 0.43429178438137916, 0.8111789707176439, 0.23828644930075138, 0.2665162034916443, 0.08552205245629163, 0.9133544278080027, 0.46365089491855194, 0.7146701039436993, 0.47634803322276886, 0.6449531701290694, 0.9860745050138299, 0.41177799556034, 0.5294043465092733, 0.555767553678483, 0.8255543505050006, 0.5889906054523938, 0.05652132071003324, 0.4617941998376468, 0.722190006410609, 0.9934923735906418, 0.03666810859397385, 0.5712249398381726, 0.1374799061934333, 0.5036513878097149, 0.8723990875179003, 0.45022487465657157, 0.1788138854199135, 0.8262479130653129, 0.6542842974364205, 0.37847506898479777, 0.7236242460561568, 0.34097714181968575, 0.016547136367233595, 0.36503670569996527, 0.03984469946373437, 0.9488841404721164, 0.24656461557237064, 0.15607073038895458, 0.1742672215430866, 0.6373648812400649, 0.8889199872261828, 0.9355659158656549, 0.15588604698784647, 0.14889253682659043, 0.5121876013989913, 0.2660894418154426, 0.9757421949931591, 0.5643940204542072, 0.5535094893467535, 0.9826383410081729, 0.9352088496536534, 0.3139404747390445, 0.9159874875427874}; + diff --git a/target/snitch_cluster/sw/apps/transformer/src/params.hjson b/target/snitch_cluster/sw/apps/transformer/src/params.hjson new file mode 100644 index 0000000000..2c8cf14d4b --- /dev/null +++ b/target/snitch_cluster/sw/apps/transformer/src/params.hjson @@ -0,0 +1,21 @@ +// Copyright 2020 ETH Zurich and University of Bologna. +// Solderpad Hardware License, Version 0.51, see LICENSE for details. +// SPDX-License-Identifier: SHL-0.51 +// +// Author: Viviane Potocnik, ETH Zurich +// Parameters for a transformer + +{ + kernel: "Transformer" + input_dim: { + seq_len: 2048, + embeddings: 768, + positional_embeddings: 64, + feedforward_len: 3072, + heads: 12, + } + eps: 1e-5 + prec: 64 + brief: true + num_iters: 2 +} \ No newline at end of file diff --git a/target/snitch_cluster/sw/apps/transformer/src/transformer.c b/target/snitch_cluster/sw/apps/transformer/src/transformer.c new file mode 100644 index 0000000000..960af4c440 --- /dev/null +++ b/target/snitch_cluster/sw/apps/transformer/src/transformer.c @@ -0,0 +1,66 @@ +// Copyright 2020 ETH Zurich and University of Bologna. +// Licensed under the Apache License, Version 2.0, see LICENSE for details. +// SPDX-License-Identifier: Apache-2.0 + +// SW testbench for profiling a Transformer +// Automatically checks the correctness of the results + +#include "dnn.h" +#include "snrt.h" + +#include "data.h" + +int main() { + + switch(transformer_l.dtype) { + case FP64: + // Input data + transformer_l.ifmap = (double *)transformer_ifmap_dram; + // Weights for query, key, value + transformer_l.weights_q = (double *)transformer_weights_q_dram; + transformer_l.weights_k = (double *)transformer_weights_k_dram; + transformer_l.weights_v = (double *)transformer_weights_v_dram; + // transformer_l.weights_o = (double *)transformer_weights_o_dram; + // Write back location for output in DRAM + transformer_l.Q_lin = (double *)transformer_Q_lin_dram; + transformer_l.K_lin = (double *)transformer_K_lin_dram; + transformer_l.V_lin = (double *)transformer_V_lin_dram; + // Matrices for FlashAttention-2 + transformer_l.Q_fa = (double *)transformer_q_fa_dram; + transformer_l.K_fa = (double *)transformer_k_fa_dram; + transformer_l.V_fa = (double *)transformer_v_fa_dram; + transformer_l.O = (double *)transformer_O_dram; + // Matrices for Concatenation + transformer_l.ifmap_lin2 = (double *)transformer_ifmap_lin2_dram; + transformer_l.weights_lin2 = (double *)transformer_weights_lin2_dram; + transformer_l.O_lin2 = (double *)transformer_O_lin2_dram; + + transformer_layer_fp64(&transformer_l); + break; + + case FP32: + // Input data + transformer_l.ifmap = (float *)transformer_ifmap_dram; + // Weights for query, key, value + // transformer_l.weights_q = (float *)transformer_weights_q_dram; + // transformer_l.weights_k = (float *)transformer_weights_k_dram; + // transformer_l.weights_v = (float *)transformer_weights_v_dram; + // transformer_l.weights_o = (float *)transformer_weights_o_dram; + // Write back location for output in DRAM + transformer_l.Q_lin = (float *)transformer_Q_lin_dram; + transformer_l.K_lin = (float *)transformer_K_lin_dram; + transformer_l.V_lin = (float *)transformer_V_lin_dram; + transformer_l.O = (float *)transformer_O_dram; + + transformer_layer_fp32(&transformer_l); + break; + + + } + + snrt_global_barrier(); + + return 0; + + // return errors; +}